@babel/types
Version:
Babel Types is a Lodash-esque utility library for AST nodes
1,635 lines (1,379 loc) • 180 kB
Flow
// 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