import { FileCapabilities, VirtualFile, FileKind, FileRangeCapabilities, MirrorBehaviorCapabilities } from '@volar/language-core'; import { Mapping, Segment } from '@volar/source-map'; import * as CompilerDom from '@vue/compiler-dom'; import { SFCBlock, SFCParseResult, SFCScriptBlock, SFCStyleBlock, SFCTemplateBlock } from '@vue/compiler-sfc'; import { ComputedRef } from '@vue/reactivity'; import type * as ts from 'typescript/lib/tsserverlibrary'; import { Sfc, SfcBlock, VueLanguagePlugin } from './types'; export declare class VueEmbeddedFile { fileName: string; parentFileName?: string; kind: FileKind; capabilities: FileCapabilities; content: Segment[]; mirrorBehaviorMappings: Mapping<[MirrorBehaviorCapabilities, MirrorBehaviorCapabilities]>[]; constructor(fileName: string); } export declare class VueFile implements VirtualFile { fileName: string; snapshot: ts.IScriptSnapshot; private ts; private plugins; parsedSfcCache: { snapshot: ts.IScriptSnapshot; sfc: SFCParseResult; plugin: ReturnType; } | undefined; compiledSFCTemplateCache: { template: string; snapshot: ts.IScriptSnapshot; result: CompilerDom.CodegenResult; plugin: ReturnType; } | undefined; capabilities: FileCapabilities; kind: FileKind; mappings: Mapping[]; get compiledSFCTemplate(): { errors: CompilerDom.CompilerError[]; warnings: CompilerDom.CompilerError[]; ast: CompilerDom.RootNode | undefined; } | undefined; get mainScriptName(): string; get embeddedFiles(): VirtualFile[]; parsedSfc: SFCParseResult | undefined; sfc: Sfc; _sfcBlocks: ComputedRef>; _compiledSfcTemplate: ComputedRef<{ errors: CompilerDom.CompilerError[]; warnings: CompilerDom.CompilerError[]; ast: CompilerDom.RootNode | undefined; } | undefined>; _pluginEmbeddedFiles: ComputedRef<{ file: VueEmbeddedFile; snapshot: ts.IScriptSnapshot; mappings: Mapping[]; }[]>[]; _allEmbeddedFiles: ComputedRef<{ file: VueEmbeddedFile; snapshot: ts.IScriptSnapshot; mappings: Mapping[]; }[]>; _embeddedFiles: ComputedRef; constructor(fileName: string, snapshot: ts.IScriptSnapshot, ts: typeof import('typescript/lib/tsserverlibrary'), plugins: ReturnType[]); update(newScriptSnapshot: ts.IScriptSnapshot): void; parseSfc(): SFCParseResult | undefined; updateTemplate(block: SFCTemplateBlock | null): void; updateScript(block: SFCScriptBlock | null): void; updateScriptSetup(block: SFCScriptBlock | null): void; updateStyles(blocks: SFCStyleBlock[]): void; updateCustomBlocks(blocks: SFCBlock[]): void; updateBlock(oldBlock: T, newBlock: T): void; }