export interface NuxtConfig { srcDir?: string; buildDir?: string; serverDir?: string; dir?: { pages?: string; layouts?: string; middleware?: string; plugins?: string; shared?: string; }; modules?: Array any) | [string, Record]>; imports?: { autoImport?: boolean; dirs?: string[]; }; extends?: string[]; components?: Array | { dirs?: Array; }; css?: string[]; alias?: Record; } export interface TemplateExpressionNode { content: string; isStatic: boolean; } export interface TemplateAstProp { type: number; exp?: TemplateExpressionNode; arg?: TemplateExpressionNode; } export interface TemplateAstNode { type?: number; tag?: string; props?: TemplateAstProp[]; content?: TemplateExpressionNode; children?: TemplateAstNode[]; } export interface Descriptor { script: { content: string; } | null; scriptSetup: { content: string; } | null; template: { content: string; ast?: TemplateAstNode; } | null; } export type VueSfc = { parse: (source: string, path: string) => { descriptor: Descriptor; }; };