UNPKG

@babel/types

Version:

Babel Types is a Lodash-esque utility library for AST nodes

1,635 lines (1,379 loc) 180 kB
// NOTE: This file is autogenerated. Do not modify. // See packages/babel-types/scripts/generators/flow.ts for script used. declare class BabelNodeComment { value: string; start: number; end: number; loc: BabelNodeSourceLocation; } declare class BabelNodeCommentBlock extends BabelNodeComment { type: "CommentBlock"; } declare class BabelNodeCommentLine extends BabelNodeComment { type: "CommentLine"; } declare class BabelNodeSourceLocation { start: { line: number; column: number; }; end: { line: number; column: number; }; } declare class BabelNode { leadingComments?: Array<BabelNodeComment>; innerComments?: Array<BabelNodeComment>; trailingComments?: Array<BabelNodeComment>; start: ?number; end: ?number; loc: ?BabelNodeSourceLocation; extra?: { [string]: mixed }; } declare class BabelNodeArrayExpression extends BabelNode { type: "ArrayExpression"; elements?: Array<null | BabelNodeExpression | BabelNodeSpreadElement>; } declare class BabelNodeAssignmentExpression extends BabelNode { type: "AssignmentExpression"; operator: string; left: BabelNodeLVal | BabelNodeOptionalMemberExpression; right: BabelNodeExpression; } declare class BabelNodeBinaryExpression extends BabelNode { type: "BinaryExpression"; operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=" | "|>"; left: BabelNodeExpression | BabelNodePrivateName; right: BabelNodeExpression; } declare class BabelNodeInterpreterDirective extends BabelNode { type: "InterpreterDirective"; value: string; } declare class BabelNodeDirective extends BabelNode { type: "Directive"; value: BabelNodeDirectiveLiteral; } declare class BabelNodeDirectiveLiteral extends BabelNode { type: "DirectiveLiteral"; value: string; } declare class BabelNodeBlockStatement extends BabelNode { type: "BlockStatement"; body: Array<BabelNodeStatement>; directives?: Array<BabelNodeDirective>; } declare class BabelNodeBreakStatement extends BabelNode { type: "BreakStatement"; label?: BabelNodeIdentifier; } declare class BabelNodeCallExpression extends BabelNode { type: "CallExpression"; callee: BabelNodeExpression | BabelNodeSuper | BabelNodeV8IntrinsicIdentifier; arguments: Array<BabelNodeExpression | BabelNodeSpreadElement | BabelNodeArgumentPlaceholder>; optional?: boolean; typeArguments?: BabelNodeTypeParameterInstantiation; typeParameters?: BabelNodeTSTypeParameterInstantiation; } declare class BabelNodeCatchClause extends BabelNode { type: "CatchClause"; param?: BabelNodeIdentifier | BabelNodeArrayPattern | BabelNodeObjectPattern; body: BabelNodeBlockStatement; } declare class BabelNodeConditionalExpression extends BabelNode { type: "ConditionalExpression"; test: BabelNodeExpression; consequent: BabelNodeExpression; alternate: BabelNodeExpression; } declare class BabelNodeContinueStatement extends BabelNode { type: "ContinueStatement"; label?: BabelNodeIdentifier; } declare class BabelNodeDebuggerStatement extends BabelNode { type: "DebuggerStatement"; } declare class BabelNodeDoWhileStatement extends BabelNode { type: "DoWhileStatement"; test: BabelNodeExpression; body: BabelNodeStatement; } declare class BabelNodeEmptyStatement extends BabelNode { type: "EmptyStatement"; } declare class BabelNodeExpressionStatement extends BabelNode { type: "ExpressionStatement"; expression: BabelNodeExpression; } declare class BabelNodeFile extends BabelNode { type: "File"; program: BabelNodeProgram; comments?: Array<BabelNodeCommentBlock | BabelNodeCommentLine>; tokens?: Array<any>; } declare class BabelNodeForInStatement extends BabelNode { type: "ForInStatement"; left: BabelNodeVariableDeclaration | BabelNodeLVal; right: BabelNodeExpression; body: BabelNodeStatement; } declare class BabelNodeForStatement extends BabelNode { type: "ForStatement"; init?: BabelNodeVariableDeclaration | BabelNodeExpression; test?: BabelNodeExpression; update?: BabelNodeExpression; body: BabelNodeStatement; } declare class BabelNodeFunctionDeclaration extends BabelNode { type: "FunctionDeclaration"; id?: BabelNodeIdentifier; params: Array<BabelNodeFunctionParameter>; body: BabelNodeBlockStatement; generator?: boolean; async?: boolean; declare?: boolean; predicate?: BabelNodeDeclaredPredicate | BabelNodeInferredPredicate; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeFunctionExpression extends BabelNode { type: "FunctionExpression"; id?: BabelNodeIdentifier; params: Array<BabelNodeFunctionParameter>; body: BabelNodeBlockStatement; generator?: boolean; async?: boolean; predicate?: BabelNodeDeclaredPredicate | BabelNodeInferredPredicate; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeIdentifier extends BabelNode { type: "Identifier"; name: string; decorators?: Array<BabelNodeDecorator>; optional?: boolean; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; } declare class BabelNodeIfStatement extends BabelNode { type: "IfStatement"; test: BabelNodeExpression; consequent: BabelNodeStatement; alternate?: BabelNodeStatement; } declare class BabelNodeLabeledStatement extends BabelNode { type: "LabeledStatement"; label: BabelNodeIdentifier; body: BabelNodeStatement; } declare class BabelNodeStringLiteral extends BabelNode { type: "StringLiteral"; value: string; } declare class BabelNodeNumericLiteral extends BabelNode { type: "NumericLiteral"; value: number; } declare class BabelNodeNullLiteral extends BabelNode { type: "NullLiteral"; } declare class BabelNodeBooleanLiteral extends BabelNode { type: "BooleanLiteral"; value: boolean; } declare class BabelNodeRegExpLiteral extends BabelNode { type: "RegExpLiteral"; pattern: string; flags?: string; } declare class BabelNodeLogicalExpression extends BabelNode { type: "LogicalExpression"; operator: "||" | "&&" | "??"; left: BabelNodeExpression; right: BabelNodeExpression; } declare class BabelNodeMemberExpression extends BabelNode { type: "MemberExpression"; object: BabelNodeExpression | BabelNodeSuper; property: BabelNodeExpression | BabelNodeIdentifier | BabelNodePrivateName; computed?: boolean; optional?: boolean; } declare class BabelNodeNewExpression extends BabelNode { type: "NewExpression"; callee: BabelNodeExpression | BabelNodeSuper | BabelNodeV8IntrinsicIdentifier; arguments: Array<BabelNodeExpression | BabelNodeSpreadElement | BabelNodeArgumentPlaceholder>; optional?: boolean; typeArguments?: BabelNodeTypeParameterInstantiation; typeParameters?: BabelNodeTSTypeParameterInstantiation; } declare class BabelNodeProgram extends BabelNode { type: "Program"; body: Array<BabelNodeStatement>; directives?: Array<BabelNodeDirective>; sourceType?: "script" | "module"; interpreter?: BabelNodeInterpreterDirective; } declare class BabelNodeObjectExpression extends BabelNode { type: "ObjectExpression"; properties: Array<BabelNodeObjectMethod | BabelNodeObjectProperty | BabelNodeSpreadElement>; } declare class BabelNodeObjectMethod extends BabelNode { type: "ObjectMethod"; kind?: "method" | "get" | "set"; key: BabelNodeExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral; params: Array<BabelNodeFunctionParameter>; body: BabelNodeBlockStatement; computed?: boolean; generator?: boolean; async?: boolean; decorators?: Array<BabelNodeDecorator>; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeObjectProperty extends BabelNode { type: "ObjectProperty"; key: BabelNodeExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeDecimalLiteral | BabelNodePrivateName; value: BabelNodeExpression | BabelNodePatternLike; computed?: boolean; shorthand?: boolean; decorators?: Array<BabelNodeDecorator>; } declare class BabelNodeRestElement extends BabelNode { type: "RestElement"; argument: BabelNodeIdentifier | BabelNodeArrayPattern | BabelNodeObjectPattern | BabelNodeMemberExpression | BabelNodeTSAsExpression | BabelNodeTSSatisfiesExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression | BabelNodeRestElement | BabelNodeAssignmentPattern; decorators?: Array<BabelNodeDecorator>; optional?: boolean; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; } declare class BabelNodeReturnStatement extends BabelNode { type: "ReturnStatement"; argument?: BabelNodeExpression; } declare class BabelNodeSequenceExpression extends BabelNode { type: "SequenceExpression"; expressions: Array<BabelNodeExpression>; } declare class BabelNodeParenthesizedExpression extends BabelNode { type: "ParenthesizedExpression"; expression: BabelNodeExpression; } declare class BabelNodeSwitchCase extends BabelNode { type: "SwitchCase"; test?: BabelNodeExpression; consequent: Array<BabelNodeStatement>; } declare class BabelNodeSwitchStatement extends BabelNode { type: "SwitchStatement"; discriminant: BabelNodeExpression; cases: Array<BabelNodeSwitchCase>; } declare class BabelNodeThisExpression extends BabelNode { type: "ThisExpression"; } declare class BabelNodeThrowStatement extends BabelNode { type: "ThrowStatement"; argument: BabelNodeExpression; } declare class BabelNodeTryStatement extends BabelNode { type: "TryStatement"; block: BabelNodeBlockStatement; handler?: BabelNodeCatchClause; finalizer?: BabelNodeBlockStatement; } declare class BabelNodeUnaryExpression extends BabelNode { type: "UnaryExpression"; operator: "void" | "throw" | "delete" | "!" | "+" | "-" | "~" | "typeof"; argument: BabelNodeExpression; prefix?: boolean; } declare class BabelNodeUpdateExpression extends BabelNode { type: "UpdateExpression"; operator: "++" | "--"; argument: BabelNodeExpression; prefix?: boolean; } declare class BabelNodeVariableDeclaration extends BabelNode { type: "VariableDeclaration"; kind: "var" | "let" | "const" | "using" | "await using"; declarations: Array<BabelNodeVariableDeclarator>; declare?: boolean; } declare class BabelNodeVariableDeclarator extends BabelNode { type: "VariableDeclarator"; id: BabelNodeLVal | BabelNodeVoidPattern; init?: BabelNodeExpression; definite?: boolean; } declare class BabelNodeWhileStatement extends BabelNode { type: "WhileStatement"; test: BabelNodeExpression; body: BabelNodeStatement; } declare class BabelNodeWithStatement extends BabelNode { type: "WithStatement"; object: BabelNodeExpression; body: BabelNodeStatement; } declare class BabelNodeAssignmentPattern extends BabelNode { type: "AssignmentPattern"; left: BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeArrayPattern | BabelNodeMemberExpression | BabelNodeTSAsExpression | BabelNodeTSSatisfiesExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression; right: BabelNodeExpression; decorators?: Array<BabelNodeDecorator>; optional?: boolean; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; } declare class BabelNodeArrayPattern extends BabelNode { type: "ArrayPattern"; elements: Array<null | BabelNodePatternLike>; decorators?: Array<BabelNodeDecorator>; optional?: boolean; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; } declare class BabelNodeArrowFunctionExpression extends BabelNode { type: "ArrowFunctionExpression"; params: Array<BabelNodeFunctionParameter>; body: BabelNodeBlockStatement | BabelNodeExpression; async?: boolean; expression: boolean; generator?: boolean; predicate?: BabelNodeDeclaredPredicate | BabelNodeInferredPredicate; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeClassBody extends BabelNode { type: "ClassBody"; body: Array<BabelNodeClassMethod | BabelNodeClassPrivateMethod | BabelNodeClassProperty | BabelNodeClassPrivateProperty | BabelNodeClassAccessorProperty | BabelNodeTSDeclareMethod | BabelNodeTSIndexSignature | BabelNodeStaticBlock>; } declare class BabelNodeClassExpression extends BabelNode { type: "ClassExpression"; id?: BabelNodeIdentifier; superClass?: BabelNodeExpression; body: BabelNodeClassBody; decorators?: Array<BabelNodeDecorator>; mixins?: BabelNodeInterfaceExtends; superTypeParameters?: BabelNodeTypeParameterInstantiation | BabelNodeTSTypeParameterInstantiation; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeClassDeclaration extends BabelNode { type: "ClassDeclaration"; id?: BabelNodeIdentifier; superClass?: BabelNodeExpression; body: BabelNodeClassBody; decorators?: Array<BabelNodeDecorator>; abstract?: boolean; declare?: boolean; mixins?: BabelNodeInterfaceExtends; superTypeParameters?: BabelNodeTypeParameterInstantiation | BabelNodeTSTypeParameterInstantiation; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeExportAllDeclaration extends BabelNode { type: "ExportAllDeclaration"; source: BabelNodeStringLiteral; assertions?: Array<BabelNodeImportAttribute>; attributes?: Array<BabelNodeImportAttribute>; exportKind?: "type" | "value"; } declare class BabelNodeExportDefaultDeclaration extends BabelNode { type: "ExportDefaultDeclaration"; declaration: BabelNodeTSDeclareFunction | BabelNodeFunctionDeclaration | BabelNodeClassDeclaration | BabelNodeExpression; exportKind?: "value"; } declare class BabelNodeExportNamedDeclaration extends BabelNode { type: "ExportNamedDeclaration"; declaration?: BabelNodeDeclaration; specifiers?: Array<BabelNodeExportSpecifier | BabelNodeExportDefaultSpecifier | BabelNodeExportNamespaceSpecifier>; source?: BabelNodeStringLiteral; assertions?: Array<BabelNodeImportAttribute>; attributes?: Array<BabelNodeImportAttribute>; exportKind?: "type" | "value"; } declare class BabelNodeExportSpecifier extends BabelNode { type: "ExportSpecifier"; local: BabelNodeIdentifier; exported: BabelNodeIdentifier | BabelNodeStringLiteral; exportKind?: "type" | "value"; } declare class BabelNodeForOfStatement extends BabelNode { type: "ForOfStatement"; left: BabelNodeVariableDeclaration | BabelNodeLVal; right: BabelNodeExpression; body: BabelNodeStatement; } declare class BabelNodeImportDeclaration extends BabelNode { type: "ImportDeclaration"; specifiers: Array<BabelNodeImportSpecifier | BabelNodeImportDefaultSpecifier | BabelNodeImportNamespaceSpecifier>; source: BabelNodeStringLiteral; assertions?: Array<BabelNodeImportAttribute>; attributes?: Array<BabelNodeImportAttribute>; importKind?: "type" | "typeof" | "value"; module?: boolean; phase?: "source" | "defer"; } declare class BabelNodeImportDefaultSpecifier extends BabelNode { type: "ImportDefaultSpecifier"; local: BabelNodeIdentifier; } declare class BabelNodeImportNamespaceSpecifier extends BabelNode { type: "ImportNamespaceSpecifier"; local: BabelNodeIdentifier; } declare class BabelNodeImportSpecifier extends BabelNode { type: "ImportSpecifier"; local: BabelNodeIdentifier; imported: BabelNodeIdentifier | BabelNodeStringLiteral; importKind?: "type" | "typeof" | "value"; } declare class BabelNodeImportExpression extends BabelNode { type: "ImportExpression"; source: BabelNodeExpression; options?: BabelNodeExpression; phase?: "source" | "defer"; } declare class BabelNodeMetaProperty extends BabelNode { type: "MetaProperty"; meta: BabelNodeIdentifier; property: BabelNodeIdentifier; } declare class BabelNodeClassMethod extends BabelNode { type: "ClassMethod"; kind?: "get" | "set" | "method" | "constructor"; key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeExpression; params: Array<BabelNodeFunctionParameter | BabelNodeTSParameterProperty>; body: BabelNodeBlockStatement; computed?: boolean; generator?: boolean; async?: boolean; abstract?: boolean; access?: "public" | "private" | "protected"; accessibility?: "public" | "private" | "protected"; decorators?: Array<BabelNodeDecorator>; optional?: boolean; override?: boolean; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeObjectPattern extends BabelNode { type: "ObjectPattern"; properties: Array<BabelNodeRestElement | BabelNodeObjectProperty>; decorators?: Array<BabelNodeDecorator>; optional?: boolean; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; } declare class BabelNodeSpreadElement extends BabelNode { type: "SpreadElement"; argument: BabelNodeExpression; } declare class BabelNodeSuper extends BabelNode { type: "Super"; } declare class BabelNodeTaggedTemplateExpression extends BabelNode { type: "TaggedTemplateExpression"; tag: BabelNodeExpression; quasi: BabelNodeTemplateLiteral; typeParameters?: BabelNodeTypeParameterInstantiation | BabelNodeTSTypeParameterInstantiation; } declare class BabelNodeTemplateElement extends BabelNode { type: "TemplateElement"; value: { raw: string, cooked?: string }; tail?: boolean; } declare class BabelNodeTemplateLiteral extends BabelNode { type: "TemplateLiteral"; quasis: Array<BabelNodeTemplateElement>; expressions: Array<BabelNodeExpression | BabelNodeTSType>; } declare class BabelNodeYieldExpression extends BabelNode { type: "YieldExpression"; argument?: BabelNodeExpression; delegate?: boolean; } declare class BabelNodeAwaitExpression extends BabelNode { type: "AwaitExpression"; argument: BabelNodeExpression; } declare class BabelNodeImport extends BabelNode { type: "Import"; } declare class BabelNodeBigIntLiteral extends BabelNode { type: "BigIntLiteral"; value: string; } declare class BabelNodeExportNamespaceSpecifier extends BabelNode { type: "ExportNamespaceSpecifier"; exported: BabelNodeIdentifier; } declare class BabelNodeOptionalMemberExpression extends BabelNode { type: "OptionalMemberExpression"; object: BabelNodeExpression; property: BabelNodeExpression | BabelNodeIdentifier; computed?: boolean; optional: boolean; } declare class BabelNodeOptionalCallExpression extends BabelNode { type: "OptionalCallExpression"; callee: BabelNodeExpression; arguments: Array<BabelNodeExpression | BabelNodeSpreadElement | BabelNodeArgumentPlaceholder>; optional: boolean; typeArguments?: BabelNodeTypeParameterInstantiation; typeParameters?: BabelNodeTSTypeParameterInstantiation; } declare class BabelNodeClassProperty extends BabelNode { type: "ClassProperty"; key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeExpression; value?: BabelNodeExpression; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; decorators?: Array<BabelNodeDecorator>; computed?: boolean; abstract?: boolean; accessibility?: "public" | "private" | "protected"; declare?: boolean; definite?: boolean; optional?: boolean; override?: boolean; readonly?: boolean; variance?: BabelNodeVariance; } declare class BabelNodeClassAccessorProperty extends BabelNode { type: "ClassAccessorProperty"; key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeExpression | BabelNodePrivateName; value?: BabelNodeExpression; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; decorators?: Array<BabelNodeDecorator>; computed?: boolean; abstract?: boolean; accessibility?: "public" | "private" | "protected"; declare?: boolean; definite?: boolean; optional?: boolean; override?: boolean; readonly?: boolean; variance?: BabelNodeVariance; } declare class BabelNodeClassPrivateProperty extends BabelNode { type: "ClassPrivateProperty"; key: BabelNodePrivateName; value?: BabelNodeExpression; decorators?: Array<BabelNodeDecorator>; definite?: boolean; optional?: boolean; readonly?: boolean; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; variance?: BabelNodeVariance; } declare class BabelNodeClassPrivateMethod extends BabelNode { type: "ClassPrivateMethod"; kind?: "get" | "set" | "method"; key: BabelNodePrivateName; params: Array<BabelNodeFunctionParameter | BabelNodeTSParameterProperty>; body: BabelNodeBlockStatement; abstract?: boolean; access?: "public" | "private" | "protected"; accessibility?: "public" | "private" | "protected"; async?: boolean; computed?: boolean; decorators?: Array<BabelNodeDecorator>; generator?: boolean; optional?: boolean; override?: boolean; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodePrivateName extends BabelNode { type: "PrivateName"; id: BabelNodeIdentifier; } declare class BabelNodeStaticBlock extends BabelNode { type: "StaticBlock"; body: Array<BabelNodeStatement>; } declare class BabelNodeImportAttribute extends BabelNode { type: "ImportAttribute"; key: BabelNodeIdentifier | BabelNodeStringLiteral; value: BabelNodeStringLiteral; } declare class BabelNodeAnyTypeAnnotation extends BabelNode { type: "AnyTypeAnnotation"; } declare class BabelNodeArrayTypeAnnotation extends BabelNode { type: "ArrayTypeAnnotation"; elementType: BabelNodeFlowType; } declare class BabelNodeBooleanTypeAnnotation extends BabelNode { type: "BooleanTypeAnnotation"; } declare class BabelNodeBooleanLiteralTypeAnnotation extends BabelNode { type: "BooleanLiteralTypeAnnotation"; value: boolean; } declare class BabelNodeNullLiteralTypeAnnotation extends BabelNode { type: "NullLiteralTypeAnnotation"; } declare class BabelNodeClassImplements extends BabelNode { type: "ClassImplements"; id: BabelNodeIdentifier; typeParameters?: BabelNodeTypeParameterInstantiation; } declare class BabelNodeDeclareClass extends BabelNode { type: "DeclareClass"; id: BabelNodeIdentifier; typeParameters?: BabelNodeTypeParameterDeclaration; body: BabelNodeObjectTypeAnnotation; mixins?: Array<BabelNodeInterfaceExtends>; } declare class BabelNodeDeclareFunction extends BabelNode { type: "DeclareFunction"; id: BabelNodeIdentifier; predicate?: BabelNodeDeclaredPredicate; } declare class BabelNodeDeclareInterface extends BabelNode { type: "DeclareInterface"; id: BabelNodeIdentifier; typeParameters?: BabelNodeTypeParameterDeclaration; body: BabelNodeObjectTypeAnnotation; } declare class BabelNodeDeclareModule extends BabelNode { type: "DeclareModule"; id: BabelNodeIdentifier | BabelNodeStringLiteral; body: BabelNodeBlockStatement; kind?: "CommonJS" | "ES"; } declare class BabelNodeDeclareModuleExports extends BabelNode { type: "DeclareModuleExports"; typeAnnotation: BabelNodeTypeAnnotation; } declare class BabelNodeDeclareTypeAlias extends BabelNode { type: "DeclareTypeAlias"; id: BabelNodeIdentifier; typeParameters?: BabelNodeTypeParameterDeclaration; right: BabelNodeFlowType; } declare class BabelNodeDeclareOpaqueType extends BabelNode { type: "DeclareOpaqueType"; id: BabelNodeIdentifier; typeParameters?: BabelNodeTypeParameterDeclaration; supertype?: BabelNodeFlowType; impltype?: BabelNodeFlowType; } declare class BabelNodeDeclareVariable extends BabelNode { type: "DeclareVariable"; id: BabelNodeIdentifier; } declare class BabelNodeDeclareExportDeclaration extends BabelNode { type: "DeclareExportDeclaration"; declaration?: BabelNodeFlow; specifiers?: Array<BabelNodeExportSpecifier | BabelNodeExportNamespaceSpecifier>; source?: BabelNodeStringLiteral; attributes?: Array<BabelNodeImportAttribute>; assertions?: Array<BabelNodeImportAttribute>; } declare class BabelNodeDeclareExportAllDeclaration extends BabelNode { type: "DeclareExportAllDeclaration"; source: BabelNodeStringLiteral; attributes?: Array<BabelNodeImportAttribute>; assertions?: Array<BabelNodeImportAttribute>; exportKind?: "type" | "value"; } declare class BabelNodeDeclaredPredicate extends BabelNode { type: "DeclaredPredicate"; value: BabelNodeFlow; } declare class BabelNodeExistsTypeAnnotation extends BabelNode { type: "ExistsTypeAnnotation"; } declare class BabelNodeFunctionTypeAnnotation extends BabelNode { type: "FunctionTypeAnnotation"; typeParameters?: BabelNodeTypeParameterDeclaration; params: Array<BabelNodeFunctionTypeParam>; rest?: BabelNodeFunctionTypeParam; returnType: BabelNodeFlowType; } declare class BabelNodeFunctionTypeParam extends BabelNode { type: "FunctionTypeParam"; name?: BabelNodeIdentifier; typeAnnotation: BabelNodeFlowType; optional?: boolean; } declare class BabelNodeGenericTypeAnnotation extends BabelNode { type: "GenericTypeAnnotation"; id: BabelNodeIdentifier | BabelNodeQualifiedTypeIdentifier; typeParameters?: BabelNodeTypeParameterInstantiation; } declare class BabelNodeInferredPredicate extends BabelNode { type: "InferredPredicate"; } declare class BabelNodeInterfaceExtends extends BabelNode { type: "InterfaceExtends"; id: BabelNodeIdentifier | BabelNodeQualifiedTypeIdentifier; typeParameters?: BabelNodeTypeParameterInstantiation; } declare class BabelNodeInterfaceDeclaration extends BabelNode { type: "InterfaceDeclaration"; id: BabelNodeIdentifier; typeParameters?: BabelNodeTypeParameterDeclaration; body: BabelNodeObjectTypeAnnotation; } declare class BabelNodeInterfaceTypeAnnotation extends BabelNode { type: "InterfaceTypeAnnotation"; body: BabelNodeObjectTypeAnnotation; } declare class BabelNodeIntersectionTypeAnnotation extends BabelNode { type: "IntersectionTypeAnnotation"; types: Array<BabelNodeFlowType>; } declare class BabelNodeMixedTypeAnnotation extends BabelNode { type: "MixedTypeAnnotation"; } declare class BabelNodeEmptyTypeAnnotation extends BabelNode { type: "EmptyTypeAnnotation"; } declare class BabelNodeNullableTypeAnnotation extends BabelNode { type: "NullableTypeAnnotation"; typeAnnotation: BabelNodeFlowType; } declare class BabelNodeNumberLiteralTypeAnnotation extends BabelNode { type: "NumberLiteralTypeAnnotation"; value: number; } declare class BabelNodeNumberTypeAnnotation extends BabelNode { type: "NumberTypeAnnotation"; } declare class BabelNodeObjectTypeAnnotation extends BabelNode { type: "ObjectTypeAnnotation"; properties: Array<BabelNodeObjectTypeProperty | BabelNodeObjectTypeSpreadProperty>; indexers?: Array<BabelNodeObjectTypeIndexer>; callProperties?: Array<BabelNodeObjectTypeCallProperty>; internalSlots?: Array<BabelNodeObjectTypeInternalSlot>; exact?: boolean; inexact?: boolean; } declare class BabelNodeObjectTypeInternalSlot extends BabelNode { type: "ObjectTypeInternalSlot"; id: BabelNodeIdentifier; value: BabelNodeFlowType; optional: boolean; method: boolean; } declare class BabelNodeObjectTypeCallProperty extends BabelNode { type: "ObjectTypeCallProperty"; value: BabelNodeFlowType; } declare class BabelNodeObjectTypeIndexer extends BabelNode { type: "ObjectTypeIndexer"; id?: BabelNodeIdentifier; key: BabelNodeFlowType; value: BabelNodeFlowType; variance?: BabelNodeVariance; } declare class BabelNodeObjectTypeProperty extends BabelNode { type: "ObjectTypeProperty"; key: BabelNodeIdentifier | BabelNodeStringLiteral; value: BabelNodeFlowType; variance?: BabelNodeVariance; kind: "init" | "get" | "set"; method: boolean; optional: boolean; proto: boolean; } declare class BabelNodeObjectTypeSpreadProperty extends BabelNode { type: "ObjectTypeSpreadProperty"; argument: BabelNodeFlowType; } declare class BabelNodeOpaqueType extends BabelNode { type: "OpaqueType"; id: BabelNodeIdentifier; typeParameters?: BabelNodeTypeParameterDeclaration; supertype?: BabelNodeFlowType; impltype: BabelNodeFlowType; } declare class BabelNodeQualifiedTypeIdentifier extends BabelNode { type: "QualifiedTypeIdentifier"; id: BabelNodeIdentifier; qualification: BabelNodeIdentifier | BabelNodeQualifiedTypeIdentifier; } declare class BabelNodeStringLiteralTypeAnnotation extends BabelNode { type: "StringLiteralTypeAnnotation"; value: string; } declare class BabelNodeStringTypeAnnotation extends BabelNode { type: "StringTypeAnnotation"; } declare class BabelNodeSymbolTypeAnnotation extends BabelNode { type: "SymbolTypeAnnotation"; } declare class BabelNodeThisTypeAnnotation extends BabelNode { type: "ThisTypeAnnotation"; } declare class BabelNodeTupleTypeAnnotation extends BabelNode { type: "TupleTypeAnnotation"; types: Array<BabelNodeFlowType>; } declare class BabelNodeTypeofTypeAnnotation extends BabelNode { type: "TypeofTypeAnnotation"; argument: BabelNodeFlowType; } declare class BabelNodeTypeAlias extends BabelNode { type: "TypeAlias"; id: BabelNodeIdentifier; typeParameters?: BabelNodeTypeParameterDeclaration; right: BabelNodeFlowType; } declare class BabelNodeTypeAnnotation extends BabelNode { type: "TypeAnnotation"; typeAnnotation: BabelNodeFlowType; } declare class BabelNodeTypeCastExpression extends BabelNode { type: "TypeCastExpression"; expression: BabelNodeExpression; typeAnnotation: BabelNodeTypeAnnotation; } declare class BabelNodeTypeParameter extends BabelNode { type: "TypeParameter"; bound?: BabelNodeTypeAnnotation; variance?: BabelNodeVariance; name: string; } declare class BabelNodeTypeParameterDeclaration extends BabelNode { type: "TypeParameterDeclaration"; params: Array<BabelNodeTypeParameter>; } declare class BabelNodeTypeParameterInstantiation extends BabelNode { type: "TypeParameterInstantiation"; params: Array<BabelNodeFlowType>; } declare class BabelNodeUnionTypeAnnotation extends BabelNode { type: "UnionTypeAnnotation"; types: Array<BabelNodeFlowType>; } declare class BabelNodeVariance extends BabelNode { type: "Variance"; kind: "minus" | "plus"; } declare class BabelNodeVoidTypeAnnotation extends BabelNode { type: "VoidTypeAnnotation"; } declare class BabelNodeEnumDeclaration extends BabelNode { type: "EnumDeclaration"; id: BabelNodeIdentifier; body: BabelNodeEnumBooleanBody | BabelNodeEnumNumberBody | BabelNodeEnumStringBody | BabelNodeEnumSymbolBody; } declare class BabelNodeEnumBooleanBody extends BabelNode { type: "EnumBooleanBody"; members: Array<BabelNodeEnumBooleanMember>; explicitType: boolean; hasUnknownMembers: boolean; } declare class BabelNodeEnumNumberBody extends BabelNode { type: "EnumNumberBody"; members: Array<BabelNodeEnumNumberMember>; explicitType: boolean; hasUnknownMembers: boolean; } declare class BabelNodeEnumStringBody extends BabelNode { type: "EnumStringBody"; members: Array<BabelNodeEnumStringMember | BabelNodeEnumDefaultedMember>; explicitType: boolean; hasUnknownMembers: boolean; } declare class BabelNodeEnumSymbolBody extends BabelNode { type: "EnumSymbolBody"; members: Array<BabelNodeEnumDefaultedMember>; hasUnknownMembers: boolean; } declare class BabelNodeEnumBooleanMember extends BabelNode { type: "EnumBooleanMember"; id: BabelNodeIdentifier; init: BabelNodeBooleanLiteral; } declare class BabelNodeEnumNumberMember extends BabelNode { type: "EnumNumberMember"; id: BabelNodeIdentifier; init: BabelNodeNumericLiteral; } declare class BabelNodeEnumStringMember extends BabelNode { type: "EnumStringMember"; id: BabelNodeIdentifier; init: BabelNodeStringLiteral; } declare class BabelNodeEnumDefaultedMember extends BabelNode { type: "EnumDefaultedMember"; id: BabelNodeIdentifier; } declare class BabelNodeIndexedAccessType extends BabelNode { type: "IndexedAccessType"; objectType: BabelNodeFlowType; indexType: BabelNodeFlowType; } declare class BabelNodeOptionalIndexedAccessType extends BabelNode { type: "OptionalIndexedAccessType"; objectType: BabelNodeFlowType; indexType: BabelNodeFlowType; optional: boolean; } declare class BabelNodeJSXAttribute extends BabelNode { type: "JSXAttribute"; name: BabelNodeJSXIdentifier | BabelNodeJSXNamespacedName; value?: BabelNodeJSXElement | BabelNodeJSXFragment | BabelNodeStringLiteral | BabelNodeJSXExpressionContainer; } declare class BabelNodeJSXClosingElement extends BabelNode { type: "JSXClosingElement"; name: BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeJSXNamespacedName; } declare class BabelNodeJSXElement extends BabelNode { type: "JSXElement"; openingElement: BabelNodeJSXOpeningElement; closingElement?: BabelNodeJSXClosingElement; children: Array<BabelNodeJSXText | BabelNodeJSXExpressionContainer | BabelNodeJSXSpreadChild | BabelNodeJSXElement | BabelNodeJSXFragment>; selfClosing?: boolean; } declare class BabelNodeJSXEmptyExpression extends BabelNode { type: "JSXEmptyExpression"; } declare class BabelNodeJSXExpressionContainer extends BabelNode { type: "JSXExpressionContainer"; expression: BabelNodeExpression | BabelNodeJSXEmptyExpression; } declare class BabelNodeJSXSpreadChild extends BabelNode { type: "JSXSpreadChild"; expression: BabelNodeExpression; } declare class BabelNodeJSXIdentifier extends BabelNode { type: "JSXIdentifier"; name: string; } declare class BabelNodeJSXMemberExpression extends BabelNode { type: "JSXMemberExpression"; object: BabelNodeJSXMemberExpression | BabelNodeJSXIdentifier; property: BabelNodeJSXIdentifier; } declare class BabelNodeJSXNamespacedName extends BabelNode { type: "JSXNamespacedName"; namespace: BabelNodeJSXIdentifier; name: BabelNodeJSXIdentifier; } declare class BabelNodeJSXOpeningElement extends BabelNode { type: "JSXOpeningElement"; name: BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeJSXNamespacedName; attributes: Array<BabelNodeJSXAttribute | BabelNodeJSXSpreadAttribute>; selfClosing?: boolean; typeArguments?: BabelNodeTypeParameterInstantiation; typeParameters?: BabelNodeTSTypeParameterInstantiation; } declare class BabelNodeJSXSpreadAttribute extends BabelNode { type: "JSXSpreadAttribute"; argument: BabelNodeExpression; } declare class BabelNodeJSXText extends BabelNode { type: "JSXText"; value: string; } declare class BabelNodeJSXFragment extends BabelNode { type: "JSXFragment"; openingFragment: BabelNodeJSXOpeningFragment; closingFragment: BabelNodeJSXClosingFragment; children: Array<BabelNodeJSXText | BabelNodeJSXExpressionContainer | BabelNodeJSXSpreadChild | BabelNodeJSXElement | BabelNodeJSXFragment>; } declare class BabelNodeJSXOpeningFragment extends BabelNode { type: "JSXOpeningFragment"; } declare class BabelNodeJSXClosingFragment extends BabelNode { type: "JSXClosingFragment"; } declare class BabelNodeNoop extends BabelNode { type: "Noop"; } declare class BabelNodePlaceholder extends BabelNode { type: "Placeholder"; expectedNode: "Identifier" | "StringLiteral" | "Expression" | "Statement" | "Declaration" | "BlockStatement" | "ClassBody" | "Pattern"; name: BabelNodeIdentifier; decorators?: Array<BabelNodeDecorator>; optional?: boolean; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; } declare class BabelNodeV8IntrinsicIdentifier extends BabelNode { type: "V8IntrinsicIdentifier"; name: string; } declare class BabelNodeArgumentPlaceholder extends BabelNode { type: "ArgumentPlaceholder"; } declare class BabelNodeBindExpression extends BabelNode { type: "BindExpression"; object: BabelNodeExpression; callee: BabelNodeExpression; } declare class BabelNodeDecorator extends BabelNode { type: "Decorator"; expression: BabelNodeExpression; } declare class BabelNodeDoExpression extends BabelNode { type: "DoExpression"; body: BabelNodeBlockStatement; async?: boolean; } declare class BabelNodeExportDefaultSpecifier extends BabelNode { type: "ExportDefaultSpecifier"; exported: BabelNodeIdentifier; } declare class BabelNodeRecordExpression extends BabelNode { type: "RecordExpression"; properties: Array<BabelNodeObjectProperty | BabelNodeSpreadElement>; } declare class BabelNodeTupleExpression extends BabelNode { type: "TupleExpression"; elements?: Array<BabelNodeExpression | BabelNodeSpreadElement>; } declare class BabelNodeDecimalLiteral extends BabelNode { type: "DecimalLiteral"; value: string; } declare class BabelNodeModuleExpression extends BabelNode { type: "ModuleExpression"; body: BabelNodeProgram; } declare class BabelNodeTopicReference extends BabelNode { type: "TopicReference"; } declare class BabelNodePipelineTopicExpression extends BabelNode { type: "PipelineTopicExpression"; expression: BabelNodeExpression; } declare class BabelNodePipelineBareFunction extends BabelNode { type: "PipelineBareFunction"; callee: BabelNodeExpression; } declare class BabelNodePipelinePrimaryTopicReference extends BabelNode { type: "PipelinePrimaryTopicReference"; } declare class BabelNodeVoidPattern extends BabelNode { type: "VoidPattern"; } declare class BabelNodeTSParameterProperty extends BabelNode { type: "TSParameterProperty"; parameter: BabelNodeIdentifier | BabelNodeAssignmentPattern; accessibility?: "public" | "private" | "protected"; decorators?: Array<BabelNodeDecorator>; override?: boolean; readonly?: boolean; } declare class BabelNodeTSDeclareFunction extends BabelNode { type: "TSDeclareFunction"; id?: BabelNodeIdentifier; typeParameters?: BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; params: Array<BabelNodeFunctionParameter>; returnType?: BabelNodeTSTypeAnnotation | BabelNodeNoop; async?: boolean; declare?: boolean; generator?: boolean; } declare class BabelNodeTSDeclareMethod extends BabelNode { type: "TSDeclareMethod"; decorators?: Array<BabelNodeDecorator>; key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeExpression; typeParameters?: BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; params: Array<BabelNodeFunctionParameter | BabelNodeTSParameterProperty>; returnType?: BabelNodeTSTypeAnnotation | BabelNodeNoop; abstract?: boolean; access?: "public" | "private" | "protected"; accessibility?: "public" | "private" | "protected"; async?: boolean; computed?: boolean; generator?: boolean; kind?: "get" | "set" | "method" | "constructor"; optional?: boolean; override?: boolean; } declare class BabelNodeTSQualifiedName extends BabelNode { type: "TSQualifiedName"; left: BabelNodeTSEntityName; right: BabelNodeIdentifier; } declare class BabelNodeTSCallSignatureDeclaration extends BabelNode { type: "TSCallSignatureDeclaration"; typeParameters?: BabelNodeTSTypeParameterDeclaration; parameters: Array<BabelNodeArrayPattern | BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeRestElement>; typeAnnotation?: BabelNodeTSTypeAnnotation; } declare class BabelNodeTSConstructSignatureDeclaration extends BabelNode { type: "TSConstructSignatureDeclaration"; typeParameters?: BabelNodeTSTypeParameterDeclaration; parameters: Array<BabelNodeArrayPattern | BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeRestElement>; typeAnnotation?: BabelNodeTSTypeAnnotation; } declare class BabelNodeTSPropertySignature extends BabelNode { type: "TSPropertySignature"; key: BabelNodeExpression; typeAnnotation?: BabelNodeTSTypeAnnotation; computed?: boolean; kind?: "get" | "set"; optional?: boolean; readonly?: boolean; } declare class BabelNodeTSMethodSignature extends BabelNode { type: "TSMethodSignature"; key: BabelNodeExpression; typeParameters?: BabelNodeTSTypeParameterDeclaration; parameters: Array<BabelNodeArrayPattern | BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeRestElement>; typeAnnotation?: BabelNodeTSTypeAnnotation; computed?: boolean; kind: "method" | "get" | "set"; optional?: boolean; } declare class BabelNodeTSIndexSignature extends BabelNode { type: "TSIndexSignature"; parameters: Array<BabelNodeIdentifier>; typeAnnotation?: BabelNodeTSTypeAnnotation; readonly?: boolean; } declare class BabelNodeTSAnyKeyword extends BabelNode { type: "TSAnyKeyword"; } declare class BabelNodeTSBooleanKeyword extends BabelNode { type: "TSBooleanKeyword"; } declare class BabelNodeTSBigIntKeyword extends BabelNode { type: "TSBigIntKeyword"; } declare class BabelNodeTSIntrinsicKeyword extends BabelNode { type: "TSIntrinsicKeyword"; } declare class BabelNodeTSNeverKeyword extends BabelNode { type: "TSNeverKeyword"; } declare class BabelNodeTSNullKeyword extends BabelNode { type: "TSNullKeyword"; } declare class BabelNodeTSNumberKeyword extends BabelNode { type: "TSNumberKeyword"; } declare class BabelNodeTSObjectKeyword extends BabelNode { type: "TSObjectKeyword"; } declare class BabelNodeTSStringKeyword extends BabelNode { type: "TSStringKeyword"; } declare class BabelNodeTSSymbolKeyword extends BabelNode { type: "TSSymbolKeyword"; } declare class BabelNodeTSUndefinedKeyword extends BabelNode { type: "TSUndefinedKeyword"; } declare class BabelNodeTSUnknownKeyword extends BabelNode { type: "TSUnknownKeyword"; } declare class BabelNodeTSVoidKeyword extends BabelNode { type: "TSVoidKeyword"; } declare class BabelNodeTSThisType extends BabelNode { type: "TSThisType"; } declare class BabelNodeTSFunctionType extends BabelNode { type: "TSFunctionType"; typeParameters?: BabelNodeTSTypeParameterDeclaration; parameters: Array<BabelNodeArrayPattern | BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeRestElement>; typeAnnotation?: BabelNodeTSTypeAnnotation; } declare class BabelNodeTSConstructorType extends BabelNode { type: "TSConstructorType"; typeParameters?: BabelNodeTSTypeParameterDeclaration; parameters: Array<BabelNodeArrayPattern | BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeRestElement>; typeAnnotation?: BabelNodeTSTypeAnnotation; abstract?: boolean; } declare class BabelNodeTSTypeReference extends BabelNode { type: "TSTypeReference"; typeName: BabelNodeTSEntityName; typeParameters?: BabelNodeTSTypeParameterInstantiation; } declare class BabelNodeTSTypePredicate extends BabelNode { type: "TSTypePredicate"; parameterName: BabelNodeIdentifier | BabelNodeTSThisType; typeAnnotation?: BabelNodeTSTypeAnnotation; asserts?: boolean; } declare class BabelNodeTSTypeQuery extends BabelNode { type: "TSTypeQuery"; exprName: BabelNodeTSEntityName | BabelNodeTSImportType; typeParameters?: BabelNodeTSTypeParameterInstantiation; } declare class BabelNodeTSTypeLiteral extends BabelNode { type: "TSTypeLiteral"; members: Array<BabelNodeTSTypeElement>; } declare class BabelNodeTSArrayType extends BabelNode { type: "TSArrayType"; elementType: BabelNodeTSType; } declare class BabelNodeTSTupleType extends BabelNode { type: "TSTupleType"; elementTypes: Array<BabelNodeTSType | BabelNodeTSNamedTupleMember>; } declare class BabelNodeTSOptionalType extends BabelNode { type: "TSOptionalType"; typeAnnotation: BabelNodeTSType; } declare class BabelNodeTSRestType extends BabelNode { type: "TSRestType"; typeAnnotation: BabelNodeTSType; } declare class BabelNodeTSNamedTupleMember extends BabelNode { type: "TSNamedTupleMember"; label: BabelNodeIdentifier; elementType: BabelNodeTSType; optional?: boolean; } declare class BabelNodeTSUnionType extends BabelNode { type: "TSUnionType"; types: Array<BabelNodeTSType>; } declare class BabelNodeTSIntersectionType extends BabelNode { type: "TSIntersectionType"; types: Array<BabelNodeTSType>; } declare class BabelNodeTSConditionalType extends BabelNode { type: "TSConditionalType"; checkType: BabelNodeTSType; extendsType: BabelNodeTSType; trueType: BabelNodeTSType; falseType: BabelNodeTSType; } declare class BabelNodeTSInferType extends BabelNode { type: "TSInferType"; typeParameter: BabelNodeTSTypeParameter; } declare class BabelNodeTSParenthesizedType extends BabelNode { type: "TSParenthesizedType"; typeAnnotation: BabelNodeTSType; } declare class BabelNodeTSTypeOperator extends BabelNode { type: "TSTypeOperator"; typeAnnotation: BabelNodeTSType; operator?: string; } declare class BabelNodeTSIndexedAccessType extends BabelNode { type: "TSIndexedAccessType"; objectType: BabelNodeTSType; indexType: BabelNodeTSType; } declare class BabelNodeTSMappedType extends BabelNode { type: "TSMappedType"; typeParameter: BabelNodeTSTypeParameter; typeAnnotation?: BabelNodeTSType; nameType?: BabelNodeTSType; optional?: true | false | "+" | "-"; readonly?: true | false | "+" | "-"; } declare class BabelNodeTSTemplateLiteralType extends BabelNode { type: "TSTemplateLiteralType"; quasis: Array<BabelNodeTemplateElement>; types: Array<BabelNodeTSType>; } declare class BabelNodeTSLiteralType extends BabelNode { type: "TSLiteralType"; literal: BabelNodeNumericLiteral | BabelNodeStringLiteral | BabelNodeBooleanLiteral | BabelNodeBigIntLiteral | BabelNodeTemplateLiteral | BabelNodeUnaryExpression; } declare class BabelNodeTSExpressionWithTypeArguments extends BabelNode { type: "TSExpressionWithTypeArguments"; expression: BabelNodeTSEntityName; typeParameters?: BabelNodeTSTypeParameterInstantiation; } declare class BabelNodeTSInterfaceDeclaration extends BabelNode { type: "TSInterfaceDeclaration"; id: BabelNodeIdentifier; typeParameters?: BabelNodeTSTypeParameterDeclaration; body: BabelNodeTSInterfaceBody; declare?: boolean; } declare class BabelNodeTSInterfaceBody extends BabelNode { type: "TSInterfaceBody"; body: Array<BabelNodeTSTypeElement>; } declare class BabelNodeTSTypeAliasDeclaration extends BabelNode { type: "TSTypeAliasDeclaration"; id: BabelNodeIdentifier; typeParameters?: BabelNodeTSTypeParameterDeclaration; typeAnnotation: BabelNodeTSType; declare?: boolean; } declare class BabelNodeTSInstantiationExpression extends BabelNode { type: "TSInstantiationExpression"; expression: BabelNodeExpression; typeParameters?: BabelNodeTSTypeParameterInstantiation; } declare class BabelNodeTSAsExpression extends BabelNode { type: "TSAsExpression"; expression: BabelNodeExpression; typeAnnotation: BabelNodeTSType; } declare class BabelNodeTSSatisfiesExpression extends BabelNode { type: "TSSatisfiesExpression"; expression: BabelNodeExpression; typeAnnotation: BabelNodeTSType; } declare class BabelNodeTSTypeAssertion extends BabelNode { type: "TSTypeAssertion"; typeAnnotation: BabelNodeTSType; expression: BabelNodeExpression; } declare class BabelNodeTSEnumBody extends BabelNode { type: "TSEnumBody"; members: Array<BabelNodeTSEnumMember>; } declare class BabelNodeTSEnumDeclaration extends BabelNode { type: "TSEnumDeclaration"; id: BabelNodeIdentifier; members: Array<BabelNodeTSEnumMember>; body?: BabelNodeTSEnumBody; declare?: boolean; initializer?: BabelNodeExpression; } declare class BabelNodeTSEnumMember extends BabelNode { type: "TSEnumMember"; id: BabelNodeIdentifier | BabelNodeStringLiteral; initializer?: BabelNodeExpression; } declare class BabelNodeTSModuleDeclaration extends BabelNode { type: "TSModuleDeclaration"; id: BabelNodeIdentifier | BabelNodeStringLiteral; body: BabelNodeTSModuleBlock | BabelNodeTSModuleDeclaration; declare?: boolean; global?: boolean; kind: "global" | "module" | "namespace"; } declare class BabelNodeTSModuleBlock extends BabelNode { type: "TSModuleBlock"; body: Array<BabelNodeStatement>; } declare class BabelNodeTSImportType extends BabelNode { type: "TSImportType"; argument: BabelNodeStringLiteral; qualifier?: BabelNodeTSEntityName; typeParameters?: BabelNodeTSTypeParameterInstantiation; options?: BabelNodeObjectExpression; } declare class BabelNodeTSImportEqualsDeclaration extends BabelNode { type: "TSImportEqualsDeclaration"; id: BabelNodeIdentifier; moduleReference: BabelNodeTSEntityName | BabelNodeTSExternalModuleReference; importKind?: "type" | "value"; isExport: boolean; } declare class BabelNodeTSExternalModuleReference extends BabelNode { type: "TSExternalModuleReference"; expression: BabelNodeStringLiteral; } declare class BabelNodeTSNonNullExpression extends BabelNode { type: "TSNonNullExpression"; expression: BabelNodeExpression; } declare class BabelNodeTSExportAssignment extends BabelNode { type: "TSExportAssignment"; expression: BabelNodeExpression; } declare class BabelNodeTSNamespaceExportDeclaration extends BabelNode { type: "TSNamespaceExportDeclaration"; id: BabelNodeIdentifier; } declare class BabelNodeTSTypeAnnotation extends BabelNode { type: "TSTypeAnnotation"; typeAnnotation: BabelNode