import { FileCapabilities, VirtualFile, FileKind, FileRangeCapabilities, MirrorBehaviorCapabilities } from '@volar/language-core'; import { Mapping, Segment, StackNode, Stack } from '@volar/source-map'; import * as CompilerDom from '@vue/compiler-dom'; import type { 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'; import { VueCompilerOptions } from './types'; export declare class VueEmbeddedFile { fileName: string; content: Segment[]; contentStacks: StackNode[]; parentFileName?: string; kind: FileKind; capabilities: FileCapabilities; mirrorBehaviorMappings: Mapping<[MirrorBehaviorCapabilities, MirrorBehaviorCapabilities]>[]; constructor(fileName: string, content: Segment[], contentStacks: StackNode[]); } export declare class VueFile implements VirtualFile { fileName: string; snapshot: ts.IScriptSnapshot; vueCompilerOptions: VueCompilerOptions; plugins: ReturnType[]; ts: typeof import('typescript/lib/tsserverlibrary'); codegenStack: boolean; 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[]; codegenStacks: Stack[]; get compiledSFCTemplate(): { errors: CompilerDom.CompilerError[]; warnings: CompilerDom.CompilerError[]; ast: CompilerDom.RootNode | undefined; } | undefined; get mainScriptName(): string; get embeddedFiles(): VirtualFile[]; 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[]; codegenStacks: Stack[]; }[]>[]; _allEmbeddedFiles: ComputedRef<{ file: VueEmbeddedFile; snapshot: ts.IScriptSnapshot; mappings: Mapping[]; codegenStacks: Stack[]; }[]>; _embeddedFiles: ComputedRef; constructor(fileName: string, snapshot: ts.IScriptSnapshot, vueCompilerOptions: VueCompilerOptions, plugins: ReturnType[], ts: typeof import('typescript/lib/tsserverlibrary'), codegenStack: boolean); update(newScriptSnapshot: ts.IScriptSnapshot): void; onUpdate(): void; parseSfc(): SFCParseResult | undefined; parseTemplateBlock(block: SFCTemplateBlock): NonNullable; parseScriptBlock(block: SFCScriptBlock): NonNullable; parseScriptSetupBlock(block: SFCScriptBlock): NonNullable; parseStyleBlock(block: SFCStyleBlock, i: number): Sfc['styles'][number]; parseCustomBlock(block: SFCBlock, i: number): Sfc['customBlocks'][number]; parseBlock(block: SFCBlock): Omit; }