import type * as CompilerDOM from '@vue/compiler-dom'; import type { Code, VueCodeInformation } from '../../types'; import { InlayHintInfo } from '../inlayHints'; import type { TemplateCodegenOptions } from './index'; export type TemplateCodegenContext = ReturnType; export declare function createTemplateCodegenContext(options: Pick): { slots: { name: string; loc?: number; tagRange: [number, number]; varName: string; nodeLoc: any; }[]; dynamicSlots: { expVar: string; varName: string; }[]; codeFeatures: { all: VueCodeInformation; verification: VueCodeInformation; completion: VueCodeInformation; additionalCompletion: VueCodeInformation; navigation: VueCodeInformation; navigationWithoutRename: VueCodeInformation; navigationAndCompletion: VueCodeInformation; navigationAndAdditionalCompletion: VueCodeInformation; withoutNavigation: VueCodeInformation; withoutHighlight: VueCodeInformation; withoutHighlightAndCompletion: VueCodeInformation; withoutHighlightAndCompletionAndNavigation: VueCodeInformation; }; accessExternalVariables: Map>; lastGenericComment: { content: string; offset: number; } | undefined; hasSlotElements: Set; blockConditions: string[]; scopedClasses: { source: string; className: string; offset: number; }[]; emptyClassOffsets: number[]; inlayHints: InlayHintInfo[]; hasSlot: boolean; bindingAttrLocs: CompilerDOM.SourceLocation[]; inheritedAttrVars: Set; templateRefs: Map; currentComponent: { node: CompilerDOM.ElementNode; ctxVar: string; used: boolean; } | undefined; singleRootElType: string | undefined; singleRootNode: CompilerDOM.ElementNode | undefined; accessExternalVariable(name: string, offset?: number): void; hasLocalVariable: (name: string) => boolean; addLocalVariable: (name: string) => void; removeLocalVariable: (name: string) => void; getInternalVariable: () => string; ignoreError: () => Generator; expectError: (prevNode: CompilerDOM.CommentNode) => Generator; resetDirectiveComments: (endStr: string) => Generator; generateAutoImportCompletion: () => Generator; };