/// import * as vite from 'vite'; import { BuildOptions, Logger, UserConfig as UserConfig$1, ConfigEnv, ServerOptions } from 'vite'; export { Plugin, loadEnv } from 'vite'; import { Awaitable, SiteData, PageData, HeadConfig, LocaleSpecificConfig, LocaleConfig, SSGContext, DefaultTheme } from '../../types/shared.js'; export { DefaultTheme, HeadConfig, Header, SiteData } from '../../types/shared.js'; import { RawSourceMap } from 'source-map-js'; import { Result, LazyResult, Root } from 'postcss'; import { UseDarkOptions } from '@vueuse/core'; import { TransformOptions as TransformOptions$1 } from 'stream'; import { IThemeRegistration, ILanguageRegistration } from 'shiki'; import glob from 'fast-glob'; import { IncomingMessage, ServerResponse } from 'http'; import { Server, ListenOptions } from 'net'; declare function build(root?: string, buildOptions?: BuildOptions & { base?: string; mpa?: string; }): Promise; interface BaseComment { value: string; start?: number; end?: number; loc?: SourceLocation$1; ignore?: boolean; type: "CommentBlock" | "CommentLine"; } interface Position$1 { line: number; column: number; index: number; } interface CommentBlock extends BaseComment { type: "CommentBlock"; } interface CommentLine extends BaseComment { type: "CommentLine"; } type Comment = CommentBlock | CommentLine; interface SourceLocation$1 { start: Position$1; end: Position$1; filename: string; identifierName: string | undefined | null; } interface BaseNode { type: Node$1["type"]; leadingComments?: Comment[] | null; innerComments?: Comment[] | null; trailingComments?: Comment[] | null; start?: number | null; end?: number | null; loc?: SourceLocation$1 | null; range?: [number, number]; extra?: Record; } type Node$1 = AnyTypeAnnotation | ArgumentPlaceholder | ArrayExpression$1 | ArrayPattern | ArrayTypeAnnotation | ArrowFunctionExpression | AssignmentExpression$1 | AssignmentPattern | AwaitExpression | BigIntLiteral | BinaryExpression | BindExpression | BlockStatement$1 | BooleanLiteral | BooleanLiteralTypeAnnotation | BooleanTypeAnnotation | BreakStatement | CallExpression$1 | CatchClause | ClassAccessorProperty | ClassBody | ClassDeclaration | ClassExpression | ClassImplements | ClassMethod | ClassPrivateMethod | ClassPrivateProperty | ClassProperty | ConditionalExpression$1 | ContinueStatement | DebuggerStatement | DecimalLiteral | DeclareClass | DeclareExportAllDeclaration | DeclareExportDeclaration | DeclareFunction | DeclareInterface | DeclareModule | DeclareModuleExports | DeclareOpaqueType | DeclareTypeAlias | DeclareVariable | DeclaredPredicate | Decorator | Directive | DirectiveLiteral | DoExpression | DoWhileStatement | EmptyStatement | EmptyTypeAnnotation | EnumBooleanBody | EnumBooleanMember | EnumDeclaration | EnumDefaultedMember | EnumNumberBody | EnumNumberMember | EnumStringBody | EnumStringMember | EnumSymbolBody | ExistsTypeAnnotation | ExportAllDeclaration | ExportDefaultDeclaration | ExportDefaultSpecifier | ExportNamedDeclaration | ExportNamespaceSpecifier | ExportSpecifier | ExpressionStatement | File | ForInStatement | ForOfStatement | ForStatement | FunctionDeclaration | FunctionExpression$1 | FunctionTypeAnnotation | FunctionTypeParam | GenericTypeAnnotation | Identifier | IfStatement$1 | Import$1 | ImportAttribute | ImportDeclaration | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier | IndexedAccessType | InferredPredicate | InterfaceDeclaration | InterfaceExtends | InterfaceTypeAnnotation | InterpreterDirective | IntersectionTypeAnnotation | JSXAttribute | JSXClosingElement | JSXClosingFragment | JSXElement | JSXEmptyExpression | JSXExpressionContainer | JSXFragment | JSXIdentifier | JSXMemberExpression | JSXNamespacedName | JSXOpeningElement | JSXOpeningFragment | JSXSpreadAttribute | JSXSpreadChild | JSXText | LabeledStatement | LogicalExpression | MemberExpression | MetaProperty | MixedTypeAnnotation | ModuleExpression | NewExpression | Noop | NullLiteral | NullLiteralTypeAnnotation | NullableTypeAnnotation | NumberLiteral$1 | NumberLiteralTypeAnnotation | NumberTypeAnnotation | NumericLiteral | ObjectExpression$1 | ObjectMethod | ObjectPattern | ObjectProperty | ObjectTypeAnnotation | ObjectTypeCallProperty | ObjectTypeIndexer | ObjectTypeInternalSlot | ObjectTypeProperty | ObjectTypeSpreadProperty | OpaqueType | OptionalCallExpression | OptionalIndexedAccessType | OptionalMemberExpression | ParenthesizedExpression | PipelineBareFunction | PipelinePrimaryTopicReference | PipelineTopicExpression | Placeholder | PrivateName | Program | QualifiedTypeIdentifier | RecordExpression | RegExpLiteral | RegexLiteral$1 | RestElement | RestProperty$1 | ReturnStatement$1 | SequenceExpression$1 | SpreadElement | SpreadProperty$1 | StaticBlock | StringLiteral | StringLiteralTypeAnnotation | StringTypeAnnotation | Super | SwitchCase | SwitchStatement | SymbolTypeAnnotation | TSAnyKeyword | TSArrayType | TSAsExpression | TSBigIntKeyword | TSBooleanKeyword | TSCallSignatureDeclaration | TSConditionalType | TSConstructSignatureDeclaration | TSConstructorType | TSDeclareFunction | TSDeclareMethod | TSEnumDeclaration | TSEnumMember | TSExportAssignment | TSExpressionWithTypeArguments | TSExternalModuleReference | TSFunctionType | TSImportEqualsDeclaration | TSImportType | TSIndexSignature | TSIndexedAccessType | TSInferType | TSInstantiationExpression | TSInterfaceBody | TSInterfaceDeclaration | TSIntersectionType | TSIntrinsicKeyword | TSLiteralType | TSMappedType | TSMethodSignature | TSModuleBlock | TSModuleDeclaration | TSNamedTupleMember | TSNamespaceExportDeclaration | TSNeverKeyword | TSNonNullExpression | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSOptionalType | TSParameterProperty | TSParenthesizedType | TSPropertySignature | TSQualifiedName | TSRestType | TSSatisfiesExpression | TSStringKeyword | TSSymbolKeyword | TSThisType | TSTupleType | TSTypeAliasDeclaration | TSTypeAnnotation | TSTypeAssertion | TSTypeLiteral | TSTypeOperator | TSTypeParameter | TSTypeParameterDeclaration | TSTypeParameterInstantiation | TSTypePredicate | TSTypeQuery | TSTypeReference | TSUndefinedKeyword | TSUnionType | TSUnknownKeyword | TSVoidKeyword | TaggedTemplateExpression | TemplateElement | TemplateLiteral$1 | ThisExpression | ThisTypeAnnotation | ThrowStatement | TopicReference | TryStatement | TupleExpression | TupleTypeAnnotation | TypeAlias | TypeAnnotation | TypeCastExpression | TypeParameter | TypeParameterDeclaration | TypeParameterInstantiation | TypeofTypeAnnotation | UnaryExpression | UnionTypeAnnotation | UpdateExpression | V8IntrinsicIdentifier | VariableDeclaration | VariableDeclarator | Variance | VoidTypeAnnotation | WhileStatement | WithStatement | YieldExpression; interface ArrayExpression$1 extends BaseNode { type: "ArrayExpression"; elements: Array; } interface AssignmentExpression$1 extends BaseNode { type: "AssignmentExpression"; operator: string; left: LVal; right: Expression; } interface BinaryExpression extends BaseNode { type: "BinaryExpression"; operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=" | "|>"; left: Expression | PrivateName; right: Expression; } interface InterpreterDirective extends BaseNode { type: "InterpreterDirective"; value: string; } interface Directive extends BaseNode { type: "Directive"; value: DirectiveLiteral; } interface DirectiveLiteral extends BaseNode { type: "DirectiveLiteral"; value: string; } interface BlockStatement$1 extends BaseNode { type: "BlockStatement"; body: Array; directives: Array; } interface BreakStatement extends BaseNode { type: "BreakStatement"; label?: Identifier | null; } interface CallExpression$1 extends BaseNode { type: "CallExpression"; callee: Expression | Super | V8IntrinsicIdentifier; arguments: Array; optional?: true | false | null; typeArguments?: TypeParameterInstantiation | null; typeParameters?: TSTypeParameterInstantiation | null; } interface CatchClause extends BaseNode { type: "CatchClause"; param?: Identifier | ArrayPattern | ObjectPattern | null; body: BlockStatement$1; } interface ConditionalExpression$1 extends BaseNode { type: "ConditionalExpression"; test: Expression; consequent: Expression; alternate: Expression; } interface ContinueStatement extends BaseNode { type: "ContinueStatement"; label?: Identifier | null; } interface DebuggerStatement extends BaseNode { type: "DebuggerStatement"; } interface DoWhileStatement extends BaseNode { type: "DoWhileStatement"; test: Expression; body: Statement; } interface EmptyStatement extends BaseNode { type: "EmptyStatement"; } interface ExpressionStatement extends BaseNode { type: "ExpressionStatement"; expression: Expression; } interface File extends BaseNode { type: "File"; program: Program; comments?: Array | null; tokens?: Array | null; } interface ForInStatement extends BaseNode { type: "ForInStatement"; left: VariableDeclaration | LVal; right: Expression; body: Statement; } interface ForStatement extends BaseNode { type: "ForStatement"; init?: VariableDeclaration | Expression | null; test?: Expression | null; update?: Expression | null; body: Statement; } interface FunctionDeclaration extends BaseNode { type: "FunctionDeclaration"; id?: Identifier | null; params: Array; body: BlockStatement$1; generator: boolean; async: boolean; declare?: boolean | null; predicate?: DeclaredPredicate | InferredPredicate | null; returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null; typeParameters?: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; } interface FunctionExpression$1 extends BaseNode { type: "FunctionExpression"; id?: Identifier | null; params: Array; body: BlockStatement$1; generator: boolean; async: boolean; predicate?: DeclaredPredicate | InferredPredicate | null; returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null; typeParameters?: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; } interface Identifier extends BaseNode { type: "Identifier"; name: string; decorators?: Array | null; optional?: boolean | null; typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null; } interface IfStatement$1 extends BaseNode { type: "IfStatement"; test: Expression; consequent: Statement; alternate?: Statement | null; } interface LabeledStatement extends BaseNode { type: "LabeledStatement"; label: Identifier; body: Statement; } interface StringLiteral extends BaseNode { type: "StringLiteral"; value: string; } interface NumericLiteral extends BaseNode { type: "NumericLiteral"; value: number; } /** * @deprecated Use `NumericLiteral` */ interface NumberLiteral$1 extends BaseNode { type: "NumberLiteral"; value: number; } interface NullLiteral extends BaseNode { type: "NullLiteral"; } interface BooleanLiteral extends BaseNode { type: "BooleanLiteral"; value: boolean; } interface RegExpLiteral extends BaseNode { type: "RegExpLiteral"; pattern: string; flags: string; } /** * @deprecated Use `RegExpLiteral` */ interface RegexLiteral$1 extends BaseNode { type: "RegexLiteral"; pattern: string; flags: string; } interface LogicalExpression extends BaseNode { type: "LogicalExpression"; operator: "||" | "&&" | "??"; left: Expression; right: Expression; } interface MemberExpression extends BaseNode { type: "MemberExpression"; object: Expression | Super; property: Expression | Identifier | PrivateName; computed: boolean; optional?: true | false | null; } interface NewExpression extends BaseNode { type: "NewExpression"; callee: Expression | Super | V8IntrinsicIdentifier; arguments: Array; optional?: true | false | null; typeArguments?: TypeParameterInstantiation | null; typeParameters?: TSTypeParameterInstantiation | null; } interface Program extends BaseNode { type: "Program"; body: Array; directives: Array; sourceType: "script" | "module"; interpreter?: InterpreterDirective | null; sourceFile: string; } interface ObjectExpression$1 extends BaseNode { type: "ObjectExpression"; properties: Array; } interface ObjectMethod extends BaseNode { type: "ObjectMethod"; kind: "method" | "get" | "set"; key: Expression | Identifier | StringLiteral | NumericLiteral | BigIntLiteral; params: Array; body: BlockStatement$1; computed: boolean; generator: boolean; async: boolean; decorators?: Array | null; returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null; typeParameters?: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; } interface ObjectProperty extends BaseNode { type: "ObjectProperty"; key: Expression | Identifier | StringLiteral | NumericLiteral | BigIntLiteral | DecimalLiteral | PrivateName; value: Expression | PatternLike; computed: boolean; shorthand: boolean; decorators?: Array | null; } interface RestElement extends BaseNode { type: "RestElement"; argument: LVal; decorators?: Array | null; optional?: boolean | null; typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null; } /** * @deprecated Use `RestElement` */ interface RestProperty$1 extends BaseNode { type: "RestProperty"; argument: LVal; decorators?: Array | null; optional?: boolean | null; typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null; } interface ReturnStatement$1 extends BaseNode { type: "ReturnStatement"; argument?: Expression | null; } interface SequenceExpression$1 extends BaseNode { type: "SequenceExpression"; expressions: Array; } interface ParenthesizedExpression extends BaseNode { type: "ParenthesizedExpression"; expression: Expression; } interface SwitchCase extends BaseNode { type: "SwitchCase"; test?: Expression | null; consequent: Array; } interface SwitchStatement extends BaseNode { type: "SwitchStatement"; discriminant: Expression; cases: Array; } interface ThisExpression extends BaseNode { type: "ThisExpression"; } interface ThrowStatement extends BaseNode { type: "ThrowStatement"; argument: Expression; } interface TryStatement extends BaseNode { type: "TryStatement"; block: BlockStatement$1; handler?: CatchClause | null; finalizer?: BlockStatement$1 | null; } interface UnaryExpression extends BaseNode { type: "UnaryExpression"; operator: "void" | "throw" | "delete" | "!" | "+" | "-" | "~" | "typeof"; argument: Expression; prefix: boolean; } interface UpdateExpression extends BaseNode { type: "UpdateExpression"; operator: "++" | "--"; argument: Expression; prefix: boolean; } interface VariableDeclaration extends BaseNode { type: "VariableDeclaration"; kind: "var" | "let" | "const" | "using" | "await using"; declarations: Array; declare?: boolean | null; } interface VariableDeclarator extends BaseNode { type: "VariableDeclarator"; id: LVal; init?: Expression | null; definite?: boolean | null; } interface WhileStatement extends BaseNode { type: "WhileStatement"; test: Expression; body: Statement; } interface WithStatement extends BaseNode { type: "WithStatement"; object: Expression; body: Statement; } interface AssignmentPattern extends BaseNode { type: "AssignmentPattern"; left: Identifier | ObjectPattern | ArrayPattern | MemberExpression | TSAsExpression | TSSatisfiesExpression | TSTypeAssertion | TSNonNullExpression; right: Expression; decorators?: Array | null; optional?: boolean | null; typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null; } interface ArrayPattern extends BaseNode { type: "ArrayPattern"; elements: Array; decorators?: Array | null; optional?: boolean | null; typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null; } interface ArrowFunctionExpression extends BaseNode { type: "ArrowFunctionExpression"; params: Array; body: BlockStatement$1 | Expression; async: boolean; expression: boolean; generator?: boolean; predicate?: DeclaredPredicate | InferredPredicate | null; returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null; typeParameters?: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; } interface ClassBody extends BaseNode { type: "ClassBody"; body: Array; } interface ClassExpression extends BaseNode { type: "ClassExpression"; id?: Identifier | null; superClass?: Expression | null; body: ClassBody; decorators?: Array | null; implements?: Array | null; mixins?: InterfaceExtends | null; superTypeParameters?: TypeParameterInstantiation | TSTypeParameterInstantiation | null; typeParameters?: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; } interface ClassDeclaration extends BaseNode { type: "ClassDeclaration"; id?: Identifier | null; superClass?: Expression | null; body: ClassBody; decorators?: Array | null; abstract?: boolean | null; declare?: boolean | null; implements?: Array | null; mixins?: InterfaceExtends | null; superTypeParameters?: TypeParameterInstantiation | TSTypeParameterInstantiation | null; typeParameters?: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; } interface ExportAllDeclaration extends BaseNode { type: "ExportAllDeclaration"; source: StringLiteral; assertions?: Array | null; attributes?: Array | null; exportKind?: "type" | "value" | null; } interface ExportDefaultDeclaration extends BaseNode { type: "ExportDefaultDeclaration"; declaration: TSDeclareFunction | FunctionDeclaration | ClassDeclaration | Expression; exportKind?: "value" | null; } interface ExportNamedDeclaration extends BaseNode { type: "ExportNamedDeclaration"; declaration?: Declaration | null; specifiers: Array; source?: StringLiteral | null; assertions?: Array | null; attributes?: Array | null; exportKind?: "type" | "value" | null; } interface ExportSpecifier extends BaseNode { type: "ExportSpecifier"; local: Identifier; exported: Identifier | StringLiteral; exportKind?: "type" | "value" | null; } interface ForOfStatement extends BaseNode { type: "ForOfStatement"; left: VariableDeclaration | LVal; right: Expression; body: Statement; await: boolean; } interface ImportDeclaration extends BaseNode { type: "ImportDeclaration"; specifiers: Array; source: StringLiteral; assertions?: Array | null; attributes?: Array | null; importKind?: "type" | "typeof" | "value" | null; module?: boolean | null; } interface ImportDefaultSpecifier extends BaseNode { type: "ImportDefaultSpecifier"; local: Identifier; } interface ImportNamespaceSpecifier extends BaseNode { type: "ImportNamespaceSpecifier"; local: Identifier; } interface ImportSpecifier extends BaseNode { type: "ImportSpecifier"; local: Identifier; imported: Identifier | StringLiteral; importKind?: "type" | "typeof" | "value" | null; } interface MetaProperty extends BaseNode { type: "MetaProperty"; meta: Identifier; property: Identifier; } interface ClassMethod extends BaseNode { type: "ClassMethod"; kind: "get" | "set" | "method" | "constructor"; key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression; params: Array; body: BlockStatement$1; computed: boolean; static: boolean; generator: boolean; async: boolean; abstract?: boolean | null; access?: "public" | "private" | "protected" | null; accessibility?: "public" | "private" | "protected" | null; decorators?: Array | null; optional?: boolean | null; override?: boolean; returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null; typeParameters?: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; } interface ObjectPattern extends BaseNode { type: "ObjectPattern"; properties: Array; decorators?: Array | null; optional?: boolean | null; typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null; } interface SpreadElement extends BaseNode { type: "SpreadElement"; argument: Expression; } /** * @deprecated Use `SpreadElement` */ interface SpreadProperty$1 extends BaseNode { type: "SpreadProperty"; argument: Expression; } interface Super extends BaseNode { type: "Super"; } interface TaggedTemplateExpression extends BaseNode { type: "TaggedTemplateExpression"; tag: Expression; quasi: TemplateLiteral$1; typeParameters?: TypeParameterInstantiation | TSTypeParameterInstantiation | null; } interface TemplateElement extends BaseNode { type: "TemplateElement"; value: { raw: string; cooked?: string; }; tail: boolean; } interface TemplateLiteral$1 extends BaseNode { type: "TemplateLiteral"; quasis: Array; expressions: Array; } interface YieldExpression extends BaseNode { type: "YieldExpression"; argument?: Expression | null; delegate: boolean; } interface AwaitExpression extends BaseNode { type: "AwaitExpression"; argument: Expression; } interface Import$1 extends BaseNode { type: "Import"; } interface BigIntLiteral extends BaseNode { type: "BigIntLiteral"; value: string; } interface ExportNamespaceSpecifier extends BaseNode { type: "ExportNamespaceSpecifier"; exported: Identifier; } interface OptionalMemberExpression extends BaseNode { type: "OptionalMemberExpression"; object: Expression; property: Expression | Identifier; computed: boolean; optional: boolean; } interface OptionalCallExpression extends BaseNode { type: "OptionalCallExpression"; callee: Expression; arguments: Array; optional: boolean; typeArguments?: TypeParameterInstantiation | null; typeParameters?: TSTypeParameterInstantiation | null; } interface ClassProperty extends BaseNode { type: "ClassProperty"; key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression; value?: Expression | null; typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null; decorators?: Array | null; computed: boolean; static: boolean; abstract?: boolean | null; accessibility?: "public" | "private" | "protected" | null; declare?: boolean | null; definite?: boolean | null; optional?: boolean | null; override?: boolean; readonly?: boolean | null; variance?: Variance | null; } interface ClassAccessorProperty extends BaseNode { type: "ClassAccessorProperty"; key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression | PrivateName; value?: Expression | null; typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null; decorators?: Array | null; computed: boolean; static: boolean; abstract?: boolean | null; accessibility?: "public" | "private" | "protected" | null; declare?: boolean | null; definite?: boolean | null; optional?: boolean | null; override?: boolean; readonly?: boolean | null; variance?: Variance | null; } interface ClassPrivateProperty extends BaseNode { type: "ClassPrivateProperty"; key: PrivateName; value?: Expression | null; decorators?: Array | null; static: boolean; definite?: boolean | null; readonly?: boolean | null; typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null; variance?: Variance | null; } interface ClassPrivateMethod extends BaseNode { type: "ClassPrivateMethod"; kind: "get" | "set" | "method"; key: PrivateName; params: Array; body: BlockStatement$1; static: boolean; abstract?: boolean | null; access?: "public" | "private" | "protected" | null; accessibility?: "public" | "private" | "protected" | null; async?: boolean; computed?: boolean; decorators?: Array | null; generator?: boolean; optional?: boolean | null; override?: boolean; returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null; typeParameters?: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; } interface PrivateName extends BaseNode { type: "PrivateName"; id: Identifier; } interface StaticBlock extends BaseNode { type: "StaticBlock"; body: Array; } interface AnyTypeAnnotation extends BaseNode { type: "AnyTypeAnnotation"; } interface ArrayTypeAnnotation extends BaseNode { type: "ArrayTypeAnnotation"; elementType: FlowType; } interface BooleanTypeAnnotation extends BaseNode { type: "BooleanTypeAnnotation"; } interface BooleanLiteralTypeAnnotation extends BaseNode { type: "BooleanLiteralTypeAnnotation"; value: boolean; } interface NullLiteralTypeAnnotation extends BaseNode { type: "NullLiteralTypeAnnotation"; } interface ClassImplements extends BaseNode { type: "ClassImplements"; id: Identifier; typeParameters?: TypeParameterInstantiation | null; } interface DeclareClass extends BaseNode { type: "DeclareClass"; id: Identifier; typeParameters?: TypeParameterDeclaration | null; extends?: Array | null; body: ObjectTypeAnnotation; implements?: Array | null; mixins?: Array | null; } interface DeclareFunction extends BaseNode { type: "DeclareFunction"; id: Identifier; predicate?: DeclaredPredicate | null; } interface DeclareInterface extends BaseNode { type: "DeclareInterface"; id: Identifier; typeParameters?: TypeParameterDeclaration | null; extends?: Array | null; body: ObjectTypeAnnotation; } interface DeclareModule extends BaseNode { type: "DeclareModule"; id: Identifier | StringLiteral; body: BlockStatement$1; kind?: "CommonJS" | "ES" | null; } interface DeclareModuleExports extends BaseNode { type: "DeclareModuleExports"; typeAnnotation: TypeAnnotation; } interface DeclareTypeAlias extends BaseNode { type: "DeclareTypeAlias"; id: Identifier; typeParameters?: TypeParameterDeclaration | null; right: FlowType; } interface DeclareOpaqueType extends BaseNode { type: "DeclareOpaqueType"; id: Identifier; typeParameters?: TypeParameterDeclaration | null; supertype?: FlowType | null; impltype?: FlowType | null; } interface DeclareVariable extends BaseNode { type: "DeclareVariable"; id: Identifier; } interface DeclareExportDeclaration extends BaseNode { type: "DeclareExportDeclaration"; declaration?: Flow | null; specifiers?: Array | null; source?: StringLiteral | null; default?: boolean | null; } interface DeclareExportAllDeclaration extends BaseNode { type: "DeclareExportAllDeclaration"; source: StringLiteral; exportKind?: "type" | "value" | null; } interface DeclaredPredicate extends BaseNode { type: "DeclaredPredicate"; value: Flow; } interface ExistsTypeAnnotation extends BaseNode { type: "ExistsTypeAnnotation"; } interface FunctionTypeAnnotation extends BaseNode { type: "FunctionTypeAnnotation"; typeParameters?: TypeParameterDeclaration | null; params: Array; rest?: FunctionTypeParam | null; returnType: FlowType; this?: FunctionTypeParam | null; } interface FunctionTypeParam extends BaseNode { type: "FunctionTypeParam"; name?: Identifier | null; typeAnnotation: FlowType; optional?: boolean | null; } interface GenericTypeAnnotation extends BaseNode { type: "GenericTypeAnnotation"; id: Identifier | QualifiedTypeIdentifier; typeParameters?: TypeParameterInstantiation | null; } interface InferredPredicate extends BaseNode { type: "InferredPredicate"; } interface InterfaceExtends extends BaseNode { type: "InterfaceExtends"; id: Identifier | QualifiedTypeIdentifier; typeParameters?: TypeParameterInstantiation | null; } interface InterfaceDeclaration extends BaseNode { type: "InterfaceDeclaration"; id: Identifier; typeParameters?: TypeParameterDeclaration | null; extends?: Array | null; body: ObjectTypeAnnotation; } interface InterfaceTypeAnnotation extends BaseNode { type: "InterfaceTypeAnnotation"; extends?: Array | null; body: ObjectTypeAnnotation; } interface IntersectionTypeAnnotation extends BaseNode { type: "IntersectionTypeAnnotation"; types: Array; } interface MixedTypeAnnotation extends BaseNode { type: "MixedTypeAnnotation"; } interface EmptyTypeAnnotation extends BaseNode { type: "EmptyTypeAnnotation"; } interface NullableTypeAnnotation extends BaseNode { type: "NullableTypeAnnotation"; typeAnnotation: FlowType; } interface NumberLiteralTypeAnnotation extends BaseNode { type: "NumberLiteralTypeAnnotation"; value: number; } interface NumberTypeAnnotation extends BaseNode { type: "NumberTypeAnnotation"; } interface ObjectTypeAnnotation extends BaseNode { type: "ObjectTypeAnnotation"; properties: Array; indexers?: Array; callProperties?: Array; internalSlots?: Array; exact: boolean; inexact?: boolean | null; } interface ObjectTypeInternalSlot extends BaseNode { type: "ObjectTypeInternalSlot"; id: Identifier; value: FlowType; optional: boolean; static: boolean; method: boolean; } interface ObjectTypeCallProperty extends BaseNode { type: "ObjectTypeCallProperty"; value: FlowType; static: boolean; } interface ObjectTypeIndexer extends BaseNode { type: "ObjectTypeIndexer"; id?: Identifier | null; key: FlowType; value: FlowType; variance?: Variance | null; static: boolean; } interface ObjectTypeProperty extends BaseNode { type: "ObjectTypeProperty"; key: Identifier | StringLiteral; value: FlowType; variance?: Variance | null; kind: "init" | "get" | "set"; method: boolean; optional: boolean; proto: boolean; static: boolean; } interface ObjectTypeSpreadProperty extends BaseNode { type: "ObjectTypeSpreadProperty"; argument: FlowType; } interface OpaqueType extends BaseNode { type: "OpaqueType"; id: Identifier; typeParameters?: TypeParameterDeclaration | null; supertype?: FlowType | null; impltype: FlowType; } interface QualifiedTypeIdentifier extends BaseNode { type: "QualifiedTypeIdentifier"; id: Identifier; qualification: Identifier | QualifiedTypeIdentifier; } interface StringLiteralTypeAnnotation extends BaseNode { type: "StringLiteralTypeAnnotation"; value: string; } interface StringTypeAnnotation extends BaseNode { type: "StringTypeAnnotation"; } interface SymbolTypeAnnotation extends BaseNode { type: "SymbolTypeAnnotation"; } interface ThisTypeAnnotation extends BaseNode { type: "ThisTypeAnnotation"; } interface TupleTypeAnnotation extends BaseNode { type: "TupleTypeAnnotation"; types: Array; } interface TypeofTypeAnnotation extends BaseNode { type: "TypeofTypeAnnotation"; argument: FlowType; } interface TypeAlias extends BaseNode { type: "TypeAlias"; id: Identifier; typeParameters?: TypeParameterDeclaration | null; right: FlowType; } interface TypeAnnotation extends BaseNode { type: "TypeAnnotation"; typeAnnotation: FlowType; } interface TypeCastExpression extends BaseNode { type: "TypeCastExpression"; expression: Expression; typeAnnotation: TypeAnnotation; } interface TypeParameter extends BaseNode { type: "TypeParameter"; bound?: TypeAnnotation | null; default?: FlowType | null; variance?: Variance | null; name: string; } interface TypeParameterDeclaration extends BaseNode { type: "TypeParameterDeclaration"; params: Array; } interface TypeParameterInstantiation extends BaseNode { type: "TypeParameterInstantiation"; params: Array; } interface UnionTypeAnnotation extends BaseNode { type: "UnionTypeAnnotation"; types: Array; } interface Variance extends BaseNode { type: "Variance"; kind: "minus" | "plus"; } interface VoidTypeAnnotation extends BaseNode { type: "VoidTypeAnnotation"; } interface EnumDeclaration extends BaseNode { type: "EnumDeclaration"; id: Identifier; body: EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody; } interface EnumBooleanBody extends BaseNode { type: "EnumBooleanBody"; members: Array; explicitType: boolean; hasUnknownMembers: boolean; } interface EnumNumberBody extends BaseNode { type: "EnumNumberBody"; members: Array; explicitType: boolean; hasUnknownMembers: boolean; } interface EnumStringBody extends BaseNode { type: "EnumStringBody"; members: Array; explicitType: boolean; hasUnknownMembers: boolean; } interface EnumSymbolBody extends BaseNode { type: "EnumSymbolBody"; members: Array; hasUnknownMembers: boolean; } interface EnumBooleanMember extends BaseNode { type: "EnumBooleanMember"; id: Identifier; init: BooleanLiteral; } interface EnumNumberMember extends BaseNode { type: "EnumNumberMember"; id: Identifier; init: NumericLiteral; } interface EnumStringMember extends BaseNode { type: "EnumStringMember"; id: Identifier; init: StringLiteral; } interface EnumDefaultedMember extends BaseNode { type: "EnumDefaultedMember"; id: Identifier; } interface IndexedAccessType extends BaseNode { type: "IndexedAccessType"; objectType: FlowType; indexType: FlowType; } interface OptionalIndexedAccessType extends BaseNode { type: "OptionalIndexedAccessType"; objectType: FlowType; indexType: FlowType; optional: boolean; } interface JSXAttribute extends BaseNode { type: "JSXAttribute"; name: JSXIdentifier | JSXNamespacedName; value?: JSXElement | JSXFragment | StringLiteral | JSXExpressionContainer | null; } interface JSXClosingElement extends BaseNode { type: "JSXClosingElement"; name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName; } interface JSXElement extends BaseNode { type: "JSXElement"; openingElement: JSXOpeningElement; closingElement?: JSXClosingElement | null; children: Array; selfClosing?: boolean | null; } interface JSXEmptyExpression extends BaseNode { type: "JSXEmptyExpression"; } interface JSXExpressionContainer extends BaseNode { type: "JSXExpressionContainer"; expression: Expression | JSXEmptyExpression; } interface JSXSpreadChild extends BaseNode { type: "JSXSpreadChild"; expression: Expression; } interface JSXIdentifier extends BaseNode { type: "JSXIdentifier"; name: string; } interface JSXMemberExpression extends BaseNode { type: "JSXMemberExpression"; object: JSXMemberExpression | JSXIdentifier; property: JSXIdentifier; } interface JSXNamespacedName extends BaseNode { type: "JSXNamespacedName"; namespace: JSXIdentifier; name: JSXIdentifier; } interface JSXOpeningElement extends BaseNode { type: "JSXOpeningElement"; name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName; attributes: Array; selfClosing: boolean; typeParameters?: TypeParameterInstantiation | TSTypeParameterInstantiation | null; } interface JSXSpreadAttribute extends BaseNode { type: "JSXSpreadAttribute"; argument: Expression; } interface JSXText extends BaseNode { type: "JSXText"; value: string; } interface JSXFragment extends BaseNode { type: "JSXFragment"; openingFragment: JSXOpeningFragment; closingFragment: JSXClosingFragment; children: Array; } interface JSXOpeningFragment extends BaseNode { type: "JSXOpeningFragment"; } interface JSXClosingFragment extends BaseNode { type: "JSXClosingFragment"; } interface Noop extends BaseNode { type: "Noop"; } interface Placeholder extends BaseNode { type: "Placeholder"; expectedNode: "Identifier" | "StringLiteral" | "Expression" | "Statement" | "Declaration" | "BlockStatement" | "ClassBody" | "Pattern"; name: Identifier; } interface V8IntrinsicIdentifier extends BaseNode { type: "V8IntrinsicIdentifier"; name: string; } interface ArgumentPlaceholder extends BaseNode { type: "ArgumentPlaceholder"; } interface BindExpression extends BaseNode { type: "BindExpression"; object: Expression; callee: Expression; } interface ImportAttribute extends BaseNode { type: "ImportAttribute"; key: Identifier | StringLiteral; value: StringLiteral; } interface Decorator extends BaseNode { type: "Decorator"; expression: Expression; } interface DoExpression extends BaseNode { type: "DoExpression"; body: BlockStatement$1; async: boolean; } interface ExportDefaultSpecifier extends BaseNode { type: "ExportDefaultSpecifier"; exported: Identifier; } interface RecordExpression extends BaseNode { type: "RecordExpression"; properties: Array; } interface TupleExpression extends BaseNode { type: "TupleExpression"; elements: Array; } interface DecimalLiteral extends BaseNode { type: "DecimalLiteral"; value: string; } interface ModuleExpression extends BaseNode { type: "ModuleExpression"; body: Program; } interface TopicReference extends BaseNode { type: "TopicReference"; } interface PipelineTopicExpression extends BaseNode { type: "PipelineTopicExpression"; expression: Expression; } interface PipelineBareFunction extends BaseNode { type: "PipelineBareFunction"; callee: Expression; } interface PipelinePrimaryTopicReference extends BaseNode { type: "PipelinePrimaryTopicReference"; } interface TSParameterProperty extends BaseNode { type: "TSParameterProperty"; parameter: Identifier | AssignmentPattern; accessibility?: "public" | "private" | "protected" | null; decorators?: Array | null; override?: boolean | null; readonly?: boolean | null; } interface TSDeclareFunction extends BaseNode { type: "TSDeclareFunction"; id?: Identifier | null; typeParameters?: TSTypeParameterDeclaration | Noop | null; params: Array; returnType?: TSTypeAnnotation | Noop | null; async?: boolean; declare?: boolean | null; generator?: boolean; } interface TSDeclareMethod extends BaseNode { type: "TSDeclareMethod"; decorators?: Array | null; key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression; typeParameters?: TSTypeParameterDeclaration | Noop | null; params: Array; returnType?: TSTypeAnnotation | Noop | null; abstract?: boolean | null; access?: "public" | "private" | "protected" | null; accessibility?: "public" | "private" | "protected" | null; async?: boolean; computed?: boolean; generator?: boolean; kind?: "get" | "set" | "method" | "constructor"; optional?: boolean | null; override?: boolean; static?: boolean; } interface TSQualifiedName extends BaseNode { type: "TSQualifiedName"; left: TSEntityName; right: Identifier; } interface TSCallSignatureDeclaration extends BaseNode { type: "TSCallSignatureDeclaration"; typeParameters?: TSTypeParameterDeclaration | null; parameters: Array; typeAnnotation?: TSTypeAnnotation | null; } interface TSConstructSignatureDeclaration extends BaseNode { type: "TSConstructSignatureDeclaration"; typeParameters?: TSTypeParameterDeclaration | null; parameters: Array; typeAnnotation?: TSTypeAnnotation | null; } interface TSPropertySignature extends BaseNode { type: "TSPropertySignature"; key: Expression; typeAnnotation?: TSTypeAnnotation | null; initializer?: Expression | null; computed?: boolean; kind: "get" | "set"; optional?: boolean | null; readonly?: boolean | null; } interface TSMethodSignature extends BaseNode { type: "TSMethodSignature"; key: Expression; typeParameters?: TSTypeParameterDeclaration | null; parameters: Array; typeAnnotation?: TSTypeAnnotation | null; computed?: boolean; kind: "method" | "get" | "set"; optional?: boolean | null; } interface TSIndexSignature extends BaseNode { type: "TSIndexSignature"; parameters: Array; typeAnnotation?: TSTypeAnnotation | null; readonly?: boolean | null; static?: boolean | null; } interface TSAnyKeyword extends BaseNode { type: "TSAnyKeyword"; } interface TSBooleanKeyword extends BaseNode { type: "TSBooleanKeyword"; } interface TSBigIntKeyword extends BaseNode { type: "TSBigIntKeyword"; } interface TSIntrinsicKeyword extends BaseNode { type: "TSIntrinsicKeyword"; } interface TSNeverKeyword extends BaseNode { type: "TSNeverKeyword"; } interface TSNullKeyword extends BaseNode { type: "TSNullKeyword"; } interface TSNumberKeyword extends BaseNode { type: "TSNumberKeyword"; } interface TSObjectKeyword extends BaseNode { type: "TSObjectKeyword"; } interface TSStringKeyword extends BaseNode { type: "TSStringKeyword"; } interface TSSymbolKeyword extends BaseNode { type: "TSSymbolKeyword"; } interface TSUndefinedKeyword extends BaseNode { type: "TSUndefinedKeyword"; } interface TSUnknownKeyword extends BaseNode { type: "TSUnknownKeyword"; } interface TSVoidKeyword extends BaseNode { type: "TSVoidKeyword"; } interface TSThisType extends BaseNode { type: "TSThisType"; } interface TSFunctionType extends BaseNode { type: "TSFunctionType"; typeParameters?: TSTypeParameterDeclaration | null; parameters: Array; typeAnnotation?: TSTypeAnnotation | null; } interface TSConstructorType extends BaseNode { type: "TSConstructorType"; typeParameters?: TSTypeParameterDeclaration | null; parameters: Array; typeAnnotation?: TSTypeAnnotation | null; abstract?: boolean | null; } interface TSTypeReference extends BaseNode { type: "TSTypeReference"; typeName: TSEntityName; typeParameters?: TSTypeParameterInstantiation | null; } interface TSTypePredicate extends BaseNode { type: "TSTypePredicate"; parameterName: Identifier | TSThisType; typeAnnotation?: TSTypeAnnotation | null; asserts?: boolean | null; } interface TSTypeQuery extends BaseNode { type: "TSTypeQuery"; exprName: TSEntityName | TSImportType; typeParameters?: TSTypeParameterInstantiation | null; } interface TSTypeLiteral extends BaseNode { type: "TSTypeLiteral"; members: Array; } interface TSArrayType extends BaseNode { type: "TSArrayType"; elementType: TSType; } interface TSTupleType extends BaseNode { type: "TSTupleType"; elementTypes: Array; } interface TSOptionalType extends BaseNode { type: "TSOptionalType"; typeAnnotation: TSType; } interface TSRestType extends BaseNode { type: "TSRestType"; typeAnnotation: TSType; } interface TSNamedTupleMember extends BaseNode { type: "TSNamedTupleMember"; label: Identifier; elementType: TSType; optional: boolean; } interface TSUnionType extends BaseNode { type: "TSUnionType"; types: Array; } interface TSIntersectionType extends BaseNode { type: "TSIntersectionType"; types: Array; } interface TSConditionalType extends BaseNode { type: "TSConditionalType"; checkType: TSType; extendsType: TSType; trueType: TSType; falseType: TSType; } interface TSInferType extends BaseNode { type: "TSInferType"; typeParameter: TSTypeParameter; } interface TSParenthesizedType extends BaseNode { type: "TSParenthesizedType"; typeAnnotation: TSType; } interface TSTypeOperator extends BaseNode { type: "TSTypeOperator"; typeAnnotation: TSType; operator: string; } interface TSIndexedAccessType extends BaseNode { type: "TSIndexedAccessType"; objectType: TSType; indexType: TSType; } interface TSMappedType extends BaseNode { type: "TSMappedType"; typeParameter: TSTypeParameter; typeAnnotation?: TSType | null; nameType?: TSType | null; optional?: true | false | "+" | "-" | null; readonly?: true | false | "+" | "-" | null; } interface TSLiteralType extends BaseNode { type: "TSLiteralType"; literal: NumericLiteral | StringLiteral | BooleanLiteral | BigIntLiteral | TemplateLiteral$1 | UnaryExpression; } interface TSExpressionWithTypeArguments extends BaseNode { type: "TSExpressionWithTypeArguments"; expression: TSEntityName; typeParameters?: TSTypeParameterInstantiation | null; } interface TSInterfaceDeclaration extends BaseNode { type: "TSInterfaceDeclaration"; id: Identifier; typeParameters?: TSTypeParameterDeclaration | null; extends?: Array | null; body: TSInterfaceBody; declare?: boolean | null; } interface TSInterfaceBody extends BaseNode { type: "TSInterfaceBody"; body: Array; } interface TSTypeAliasDeclaration extends BaseNode { type: "TSTypeAliasDeclaration"; id: Identifier; typeParameters?: TSTypeParameterDeclaration | null; typeAnnotation: TSType; declare?: boolean | null; } interface TSInstantiationExpression extends BaseNode { type: "TSInstantiationExpression"; expression: Expression; typeParameters?: TSTypeParameterInstantiation | null; } interface TSAsExpression extends BaseNode { type: "TSAsExpression"; expression: Expression; typeAnnotation: TSType; } interface TSSatisfiesExpression extends BaseNode { type: "TSSatisfiesExpression"; expression: Expression; typeAnnotation: TSType; } interface TSTypeAssertion extends BaseNode { type: "TSTypeAssertion"; typeAnnotation: TSType; expression: Expression; } interface TSEnumDeclaration extends BaseNode { type: "TSEnumDeclaration"; id: Identifier; members: Array; const?: boolean | null; declare?: boolean | null; initializer?: Expression | null; } interface TSEnumMember extends BaseNode { type: "TSEnumMember"; id: Identifier | StringLiteral; initializer?: Expression | null; } interface TSModuleDeclaration extends BaseNode { type: "TSModuleDeclaration"; id: Identifier | StringLiteral; body: TSModuleBlock | TSModuleDeclaration; declare?: boolean | null; global?: boolean | null; } interface TSModuleBlock extends BaseNode { type: "TSModuleBlock"; body: Array; } interface TSImportType extends BaseNode { type: "TSImportType"; argument: StringLiteral; qualifier?: TSEntityName | null; typeParameters?: TSTypeParameterInstantiation | null; } interface TSImportEqualsDeclaration extends BaseNode { type: "TSImportEqualsDeclaration"; id: Identifier; moduleReference: TSEntityName | TSExternalModuleReference; importKind?: "type" | "value" | null; isExport: boolean; } interface TSExternalModuleReference extends BaseNode { type: "TSExternalModuleReference"; expression: StringLiteral; } interface TSNonNullExpression extends BaseNode { type: "TSNonNullExpression"; expression: Expression; } interface TSExportAssignment extends BaseNode { type: "TSExportAssignment"; expression: Expression; } interface TSNamespaceExportDeclaration extends BaseNode { type: "TSNamespaceExportDeclaration"; id: Identifier; } interface TSTypeAnnotation extends BaseNode { type: "TSTypeAnnotation"; typeAnnotation: TSType; } interface TSTypeParameterInstantiation extends BaseNode { type: "TSTypeParameterInstantiation"; params: Array; } interface TSTypeParameterDeclaration extends BaseNode { type: "TSTypeParameterDeclaration"; params: Array; } interface TSTypeParameter extends BaseNode { type: "TSTypeParameter"; constraint?: TSType | null; default?: TSType | null; name: string; const?: boolean | null; in?: boolean | null; out?: boolean | null; } type Expression = ArrayExpression$1 | AssignmentExpression$1 | BinaryExpression | CallExpression$1 | ConditionalExpression$1 | FunctionExpression$1 | Identifier | StringLiteral | NumericLiteral | NullLiteral | BooleanLiteral | RegExpLiteral | LogicalExpression | MemberExpression | NewExpression | ObjectExpression$1 | SequenceExpression$1 | ParenthesizedExpression | ThisExpression | UnaryExpression | UpdateExpression | ArrowFunctionExpression | ClassExpression | MetaProperty | Super | TaggedTemplateExpression | TemplateLiteral$1 | YieldExpression | AwaitExpression | Import$1 | BigIntLiteral | OptionalMemberExpression | OptionalCallExpression | TypeCastExpression | JSXElement | JSXFragment | BindExpression | DoExpression | RecordExpression | TupleExpression | DecimalLiteral | ModuleExpression | TopicReference | PipelineTopicExpression | PipelineBareFunction | PipelinePrimaryTopicReference | TSInstantiationExpression | TSAsExpression | TSSatisfiesExpression | TSTypeAssertion | TSNonNullExpression; type Statement = BlockStatement$1 | BreakStatement | ContinueStatement | DebuggerStatement | DoWhileStatement | EmptyStatement | ExpressionStatement | ForInStatement | ForStatement | FunctionDeclaration | IfStatement$1 | LabeledStatement | ReturnStatement$1 | SwitchStatement | ThrowStatement | TryStatement | VariableDeclaration | WhileStatement | WithStatement | ClassDeclaration | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ForOfStatement | ImportDeclaration | DeclareClass | DeclareFunction | DeclareInterface | DeclareModule | DeclareModuleExports | DeclareTypeAlias | DeclareOpaqueType | DeclareVariable | DeclareExportDeclaration | DeclareExportAllDeclaration | InterfaceDeclaration | OpaqueType | TypeAlias | EnumDeclaration | TSDeclareFunction | TSInterfaceDeclaration | TSTypeAliasDeclaration | TSEnumDeclaration | TSModuleDeclaration | TSImportEqualsDeclaration | TSExportAssignment | TSNamespaceExportDeclaration; type Declaration = FunctionDeclaration | VariableDeclaration | ClassDeclaration | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ImportDeclaration | DeclareClass | DeclareFunction | DeclareInterface | DeclareModule | DeclareModuleExports | DeclareTypeAlias | DeclareOpaqueType | DeclareVariable | DeclareExportDeclaration | DeclareExportAllDeclaration | InterfaceDeclaration | OpaqueType | TypeAlias | EnumDeclaration | TSDeclareFunction | TSInterfaceDeclaration | TSTypeAliasDeclaration | TSEnumDeclaration | TSModuleDeclaration; type PatternLike = Identifier | RestElement | AssignmentPattern | ArrayPattern | ObjectPattern | TSAsExpression | TSSatisfiesExpression | TSTypeAssertion | TSNonNullExpression; type LVal = Identifier | MemberExpression | RestElement | AssignmentPattern | ArrayPattern | ObjectPattern | TSParameterProperty | TSAsExpression | TSSatisfiesExpression | TSTypeAssertion | TSNonNullExpression; type TSEntityName = Identifier | TSQualifiedName; type Pattern$1 = AssignmentPattern | ArrayPattern | ObjectPattern; type Flow = AnyTypeAnnotation | ArrayTypeAnnotation | BooleanTypeAnnotation | BooleanLiteralTypeAnnotation | NullLiteralTypeAnnotation | ClassImplements | DeclareClass | DeclareFunction | DeclareInterface | DeclareModule | DeclareModuleExports | DeclareTypeAlias | DeclareOpaqueType | DeclareVariable | DeclareExportDeclaration | DeclareExportAllDeclaration | DeclaredPredicate | ExistsTypeAnnotation | FunctionTypeAnnotation | FunctionTypeParam | GenericTypeAnnotation | InferredPredicate | InterfaceExtends | InterfaceDeclaration | InterfaceTypeAnnotation | IntersectionTypeAnnotation | MixedTypeAnnotation | EmptyTypeAnnotation | NullableTypeAnnotation | NumberLiteralTypeAnnotation | NumberTypeAnnotation | ObjectTypeAnnotation | ObjectTypeInternalSlot | ObjectTypeCallProperty | ObjectTypeIndexer | ObjectTypeProperty | ObjectTypeSpreadProperty | OpaqueType | QualifiedTypeIdentifier | StringLiteralTypeAnnotation | StringTypeAnnotation | SymbolTypeAnnotation | ThisTypeAnnotation | TupleTypeAnnotation | TypeofTypeAnnotation | TypeAlias | TypeAnnotation | TypeCastExpression | TypeParameter | TypeParameterDeclaration | TypeParameterInstantiation | UnionTypeAnnotation | Variance | VoidTypeAnnotation | EnumDeclaration | EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody | EnumBooleanMember | EnumNumberMember | EnumStringMember | EnumDefaultedMember | IndexedAccessType | OptionalIndexedAccessType; type FlowType = AnyTypeAnnotation | ArrayTypeAnnotation | BooleanTypeAnnotation | BooleanLiteralTypeAnnotation | NullLiteralTypeAnnotation | ExistsTypeAnnotation | FunctionTypeAnnotation | GenericTypeAnnotation | InterfaceTypeAnnotation | IntersectionTypeAnnotation | MixedTypeAnnotation | EmptyTypeAnnotation | NullableTypeAnnotation | NumberLiteralTypeAnnotation | NumberTypeAnnotation | ObjectTypeAnnotation | StringLiteralTypeAnnotation | StringTypeAnnotation | SymbolTypeAnnotation | ThisTypeAnnotation | TupleTypeAnnotation | TypeofTypeAnnotation | UnionTypeAnnotation | VoidTypeAnnotation | IndexedAccessType | OptionalIndexedAccessType; type TSTypeElement = TSCallSignatureDeclaration | TSConstructSignatureDeclaration | TSPropertySignature | TSMethodSignature | TSIndexSignature; type TSType = TSAnyKeyword | TSBooleanKeyword | TSBigIntKeyword | TSIntrinsicKeyword | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSStringKeyword | TSSymbolKeyword | TSUndefinedKeyword | TSUnknownKeyword | TSVoidKeyword | TSThisType | TSFunctionType | TSConstructorType | TSTypeReference | TSTypePredicate | TSTypeQuery | TSTypeLiteral | TSArrayType | TSTupleType | TSOptionalType | TSRestType | TSUnionType | TSIntersectionType | TSConditionalType | TSInferType | TSParenthesizedType | TSTypeOperator | TSIndexedAccessType | TSMappedType | TSLiteralType | TSExpressionWithTypeArguments | TSImportType; // This file is auto-generated! Do not modify it directly. /* eslint-disable import/no-extraneous-dependencies, @typescript-eslint/consistent-type-imports, prettier/prettier */ type Plugin = | "asyncDoExpressions" | "asyncGenerators" | "bigInt" | "classPrivateMethods" | "classPrivateProperties" | "classProperties" | "classStaticBlock" // Enabled by default | "decimal" | "decorators-legacy" | "decoratorAutoAccessors" | "destructuringPrivate" | "doExpressions" | "dynamicImport" | "explicitResourceManagement" | "exportDefaultFrom" | "exportNamespaceFrom" // deprecated | "flow" | "flowComments" | "functionBind" | "functionSent" | "importMeta" | "jsx" | "logicalAssignment" | "importAssertions" // deprecated | "importAttributes" | "importReflection" | "moduleBlocks" | "moduleStringNames" | "nullishCoalescingOperator" | "numericSeparator" | "objectRestSpread" | "optionalCatchBinding" | "optionalChaining" | "partialApplication" | "placeholders" | "privateIn" // Enabled by default | "regexpUnicodeSets" // Enabled by default | "throwExpressions" | "topLevelAwait" | "v8intrinsic" | ParserPluginWithOptions[0]; type ParserPluginWithOptions = | ["decorators", DecoratorsPluginOptions] | ["estree", { classFeatures?: boolean }] | ["importAttributes", { deprecatedAssertSyntax: boolean }] // @deprecated | ["moduleAttributes", { version: "may-2020" }] | ["pipelineOperator", PipelineOperatorPluginOptions] | ["recordAndTuple", RecordAndTuplePluginOptions] | ["flow", FlowPluginOptions] | ["typescript", TypeScriptPluginOptions]; type PluginConfig = Plugin | ParserPluginWithOptions; interface DecoratorsPluginOptions { decoratorsBeforeExport?: boolean; allowCallParenthesized?: boolean; } interface PipelineOperatorPluginOptions { proposal: "minimal" | "fsharp" | "hack" | "smart"; topicToken?: "%" | "#" | "@@" | "^^" | "^"; } interface RecordAndTuplePluginOptions { syntaxType: "bar" | "hash"; } interface FlowPluginOptions { all?: boolean; enums?: boolean; } interface TypeScriptPluginOptions { dts?: boolean; disallowAmbiguousJSXLike?: boolean; } // Type definitions for @babel/parser // Project: https://github.com/babel/babel/tree/main/packages/babel-parser // Definitions by: Troy Gerwien // Marvin Hagemeister // Avi Vahl // TypeScript Version: 2.9 /** * Parse the provided code as an entire ECMAScript program. */ declare function parse$2( input: string, options?: ParserOptions$1 ): ParseResult; interface ParserOptions$1 { /** * By default, import and export declarations can only appear at a program's top level. * Setting this option to true allows them anywhere where a statement is allowed. */ allowImportExportEverywhere?: boolean; /** * By default, await use is not allowed outside of an async function. * Set this to true to accept such code. */ allowAwaitOutsideFunction?: boolean; /** * By default, a return statement at the top level raises an error. * Set this to true to accept such code. */ allowReturnOutsideFunction?: boolean; /** * By default, new.target use is not allowed outside of a function or class. * Set this to true to accept such code. */ allowNewTargetOutsideFunction?: boolean; allowSuperOutsideMethod?: boolean; /** * By default, exported identifiers must refer to a declared variable. * Set this to true to allow export statements to reference undeclared variables. */ allowUndeclaredExports?: boolean; /** * By default, Babel parser JavaScript code according to Annex B syntax. * Set this to `false` to disable such behavior. */ annexB?: boolean; /** * By default, Babel attaches comments to adjacent AST nodes. * When this option is set to false, comments are not attached. * It can provide up to 30% performance improvement when the input code has many comments. * @babel/eslint-parser will set it for you. * It is not recommended to use attachComment: false with Babel transform, * as doing so removes all the comments in output code, and renders annotations such as * /* istanbul ignore next *\/ nonfunctional. */ attachComment?: boolean; /** * By default, Babel always throws an error when it finds some invalid code. * When this option is set to true, it will store the parsing error and * try to continue parsing the invalid input file. */ errorRecovery?: boolean; /** * Indicate the mode the code should be parsed in. * Can be one of "script", "module", or "unambiguous". Defaults to "script". * "unambiguous" will make @babel/parser attempt to guess, based on the presence * of ES6 import or export statements. * Files with ES6 imports and exports are considered "module" and are otherwise "script". */ sourceType?: "script" | "module" | "unambiguous"; /** * Correlate output AST nodes with their source filename. * Useful when generating code and source maps from the ASTs of multiple input files. */ sourceFilename?: string; /** * By default, the first line of code parsed is treated as line 1. * You can provide a line number to alternatively start with. * Useful for integration with other source tools. */ startLine?: number; /** * By default, the parsed code is treated as if it starts from line 1, column 0. * You can provide a column number to alternatively start with. * Useful for integration with other source tools. */ startColumn?: number; /** * Array containing the plugins that you want to enable. */ plugins?: ParserPlugin[]; /** * Should the parser work in strict mode. * Defaults to true if sourceType === 'module'. Otherwise, false. */ strictMode?: boolean; /** * Adds a ranges property to each node: [node.start, node.end] */ ranges?: boolean; /** * Adds all parsed tokens to a tokens property on the File node. */ tokens?: boolean; /** * By default, the parser adds information about parentheses by setting * `extra.parenthesized` to `true` as needed. * When this option is `true` the parser creates `ParenthesizedExpression` * AST nodes instead of using the `extra` property. */ createParenthesizedExpressions?: boolean; } type ParserPlugin = PluginConfig; interface ParseError { code: string; reasonCode: string; } type ParseResult = Result & { errors: ParseError[]; }; declare function generateCodeFrame(source: string, start?: number, end?: number): string; declare const enum TextModes { DATA = 0, RCDATA = 1, RAWTEXT = 2, CDATA = 3, ATTRIBUTE_VALUE = 4 } type CompilerCompatConfig = Partial> & { MODE?: 2 | 3; }; interface CompilerCompatOptions { compatConfig?: CompilerCompatConfig; } declare const enum CompilerDeprecationTypes { COMPILER_IS_ON_ELEMENT = "COMPILER_IS_ON_ELEMENT", COMPILER_V_BIND_SYNC = "COMPILER_V_BIND_SYNC", COMPILER_V_BIND_PROP = "COMPILER_V_BIND_PROP", COMPILER_V_BIND_OBJECT_ORDER = "COMPILER_V_BIND_OBJECT_ORDER", COMPILER_V_ON_NATIVE = "COMPILER_V_ON_NATIVE", COMPILER_V_IF_V_FOR_PRECEDENCE = "COMPILER_V_IF_V_FOR_PRECEDENCE", COMPILER_NATIVE_TEMPLATE = "COMPILER_NATIVE_TEMPLATE", COMPILER_INLINE_TEMPLATE = "COMPILER_INLINE_TEMPLATE", COMPILER_FILTERS = "COMPILER_FILTER" } type NodeTransform = (node: RootNode | TemplateChildNode, context: TransformContext$1) => void | (() => void) | (() => void)[]; type DirectiveTransform = (dir: DirectiveNode, node: ElementNode, context: TransformContext$1, augmentor?: (ret: DirectiveTransformResult) => DirectiveTransformResult) => DirectiveTransformResult; interface DirectiveTransformResult { props: Property[]; needRuntime?: boolean | symbol; ssrTagParts?: TemplateLiteral['elements']; } interface ImportItem { exp: string | ExpressionNode; path: string; } interface TransformContext$1 extends Required>, CompilerCompatOptions { selfName: string | null; root: RootNode; helpers: Map; components: Set; directives: Set; hoists: (JSChildNode | null)[]; imports: ImportItem[]; temps: number; cached: number; identifiers: { [name: string]: number | undefined; }; scopes: { vFor: number; vSlot: number; vPre: number; vOnce: number; }; parent: ParentNode | null; childIndex: number; currentNode: RootNode | TemplateChildNode | null; inVOnce: boolean; helper(name: T): T; removeHelper(name: T): void; helperString(name: symbol): string; replaceNode(node: TemplateChildNode): void; removeNode(node?: TemplateChildNode): void; onNodeRemoved(): void; addIdentifiers(exp: ExpressionNode | string): void; removeIdentifiers(exp: ExpressionNode | string): void; hoist(exp: string | JSChildNode | ArrayExpression): SimpleExpressionNode; cache(exp: T, isVNode?: boolean): CacheExpression | T; constantCache: Map; filters?: Set; } interface ForParseResult { source: ExpressionNode; value: ExpressionNode | undefined; key: ExpressionNode | undefined; index: ExpressionNode | undefined; } declare const FRAGMENT: unique symbol; declare const RENDER_LIST: unique symbol; declare const RENDER_SLOT: unique symbol; declare const CREATE_SLOTS: unique symbol; declare const WITH_MEMO: unique symbol; type PropsExpression = ObjectExpression | CallExpression | ExpressionNode; type Namespace = number; declare const enum NodeTypes { ROOT = 0, ELEMENT = 1, TEXT = 2, COMMENT = 3, SIMPLE_EXPRESSION = 4, INTERPOLATION = 5, ATTRIBUTE = 6, DIRECTIVE = 7, COMPOUND_EXPRESSION = 8, IF = 9, IF_BRANCH = 10, FOR = 11, TEXT_CALL = 12, VNODE_CALL = 13, JS_CALL_EXPRESSION = 14, JS_OBJECT_EXPRESSION = 15, JS_PROPERTY = 16, JS_ARRAY_EXPRESSION = 17, JS_FUNCTION_EXPRESSION = 18, JS_CONDITIONAL_EXPRESSION = 19, JS_CACHE_EXPRESSION = 20, JS_BLOCK_STATEMENT = 21, JS_TEMPLATE_LITERAL = 22, JS_IF_STATEMENT = 23, JS_ASSIGNMENT_EXPRESSION = 24, JS_SEQUENCE_EXPRESSION = 25, JS_RETURN_STATEMENT = 26 } declare const enum ElementTypes { ELEMENT = 0, COMPONENT = 1, SLOT = 2, TEMPLATE = 3 } interface Node { type: NodeTypes; loc: SourceLocation; } interface SourceLocation { start: Position; end: Position; source: string; } interface Position { offset: number; line: number; column: number; } type ParentNode = RootNode | ElementNode | IfBranchNode | ForNode; type ExpressionNode = SimpleExpressionNode | CompoundExpressionNode; type TemplateChildNode = ElementNode | InterpolationNode | CompoundExpressionNode | TextNode | CommentNode | IfNode | IfBranchNode | ForNode | TextCallNode; interface RootNode extends Node { type: NodeTypes.ROOT; children: TemplateChildNode[]; helpers: Set; components: string[]; directives: string[]; hoists: (JSChildNode | null)[]; imports: ImportItem[]; cached: number; temps: number; ssrHelpers?: symbol[]; codegenNode?: TemplateChildNode | JSChildNode | BlockStatement; filters?: string[]; } type ElementNode = PlainElementNode | ComponentNode | SlotOutletNode | TemplateNode; interface BaseElementNode extends Node { type: NodeTypes.ELEMENT; ns: Namespace; tag: string; tagType: ElementTypes; isSelfClosing: boolean; props: Array; children: TemplateChildNode[]; } interface PlainElementNode extends BaseElementNode { tagType: ElementTypes.ELEMENT; codegenNode: VNodeCall | SimpleExpressionNode | CacheExpression | MemoExpression | undefined; ssrCodegenNode?: TemplateLiteral; } interface ComponentNode extends BaseElementNode { tagType: ElementTypes.COMPONENT; codegenNode: VNodeCall | CacheExpression | MemoExpression | undefined; ssrCodegenNode?: CallExpression; } interface SlotOutletNode extends BaseElementNode { tagType: ElementTypes.SLOT; codegenNode: RenderSlotCall | CacheExpression | undefined; ssrCodegenNode?: CallExpression; } interface TemplateNode extends BaseElementNode { tagType: ElementTypes.TEMPLATE; codegenNode: undefined; } interface TextNode extends Node { type: NodeTypes.TEXT; content: string; } interface CommentNode extends Node { type: NodeTypes.COMMENT; content: string; } interface AttributeNode extends Node { type: NodeTypes.ATTRIBUTE; name: string; value: TextNode | undefined; } interface DirectiveNode extends Node { type: NodeTypes.DIRECTIVE; name: string; exp: ExpressionNode | undefined; arg: ExpressionNode | undefined; modifiers: string[]; /** * optional property to cache the expression parse result for v-for */ parseResult?: ForParseResult; } /** * Static types have several levels. * Higher levels implies lower levels. e.g. a node that can be stringified * can always be hoisted and skipped for patch. */ declare const enum ConstantTypes { NOT_CONSTANT = 0, CAN_SKIP_PATCH = 1, CAN_HOIST = 2, CAN_STRINGIFY = 3 } interface SimpleExpressionNode extends Node { type: NodeTypes.SIMPLE_EXPRESSION; content: string; isStatic: boolean; constType: ConstantTypes; /** * Indicates this is an identifier for a hoist vnode call and points to the * hoisted node. */ hoisted?: JSChildNode; /** * an expression parsed as the params of a function will track * the identifiers declared inside the function body. */ identifiers?: string[]; isHandlerKey?: boolean; } interface InterpolationNode extends Node { type: NodeTypes.INTERPOLATION; content: ExpressionNode; } interface CompoundExpressionNode extends Node { type: NodeTypes.COMPOUND_EXPRESSION; children: (SimpleExpressionNode | CompoundExpressionNode | InterpolationNode | TextNode | string | symbol)[]; /** * an expression parsed as the params of a function will track * the identifiers declared inside the function body. */ identifiers?: string[]; isHandlerKey?: boolean; } interface IfNode extends Node { type: NodeTypes.IF; branches: IfBranchNode[]; codegenNode?: IfConditionalExpression | CacheExpression; } interface IfBranchNode extends Node { type: NodeTypes.IF_BRANCH; condition: ExpressionNode | undefined; children: TemplateChildNode[]; userKey?: AttributeNode | DirectiveNode; isTemplateIf?: boolean; } interface ForNode extends Node { type: NodeTypes.FOR; source: ExpressionNode; valueAlias: ExpressionNode | undefined; keyAlias: ExpressionNode | undefined; objectIndexAlias: ExpressionNode | undefined; parseResult: ForParseResult; children: TemplateChildNode[]; codegenNode?: ForCodegenNode; } interface TextCallNode extends Node { type: NodeTypes.TEXT_CALL; content: TextNode | InterpolationNode | CompoundExpressionNode; codegenNode: CallExpression | SimpleExpressionNode; } type TemplateTextChildNode = TextNode | InterpolationNode | CompoundExpressionNode; interface VNodeCall extends Node { type: NodeTypes.VNODE_CALL; tag: string | symbol | CallExpression; props: PropsExpression | undefined; children: TemplateChildNode[] | TemplateTextChildNode | SlotsExpression | ForRenderListExpression | SimpleExpressionNode | undefined; patchFlag: string | undefined; dynamicProps: string | SimpleExpressionNode | undefined; directives: DirectiveArguments | undefined; isBlock: boolean; disableTracking: boolean; isComponent: boolean; } type JSChildNode = VNodeCall | CallExpression | ObjectExpression | ArrayExpression | ExpressionNode | FunctionExpression | ConditionalExpression | CacheExpression | AssignmentExpression | SequenceExpression; interface CallExpression extends Node { type: NodeTypes.JS_CALL_EXPRESSION; callee: string | symbol; arguments: (string | symbol | JSChildNode | SSRCodegenNode | TemplateChildNode | TemplateChildNode[])[]; } interface ObjectExpression extends Node { type: NodeTypes.JS_OBJECT_EXPRESSION; properties: Array; } interface Property extends Node { type: NodeTypes.JS_PROPERTY; key: ExpressionNode; value: JSChildNode; } interface ArrayExpression extends Node { type: NodeTypes.JS_ARRAY_EXPRESSION; elements: Array; } interface FunctionExpression extends Node { type: NodeTypes.JS_FUNCTION_EXPRESSION; params: ExpressionNode | string | (ExpressionNode | string)[] | undefined; returns?: TemplateChildNode | TemplateChildNode[] | JSChildNode; body?: BlockStatement | IfStatement; newline: boolean; /** * This flag is for codegen to determine whether it needs to generate the * withScopeId() wrapper */ isSlot: boolean; /** * __COMPAT__ only, indicates a slot function that should be excluded from * the legacy $scopedSlots instance property. */ isNonScopedSlot?: boolean; } interface ConditionalExpression extends Node { type: NodeTypes.JS_CONDITIONAL_EXPRESSION; test: JSChildNode; consequent: JSChildNode; alternate: JSChildNode; newline: boolean; } interface CacheExpression extends Node { type: NodeTypes.JS_CACHE_EXPRESSION; index: number; value: JSChildNode; isVNode: boolean; } interface MemoExpression extends CallExpression { callee: typeof WITH_MEMO; arguments: [ExpressionNode, MemoFactory, string, string]; } interface MemoFactory extends FunctionExpression { returns: BlockCodegenNode; } type SSRCodegenNode = BlockStatement | TemplateLiteral | IfStatement | AssignmentExpression | ReturnStatement | SequenceExpression; interface BlockStatement extends Node { type: NodeTypes.JS_BLOCK_STATEMENT; body: (JSChildNode | IfStatement)[]; } interface TemplateLiteral extends Node { type: NodeTypes.JS_TEMPLATE_LITERAL; elements: (string | JSChildNode)[]; } interface IfStatement extends Node { type: NodeTypes.JS_IF_STATEMENT; test: ExpressionNode; consequent: BlockStatement; alternate: IfStatement | BlockStatement | ReturnStatement | undefined; } interface AssignmentExpression extends Node { type: NodeTypes.JS_ASSIGNMENT_EXPRESSION; left: SimpleExpressionNode; right: JSChildNode; } interface SequenceExpression extends Node { type: NodeTypes.JS_SEQUENCE_EXPRESSION; expressions: JSChildNode[]; } interface ReturnStatement extends Node { type: NodeTypes.JS_RETURN_STATEMENT; returns: TemplateChildNode | TemplateChildNode[] | JSChildNode; } interface DirectiveArguments extends ArrayExpression { elements: DirectiveArgumentNode[]; } interface DirectiveArgumentNode extends ArrayExpression { elements: [string] | [string, ExpressionNode] | [string, ExpressionNode, ExpressionNode] | [string, ExpressionNode, ExpressionNode, ObjectExpression]; } interface RenderSlotCall extends CallExpression { callee: typeof RENDER_SLOT; arguments: [string, string | ExpressionNode] | [string, string | ExpressionNode, PropsExpression] | [ string, string | ExpressionNode, PropsExpression | '{}', TemplateChildNode[] ]; } type SlotsExpression = SlotsObjectExpression | DynamicSlotsExpression; interface SlotsObjectExpression extends ObjectExpression { properties: SlotsObjectProperty[]; } interface SlotsObjectProperty extends Property { value: SlotFunctionExpression; } interface SlotFunctionExpression extends FunctionExpression { returns: TemplateChildNode[]; } interface DynamicSlotsExpression extends CallExpression { callee: typeof CREATE_SLOTS; arguments: [SlotsObjectExpression, DynamicSlotEntries]; } interface DynamicSlotEntries extends ArrayExpression { elements: (ConditionalDynamicSlotNode | ListDynamicSlotNode)[]; } interface ConditionalDynamicSlotNode extends ConditionalExpression { consequent: DynamicSlotNode; alternate: DynamicSlotNode | SimpleExpressionNode; } interface ListDynamicSlotNode extends CallExpression { callee: typeof RENDER_LIST; arguments: [ExpressionNode, ListDynamicSlotIterator]; } interface ListDynamicSlotIterator extends FunctionExpression { returns: DynamicSlotNode; } interface DynamicSlotNode extends ObjectExpression { properties: [Property, DynamicSlotFnProperty]; } interface DynamicSlotFnProperty extends Property { value: SlotFunctionExpression; } type BlockCodegenNode = VNodeCall | RenderSlotCall; interface IfConditionalExpression extends ConditionalExpression { consequent: BlockCodegenNode | MemoExpression; alternate: BlockCodegenNode | IfConditionalExpression | MemoExpression; } interface ForCodegenNode extends VNodeCall { isBlock: true; tag: typeof FRAGMENT; props: undefined; children: ForRenderListExpression; patchFlag: string; disableTracking: boolean; } interface ForRenderListExpression extends CallExpression { callee: typeof RENDER_LIST; arguments: [ExpressionNode, ForIteratorExpression]; } interface ForIteratorExpression extends FunctionExpression { returns: BlockCodegenNode; } interface CompilerError extends SyntaxError { code: number | string; loc?: SourceLocation; } interface ErrorHandlingOptions { onWarn?: (warning: CompilerError) => void; onError?: (error: CompilerError) => void; } interface ParserOptions extends ErrorHandlingOptions, CompilerCompatOptions { /** * e.g. platform native elements, e.g. `
` for browsers */ isNativeTag?: (tag: string) => boolean; /** * e.g. native elements that can self-close, e.g. ``, `
`, `
` */ isVoidTag?: (tag: string) => boolean; /** * e.g. elements that should preserve whitespace inside, e.g. `
`
     */
    isPreTag?: (tag: string) => boolean;
    /**
     * Platform-specific built-in components e.g. ``
     */
    isBuiltInComponent?: (tag: string) => symbol | void;
    /**
     * Separate option for end users to extend the native elements list
     */
    isCustomElement?: (tag: string) => boolean | void;
    /**
     * Get tag namespace
     */
    getNamespace?: (tag: string, parent: ElementNode | undefined) => Namespace;
    /**
     * Get text parsing mode for this element
     */
    getTextMode?: (node: ElementNode, parent: ElementNode | undefined) => TextModes;
    /**
     * @default ['{{', '}}']
     */
    delimiters?: [string, string];
    /**
     * Whitespace handling strategy
     */
    whitespace?: 'preserve' | 'condense';
    /**
     * Only needed for DOM compilers
     */
    decodeEntities?: (rawText: string, asAttr: boolean) => string;
    /**
     * Whether to keep comments in the templates AST.
     * This defaults to `true` in development and `false` in production builds.
     */
    comments?: boolean;
}
type HoistTransform = (children: TemplateChildNode[], context: TransformContext$1, parent: ParentNode) => void;
declare const enum BindingTypes$1 {
    /**
     * returned from data()
     */
    DATA = "data",
    /**
     * declared as a prop
     */
    PROPS = "props",
    /**
     * a local alias of a `