// NOTE: This file is autogenerated. Do not modify. // See scripts/generators/flow.js for script used. declare class BabelNodeComment { value: string; start: number; end: number; loc: BabelNodeSourceLocation; } declare class BabelNodeBlockComment extends BabelNodeComment { type: "BlockComment"; } declare class BabelNodeLineComment extends BabelNodeComment { type: "LineComment"; } declare class BabelNodeSourceLocation { start: { line: number; column: number; }; end: { line: number; column: number; }; } declare class BabelNode { leadingComments?: Array; innerComments?: Array; trailingComments?: Array; start: ?number; end: ?number; loc: ?BabelNodeSourceLocation; } declare class BabelNodeArrayExpression extends BabelNode { type: "ArrayExpression"; elements?: Array; } declare class BabelNodeAssignmentExpression extends BabelNode { type: "AssignmentExpression"; operator: string; left: BabelNodeLVal; right: BabelNodeExpression; } declare class BabelNodeBinaryExpression extends BabelNode { type: "BinaryExpression"; operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<="; left: BabelNodeExpression; right: BabelNodeExpression; } 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; directives?: Array; } declare class BabelNodeBreakStatement extends BabelNode { type: "BreakStatement"; label?: BabelNodeIdentifier; } declare class BabelNodeCallExpression extends BabelNode { type: "CallExpression"; callee: BabelNodeExpression; arguments: Array; optional?: true | false; typeParameters?: BabelNodeTypeParameterInstantiation | BabelNodeTSTypeParameterInstantiation; } declare class BabelNodeCatchClause extends BabelNode { type: "CatchClause"; param?: BabelNodeIdentifier; 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: any; tokens: 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; body: BabelNodeBlockStatement; generator?: boolean; async?: boolean; declare?: boolean; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeFunctionExpression extends BabelNode { type: "FunctionExpression"; id?: BabelNodeIdentifier; params: Array; body: BabelNodeBlockStatement; generator?: boolean; async?: boolean; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeIdentifier extends BabelNode { type: "Identifier"; name: string; decorators?: Array; 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; property: any; computed?: boolean; optional?: true | false; } declare class BabelNodeNewExpression extends BabelNode { type: "NewExpression"; callee: BabelNodeExpression; arguments: Array; optional?: true | false; typeParameters?: BabelNodeTypeParameterInstantiation | BabelNodeTSTypeParameterInstantiation; } declare class BabelNodeProgram extends BabelNode { type: "Program"; body: Array; directives?: Array; sourceType?: "script" | "module"; sourceFile?: string; } declare class BabelNodeObjectExpression extends BabelNode { type: "ObjectExpression"; properties: Array; } declare class BabelNodeObjectMethod extends BabelNode { type: "ObjectMethod"; kind?: "method" | "get" | "set"; key: any; params: Array; body: BabelNodeBlockStatement; computed?: boolean; async?: boolean; decorators?: Array; generator?: boolean; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeObjectProperty extends BabelNode { type: "ObjectProperty"; key: any; value: BabelNodeExpression | BabelNodePatternLike; computed?: boolean; shorthand?: boolean; decorators?: Array; } declare class BabelNodeRestElement extends BabelNode { type: "RestElement"; argument: BabelNodeLVal; decorators?: Array; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; } declare class BabelNodeReturnStatement extends BabelNode { type: "ReturnStatement"; argument?: BabelNodeExpression; } declare class BabelNodeSequenceExpression extends BabelNode { type: "SequenceExpression"; expressions: Array; } declare class BabelNodeSwitchCase extends BabelNode { type: "SwitchCase"; test?: BabelNodeExpression; consequent: Array; } declare class BabelNodeSwitchStatement extends BabelNode { type: "SwitchStatement"; discriminant: BabelNodeExpression; cases: Array; } 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"; declarations: Array; declare?: boolean; } declare class BabelNodeVariableDeclarator extends BabelNode { type: "VariableDeclarator"; id: BabelNodeLVal; init?: BabelNodeExpression; definite?: boolean; } declare class BabelNodeWhileStatement extends BabelNode { type: "WhileStatement"; test: BabelNodeExpression; body: BabelNodeBlockStatement | BabelNodeStatement; } declare class BabelNodeWithStatement extends BabelNode { type: "WithStatement"; object: BabelNodeExpression; body: BabelNodeBlockStatement | BabelNodeStatement; } declare class BabelNodeAssignmentPattern extends BabelNode { type: "AssignmentPattern"; left: BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeArrayPattern; right: BabelNodeExpression; decorators?: Array; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; } declare class BabelNodeArrayPattern extends BabelNode { type: "ArrayPattern"; elements: Array; decorators?: Array; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; } declare class BabelNodeArrowFunctionExpression extends BabelNode { type: "ArrowFunctionExpression"; params: Array; body: BabelNodeBlockStatement | BabelNodeExpression; async?: boolean; expression?: boolean; generator?: boolean; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeClassBody extends BabelNode { type: "ClassBody"; body: Array; } declare class BabelNodeClassDeclaration extends BabelNode { type: "ClassDeclaration"; id?: BabelNodeIdentifier; superClass?: BabelNodeExpression; body: BabelNodeClassBody; decorators?: Array; abstract?: boolean; declare?: boolean; mixins?: any; superTypeParameters?: BabelNodeTypeParameterInstantiation | BabelNodeTSTypeParameterInstantiation; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeClassExpression extends BabelNode { type: "ClassExpression"; id?: BabelNodeIdentifier; superClass?: BabelNodeExpression; body: BabelNodeClassBody; decorators?: Array; mixins?: any; superTypeParameters?: BabelNodeTypeParameterInstantiation | BabelNodeTSTypeParameterInstantiation; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeExportAllDeclaration extends BabelNode { type: "ExportAllDeclaration"; source: BabelNodeStringLiteral; } declare class BabelNodeExportDefaultDeclaration extends BabelNode { type: "ExportDefaultDeclaration"; declaration: BabelNodeFunctionDeclaration | BabelNodeTSDeclareFunction | BabelNodeClassDeclaration | BabelNodeExpression; } declare class BabelNodeExportNamedDeclaration extends BabelNode { type: "ExportNamedDeclaration"; declaration?: BabelNodeDeclaration; specifiers: Array; source?: BabelNodeStringLiteral; } declare class BabelNodeExportSpecifier extends BabelNode { type: "ExportSpecifier"; local: BabelNodeIdentifier; exported: BabelNodeIdentifier; } declare class BabelNodeForOfStatement extends BabelNode { type: "ForOfStatement"; left: BabelNodeVariableDeclaration | BabelNodeLVal; right: BabelNodeExpression; body: BabelNodeStatement; } declare class BabelNodeImportDeclaration extends BabelNode { type: "ImportDeclaration"; specifiers: Array; source: BabelNodeStringLiteral; } 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; importKind?: null | "type" | "typeof"; } 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 | BabelNodeExpression; params: Array; body: BabelNodeBlockStatement; computed?: boolean; abstract?: boolean; access?: "public" | "private" | "protected"; accessibility?: "public" | "private" | "protected"; async?: boolean; decorators?: Array; generator?: boolean; optional?: boolean; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeObjectPattern extends BabelNode { type: "ObjectPattern"; properties: Array; decorators?: Array; 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; } declare class BabelNodeTemplateElement extends BabelNode { type: "TemplateElement"; value: any; tail?: boolean; } declare class BabelNodeTemplateLiteral extends BabelNode { type: "TemplateLiteral"; quasis: Array; expressions: Array; } declare class BabelNodeYieldExpression extends BabelNode { type: "YieldExpression"; argument?: BabelNodeExpression; delegate?: boolean; } 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?: BabelNodeTypeParameterInstantiation; body: BabelNodeObjectTypeAnnotation; mixins?: Array; } declare class BabelNodeDeclareFunction extends BabelNode { type: "DeclareFunction"; id: BabelNodeIdentifier; predicate?: BabelNodeDeclaredPredicate; } declare class BabelNodeDeclareInterface extends BabelNode { type: "DeclareInterface"; id: BabelNodeIdentifier; typeParameters?: BabelNodeTypeParameterDeclaration; body: BabelNodeObjectTypeAnnotation; mixins?: Array; } 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; } declare class BabelNodeDeclareVariable extends BabelNode { type: "DeclareVariable"; id: BabelNodeIdentifier; } declare class BabelNodeDeclareExportDeclaration extends BabelNode { type: "DeclareExportDeclaration"; declaration?: BabelNodeFlow; specifiers?: Array; source?: BabelNodeStringLiteral; } declare class BabelNodeDeclareExportAllDeclaration extends BabelNode { type: "DeclareExportAllDeclaration"; source: BabelNodeStringLiteral; 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; 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; typeParameters?: BabelNodeTypeParameterInstantiation; } declare class BabelNodeInferredPredicate extends BabelNode { type: "InferredPredicate"; } declare class BabelNodeInterfaceExtends extends BabelNode { type: "InterfaceExtends"; id: BabelNodeIdentifier; typeParameters?: BabelNodeTypeParameterInstantiation; } declare class BabelNodeInterfaceDeclaration extends BabelNode { type: "InterfaceDeclaration"; id: BabelNodeIdentifier; typeParameters?: BabelNodeTypeParameterDeclaration; body: BabelNodeObjectTypeAnnotation; mixins?: Array; } declare class BabelNodeIntersectionTypeAnnotation extends BabelNode { type: "IntersectionTypeAnnotation"; types: Array; } 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; indexers?: Array; callProperties?: Array; exact?: 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"; optional?: 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 BabelNodeThisTypeAnnotation extends BabelNode { type: "ThisTypeAnnotation"; } declare class BabelNodeTupleTypeAnnotation extends BabelNode { type: "TupleTypeAnnotation"; types: Array; } 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; } declare class BabelNodeTypeParameterInstantiation extends BabelNode { type: "TypeParameterInstantiation"; params: Array; } declare class BabelNodeUnionTypeAnnotation extends BabelNode { type: "UnionTypeAnnotation"; types: Array; } declare class BabelNodeVariance extends BabelNode { type: "Variance"; kind: "minus" | "plus"; } declare class BabelNodeVoidTypeAnnotation extends BabelNode { type: "VoidTypeAnnotation"; } 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; } declare class BabelNodeJSXElement extends BabelNode { type: "JSXElement"; openingElement: BabelNodeJSXOpeningElement; closingElement?: BabelNodeJSXClosingElement; children: Array; selfClosing: any; } declare class BabelNodeJSXEmptyExpression extends BabelNode { type: "JSXEmptyExpression"; } declare class BabelNodeJSXExpressionContainer extends BabelNode { type: "JSXExpressionContainer"; expression: BabelNodeExpression; } 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; attributes: Array; selfClosing?: boolean; } 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; } declare class BabelNodeJSXOpeningFragment extends BabelNode { type: "JSXOpeningFragment"; } declare class BabelNodeJSXClosingFragment extends BabelNode { type: "JSXClosingFragment"; } declare class BabelNodeNoop extends BabelNode { type: "Noop"; } declare class BabelNodeParenthesizedExpression extends BabelNode { type: "ParenthesizedExpression"; expression: BabelNodeExpression; } declare class BabelNodeAwaitExpression extends BabelNode { type: "AwaitExpression"; argument: BabelNodeExpression; } declare class BabelNodeBindExpression extends BabelNode { type: "BindExpression"; object: any; callee: any; } declare class BabelNodeClassProperty extends BabelNode { type: "ClassProperty"; key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeExpression; value?: BabelNodeExpression; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; decorators?: Array; computed?: boolean; abstract?: boolean; accessibility?: "public" | "private" | "protected"; definite?: boolean; optional?: boolean; readonly?: boolean; } declare class BabelNodeOptionalMemberExpression extends BabelNode { type: "OptionalMemberExpression"; object: BabelNodeExpression; property: any; computed?: boolean; optional: boolean; } declare class BabelNodeOptionalCallExpression extends BabelNode { type: "OptionalCallExpression"; callee: BabelNodeExpression; arguments: Array; optional: boolean; typeParameters?: BabelNodeTypeParameterInstantiation | BabelNodeTSTypeParameterInstantiation; } declare class BabelNodeImport extends BabelNode { type: "Import"; } declare class BabelNodeDecorator extends BabelNode { type: "Decorator"; expression: BabelNodeExpression; } declare class BabelNodeDoExpression extends BabelNode { type: "DoExpression"; body: BabelNodeBlockStatement; } declare class BabelNodeExportDefaultSpecifier extends BabelNode { type: "ExportDefaultSpecifier"; exported: BabelNodeIdentifier; } declare class BabelNodeExportNamespaceSpecifier extends BabelNode { type: "ExportNamespaceSpecifier"; exported: BabelNodeIdentifier; } declare class BabelNodeTSParameterProperty extends BabelNode { type: "TSParameterProperty"; parameter: BabelNodeIdentifier | BabelNodeAssignmentPattern; accessibility?: "public" | "private" | "protected"; readonly?: boolean; } declare class BabelNodeTSDeclareFunction extends BabelNode { type: "TSDeclareFunction"; id?: BabelNodeIdentifier; typeParameters?: BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; params: Array; returnType?: BabelNodeTSTypeAnnotation | BabelNodeNoop; async?: boolean; declare?: boolean; generator?: boolean; } declare class BabelNodeTSDeclareMethod extends BabelNode { type: "TSDeclareMethod"; decorators?: Array; key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeExpression; typeParameters?: BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; params: Array; 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; } declare class BabelNodeTSQualifiedName extends BabelNode { type: "TSQualifiedName"; left: BabelNodeTSEntityName; right: BabelNodeIdentifier; } declare class BabelNodeTSCallSignatureDeclaration extends BabelNode { type: "TSCallSignatureDeclaration"; typeParameters?: BabelNodeTSTypeParameterDeclaration; parameters?: Array; typeAnnotation?: BabelNodeTSTypeAnnotation; } declare class BabelNodeTSConstructSignatureDeclaration extends BabelNode { type: "TSConstructSignatureDeclaration"; typeParameters?: BabelNodeTSTypeParameterDeclaration; parameters?: Array; typeAnnotation?: BabelNodeTSTypeAnnotation; } declare class BabelNodeTSPropertySignature extends BabelNode { type: "TSPropertySignature"; key: BabelNodeExpression; typeAnnotation?: BabelNodeTSTypeAnnotation; initializer?: BabelNodeExpression; computed?: boolean; optional?: boolean; readonly?: boolean; } declare class BabelNodeTSMethodSignature extends BabelNode { type: "TSMethodSignature"; key: BabelNodeExpression; typeParameters?: BabelNodeTSTypeParameterDeclaration; parameters?: Array; typeAnnotation?: BabelNodeTSTypeAnnotation; computed?: boolean; optional?: boolean; } declare class BabelNodeTSIndexSignature extends BabelNode { type: "TSIndexSignature"; parameters: Array; typeAnnotation?: BabelNodeTSTypeAnnotation; readonly?: boolean; } declare class BabelNodeTSAnyKeyword extends BabelNode { type: "TSAnyKeyword"; } declare class BabelNodeTSNumberKeyword extends BabelNode { type: "TSNumberKeyword"; } declare class BabelNodeTSObjectKeyword extends BabelNode { type: "TSObjectKeyword"; } declare class BabelNodeTSBooleanKeyword extends BabelNode { type: "TSBooleanKeyword"; } declare class BabelNodeTSStringKeyword extends BabelNode { type: "TSStringKeyword"; } declare class BabelNodeTSSymbolKeyword extends BabelNode { type: "TSSymbolKeyword"; } declare class BabelNodeTSVoidKeyword extends BabelNode { type: "TSVoidKeyword"; } declare class BabelNodeTSUndefinedKeyword extends BabelNode { type: "TSUndefinedKeyword"; } declare class BabelNodeTSNullKeyword extends BabelNode { type: "TSNullKeyword"; } declare class BabelNodeTSNeverKeyword extends BabelNode { type: "TSNeverKeyword"; } declare class BabelNodeTSThisType extends BabelNode { type: "TSThisType"; } declare class BabelNodeTSFunctionType extends BabelNode { type: "TSFunctionType"; typeParameters?: BabelNodeTSTypeParameterDeclaration; typeAnnotation?: BabelNodeTSTypeAnnotation; parameters?: Array; } declare class BabelNodeTSConstructorType extends BabelNode { type: "TSConstructorType"; typeParameters?: BabelNodeTSTypeParameterDeclaration; typeAnnotation?: BabelNodeTSTypeAnnotation; parameters?: Array; } declare class BabelNodeTSTypeReference extends BabelNode { type: "TSTypeReference"; typeName: BabelNodeTSEntityName; typeParameters?: BabelNodeTSTypeParameterInstantiation; } declare class BabelNodeTSTypePredicate extends BabelNode { type: "TSTypePredicate"; parameterName: BabelNodeIdentifier | BabelNodeTSThisType; typeAnnotation: BabelNodeTSTypeAnnotation; } declare class BabelNodeTSTypeQuery extends BabelNode { type: "TSTypeQuery"; exprName: BabelNodeTSEntityName; } declare class BabelNodeTSTypeLiteral extends BabelNode { type: "TSTypeLiteral"; members: Array; } declare class BabelNodeTSArrayType extends BabelNode { type: "TSArrayType"; elementType: BabelNodeTSType; } declare class BabelNodeTSTupleType extends BabelNode { type: "TSTupleType"; elementTypes: Array; } declare class BabelNodeTSUnionType extends BabelNode { type: "TSUnionType"; types: Array; } declare class BabelNodeTSIntersectionType extends BabelNode { type: "TSIntersectionType"; types: Array; } declare class BabelNodeTSConditionalType extends BabelNode { type: "TSConditionalType"; checkType: BabelNodeTSType; extendsType: BabelNodeTSType; trueType: BabelNodeTSType; falseType: BabelNodeTSType; } declare class BabelNodeTSInferType extends BabelNode { type: "TSInferType"; typeParameter: BabelNodeTSType; } 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; optional?: boolean; readonly?: boolean; } declare class BabelNodeTSLiteralType extends BabelNode { type: "TSLiteralType"; literal: BabelNodeNumericLiteral | BabelNodeStringLiteral | BabelNodeBooleanLiteral; } 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; } declare class BabelNodeTSTypeAliasDeclaration extends BabelNode { type: "TSTypeAliasDeclaration"; id: BabelNodeIdentifier; typeParameters?: BabelNodeTSTypeParameterDeclaration; typeAnnotation: BabelNodeTSType; declare?: boolean; } declare class BabelNodeTSAsExpression extends BabelNode { type: "TSAsExpression"; expression: BabelNodeExpression; typeAnnotation: BabelNodeTSType; } declare class BabelNodeTSTypeAssertion extends BabelNode { type: "TSTypeAssertion"; typeAnnotation: BabelNodeTSType; expression: BabelNodeExpression; } declare class BabelNodeTSEnumDeclaration extends BabelNode { type: "TSEnumDeclaration"; id: BabelNodeIdentifier; members: Array; 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; } declare class BabelNodeTSModuleBlock extends BabelNode { type: "TSModuleBlock"; body: Array; } declare class BabelNodeTSImportEqualsDeclaration extends BabelNode { type: "TSImportEqualsDeclaration"; id: BabelNodeIdentifier; moduleReference: BabelNodeTSEntityName | BabelNodeTSExternalModuleReference; 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: BabelNodeTSType; } declare class BabelNodeTSTypeParameterInstantiation extends BabelNode { type: "TSTypeParameterInstantiation"; params: Array; } declare class BabelNodeTSTypeParameterDeclaration extends BabelNode { type: "TSTypeParameterDeclaration"; params: Array; } declare class BabelNodeTSTypeParameter extends BabelNode { type: "TSTypeParameter"; constraint?: BabelNodeTSType; name?: string; } type BabelNodeExpression = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeCallExpression | BabelNodeConditionalExpression | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeObjectExpression | BabelNodeSequenceExpression | BabelNodeThisExpression | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeArrowFunctionExpression | BabelNodeClassExpression | BabelNodeMetaProperty | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeTypeCastExpression | BabelNodeJSXElement | BabelNodeJSXFragment | BabelNodeParenthesizedExpression | BabelNodeAwaitExpression | BabelNodeBindExpression | BabelNodeOptionalMemberExpression | BabelNodeOptionalCallExpression | BabelNodeImport | BabelNodeDoExpression | BabelNodeTSAsExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression; type BabelNodeBinary = BabelNodeBinaryExpression | BabelNodeLogicalExpression; type BabelNodeScopable = BabelNodeBlockStatement | BabelNodeCatchClause | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeClassDeclaration | BabelNodeClassExpression | BabelNodeForOfStatement | BabelNodeClassMethod; type BabelNodeBlockParent = BabelNodeBlockStatement | BabelNodeCatchClause | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeForOfStatement | BabelNodeClassMethod; type BabelNodeBlock = BabelNodeBlockStatement | BabelNodeProgram; type BabelNodeStatement = BabelNodeBlockStatement | BabelNodeBreakStatement | BabelNodeContinueStatement | BabelNodeDebuggerStatement | BabelNodeDoWhileStatement | BabelNodeEmptyStatement | BabelNodeExpressionStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeIfStatement | BabelNodeLabeledStatement | BabelNodeReturnStatement | BabelNodeSwitchStatement | BabelNodeThrowStatement | BabelNodeTryStatement | BabelNodeVariableDeclaration | BabelNodeWhileStatement | BabelNodeWithStatement | BabelNodeClassDeclaration | BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeForOfStatement | BabelNodeImportDeclaration | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeDeclareExportDeclaration | BabelNodeDeclareExportAllDeclaration | BabelNodeInterfaceDeclaration | BabelNodeOpaqueType | BabelNodeTypeAlias | BabelNodeTSDeclareFunction | BabelNodeTSInterfaceDeclaration | BabelNodeTSTypeAliasDeclaration | BabelNodeTSEnumDeclaration | BabelNodeTSModuleDeclaration | BabelNodeTSImportEqualsDeclaration | BabelNodeTSExportAssignment | BabelNodeTSNamespaceExportDeclaration; type BabelNodeTerminatorless = BabelNodeBreakStatement | BabelNodeContinueStatement | BabelNodeReturnStatement | BabelNodeThrowStatement | BabelNodeYieldExpression | BabelNodeAwaitExpression; type BabelNodeCompletionStatement = BabelNodeBreakStatement | BabelNodeContinueStatement | BabelNodeReturnStatement | BabelNodeThrowStatement; type BabelNodeConditional = BabelNodeConditionalExpression | BabelNodeIfStatement; type BabelNodeLoop = BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeWhileStatement | BabelNodeForOfStatement; type BabelNodeWhile = BabelNodeDoWhileStatement | BabelNodeWhileStatement; type BabelNodeExpressionWrapper = BabelNodeExpressionStatement | BabelNodeTypeCastExpression | BabelNodeParenthesizedExpression; type BabelNodeFor = BabelNodeForInStatement | BabelNodeForStatement | BabelNodeForOfStatement; type BabelNodeForXStatement = BabelNodeForInStatement | BabelNodeForOfStatement; type BabelNodeFunction = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeObjectMethod | BabelNodeArrowFunctionExpression | BabelNodeClassMethod; type BabelNodeFunctionParent = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeObjectMethod | BabelNodeArrowFunctionExpression | BabelNodeClassMethod; type BabelNodePureish = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeArrowFunctionExpression | BabelNodeClassDeclaration | BabelNodeClassExpression; type BabelNodeDeclaration = BabelNodeFunctionDeclaration | BabelNodeVariableDeclaration | BabelNodeClassDeclaration | BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeImportDeclaration | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeDeclareExportDeclaration | BabelNodeDeclareExportAllDeclaration | BabelNodeInterfaceDeclaration | BabelNodeOpaqueType | BabelNodeTypeAlias | BabelNodeTSDeclareFunction | BabelNodeTSInterfaceDeclaration | BabelNodeTSTypeAliasDeclaration | BabelNodeTSEnumDeclaration | BabelNodeTSModuleDeclaration; type BabelNodePatternLike = BabelNodeIdentifier | BabelNodeRestElement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern; type BabelNodeLVal = BabelNodeIdentifier | BabelNodeMemberExpression | BabelNodeRestElement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern | BabelNodeTSParameterProperty; type BabelNodeTSEntityName = BabelNodeIdentifier | BabelNodeTSQualifiedName; type BabelNodeLiteral = BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeTemplateLiteral; type BabelNodeImmutable = BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXExpressionContainer | BabelNodeJSXSpreadChild | BabelNodeJSXOpeningElement | BabelNodeJSXText | BabelNodeJSXFragment | BabelNodeJSXOpeningFragment | BabelNodeJSXClosingFragment; type BabelNodeUserWhitespacable = BabelNodeObjectMethod | BabelNodeObjectProperty | BabelNodeObjectTypeCallProperty | BabelNodeObjectTypeIndexer | BabelNodeObjectTypeProperty | BabelNodeObjectTypeSpreadProperty; type BabelNodeMethod = BabelNodeObjectMethod | BabelNodeClassMethod; type BabelNodeObjectMember = BabelNodeObjectMethod | BabelNodeObjectProperty; type BabelNodeProperty = BabelNodeObjectProperty | BabelNodeClassProperty; type BabelNodeUnaryLike = BabelNodeUnaryExpression | BabelNodeSpreadElement; type BabelNodePattern = BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern; type BabelNodeClass = BabelNodeClassDeclaration | BabelNodeClassExpression; type BabelNodeModuleDeclaration = BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeImportDeclaration; type BabelNodeExportDeclaration = BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration; type BabelNodeModuleSpecifier = BabelNodeExportSpecifier | BabelNodeImportDefaultSpecifier | BabelNodeImportNamespaceSpecifier | BabelNodeImportSpecifier | BabelNodeExportDefaultSpecifier | BabelNodeExportNamespaceSpecifier; type BabelNodeFlow = BabelNodeAnyTypeAnnotation | BabelNodeArrayTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeBooleanLiteralTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeClassImplements | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeDeclareExportDeclaration | BabelNodeDeclareExportAllDeclaration | BabelNodeDeclaredPredicate | BabelNodeExistsTypeAnnotation | BabelNodeFunctionTypeAnnotation | BabelNodeFunctionTypeParam | BabelNodeGenericTypeAnnotation | BabelNodeInferredPredicate | BabelNodeInterfaceExtends | BabelNodeInterfaceDeclaration | BabelNodeIntersectionTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeEmptyTypeAnnotation | BabelNodeNullableTypeAnnotation | BabelNodeNumberLiteralTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeObjectTypeAnnotation | BabelNodeObjectTypeCallProperty | BabelNodeObjectTypeIndexer | BabelNodeObjectTypeProperty | BabelNodeObjectTypeSpreadProperty | BabelNodeOpaqueType | BabelNodeQualifiedTypeIdentifier | BabelNodeStringLiteralTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeTupleTypeAnnotation | BabelNodeTypeofTypeAnnotation | BabelNodeTypeAlias | BabelNodeTypeAnnotation | BabelNodeTypeCastExpression | BabelNodeTypeParameter | BabelNodeTypeParameterDeclaration | BabelNodeTypeParameterInstantiation | BabelNodeUnionTypeAnnotation | BabelNodeVariance | BabelNodeVoidTypeAnnotation; type BabelNodeFlowType = BabelNodeAnyTypeAnnotation | BabelNodeArrayTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeBooleanLiteralTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeExistsTypeAnnotation | BabelNodeFunctionTypeAnnotation | BabelNodeGenericTypeAnnotation | BabelNodeIntersectionTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeEmptyTypeAnnotation | BabelNodeNullableTypeAnnotation | BabelNodeNumberLiteralTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeObjectTypeAnnotation | BabelNodeStringLiteralTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeTupleTypeAnnotation | BabelNodeTypeofTypeAnnotation | BabelNodeUnionTypeAnnotation | BabelNodeVoidTypeAnnotation; type BabelNodeFlowBaseAnnotation = BabelNodeAnyTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeEmptyTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeVoidTypeAnnotation; type BabelNodeFlowDeclaration = BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeDeclareExportDeclaration | BabelNodeDeclareExportAllDeclaration | BabelNodeInterfaceDeclaration | BabelNodeOpaqueType | BabelNodeTypeAlias; type BabelNodeFlowPredicate = BabelNodeDeclaredPredicate | BabelNodeInferredPredicate; type BabelNodeJSX = BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXEmptyExpression | BabelNodeJSXExpressionContainer | BabelNodeJSXSpreadChild | BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeJSXNamespacedName | BabelNodeJSXOpeningElement | BabelNodeJSXSpreadAttribute | BabelNodeJSXText | BabelNodeJSXFragment | BabelNodeJSXOpeningFragment | BabelNodeJSXClosingFragment; type BabelNodeTSTypeElement = BabelNodeTSCallSignatureDeclaration | BabelNodeTSConstructSignatureDeclaration | BabelNodeTSPropertySignature | BabelNodeTSMethodSignature | BabelNodeTSIndexSignature; type BabelNodeTSType = BabelNodeTSAnyKeyword | BabelNodeTSNumberKeyword | BabelNodeTSObjectKeyword | BabelNodeTSBooleanKeyword | BabelNodeTSStringKeyword | BabelNodeTSSymbolKeyword | BabelNodeTSVoidKeyword | BabelNodeTSUndefinedKeyword | BabelNodeTSNullKeyword | BabelNodeTSNeverKeyword | BabelNodeTSThisType | BabelNodeTSFunctionType | BabelNodeTSConstructorType | BabelNodeTSTypeReference | BabelNodeTSTypePredicate | BabelNodeTSTypeQuery | BabelNodeTSTypeLiteral | BabelNodeTSArrayType | BabelNodeTSTupleType | BabelNodeTSUnionType | BabelNodeTSIntersectionType | BabelNodeTSConditionalType | BabelNodeTSInferType | BabelNodeTSParenthesizedType | BabelNodeTSTypeOperator | BabelNodeTSIndexedAccessType | BabelNodeTSMappedType | BabelNodeTSLiteralType | BabelNodeTSExpressionWithTypeArguments; declare module "@babel/types" { declare function arrayExpression(elements?: Array): BabelNodeArrayExpression; declare function assignmentExpression(operator: string, left: BabelNodeLVal, right: BabelNodeExpression): BabelNodeAssignmentExpression; declare function binaryExpression(operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=", left: BabelNodeExpression, right: BabelNodeExpression): BabelNodeBinaryExpression; declare function directive(value: BabelNodeDirectiveLiteral): BabelNodeDirective; declare function directiveLiteral(value: string): BabelNodeDirectiveLiteral; declare function blockStatement(body: Array, directives?: Array): BabelNodeBlockStatement; declare function breakStatement(label?: BabelNodeIdentifier): BabelNodeBreakStatement; declare function callExpression(callee: BabelNodeExpression, _arguments: Array, optional?: true | false, typeParameters?: BabelNodeTypeParameterInstantiation | BabelNodeTSTypeParameterInstantiation): BabelNodeCallExpression; declare function catchClause(param?: BabelNodeIdentifier, body: BabelNodeBlockStatement): BabelNodeCatchClause; declare function conditionalExpression(test: BabelNodeExpression, consequent: BabelNodeExpression, alternate: BabelNodeExpression): BabelNodeConditionalExpression; declare function continueStatement(label?: BabelNodeIdentifier): BabelNodeContinueStatement; declare function debuggerStatement(): BabelNodeDebuggerStatement; declare function doWhileStatement(test: BabelNodeExpression, body: BabelNodeStatement): BabelNodeDoWhileStatement; declare function emptyStatement(): BabelNodeEmptyStatement; declare function expressionStatement(expression: BabelNodeExpression): BabelNodeExpressionStatement; declare function file(program: BabelNodeProgram, comments: any, tokens: any): BabelNodeFile; declare function forInStatement(left: BabelNodeVariableDeclaration | BabelNodeLVal, right: BabelNodeExpression, body: BabelNodeStatement): BabelNodeForInStatement; declare function forStatement(init?: BabelNodeVariableDeclaration | BabelNodeExpression, test?: BabelNodeExpression, update?: BabelNodeExpression, body: BabelNodeStatement): BabelNodeForStatement; declare function functionDeclaration(id?: BabelNodeIdentifier, params: Array, body: BabelNodeBlockStatement, generator?: boolean, async?: boolean, declare?: boolean, returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop): BabelNodeFunctionDeclaration; declare function functionExpression(id?: BabelNodeIdentifier, params: Array, body: BabelNodeBlockStatement, generator?: boolean, async?: boolean, returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop): BabelNodeFunctionExpression; declare function identifier(name: string, decorators?: Array, optional?: boolean, typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop): BabelNodeIdentifier; declare function ifStatement(test: BabelNodeExpression, consequent: BabelNodeStatement, alternate?: BabelNodeStatement): BabelNodeIfStatement; declare function labeledStatement(label: BabelNodeIdentifier, body: BabelNodeStatement): BabelNodeLabeledStatement; declare function stringLiteral(value: string): BabelNodeStringLiteral; declare function numericLiteral(value: number): BabelNodeNumericLiteral; declare function nullLiteral(): BabelNodeNullLiteral; declare function booleanLiteral(value: boolean): BabelNodeBooleanLiteral; declare function regExpLiteral(pattern: string, flags?: string): BabelNodeRegExpLiteral; declare function logicalExpression(operator: "||" | "&&" | "??", left: BabelNodeExpression, right: BabelNodeExpression): BabelNodeLogicalExpression; declare function memberExpression(object: BabelNodeExpression, property: any, computed?: boolean, optional?: true | false): BabelNodeMemberExpression; declare function newExpression(callee: BabelNodeExpression, _arguments: Array, optional?: true | false, typeParameters?: BabelNodeTypeParameterInstantiation | BabelNodeTSTypeParameterInstantiation): BabelNodeNewExpression; declare function program(body: Array, directives?: Array, sourceType?: "script" | "module", sourceFile?: string): BabelNodeProgram; declare function objectExpression(properties: Array): BabelNodeObjectExpression; declare function objectMethod(kind?: "method" | "get" | "set", key: any, params: Array, body: BabelNodeBlockStatement, computed?: boolean, async?: boolean, decorators?: Array, generator?: boolean, returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop): BabelNodeObjectMethod; declare function objectProperty(key: any, value: BabelNodeExpression | BabelNodePatternLike, computed?: boolean, shorthand?: boolean, decorators?: Array): BabelNodeObjectProperty; declare function restElement(argument: BabelNodeLVal, decorators?: Array, typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop): BabelNodeRestElement; declare function returnStatement(argument?: BabelNodeExpression): BabelNodeReturnStatement; declare function sequenceExpression(expressions: Array): BabelNodeSequenceExpression; declare function switchCase(test?: BabelNodeExpression, consequent: Array): BabelNodeSwitchCase; declare function switchStatement(discriminant: BabelNodeExpression, cases: Array): BabelNodeSwitchStatement; declare function thisExpression(): BabelNodeThisExpression; declare function throwStatement(argument: BabelNodeExpression): BabelNodeThrowStatement; declare function tryStatement(block: BabelNodeBlockStatement, handler?: BabelNodeCatchClause, finalizer?: BabelNodeBlockStatement): BabelNodeTryStatement; declare function unaryExpression(operator: "void" | "throw" | "delete" | "!" | "+" | "-" | "~" | "typeof", argument: BabelNodeExpression, prefix?: boolean): BabelNodeUnaryExpression; declare function updateExpression(operator: "++" | "--", argument: BabelNodeExpression, prefix?: boolean): BabelNodeUpdateExpression; declare function variableDeclaration(kind: "var" | "let" | "const", declarations: Array, declare?: boolean): BabelNodeVariableDeclaration; declare function variableDeclarator(id: BabelNodeLVal, init?: BabelNodeExpression, definite?: boolean): BabelNodeVariableDeclarator; declare function whileStatement(test: BabelNodeExpression, body: BabelNodeBlockStatement | BabelNodeStatement): BabelNodeWhileStatement; declare function withStatement(object: BabelNodeExpression, body: BabelNodeBlockStatement | BabelNodeStatement): BabelNodeWithStatement; declare function assignmentPattern(left: BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeArrayPattern, right: BabelNodeExpression, decorators?: Array, typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop): BabelNodeAssignmentPattern; declare function arrayPattern(elements: Array, decorators?: Array, typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop): BabelNodeArrayPattern; declare function arrowFunctionExpression(params: Array, body: BabelNodeBlockStatement | BabelNodeExpression, async?: boolean, expression?: boolean, generator?: boolean, returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop): BabelNodeArrowFunctionExpression; declare function classBody(body: Array): BabelNodeClassBody; declare function classDeclaration(id?: BabelNodeIdentifier, superClass?: BabelNodeExpression, body: BabelNodeClassBody, decorators?: Array, abstract?: boolean, declare?: boolean, _implements?: Array, mixins?: any, superTypeParameters?: BabelNodeTypeParameterInstantiation | BabelNodeTSTypeParameterInstantiation, typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop): BabelNodeClassDeclaration; declare function classExpression(id?: BabelNodeIdentifier, superClass?: BabelNodeExpression, body: BabelNodeClassBody, decorators?: Array, _implements?: Array, mixins?: any, superTypeParameters?: BabelNodeTypeParameterInstantiation | BabelNodeTSTypeParameterInstantiation, typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop): BabelNodeClassExpression; declare function exportAllDeclaration(source: BabelNodeStringLiteral): BabelNodeExportAllDeclaration; declare function exportDefaultDeclaration(declaration: BabelNodeFunctionDeclaration | BabelNodeTSDeclareFunction | BabelNodeClassDeclaration | BabelNodeExpression): BabelNodeExportDefaultDeclaration; declare function exportNamedDeclaration(declaration?: BabelNodeDeclaration, specifiers: Array, source?: BabelNodeStringLiteral): BabelNodeExportNamedDeclaration; declare function exportSpecifier(local: BabelNodeIdentifier, exported: BabelNodeIdentifier): BabelNodeExportSpecifier; declare function forOfStatement(left: BabelNodeVariableDeclaration | BabelNodeLVal, right: BabelNodeExpression, body: BabelNodeStatement, _await?: boolean): BabelNodeForOfStatement; declare function importDeclaration(specifiers: Array, source: BabelNodeStringLiteral): BabelNodeImportDeclaration; declare function importDefaultSpecifier(local: BabelNodeIdentifier): BabelNodeImportDefaultSpecifier; declare function importNamespaceSpecifier(local: BabelNodeIdentifier): BabelNodeImportNamespaceSpecifier; declare function importSpecifier(local: BabelNodeIdentifier, imported: BabelNodeIdentifier, importKind?: null | "type" | "typeof"): BabelNodeImportSpecifier; declare function metaProperty(meta: BabelNodeIdentifier, property: BabelNodeIdentifier): BabelNodeMetaProperty; declare function classMethod(kind?: "get" | "set" | "method" | "constructor", key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeExpression, params: Array, body: BabelNodeBlockStatement, computed?: boolean, _static?: boolean, abstract?: boolean, access?: "public" | "private" | "protected", accessibility?: "public" | "private" | "protected", async?: boolean, decorators?: Array, generator?: boolean, optional?: boolean, returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop): BabelNodeClassMethod; declare function objectPattern(properties: Array, decorators?: Array, typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop): BabelNodeObjectPattern; declare function spreadElement(argument: BabelNodeExpression): BabelNodeSpreadElement; declare function taggedTemplateExpression(tag: BabelNodeExpression, quasi: BabelNodeTemplateLiteral): BabelNodeTaggedTemplateExpression; declare function templateElement(value: any, tail?: boolean): BabelNodeTemplateElement; declare function templateLiteral(quasis: Array, expressions: Array): BabelNodeTemplateLiteral; declare function yieldExpression(argument?: BabelNodeExpression, delegate?: boolean): BabelNodeYieldExpression; declare function anyTypeAnnotation(): BabelNodeAnyTypeAnnotation; declare function arrayTypeAnnotation(elementType: BabelNodeFlowType): BabelNodeArrayTypeAnnotation; declare function booleanTypeAnnotation(): BabelNodeBooleanTypeAnnotation; declare function booleanLiteralTypeAnnotation(value?: boolean): BabelNodeBooleanLiteralTypeAnnotation; declare function nullLiteralTypeAnnotation(): BabelNodeNullLiteralTypeAnnotation; declare function classImplements(id: BabelNodeIdentifier, typeParameters?: BabelNodeTypeParameterInstantiation): BabelNodeClassImplements; declare function declareClass(id: BabelNodeIdentifier, typeParameters?: BabelNodeTypeParameterInstantiation, _extends?: Array, body: BabelNodeObjectTypeAnnotation, mixins?: Array): BabelNodeDeclareClass; declare function declareFunction(id: BabelNodeIdentifier, predicate?: BabelNodeDeclaredPredicate): BabelNodeDeclareFunction; declare function declareInterface(id: BabelNodeIdentifier, typeParameters?: BabelNodeTypeParameterDeclaration, _extends?: BabelNodeInterfaceExtends, body: BabelNodeObjectTypeAnnotation, mixins?: Array): BabelNodeDeclareInterface; declare function declareModule(id: BabelNodeIdentifier | BabelNodeStringLiteral, body: BabelNodeBlockStatement, kind?: "CommonJS" | "ES"): BabelNodeDeclareModule; declare function declareModuleExports(typeAnnotation: BabelNodeTypeAnnotation): BabelNodeDeclareModuleExports; declare function declareTypeAlias(id: BabelNodeIdentifier, typeParameters?: BabelNodeTypeParameterDeclaration, right: BabelNodeFlowType): BabelNodeDeclareTypeAlias; declare function declareOpaqueType(id: BabelNodeIdentifier, typeParameters?: BabelNodeTypeParameterDeclaration, supertype?: BabelNodeFlowType): BabelNodeDeclareOpaqueType; declare function declareVariable(id: BabelNodeIdentifier): BabelNodeDeclareVariable; declare function declareExportDeclaration(declaration?: BabelNodeFlow, specifiers?: Array, source?: BabelNodeStringLiteral, _default?: boolean): BabelNodeDeclareExportDeclaration; declare function declareExportAllDeclaration(source: BabelNodeStringLiteral, exportKind?: ["type","value"]): BabelNodeDeclareExportAllDeclaration; declare function declaredPredicate(value: BabelNodeFlow): BabelNodeDeclaredPredicate; declare function existsTypeAnnotation(): BabelNodeExistsTypeAnnotation; declare function functionTypeAnnotation(typeParameters?: BabelNodeTypeParameterDeclaration, params: Array, rest?: BabelNodeFunctionTypeParam, returnType: BabelNodeFlowType): BabelNodeFunctionTypeAnnotation; declare function functionTypeParam(name?: BabelNodeIdentifier, typeAnnotation: BabelNodeFlowType, optional?: boolean): BabelNodeFunctionTypeParam; declare function genericTypeAnnotation(id: BabelNodeIdentifier, typeParameters?: BabelNodeTypeParameterInstantiation): BabelNodeGenericTypeAnnotation; declare function inferredPredicate(): BabelNodeInferredPredicate; declare function interfaceExtends(id: BabelNodeIdentifier, typeParameters?: BabelNodeTypeParameterInstantiation): BabelNodeInterfaceExtends; declare function interfaceDeclaration(id: BabelNodeIdentifier, typeParameters?: BabelNodeTypeParameterDeclaration, _extends: Array, body: BabelNodeObjectTypeAnnotation, mixins?: Array): BabelNodeInterfaceDeclaration; declare function intersectionTypeAnnotation(types: Array): BabelNodeIntersectionTypeAnnotation; declare function mixedTypeAnnotation(): BabelNodeMixedTypeAnnotation; declare function emptyTypeAnnotation(): BabelNodeEmptyTypeAnnotation; declare function nullableTypeAnnotation(typeAnnotation: BabelNodeFlowType): BabelNodeNullableTypeAnnotation; declare function numberLiteralTypeAnnotation(value?: number): BabelNodeNumberLiteralTypeAnnotation; declare function numberTypeAnnotation(): BabelNodeNumberTypeAnnotation; declare function objectTypeAnnotation(properties: Array, indexers?: Array, callProperties?: Array, exact?: boolean): BabelNodeObjectTypeAnnotation; declare function objectTypeCallProperty(value: BabelNodeFlowType, _static?: boolean): BabelNodeObjectTypeCallProperty; declare function objectTypeIndexer(id?: BabelNodeIdentifier, key: BabelNodeFlowType, value: BabelNodeFlowType, variance?: BabelNodeVariance, _static?: boolean): BabelNodeObjectTypeIndexer; declare function objectTypeProperty(key: BabelNodeIdentifier | BabelNodeStringLiteral, value: BabelNodeFlowType, variance?: BabelNodeVariance, kind?: "init" | "get" | "set", optional?: boolean, _static?: boolean): BabelNodeObjectTypeProperty; declare function objectTypeSpreadProperty(argument: BabelNodeFlowType): BabelNodeObjectTypeSpreadProperty; declare function opaqueType(id: BabelNodeIdentifier, typeParameters?: BabelNodeTypeParameterDeclaration, supertype?: BabelNodeFlowType, impltype: BabelNodeFlowType): BabelNodeOpaqueType; declare function qualifiedTypeIdentifier(id: BabelNodeIdentifier, qualification: BabelNodeIdentifier | BabelNodeQualifiedTypeIdentifier): BabelNodeQualifiedTypeIdentifier; declare function stringLiteralTypeAnnotation(value?: string): BabelNodeStringLiteralTypeAnnotation; declare function stringTypeAnnotation(): BabelNodeStringTypeAnnotation; declare function thisTypeAnnotation(): BabelNodeThisTypeAnnotation; declare function tupleTypeAnnotation(types: Array): BabelNodeTupleTypeAnnotation; declare function typeofTypeAnnotation(argument: BabelNodeFlowType): BabelNodeTypeofTypeAnnotation; declare function typeAlias(id: BabelNodeIdentifier, typeParameters?: BabelNodeTypeParameterDeclaration, right: BabelNodeFlowType): BabelNodeTypeAlias; declare function typeAnnotation(typeAnnotation: BabelNodeFlowType): BabelNodeTypeAnnotation; declare function typeCastExpression(expression: BabelNodeExpression, typeAnnotation: BabelNodeTypeAnnotation): BabelNodeTypeCastExpression; declare function typeParameter(bound?: BabelNodeTypeAnnotation, _default?: BabelNodeFlowType, variance?: BabelNodeVariance, name?: string): BabelNodeTypeParameter; declare function typeParameterDeclaration(params: Array): BabelNodeTypeParameterDeclaration; declare function typeParameterInstantiation(params: Array): BabelNodeTypeParameterInstantiation; declare function unionTypeAnnotation(types: Array): BabelNodeUnionTypeAnnotation; declare function variance(kind: "minus" | "plus"): BabelNodeVariance; declare function voidTypeAnnotation(): BabelNodeVoidTypeAnnotation; declare function jsxAttribute(name: BabelNodeJSXIdentifier | BabelNodeJSXNamespacedName, value?: BabelNodeJSXElement | BabelNodeJSXFragment | BabelNodeStringLiteral | BabelNodeJSXExpressionContainer): BabelNodeJSXAttribute; declare function jsxClosingElement(name: BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression): BabelNodeJSXClosingElement; declare function jsxElement(openingElement: BabelNodeJSXOpeningElement, closingElement?: BabelNodeJSXClosingElement, children: Array, selfClosing: any): BabelNodeJSXElement; declare function jsxEmptyExpression(): BabelNodeJSXEmptyExpression; declare function jsxExpressionContainer(expression: BabelNodeExpression): BabelNodeJSXExpressionContainer; declare function jsxSpreadChild(expression: BabelNodeExpression): BabelNodeJSXSpreadChild; declare function jsxIdentifier(name: string): BabelNodeJSXIdentifier; declare function jsxMemberExpression(object: BabelNodeJSXMemberExpression | BabelNodeJSXIdentifier, property: BabelNodeJSXIdentifier): BabelNodeJSXMemberExpression; declare function jsxNamespacedName(namespace: BabelNodeJSXIdentifier, name: BabelNodeJSXIdentifier): BabelNodeJSXNamespacedName; declare function jsxOpeningElement(name: BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression, attributes: Array, selfClosing?: boolean): BabelNodeJSXOpeningElement; declare function jsxSpreadAttribute(argument: BabelNodeExpression): BabelNodeJSXSpreadAttribute; declare function jsxText(value: string): BabelNodeJSXText; declare function jsxFragment(openingFragment: BabelNodeJSXOpeningFragment, closingFragment: BabelNodeJSXClosingFragment, children: Array): BabelNodeJSXFragment; declare function jsxOpeningFragment(): BabelNodeJSXOpeningFragment; declare function jsxClosingFragment(): BabelNodeJSXClosingFragment; declare function noop(): BabelNodeNoop; declare function parenthesizedExpression(expression: BabelNodeExpression): BabelNodeParenthesizedExpression; declare function awaitExpression(argument: BabelNodeExpression): BabelNodeAwaitExpression; declare function bindExpression(object: any, callee: any): BabelNodeBindExpression; declare function classProperty(key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeExpression, value?: BabelNodeExpression, typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, decorators?: Array, computed?: boolean, abstract?: boolean, accessibility?: "public" | "private" | "protected", definite?: boolean, optional?: boolean, readonly?: boolean, _static?: boolean): BabelNodeClassProperty; declare function optionalMemberExpression(object: BabelNodeExpression, property: any, computed?: boolean, optional: boolean): BabelNodeOptionalMemberExpression; declare function optionalCallExpression(callee: BabelNodeExpression, _arguments: Array, optional: boolean, typeParameters?: BabelNodeTypeParameterInstantiation | BabelNodeTSTypeParameterInstantiation): BabelNodeOptionalCallExpression; declare function decorator(expression: BabelNodeExpression): BabelNodeDecorator; declare function doExpression(body: BabelNodeBlockStatement): BabelNodeDoExpression; declare function exportDefaultSpecifier(exported: BabelNodeIdentifier): BabelNodeExportDefaultSpecifier; declare function exportNamespaceSpecifier(exported: BabelNodeIdentifier): BabelNodeExportNamespaceSpecifier; declare function tsParameterProperty(parameter: BabelNodeIdentifier | BabelNodeAssignmentPattern, accessibility?: "public" | "private" | "protected", readonly?: boolean): BabelNodeTSParameterProperty; declare function tsDeclareFunction(id?: BabelNodeIdentifier, typeParameters?: BabelNodeTSTypeParameterDeclaration | BabelNodeNoop, params: Array, returnType?: BabelNodeTSTypeAnnotation | BabelNodeNoop, async?: boolean, declare?: boolean, generator?: boolean): BabelNodeTSDeclareFunction; declare function tsDeclareMethod(decorators?: Array, key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeExpression, typeParameters?: BabelNodeTSTypeParameterDeclaration | BabelNodeNoop, params: Array, 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, _static?: boolean): BabelNodeTSDeclareMethod; declare function tsQualifiedName(left: BabelNodeTSEntityName, right: BabelNodeIdentifier): BabelNodeTSQualifiedName; declare function tsCallSignatureDeclaration(typeParameters?: BabelNodeTSTypeParameterDeclaration, parameters?: Array, typeAnnotation?: BabelNodeTSTypeAnnotation): BabelNodeTSCallSignatureDeclaration; declare function tsConstructSignatureDeclaration(typeParameters?: BabelNodeTSTypeParameterDeclaration, parameters?: Array, typeAnnotation?: BabelNodeTSTypeAnnotation): BabelNodeTSConstructSignatureDeclaration; declare function tsPropertySignature(key: BabelNodeExpression, typeAnnotation?: BabelNodeTSTypeAnnotation, initializer?: BabelNodeExpression, computed?: boolean, optional?: boolean, readonly?: boolean): BabelNodeTSPropertySignature; declare function tsMethodSignature(key: BabelNodeExpression, typeParameters?: BabelNodeTSTypeParameterDeclaration, parameters?: Array, typeAnnotation?: BabelNodeTSTypeAnnotation, computed?: boolean, optional?: boolean): BabelNodeTSMethodSignature; declare function tsIndexSignature(parameters: Array, typeAnnotation?: BabelNodeTSTypeAnnotation, readonly?: boolean): BabelNodeTSIndexSignature; declare function tsAnyKeyword(): BabelNodeTSAnyKeyword; declare function tsNumberKeyword(): BabelNodeTSNumberKeyword; declare function tsObjectKeyword(): BabelNodeTSObjectKeyword; declare function tsBooleanKeyword(): BabelNodeTSBooleanKeyword; declare function tsStringKeyword(): BabelNodeTSStringKeyword; declare function tsSymbolKeyword(): BabelNodeTSSymbolKeyword; declare function tsVoidKeyword(): BabelNodeTSVoidKeyword; declare function tsUndefinedKeyword(): BabelNodeTSUndefinedKeyword; declare function tsNullKeyword(): BabelNodeTSNullKeyword; declare function tsNeverKeyword(): BabelNodeTSNeverKeyword; declare function tsThisType(): BabelNodeTSThisType; declare function tsFunctionType(typeParameters?: BabelNodeTSTypeParameterDeclaration, typeAnnotation?: BabelNodeTSTypeAnnotation, parameters?: Array): BabelNodeTSFunctionType; declare function tsConstructorType(typeParameters?: BabelNodeTSTypeParameterDeclaration, typeAnnotation?: BabelNodeTSTypeAnnotation, parameters?: Array): BabelNodeTSConstructorType; declare function tsTypeReference(typeName: BabelNodeTSEntityName, typeParameters?: BabelNodeTSTypeParameterInstantiation): BabelNodeTSTypeReference; declare function tsTypePredicate(parameterName: BabelNodeIdentifier | BabelNodeTSThisType, typeAnnotation: BabelNodeTSTypeAnnotation): BabelNodeTSTypePredicate; declare function tsTypeQuery(exprName: BabelNodeTSEntityName): BabelNodeTSTypeQuery; declare function tsTypeLiteral(members: Array): BabelNodeTSTypeLiteral; declare function tsArrayType(elementType: BabelNodeTSType): BabelNodeTSArrayType; declare function tsTupleType(elementTypes: Array): BabelNodeTSTupleType; declare function tsUnionType(types: Array): BabelNodeTSUnionType; declare function tsIntersectionType(types: Array): BabelNodeTSIntersectionType; declare function tsConditionalType(checkType: BabelNodeTSType, extendsType: BabelNodeTSType, trueType: BabelNodeTSType, falseType: BabelNodeTSType): BabelNodeTSConditionalType; declare function tsInferType(typeParameter: BabelNodeTSType): BabelNodeTSInferType; declare function tsParenthesizedType(typeAnnotation: BabelNodeTSType): BabelNodeTSParenthesizedType; declare function tsTypeOperator(typeAnnotation: BabelNodeTSType, operator?: string): BabelNodeTSTypeOperator; declare function tsIndexedAccessType(objectType: BabelNodeTSType, indexType: BabelNodeTSType): BabelNodeTSIndexedAccessType; declare function tsMappedType(typeParameter: BabelNodeTSTypeParameter, typeAnnotation?: BabelNodeTSType, optional?: boolean, readonly?: boolean): BabelNodeTSMappedType; declare function tsLiteralType(literal: BabelNodeNumericLiteral | BabelNodeStringLiteral | BabelNodeBooleanLiteral): BabelNodeTSLiteralType; declare function tsExpressionWithTypeArguments(expression: BabelNodeTSEntityName, typeParameters?: BabelNodeTSTypeParameterInstantiation): BabelNodeTSExpressionWithTypeArguments; declare function tsInterfaceDeclaration(id: BabelNodeIdentifier, typeParameters?: BabelNodeTSTypeParameterDeclaration, _extends?: Array, body: BabelNodeTSInterfaceBody, declare?: boolean): BabelNodeTSInterfaceDeclaration; declare function tsInterfaceBody(body: Array): BabelNodeTSInterfaceBody; declare function tsTypeAliasDeclaration(id: BabelNodeIdentifier, typeParameters?: BabelNodeTSTypeParameterDeclaration, typeAnnotation: BabelNodeTSType, declare?: boolean): BabelNodeTSTypeAliasDeclaration; declare function tsAsExpression(expression: BabelNodeExpression, typeAnnotation: BabelNodeTSType): BabelNodeTSAsExpression; declare function tsTypeAssertion(typeAnnotation: BabelNodeTSType, expression: BabelNodeExpression): BabelNodeTSTypeAssertion; declare function tsEnumDeclaration(id: BabelNodeIdentifier, members: Array, _const?: boolean, declare?: boolean, initializer?: BabelNodeExpression): BabelNodeTSEnumDeclaration; declare function tsEnumMember(id: BabelNodeIdentifier | BabelNodeStringLiteral, initializer?: BabelNodeExpression): BabelNodeTSEnumMember; declare function tsModuleDeclaration(id: BabelNodeIdentifier | BabelNodeStringLiteral, body: BabelNodeTSModuleBlock | BabelNodeTSModuleDeclaration, declare?: boolean, global?: boolean): BabelNodeTSModuleDeclaration; declare function tsModuleBlock(body: Array): BabelNodeTSModuleBlock; declare function tsImportEqualsDeclaration(id: BabelNodeIdentifier, moduleReference: BabelNodeTSEntityName | BabelNodeTSExternalModuleReference, isExport?: boolean): BabelNodeTSImportEqualsDeclaration; declare function tsExternalModuleReference(expression: BabelNodeStringLiteral): BabelNodeTSExternalModuleReference; declare function tsNonNullExpression(expression: BabelNodeExpression): BabelNodeTSNonNullExpression; declare function tsExportAssignment(expression: BabelNodeExpression): BabelNodeTSExportAssignment; declare function tsNamespaceExportDeclaration(id: BabelNodeIdentifier): BabelNodeTSNamespaceExportDeclaration; declare function tsTypeAnnotation(typeAnnotation: BabelNodeTSType): BabelNodeTSTypeAnnotation; declare function tsTypeParameterInstantiation(params: Array): BabelNodeTSTypeParameterInstantiation; declare function tsTypeParameterDeclaration(params: Array): BabelNodeTSTypeParameterDeclaration; declare function tsTypeParameter(constraint?: BabelNodeTSType, _default?: BabelNodeTSType, name?: string): BabelNodeTSTypeParameter; declare function isArrayExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeArrayExpression) declare function isAssignmentExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeAssignmentExpression) declare function isBinaryExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeBinaryExpression) declare function isDirective(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDirective) declare function isDirectiveLiteral(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDirectiveLiteral) declare function isBlockStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeBlockStatement) declare function isBreakStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeBreakStatement) declare function isCallExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeCallExpression) declare function isCatchClause(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeCatchClause) declare function isConditionalExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeConditionalExpression) declare function isContinueStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeContinueStatement) declare function isDebuggerStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDebuggerStatement) declare function isDoWhileStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDoWhileStatement) declare function isEmptyStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeEmptyStatement) declare function isExpressionStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeExpressionStatement) declare function isFile(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeFile) declare function isForInStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeForInStatement) declare function isForStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeForStatement) declare function isFunctionDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeFunctionDeclaration) declare function isFunctionExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeFunctionExpression) declare function isIdentifier(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeIdentifier) declare function isIfStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeIfStatement) declare function isLabeledStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeLabeledStatement) declare function isStringLiteral(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeStringLiteral) declare function isNumericLiteral(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeNumericLiteral) declare function isNullLiteral(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeNullLiteral) declare function isBooleanLiteral(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeBooleanLiteral) declare function isRegExpLiteral(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeRegExpLiteral) declare function isLogicalExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeLogicalExpression) declare function isMemberExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeMemberExpression) declare function isNewExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeNewExpression) declare function isProgram(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeProgram) declare function isObjectExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeObjectExpression) declare function isObjectMethod(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeObjectMethod) declare function isObjectProperty(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeObjectProperty) declare function isRestElement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeRestElement) declare function isReturnStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeReturnStatement) declare function isSequenceExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeSequenceExpression) declare function isSwitchCase(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeSwitchCase) declare function isSwitchStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeSwitchStatement) declare function isThisExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeThisExpression) declare function isThrowStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeThrowStatement) declare function isTryStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTryStatement) declare function isUnaryExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeUnaryExpression) declare function isUpdateExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeUpdateExpression) declare function isVariableDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeVariableDeclaration) declare function isVariableDeclarator(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeVariableDeclarator) declare function isWhileStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeWhileStatement) declare function isWithStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeWithStatement) declare function isAssignmentPattern(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeAssignmentPattern) declare function isArrayPattern(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeArrayPattern) declare function isArrowFunctionExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeArrowFunctionExpression) declare function isClassBody(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeClassBody) declare function isClassDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeClassDeclaration) declare function isClassExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeClassExpression) declare function isExportAllDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeExportAllDeclaration) declare function isExportDefaultDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeExportDefaultDeclaration) declare function isExportNamedDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeExportNamedDeclaration) declare function isExportSpecifier(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeExportSpecifier) declare function isForOfStatement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeForOfStatement) declare function isImportDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeImportDeclaration) declare function isImportDefaultSpecifier(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeImportDefaultSpecifier) declare function isImportNamespaceSpecifier(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeImportNamespaceSpecifier) declare function isImportSpecifier(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeImportSpecifier) declare function isMetaProperty(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeMetaProperty) declare function isClassMethod(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeClassMethod) declare function isObjectPattern(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeObjectPattern) declare function isSpreadElement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeSpreadElement) declare function isSuper(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeSuper) declare function isTaggedTemplateExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTaggedTemplateExpression) declare function isTemplateElement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTemplateElement) declare function isTemplateLiteral(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTemplateLiteral) declare function isYieldExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeYieldExpression) declare function isAnyTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeAnyTypeAnnotation) declare function isArrayTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeArrayTypeAnnotation) declare function isBooleanTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeBooleanTypeAnnotation) declare function isBooleanLiteralTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeBooleanLiteralTypeAnnotation) declare function isNullLiteralTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeNullLiteralTypeAnnotation) declare function isClassImplements(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeClassImplements) declare function isDeclareClass(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDeclareClass) declare function isDeclareFunction(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDeclareFunction) declare function isDeclareInterface(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDeclareInterface) declare function isDeclareModule(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDeclareModule) declare function isDeclareModuleExports(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDeclareModuleExports) declare function isDeclareTypeAlias(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDeclareTypeAlias) declare function isDeclareOpaqueType(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDeclareOpaqueType) declare function isDeclareVariable(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDeclareVariable) declare function isDeclareExportDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDeclareExportDeclaration) declare function isDeclareExportAllDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDeclareExportAllDeclaration) declare function isDeclaredPredicate(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDeclaredPredicate) declare function isExistsTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeExistsTypeAnnotation) declare function isFunctionTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeFunctionTypeAnnotation) declare function isFunctionTypeParam(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeFunctionTypeParam) declare function isGenericTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeGenericTypeAnnotation) declare function isInferredPredicate(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeInferredPredicate) declare function isInterfaceExtends(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeInterfaceExtends) declare function isInterfaceDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeInterfaceDeclaration) declare function isIntersectionTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeIntersectionTypeAnnotation) declare function isMixedTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeMixedTypeAnnotation) declare function isEmptyTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeEmptyTypeAnnotation) declare function isNullableTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeNullableTypeAnnotation) declare function isNumberLiteralTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeNumberLiteralTypeAnnotation) declare function isNumberTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeNumberTypeAnnotation) declare function isObjectTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeObjectTypeAnnotation) declare function isObjectTypeCallProperty(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeObjectTypeCallProperty) declare function isObjectTypeIndexer(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeObjectTypeIndexer) declare function isObjectTypeProperty(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeObjectTypeProperty) declare function isObjectTypeSpreadProperty(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeObjectTypeSpreadProperty) declare function isOpaqueType(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeOpaqueType) declare function isQualifiedTypeIdentifier(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeQualifiedTypeIdentifier) declare function isStringLiteralTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeStringLiteralTypeAnnotation) declare function isStringTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeStringTypeAnnotation) declare function isThisTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeThisTypeAnnotation) declare function isTupleTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTupleTypeAnnotation) declare function isTypeofTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTypeofTypeAnnotation) declare function isTypeAlias(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTypeAlias) declare function isTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTypeAnnotation) declare function isTypeCastExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTypeCastExpression) declare function isTypeParameter(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTypeParameter) declare function isTypeParameterDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTypeParameterDeclaration) declare function isTypeParameterInstantiation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTypeParameterInstantiation) declare function isUnionTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeUnionTypeAnnotation) declare function isVariance(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeVariance) declare function isVoidTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeVoidTypeAnnotation) declare function isJSXAttribute(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeJSXAttribute) declare function isJSXClosingElement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeJSXClosingElement) declare function isJSXElement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeJSXElement) declare function isJSXEmptyExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeJSXEmptyExpression) declare function isJSXExpressionContainer(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeJSXExpressionContainer) declare function isJSXSpreadChild(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeJSXSpreadChild) declare function isJSXIdentifier(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeJSXIdentifier) declare function isJSXMemberExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeJSXMemberExpression) declare function isJSXNamespacedName(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeJSXNamespacedName) declare function isJSXOpeningElement(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeJSXOpeningElement) declare function isJSXSpreadAttribute(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeJSXSpreadAttribute) declare function isJSXText(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeJSXText) declare function isJSXFragment(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeJSXFragment) declare function isJSXOpeningFragment(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeJSXOpeningFragment) declare function isJSXClosingFragment(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeJSXClosingFragment) declare function isNoop(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeNoop) declare function isParenthesizedExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeParenthesizedExpression) declare function isAwaitExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeAwaitExpression) declare function isBindExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeBindExpression) declare function isClassProperty(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeClassProperty) declare function isOptionalMemberExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeOptionalMemberExpression) declare function isOptionalCallExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeOptionalCallExpression) declare function isImport(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeImport) declare function isDecorator(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDecorator) declare function isDoExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeDoExpression) declare function isExportDefaultSpecifier(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeExportDefaultSpecifier) declare function isExportNamespaceSpecifier(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeExportNamespaceSpecifier) declare function isTSParameterProperty(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSParameterProperty) declare function isTSDeclareFunction(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSDeclareFunction) declare function isTSDeclareMethod(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSDeclareMethod) declare function isTSQualifiedName(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSQualifiedName) declare function isTSCallSignatureDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSCallSignatureDeclaration) declare function isTSConstructSignatureDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSConstructSignatureDeclaration) declare function isTSPropertySignature(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSPropertySignature) declare function isTSMethodSignature(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSMethodSignature) declare function isTSIndexSignature(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSIndexSignature) declare function isTSAnyKeyword(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSAnyKeyword) declare function isTSNumberKeyword(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSNumberKeyword) declare function isTSObjectKeyword(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSObjectKeyword) declare function isTSBooleanKeyword(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSBooleanKeyword) declare function isTSStringKeyword(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSStringKeyword) declare function isTSSymbolKeyword(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSSymbolKeyword) declare function isTSVoidKeyword(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSVoidKeyword) declare function isTSUndefinedKeyword(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSUndefinedKeyword) declare function isTSNullKeyword(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSNullKeyword) declare function isTSNeverKeyword(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSNeverKeyword) declare function isTSThisType(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSThisType) declare function isTSFunctionType(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSFunctionType) declare function isTSConstructorType(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSConstructorType) declare function isTSTypeReference(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSTypeReference) declare function isTSTypePredicate(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSTypePredicate) declare function isTSTypeQuery(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSTypeQuery) declare function isTSTypeLiteral(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSTypeLiteral) declare function isTSArrayType(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSArrayType) declare function isTSTupleType(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSTupleType) declare function isTSUnionType(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSUnionType) declare function isTSIntersectionType(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSIntersectionType) declare function isTSConditionalType(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSConditionalType) declare function isTSInferType(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSInferType) declare function isTSParenthesizedType(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSParenthesizedType) declare function isTSTypeOperator(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSTypeOperator) declare function isTSIndexedAccessType(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSIndexedAccessType) declare function isTSMappedType(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSMappedType) declare function isTSLiteralType(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSLiteralType) declare function isTSExpressionWithTypeArguments(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSExpressionWithTypeArguments) declare function isTSInterfaceDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSInterfaceDeclaration) declare function isTSInterfaceBody(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSInterfaceBody) declare function isTSTypeAliasDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSTypeAliasDeclaration) declare function isTSAsExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSAsExpression) declare function isTSTypeAssertion(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSTypeAssertion) declare function isTSEnumDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSEnumDeclaration) declare function isTSEnumMember(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSEnumMember) declare function isTSModuleDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSModuleDeclaration) declare function isTSModuleBlock(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSModuleBlock) declare function isTSImportEqualsDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSImportEqualsDeclaration) declare function isTSExternalModuleReference(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSExternalModuleReference) declare function isTSNonNullExpression(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSNonNullExpression) declare function isTSExportAssignment(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSExportAssignment) declare function isTSNamespaceExportDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSNamespaceExportDeclaration) declare function isTSTypeAnnotation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSTypeAnnotation) declare function isTSTypeParameterInstantiation(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSTypeParameterInstantiation) declare function isTSTypeParameterDeclaration(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSTypeParameterDeclaration) declare function isTSTypeParameter(node: Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSTypeParameter) declare function isExpression(node: Object, opts?: ?Object): boolean declare function isBinary(node: Object, opts?: ?Object): boolean declare function isScopable(node: Object, opts?: ?Object): boolean declare function isBlockParent(node: Object, opts?: ?Object): boolean declare function isBlock(node: Object, opts?: ?Object): boolean declare function isStatement(node: Object, opts?: ?Object): boolean declare function isTerminatorless(node: Object, opts?: ?Object): boolean declare function isCompletionStatement(node: Object, opts?: ?Object): boolean declare function isConditional(node: Object, opts?: ?Object): boolean declare function isLoop(node: Object, opts?: ?Object): boolean declare function isWhile(node: Object, opts?: ?Object): boolean declare function isExpressionWrapper(node: Object, opts?: ?Object): boolean declare function isFor(node: Object, opts?: ?Object): boolean declare function isForXStatement(node: Object, opts?: ?Object): boolean declare function isFunction(node: Object, opts?: ?Object): boolean declare function isFunctionParent(node: Object, opts?: ?Object): boolean declare function isPureish(node: Object, opts?: ?Object): boolean declare function isDeclaration(node: Object, opts?: ?Object): boolean declare function isPatternLike(node: Object, opts?: ?Object): boolean declare function isLVal(node: Object, opts?: ?Object): boolean declare function isTSEntityName(node: Object, opts?: ?Object): boolean declare function isLiteral(node: Object, opts?: ?Object): boolean declare function isImmutable(node: Object, opts?: ?Object): boolean declare function isUserWhitespacable(node: Object, opts?: ?Object): boolean declare function isMethod(node: Object, opts?: ?Object): boolean declare function isObjectMember(node: Object, opts?: ?Object): boolean declare function isProperty(node: Object, opts?: ?Object): boolean declare function isUnaryLike(node: Object, opts?: ?Object): boolean declare function isPattern(node: Object, opts?: ?Object): boolean declare function isClass(node: Object, opts?: ?Object): boolean declare function isModuleDeclaration(node: Object, opts?: ?Object): boolean declare function isExportDeclaration(node: Object, opts?: ?Object): boolean declare function isModuleSpecifier(node: Object, opts?: ?Object): boolean declare function isFlow(node: Object, opts?: ?Object): boolean declare function isFlowType(node: Object, opts?: ?Object): boolean declare function isFlowBaseAnnotation(node: Object, opts?: ?Object): boolean declare function isFlowDeclaration(node: Object, opts?: ?Object): boolean declare function isFlowPredicate(node: Object, opts?: ?Object): boolean declare function isJSX(node: Object, opts?: ?Object): boolean declare function isTSTypeElement(node: Object, opts?: ?Object): boolean declare function isTSType(node: Object, opts?: ?Object): boolean declare function isNumberLiteral(node: Object, opts?: ?Object): boolean declare function isRegexLiteral(node: Object, opts?: ?Object): boolean declare function isRestProperty(node: Object, opts?: ?Object): boolean declare function isSpreadProperty(node: Object, opts?: ?Object): boolean declare function validate(n: BabelNode, key: string, value: mixed): void; declare function clone(n: T): T; declare function cloneDeep(n: T): T; declare function removeProperties(n: T, opts: ?{}): void; declare function removePropertiesDeep(n: T, opts: ?{}): T; declare type TraversalAncestors = Array<{ node: BabelNode, key: string, index?: number, }>; declare type TraversalHandler = (BabelNode, TraversalAncestors, T) => void; declare type TraversalHandlers = { enter?: TraversalHandler, exit?: TraversalHandler, }; declare function traverse(n: BabelNode, TraversalHandler | TraversalHandlers, state?: T): void; }