import * as CompilerDOM from '@vue/compiler-dom'; import type * as ts from 'typescript'; import type { Code, Sfc, VueCompilerOptions } from '../../types'; export interface TemplateCodegenOptions { ts: typeof ts; compilerOptions: ts.CompilerOptions; vueCompilerOptions: VueCompilerOptions; template: NonNullable; shouldGenerateScopedClasses?: boolean; stylesScopedClasses: Set; hasDefineSlots?: boolean; slotsAssignName?: string; propsAssignName?: string; } export declare function generateTemplate(options: TemplateCodegenOptions): Generator>; hasSlotElements: Set; blockConditions: string[]; usedComponentCtxVars: Set; scopedClasses: { className: string; offset: number; }[]; accessGlobalVariable(name: string, offset?: number | undefined): 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; }; hasSlot: boolean; }, unknown>; export declare function forEachElementNode(node: CompilerDOM.RootNode | CompilerDOM.TemplateChildNode): Generator; export declare function isFragment(node: CompilerDOM.IfNode | CompilerDOM.ForNode): boolean | undefined;