import type * as CompilerDOM from '@vue/compiler-dom'; import type { Code, VueCodeInformation } from '../../types'; import type { TemplateCodegenOptions } from './index'; import { InlayHintInfo } from '../inlayHints'; 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; withoutHighlight: VueCodeInformation; withoutHighlightAndCompletion: VueCodeInformation; withoutHighlightAndCompletionAndNavigation: VueCodeInformation; }; accessExternalVariables: Map>; hasSlotElements: Set; blockConditions: string[]; usedComponentCtxVars: Set; scopedClasses: { source: string; className: string; offset: number; }[]; emptyClassOffsets: number[]; inlayHints: InlayHintInfo[]; hasSlot: boolean; inheritedAttrVars: Set; templateRefs: Map; 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; };