// NOTE: This file is autogenerated. Do not modify. // See scripts/generate-interfaces.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?: any; } 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: any; directives?: any; } declare class BabelNodeBreakStatement extends BabelNode { type: "BreakStatement"; label?: ?BabelNodeIdentifier; } declare class BabelNodeCallExpression extends BabelNode { type: "CallExpression"; callee: BabelNodeExpression; arguments: any; optional?: true | false; typeParameters?: ?BabelNodeTypeParameterInstantiation; } 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: any; body: BabelNodeBlockStatement; generator?: boolean; async?: boolean; declare?: boolean; returnType?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeFunctionExpression extends BabelNode { type: "FunctionExpression"; id?: ?BabelNodeIdentifier; params: any; body: BabelNodeBlockStatement; generator?: boolean; async?: boolean; returnType?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeIdentifier extends BabelNode { type: "Identifier"; name: any; decorators?: any; 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: any; optional?: true | false; typeParameters?: ?BabelNodeTypeParameterInstantiation; } declare class BabelNodeProgram extends BabelNode { type: "Program"; body: any; directives?: any; sourceType?: "script" | "module"; sourceFile?: string; } declare class BabelNodeObjectExpression extends BabelNode { type: "ObjectExpression"; properties: any; } declare class BabelNodeObjectMethod extends BabelNode { type: "ObjectMethod"; kind?: any; key: any; params: any; body: BabelNodeBlockStatement; computed?: boolean; async?: boolean; decorators?: any; generator?: boolean; returnType?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeObjectProperty extends BabelNode { type: "ObjectProperty"; key: any; value: BabelNodeExpression | BabelNodePatternLike; computed?: boolean; shorthand?: boolean; decorators?: any; } declare class BabelNodeRestElement extends BabelNode { type: "RestElement"; argument: BabelNodeLVal; decorators?: any; typeAnnotation?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; } declare class BabelNodeReturnStatement extends BabelNode { type: "ReturnStatement"; argument?: ?BabelNodeExpression; } declare class BabelNodeSequenceExpression extends BabelNode { type: "SequenceExpression"; expressions: any; } declare class BabelNodeSwitchCase extends BabelNode { type: "SwitchCase"; test?: ?BabelNodeExpression; consequent: any; } declare class BabelNodeSwitchStatement extends BabelNode { type: "SwitchStatement"; discriminant: BabelNodeExpression; cases: any; } 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: any; declarations: any; declare?: boolean; } declare class BabelNodeVariableDeclarator extends BabelNode { type: "VariableDeclarator"; id: BabelNodeLVal; init?: ?BabelNodeExpression; } declare class BabelNodeWhileStatement extends BabelNode { type: "WhileStatement"; test: BabelNodeExpression; body: BabelNodeBlockStatement | BabelNodeStatement; } declare class BabelNodeWithStatement extends BabelNode { type: "WithStatement"; object: any; body: BabelNodeBlockStatement | BabelNodeStatement; } declare class BabelNodeAssignmentPattern extends BabelNode { type: "AssignmentPattern"; left: BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeArrayPattern; right: BabelNodeExpression; decorators?: any; typeAnnotation?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; } declare class BabelNodeArrayPattern extends BabelNode { type: "ArrayPattern"; elements: any; decorators?: any; typeAnnotation?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; } declare class BabelNodeArrowFunctionExpression extends BabelNode { type: "ArrowFunctionExpression"; params: any; body: BabelNodeBlockStatement | BabelNodeExpression; async?: boolean; expression?: boolean; generator?: boolean; returnType?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeClassBody extends BabelNode { type: "ClassBody"; body: any; } declare class BabelNodeClassDeclaration extends BabelNode { type: "ClassDeclaration"; id?: ?BabelNodeIdentifier; superClass?: ?BabelNodeExpression; body: BabelNodeClassBody; decorators?: any; abstract?: boolean; declare?: boolean; mixins?: any; superTypeParameters?: ?BabelNodeTypeParameterInstantiation; typeParameters?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeClassExpression extends BabelNode { type: "ClassExpression"; id?: ?BabelNodeIdentifier; superClass?: ?BabelNodeExpression; body: BabelNodeClassBody; decorators?: any; mixins?: any; superTypeParameters?: ?BabelNodeTypeParameterInstantiation; typeParameters?: ?BabelNodeTypeParameterDeclaration | 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: any; 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: any; 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?: any; key: any; params: any; body: BabelNodeBlockStatement; computed?: boolean; abstract?: boolean; access?: any; accessibility?: any; async?: boolean; decorators?: any; generator?: boolean; optional?: boolean; returnType?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop; } declare class BabelNodeObjectPattern extends BabelNode { type: "ObjectPattern"; properties: any; decorators?: any; 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: any; expressions: any; } 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: any; } declare class BabelNodeBooleanTypeAnnotation extends BabelNode { type: "BooleanTypeAnnotation"; } declare class BabelNodeBooleanLiteralTypeAnnotation extends BabelNode { type: "BooleanLiteralTypeAnnotation"; } declare class BabelNodeNullLiteralTypeAnnotation extends BabelNode { type: "NullLiteralTypeAnnotation"; } declare class BabelNodeClassImplements extends BabelNode { type: "ClassImplements"; id: any; typeParameters: any; } declare class BabelNodeDeclareClass extends BabelNode { type: "DeclareClass"; id: any; typeParameters: any; body: any; } declare class BabelNodeDeclareFunction extends BabelNode { type: "DeclareFunction"; id: any; } declare class BabelNodeDeclareInterface extends BabelNode { type: "DeclareInterface"; id: any; typeParameters: any; body: any; } declare class BabelNodeDeclareModule extends BabelNode { type: "DeclareModule"; id: any; body: any; } declare class BabelNodeDeclareModuleExports extends BabelNode { type: "DeclareModuleExports"; typeAnnotation: any; } declare class BabelNodeDeclareTypeAlias extends BabelNode { type: "DeclareTypeAlias"; id: any; typeParameters: any; right: any; } declare class BabelNodeDeclareOpaqueType extends BabelNode { type: "DeclareOpaqueType"; id: any; typeParameters: any; supertype: any; } declare class BabelNodeDeclareVariable extends BabelNode { type: "DeclareVariable"; id: any; } declare class BabelNodeDeclareExportDeclaration extends BabelNode { type: "DeclareExportDeclaration"; declaration: any; specifiers: any; source: any; } declare class BabelNodeDeclareExportAllDeclaration extends BabelNode { type: "DeclareExportAllDeclaration"; source: any; } declare class BabelNodeDeclaredPredicate extends BabelNode { type: "DeclaredPredicate"; value: any; } declare class BabelNodeExistsTypeAnnotation extends BabelNode { type: "ExistsTypeAnnotation"; } declare class BabelNodeFunctionTypeAnnotation extends BabelNode { type: "FunctionTypeAnnotation"; typeParameters: any; params: any; rest: any; returnType: any; } declare class BabelNodeFunctionTypeParam extends BabelNode { type: "FunctionTypeParam"; name: any; typeAnnotation: any; } declare class BabelNodeGenericTypeAnnotation extends BabelNode { type: "GenericTypeAnnotation"; id: any; typeParameters: any; } declare class BabelNodeInferredPredicate extends BabelNode { type: "InferredPredicate"; } declare class BabelNodeInterfaceExtends extends BabelNode { type: "InterfaceExtends"; id: any; typeParameters: any; } declare class BabelNodeInterfaceDeclaration extends BabelNode { type: "InterfaceDeclaration"; id: any; typeParameters: any; body: any; } declare class BabelNodeIntersectionTypeAnnotation extends BabelNode { type: "IntersectionTypeAnnotation"; types: any; } declare class BabelNodeMixedTypeAnnotation extends BabelNode { type: "MixedTypeAnnotation"; } declare class BabelNodeEmptyTypeAnnotation extends BabelNode { type: "EmptyTypeAnnotation"; } declare class BabelNodeNullableTypeAnnotation extends BabelNode { type: "NullableTypeAnnotation"; typeAnnotation: any; } declare class BabelNodeNumberLiteralTypeAnnotation extends BabelNode { type: "NumberLiteralTypeAnnotation"; } declare class BabelNodeNumberTypeAnnotation extends BabelNode { type: "NumberTypeAnnotation"; } declare class BabelNodeObjectTypeAnnotation extends BabelNode { type: "ObjectTypeAnnotation"; properties: any; indexers: any; callProperties: any; } declare class BabelNodeObjectTypeCallProperty extends BabelNode { type: "ObjectTypeCallProperty"; value: any; } declare class BabelNodeObjectTypeIndexer extends BabelNode { type: "ObjectTypeIndexer"; id: any; key: any; value: any; } declare class BabelNodeObjectTypeProperty extends BabelNode { type: "ObjectTypeProperty"; key: any; value: any; } declare class BabelNodeObjectTypeSpreadProperty extends BabelNode { type: "ObjectTypeSpreadProperty"; argument: any; } declare class BabelNodeOpaqueType extends BabelNode { type: "OpaqueType"; id: any; typeParameters: any; supertype: any; impltype: any; } declare class BabelNodeQualifiedTypeIdentifier extends BabelNode { type: "QualifiedTypeIdentifier"; id: any; qualification: any; } declare class BabelNodeStringLiteralTypeAnnotation extends BabelNode { type: "StringLiteralTypeAnnotation"; } declare class BabelNodeStringTypeAnnotation extends BabelNode { type: "StringTypeAnnotation"; } declare class BabelNodeThisTypeAnnotation extends BabelNode { type: "ThisTypeAnnotation"; } declare class BabelNodeTupleTypeAnnotation extends BabelNode { type: "TupleTypeAnnotation"; types: any; } declare class BabelNodeTypeofTypeAnnotation extends BabelNode { type: "TypeofTypeAnnotation"; argument: any; } declare class BabelNodeTypeAlias extends BabelNode { type: "TypeAlias"; id: any; typeParameters: any; right: any; } declare class BabelNodeTypeAnnotation extends BabelNode { type: "TypeAnnotation"; typeAnnotation: BabelNodeFlow; } declare class BabelNodeTypeCastExpression extends BabelNode { type: "TypeCastExpression"; expression: any; typeAnnotation: any; } declare class BabelNodeTypeParameter extends BabelNode { type: "TypeParameter"; bound?: ?BabelNodeTypeAnnotation; name?: string; } declare class BabelNodeTypeParameterDeclaration extends BabelNode { type: "TypeParameterDeclaration"; params: any; } declare class BabelNodeTypeParameterInstantiation extends BabelNode { type: "TypeParameterInstantiation"; params: any; } declare class BabelNodeUnionTypeAnnotation extends BabelNode { type: "UnionTypeAnnotation"; types: any; } declare class BabelNodeVoidTypeAnnotation extends BabelNode { type: "VoidTypeAnnotation"; } declare class BabelNodeJSXAttribute extends BabelNode { type: "JSXAttribute"; name: BabelNodeJSXIdentifier | BabelNodeJSXNamespacedName; value?: ?BabelNodeJSXElement | BabelNodeStringLiteral | BabelNodeJSXExpressionContainer; } declare class BabelNodeJSXClosingElement extends BabelNode { type: "JSXClosingElement"; name: BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression; } declare class BabelNodeJSXElement extends BabelNode { type: "JSXElement"; openingElement: BabelNodeJSXOpeningElement; closingElement?: ?BabelNodeJSXClosingElement; children: any; 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: any; selfClosing?: boolean; } declare class BabelNodeJSXSpreadAttribute extends BabelNode { type: "JSXSpreadAttribute"; argument: BabelNodeExpression; } declare class BabelNodeJSXText extends BabelNode { type: "JSXText"; value: string; } 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: any; value?: ?BabelNodeExpression; typeAnnotation?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; decorators?: any; computed?: boolean; abstract?: boolean; accessibility?: any; optional?: boolean; readonly?: boolean; } 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?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop; params: any; returnType?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; async?: boolean; declare?: boolean; generator?: boolean; } declare class BabelNodeTSDeclareMethod extends BabelNode { type: "TSDeclareMethod"; decorators?: any; key: any; typeParameters?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop; params: any; returnType?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; abstract?: boolean; access?: any; accessibility?: any; async?: boolean; computed?: boolean; generator?: boolean; kind?: any; optional?: boolean; } declare class BabelNodeTSQualifiedName extends BabelNode { type: "TSQualifiedName"; left: BabelNodeTSEntityName; right: BabelNodeIdentifier; } declare class BabelNodeTSCallSignatureDeclaration extends BabelNode { type: "TSCallSignatureDeclaration"; typeParameters?: ?BabelNodeTypeParameterDeclaration; parameters?: any; typeAnnotation?: ?BabelNodeTSTypeAnnotation; } declare class BabelNodeTSConstructSignatureDeclaration extends BabelNode { type: "TSConstructSignatureDeclaration"; typeParameters?: ?BabelNodeTypeParameterDeclaration; parameters?: any; 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?: ?BabelNodeTypeParameterDeclaration; parameters?: any; typeAnnotation?: ?BabelNodeTSTypeAnnotation; computed?: boolean; optional?: boolean; } declare class BabelNodeTSIndexSignature extends BabelNode { type: "TSIndexSignature"; parameters: any; 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?: ?BabelNodeTypeParameterDeclaration; typeAnnotation?: ?BabelNodeTSTypeAnnotation; parameters?: any; } declare class BabelNodeTSConstructorType extends BabelNode { type: "TSConstructorType"; typeParameters?: ?BabelNodeTypeParameterDeclaration; typeAnnotation?: ?BabelNodeTSTypeAnnotation; parameters?: any; } declare class BabelNodeTSTypeReference extends BabelNode { type: "TSTypeReference"; typeName: BabelNodeTSEntityName; typeParameters?: ?BabelNodeTypeParameterInstantiation; } 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: any; } declare class BabelNodeTSArrayType extends BabelNode { type: "TSArrayType"; elementType: BabelNodeTSType; } declare class BabelNodeTSTupleType extends BabelNode { type: "TSTupleType"; elementTypes: any; } declare class BabelNodeTSUnionType extends BabelNode { type: "TSUnionType"; types: any; } declare class BabelNodeTSIntersectionType extends BabelNode { type: "TSIntersectionType"; types: any; } 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: BabelNodeTypeParameter; 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?: ?BabelNodeTypeParameterInstantiation; } declare class BabelNodeTSInterfaceDeclaration extends BabelNode { type: "TSInterfaceDeclaration"; id: BabelNodeIdentifier; typeParameters?: ?BabelNodeTypeParameterDeclaration; body: BabelNodeTSInterfaceBody; declare?: boolean; } declare class BabelNodeTSInterfaceBody extends BabelNode { type: "TSInterfaceBody"; body: any; } declare class BabelNodeTSTypeAliasDeclaration extends BabelNode { type: "TSTypeAliasDeclaration"; id: BabelNodeIdentifier; typeParameters?: ?BabelNodeTypeParameterDeclaration; 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: any; 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: any; } 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: any; } declare class BabelNodeTSTypeParameterDeclaration extends BabelNode { type: "TSTypeParameterDeclaration"; params: any; } 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 | BabelNodeJSXEmptyExpression | BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeParenthesizedExpression | BabelNodeAwaitExpression | BabelNodeBindExpression | 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; 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 | 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; 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 | BabelNodeTSParenthesizedType | BabelNodeTSTypeOperator | BabelNodeTSIndexedAccessType | BabelNodeTSMappedType | BabelNodeTSLiteralType | BabelNodeTSExpressionWithTypeArguments; declare module "babel-types" { declare function arrayExpression(elements?: any): 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: any, directives?: any): BabelNodeBlockStatement; declare function breakStatement(label?: ?BabelNodeIdentifier): BabelNodeBreakStatement; declare function callExpression(callee: BabelNodeExpression, _arguments: any, optional?: true | false, typeParameters?: ?BabelNodeTypeParameterInstantiation): 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: any, body: BabelNodeBlockStatement, generator?: boolean, async?: boolean, declare?: boolean, returnType?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, typeParameters?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop): BabelNodeFunctionDeclaration; declare function functionExpression(id?: ?BabelNodeIdentifier, params: any, body: BabelNodeBlockStatement, generator?: boolean, async?: boolean, returnType?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, typeParameters?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop): BabelNodeFunctionExpression; declare function identifier(name: any, decorators?: any, 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: any, optional?: true | false, typeParameters?: ?BabelNodeTypeParameterInstantiation): BabelNodeNewExpression; declare function program(body: any, directives?: any, sourceType?: "script" | "module", sourceFile?: string): BabelNodeProgram; declare function objectExpression(properties: any): BabelNodeObjectExpression; declare function objectMethod(kind?: any, key: any, params: any, body: BabelNodeBlockStatement, computed?: boolean, async?: boolean, decorators?: any, generator?: boolean, returnType?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, typeParameters?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop): BabelNodeObjectMethod; declare function objectProperty(key: any, value: BabelNodeExpression | BabelNodePatternLike, computed?: boolean, shorthand?: boolean, decorators?: any): BabelNodeObjectProperty; declare function restElement(argument: BabelNodeLVal, decorators?: any, typeAnnotation?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop): BabelNodeRestElement; declare function returnStatement(argument?: ?BabelNodeExpression): BabelNodeReturnStatement; declare function sequenceExpression(expressions: any): BabelNodeSequenceExpression; declare function switchCase(test?: ?BabelNodeExpression, consequent: any): BabelNodeSwitchCase; declare function switchStatement(discriminant: BabelNodeExpression, cases: any): 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: any, declarations: any, declare?: boolean): BabelNodeVariableDeclaration; declare function variableDeclarator(id: BabelNodeLVal, init?: ?BabelNodeExpression): BabelNodeVariableDeclarator; declare function whileStatement(test: BabelNodeExpression, body: BabelNodeBlockStatement | BabelNodeStatement): BabelNodeWhileStatement; declare function withStatement(object: any, body: BabelNodeBlockStatement | BabelNodeStatement): BabelNodeWithStatement; declare function assignmentPattern(left: BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeArrayPattern, right: BabelNodeExpression, decorators?: any, typeAnnotation?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop): BabelNodeAssignmentPattern; declare function arrayPattern(elements: any, decorators?: any, typeAnnotation?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop): BabelNodeArrayPattern; declare function arrowFunctionExpression(params: any, body: BabelNodeBlockStatement | BabelNodeExpression, async?: boolean, expression?: boolean, generator?: boolean, returnType?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, typeParameters?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop): BabelNodeArrowFunctionExpression; declare function classBody(body: any): BabelNodeClassBody; declare function classDeclaration(id?: ?BabelNodeIdentifier, superClass?: ?BabelNodeExpression, body: BabelNodeClassBody, decorators?: any, abstract?: boolean, declare?: boolean, _implements?: any, mixins?: any, superTypeParameters?: ?BabelNodeTypeParameterInstantiation, typeParameters?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop): BabelNodeClassDeclaration; declare function classExpression(id?: ?BabelNodeIdentifier, superClass?: ?BabelNodeExpression, body: BabelNodeClassBody, decorators?: any, _implements?: any, mixins?: any, superTypeParameters?: ?BabelNodeTypeParameterInstantiation, typeParameters?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop): BabelNodeClassExpression; declare function exportAllDeclaration(source: BabelNodeStringLiteral): BabelNodeExportAllDeclaration; declare function exportDefaultDeclaration(declaration: BabelNodeFunctionDeclaration | BabelNodeTSDeclareFunction | BabelNodeClassDeclaration | BabelNodeExpression): BabelNodeExportDefaultDeclaration; declare function exportNamedDeclaration(declaration?: ?BabelNodeDeclaration, specifiers: any, 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: any, 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?: any, key: any, params: any, body: BabelNodeBlockStatement, computed?: boolean, _static?: boolean, abstract?: boolean, access?: any, accessibility?: any, async?: boolean, decorators?: any, generator?: boolean, optional?: boolean, returnType?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, typeParameters?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop): BabelNodeClassMethod; declare function objectPattern(properties: any, decorators?: any, 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: any, expressions: any): BabelNodeTemplateLiteral; declare function yieldExpression(argument?: ?BabelNodeExpression, delegate?: boolean): BabelNodeYieldExpression; declare function anyTypeAnnotation(): BabelNodeAnyTypeAnnotation; declare function arrayTypeAnnotation(elementType: any): BabelNodeArrayTypeAnnotation; declare function booleanTypeAnnotation(): BabelNodeBooleanTypeAnnotation; declare function booleanLiteralTypeAnnotation(): BabelNodeBooleanLiteralTypeAnnotation; declare function nullLiteralTypeAnnotation(): BabelNodeNullLiteralTypeAnnotation; declare function classImplements(id: any, typeParameters: any): BabelNodeClassImplements; declare function declareClass(id: any, typeParameters: any, _extends: any, body: any): BabelNodeDeclareClass; declare function declareFunction(id: any): BabelNodeDeclareFunction; declare function declareInterface(id: any, typeParameters: any, _extends: any, body: any): BabelNodeDeclareInterface; declare function declareModule(id: any, body: any): BabelNodeDeclareModule; declare function declareModuleExports(typeAnnotation: any): BabelNodeDeclareModuleExports; declare function declareTypeAlias(id: any, typeParameters: any, right: any): BabelNodeDeclareTypeAlias; declare function declareOpaqueType(id: any, typeParameters: any, supertype: any): BabelNodeDeclareOpaqueType; declare function declareVariable(id: any): BabelNodeDeclareVariable; declare function declareExportDeclaration(declaration: any, specifiers: any, source: any): BabelNodeDeclareExportDeclaration; declare function declareExportAllDeclaration(source: any): BabelNodeDeclareExportAllDeclaration; declare function declaredPredicate(value: any): BabelNodeDeclaredPredicate; declare function existsTypeAnnotation(): BabelNodeExistsTypeAnnotation; declare function functionTypeAnnotation(typeParameters: any, params: any, rest: any, returnType: any): BabelNodeFunctionTypeAnnotation; declare function functionTypeParam(name: any, typeAnnotation: any): BabelNodeFunctionTypeParam; declare function genericTypeAnnotation(id: any, typeParameters: any): BabelNodeGenericTypeAnnotation; declare function inferredPredicate(): BabelNodeInferredPredicate; declare function interfaceExtends(id: any, typeParameters: any): BabelNodeInterfaceExtends; declare function interfaceDeclaration(id: any, typeParameters: any, _extends: any, body: any): BabelNodeInterfaceDeclaration; declare function intersectionTypeAnnotation(types: any): BabelNodeIntersectionTypeAnnotation; declare function mixedTypeAnnotation(): BabelNodeMixedTypeAnnotation; declare function emptyTypeAnnotation(): BabelNodeEmptyTypeAnnotation; declare function nullableTypeAnnotation(typeAnnotation: any): BabelNodeNullableTypeAnnotation; declare function numberLiteralTypeAnnotation(): BabelNodeNumberLiteralTypeAnnotation; declare function numberTypeAnnotation(): BabelNodeNumberTypeAnnotation; declare function objectTypeAnnotation(properties: any, indexers: any, callProperties: any): BabelNodeObjectTypeAnnotation; declare function objectTypeCallProperty(value: any): BabelNodeObjectTypeCallProperty; declare function objectTypeIndexer(id: any, key: any, value: any): BabelNodeObjectTypeIndexer; declare function objectTypeProperty(key: any, value: any): BabelNodeObjectTypeProperty; declare function objectTypeSpreadProperty(argument: any): BabelNodeObjectTypeSpreadProperty; declare function opaqueType(id: any, typeParameters: any, supertype: any, impltype: any): BabelNodeOpaqueType; declare function qualifiedTypeIdentifier(id: any, qualification: any): BabelNodeQualifiedTypeIdentifier; declare function stringLiteralTypeAnnotation(): BabelNodeStringLiteralTypeAnnotation; declare function stringTypeAnnotation(): BabelNodeStringTypeAnnotation; declare function thisTypeAnnotation(): BabelNodeThisTypeAnnotation; declare function tupleTypeAnnotation(types: any): BabelNodeTupleTypeAnnotation; declare function typeofTypeAnnotation(argument: any): BabelNodeTypeofTypeAnnotation; declare function typeAlias(id: any, typeParameters: any, right: any): BabelNodeTypeAlias; declare function typeAnnotation(typeAnnotation: BabelNodeFlow): BabelNodeTypeAnnotation; declare function typeCastExpression(expression: any, typeAnnotation: any): BabelNodeTypeCastExpression; declare function typeParameter(bound?: ?BabelNodeTypeAnnotation, _default?: ?BabelNodeFlow, name?: string): BabelNodeTypeParameter; declare function typeParameterDeclaration(params: any): BabelNodeTypeParameterDeclaration; declare function typeParameterInstantiation(params: any): BabelNodeTypeParameterInstantiation; declare function unionTypeAnnotation(types: any): BabelNodeUnionTypeAnnotation; declare function voidTypeAnnotation(): BabelNodeVoidTypeAnnotation; declare function jSXAttribute(name: BabelNodeJSXIdentifier | BabelNodeJSXNamespacedName, value?: ?BabelNodeJSXElement | BabelNodeStringLiteral | BabelNodeJSXExpressionContainer): BabelNodeJSXAttribute; declare function jSXClosingElement(name: BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression): BabelNodeJSXClosingElement; declare function jSXElement(openingElement: BabelNodeJSXOpeningElement, closingElement?: ?BabelNodeJSXClosingElement, children: any, 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: any, selfClosing?: boolean): BabelNodeJSXOpeningElement; declare function jSXSpreadAttribute(argument: BabelNodeExpression): BabelNodeJSXSpreadAttribute; declare function jSXText(value: string): BabelNodeJSXText; 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: any, value?: ?BabelNodeExpression, typeAnnotation?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, decorators?: any, computed?: boolean, abstract?: boolean, accessibility?: any, optional?: boolean, readonly?: boolean, _static?: boolean): BabelNodeClassProperty; 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?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop, params: any, returnType?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, async?: boolean, declare?: boolean, generator?: boolean): BabelNodeTSDeclareFunction; declare function tSDeclareMethod(decorators?: any, key: any, typeParameters?: ?BabelNodeTypeParameterDeclaration | BabelNodeNoop, params: any, returnType?: ?BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, abstract?: boolean, access?: any, accessibility?: any, async?: boolean, computed?: boolean, generator?: boolean, kind?: any, optional?: boolean, _static?: boolean): BabelNodeTSDeclareMethod; declare function tSQualifiedName(left: BabelNodeTSEntityName, right: BabelNodeIdentifier): BabelNodeTSQualifiedName; declare function tSCallSignatureDeclaration(typeParameters?: ?BabelNodeTypeParameterDeclaration, parameters?: any, typeAnnotation?: ?BabelNodeTSTypeAnnotation): BabelNodeTSCallSignatureDeclaration; declare function tSConstructSignatureDeclaration(typeParameters?: ?BabelNodeTypeParameterDeclaration, parameters?: any, 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?: ?BabelNodeTypeParameterDeclaration, parameters?: any, typeAnnotation?: ?BabelNodeTSTypeAnnotation, computed?: boolean, optional?: boolean): BabelNodeTSMethodSignature; declare function tSIndexSignature(parameters: any, 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?: ?BabelNodeTypeParameterDeclaration, typeAnnotation?: ?BabelNodeTSTypeAnnotation, parameters?: any): BabelNodeTSFunctionType; declare function tSConstructorType(typeParameters?: ?BabelNodeTypeParameterDeclaration, typeAnnotation?: ?BabelNodeTSTypeAnnotation, parameters?: any): BabelNodeTSConstructorType; declare function tSTypeReference(typeName: BabelNodeTSEntityName, typeParameters?: ?BabelNodeTypeParameterInstantiation): BabelNodeTSTypeReference; declare function tSTypePredicate(parameterName: BabelNodeIdentifier | BabelNodeTSThisType, typeAnnotation: BabelNodeTSTypeAnnotation): BabelNodeTSTypePredicate; declare function tSTypeQuery(exprName: BabelNodeTSEntityName): BabelNodeTSTypeQuery; declare function tSTypeLiteral(members: any): BabelNodeTSTypeLiteral; declare function tSArrayType(elementType: BabelNodeTSType): BabelNodeTSArrayType; declare function tSTupleType(elementTypes: any): BabelNodeTSTupleType; declare function tSUnionType(types: any): BabelNodeTSUnionType; declare function tSIntersectionType(types: any): BabelNodeTSIntersectionType; 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: BabelNodeTypeParameter, typeAnnotation?: ?BabelNodeTSType, optional?: boolean, readonly?: boolean): BabelNodeTSMappedType; declare function tSLiteralType(literal: BabelNodeNumericLiteral | BabelNodeStringLiteral | BabelNodeBooleanLiteral): BabelNodeTSLiteralType; declare function tSExpressionWithTypeArguments(expression: BabelNodeTSEntityName, typeParameters?: ?BabelNodeTypeParameterInstantiation): BabelNodeTSExpressionWithTypeArguments; declare function tSInterfaceDeclaration(id: BabelNodeIdentifier, typeParameters?: ?BabelNodeTypeParameterDeclaration, _extends?: any, body: BabelNodeTSInterfaceBody, declare?: boolean): BabelNodeTSInterfaceDeclaration; declare function tSInterfaceBody(body: any): BabelNodeTSInterfaceBody; declare function tSTypeAliasDeclaration(id: BabelNodeIdentifier, typeParameters?: ?BabelNodeTypeParameterDeclaration, 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: any, _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: any): 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: any): BabelNodeTSTypeParameterInstantiation; declare function tSTypeParameterDeclaration(params: any): BabelNodeTSTypeParameterDeclaration; declare function tSTypeParameter(constraint?: ?BabelNodeTSType, _default?: ?BabelNodeTSType, name?: string): BabelNodeTSTypeParameter; declare function isArrayExpression(node: Object, opts?: Object): boolean; declare function isAssignmentExpression(node: Object, opts?: Object): boolean; declare function isBinaryExpression(node: Object, opts?: Object): boolean; declare function isDirective(node: Object, opts?: Object): boolean; declare function isDirectiveLiteral(node: Object, opts?: Object): boolean; declare function isBlockStatement(node: Object, opts?: Object): boolean; declare function isBreakStatement(node: Object, opts?: Object): boolean; declare function isCallExpression(node: Object, opts?: Object): boolean; declare function isCatchClause(node: Object, opts?: Object): boolean; declare function isConditionalExpression(node: Object, opts?: Object): boolean; declare function isContinueStatement(node: Object, opts?: Object): boolean; declare function isDebuggerStatement(node: Object, opts?: Object): boolean; declare function isDoWhileStatement(node: Object, opts?: Object): boolean; declare function isEmptyStatement(node: Object, opts?: Object): boolean; declare function isExpressionStatement(node: Object, opts?: Object): boolean; declare function isFile(node: Object, opts?: Object): boolean; declare function isForInStatement(node: Object, opts?: Object): boolean; declare function isForStatement(node: Object, opts?: Object): boolean; declare function isFunctionDeclaration(node: Object, opts?: Object): boolean; declare function isFunctionExpression(node: Object, opts?: Object): boolean; declare function isIdentifier(node: Object, opts?: Object): boolean; declare function isIfStatement(node: Object, opts?: Object): boolean; declare function isLabeledStatement(node: Object, opts?: Object): boolean; declare function isStringLiteral(node: Object, opts?: Object): boolean; declare function isNumericLiteral(node: Object, opts?: Object): boolean; declare function isNullLiteral(node: Object, opts?: Object): boolean; declare function isBooleanLiteral(node: Object, opts?: Object): boolean; declare function isRegExpLiteral(node: Object, opts?: Object): boolean; declare function isLogicalExpression(node: Object, opts?: Object): boolean; declare function isMemberExpression(node: Object, opts?: Object): boolean; declare function isNewExpression(node: Object, opts?: Object): boolean; declare function isProgram(node: Object, opts?: Object): boolean; declare function isObjectExpression(node: Object, opts?: Object): boolean; declare function isObjectMethod(node: Object, opts?: Object): boolean; declare function isObjectProperty(node: Object, opts?: Object): boolean; declare function isRestElement(node: Object, opts?: Object): boolean; declare function isReturnStatement(node: Object, opts?: Object): boolean; declare function isSequenceExpression(node: Object, opts?: Object): boolean; declare function isSwitchCase(node: Object, opts?: Object): boolean; declare function isSwitchStatement(node: Object, opts?: Object): boolean; declare function isThisExpression(node: Object, opts?: Object): boolean; declare function isThrowStatement(node: Object, opts?: Object): boolean; declare function isTryStatement(node: Object, opts?: Object): boolean; declare function isUnaryExpression(node: Object, opts?: Object): boolean; declare function isUpdateExpression(node: Object, opts?: Object): boolean; declare function isVariableDeclaration(node: Object, opts?: Object): boolean; declare function isVariableDeclarator(node: Object, opts?: Object): boolean; declare function isWhileStatement(node: Object, opts?: Object): boolean; declare function isWithStatement(node: Object, opts?: Object): boolean; declare function isAssignmentPattern(node: Object, opts?: Object): boolean; declare function isArrayPattern(node: Object, opts?: Object): boolean; declare function isArrowFunctionExpression(node: Object, opts?: Object): boolean; declare function isClassBody(node: Object, opts?: Object): boolean; declare function isClassDeclaration(node: Object, opts?: Object): boolean; declare function isClassExpression(node: Object, opts?: Object): boolean; declare function isExportAllDeclaration(node: Object, opts?: Object): boolean; declare function isExportDefaultDeclaration(node: Object, opts?: Object): boolean; declare function isExportNamedDeclaration(node: Object, opts?: Object): boolean; declare function isExportSpecifier(node: Object, opts?: Object): boolean; declare function isForOfStatement(node: Object, opts?: Object): boolean; declare function isImportDeclaration(node: Object, opts?: Object): boolean; declare function isImportDefaultSpecifier(node: Object, opts?: Object): boolean; declare function isImportNamespaceSpecifier(node: Object, opts?: Object): boolean; declare function isImportSpecifier(node: Object, opts?: Object): boolean; declare function isMetaProperty(node: Object, opts?: Object): boolean; declare function isClassMethod(node: Object, opts?: Object): boolean; declare function isObjectPattern(node: Object, opts?: Object): boolean; declare function isSpreadElement(node: Object, opts?: Object): boolean; declare function isSuper(node: Object, opts?: Object): boolean; declare function isTaggedTemplateExpression(node: Object, opts?: Object): boolean; declare function isTemplateElement(node: Object, opts?: Object): boolean; declare function isTemplateLiteral(node: Object, opts?: Object): boolean; declare function isYieldExpression(node: Object, opts?: Object): boolean; declare function isAnyTypeAnnotation(node: Object, opts?: Object): boolean; declare function isArrayTypeAnnotation(node: Object, opts?: Object): boolean; declare function isBooleanTypeAnnotation(node: Object, opts?: Object): boolean; declare function isBooleanLiteralTypeAnnotation(node: Object, opts?: Object): boolean; declare function isNullLiteralTypeAnnotation(node: Object, opts?: Object): boolean; declare function isClassImplements(node: Object, opts?: Object): boolean; declare function isDeclareClass(node: Object, opts?: Object): boolean; declare function isDeclareFunction(node: Object, opts?: Object): boolean; declare function isDeclareInterface(node: Object, opts?: Object): boolean; declare function isDeclareModule(node: Object, opts?: Object): boolean; declare function isDeclareModuleExports(node: Object, opts?: Object): boolean; declare function isDeclareTypeAlias(node: Object, opts?: Object): boolean; declare function isDeclareOpaqueType(node: Object, opts?: Object): boolean; declare function isDeclareVariable(node: Object, opts?: Object): boolean; declare function isDeclareExportDeclaration(node: Object, opts?: Object): boolean; declare function isDeclareExportAllDeclaration(node: Object, opts?: Object): boolean; declare function isDeclaredPredicate(node: Object, opts?: Object): boolean; declare function isExistsTypeAnnotation(node: Object, opts?: Object): boolean; declare function isFunctionTypeAnnotation(node: Object, opts?: Object): boolean; declare function isFunctionTypeParam(node: Object, opts?: Object): boolean; declare function isGenericTypeAnnotation(node: Object, opts?: Object): boolean; declare function isInferredPredicate(node: Object, opts?: Object): boolean; declare function isInterfaceExtends(node: Object, opts?: Object): boolean; declare function isInterfaceDeclaration(node: Object, opts?: Object): boolean; declare function isIntersectionTypeAnnotation(node: Object, opts?: Object): boolean; declare function isMixedTypeAnnotation(node: Object, opts?: Object): boolean; declare function isEmptyTypeAnnotation(node: Object, opts?: Object): boolean; declare function isNullableTypeAnnotation(node: Object, opts?: Object): boolean; declare function isNumberLiteralTypeAnnotation(node: Object, opts?: Object): boolean; declare function isNumberTypeAnnotation(node: Object, opts?: Object): boolean; declare function isObjectTypeAnnotation(node: Object, opts?: Object): boolean; declare function isObjectTypeCallProperty(node: Object, opts?: Object): boolean; declare function isObjectTypeIndexer(node: Object, opts?: Object): boolean; declare function isObjectTypeProperty(node: Object, opts?: Object): boolean; declare function isObjectTypeSpreadProperty(node: Object, opts?: Object): boolean; declare function isOpaqueType(node: Object, opts?: Object): boolean; declare function isQualifiedTypeIdentifier(node: Object, opts?: Object): boolean; declare function isStringLiteralTypeAnnotation(node: Object, opts?: Object): boolean; declare function isStringTypeAnnotation(node: Object, opts?: Object): boolean; declare function isThisTypeAnnotation(node: Object, opts?: Object): boolean; declare function isTupleTypeAnnotation(node: Object, opts?: Object): boolean; declare function isTypeofTypeAnnotation(node: Object, opts?: Object): boolean; declare function isTypeAlias(node: Object, opts?: Object): boolean; declare function isTypeAnnotation(node: Object, opts?: Object): boolean; declare function isTypeCastExpression(node: Object, opts?: Object): boolean; declare function isTypeParameter(node: Object, opts?: Object): boolean; declare function isTypeParameterDeclaration(node: Object, opts?: Object): boolean; declare function isTypeParameterInstantiation(node: Object, opts?: Object): boolean; declare function isUnionTypeAnnotation(node: Object, opts?: Object): boolean; declare function isVoidTypeAnnotation(node: Object, opts?: Object): boolean; declare function isJSXAttribute(node: Object, opts?: Object): boolean; declare function isJSXClosingElement(node: Object, opts?: Object): boolean; declare function isJSXElement(node: Object, opts?: Object): boolean; declare function isJSXEmptyExpression(node: Object, opts?: Object): boolean; declare function isJSXExpressionContainer(node: Object, opts?: Object): boolean; declare function isJSXSpreadChild(node: Object, opts?: Object): boolean; declare function isJSXIdentifier(node: Object, opts?: Object): boolean; declare function isJSXMemberExpression(node: Object, opts?: Object): boolean; declare function isJSXNamespacedName(node: Object, opts?: Object): boolean; declare function isJSXOpeningElement(node: Object, opts?: Object): boolean; declare function isJSXSpreadAttribute(node: Object, opts?: Object): boolean; declare function isJSXText(node: Object, opts?: Object): boolean; declare function isNoop(node: Object, opts?: Object): boolean; declare function isParenthesizedExpression(node: Object, opts?: Object): boolean; declare function isAwaitExpression(node: Object, opts?: Object): boolean; declare function isBindExpression(node: Object, opts?: Object): boolean; declare function isClassProperty(node: Object, opts?: Object): boolean; declare function isImport(node: Object, opts?: Object): boolean; declare function isDecorator(node: Object, opts?: Object): boolean; declare function isDoExpression(node: Object, opts?: Object): boolean; declare function isExportDefaultSpecifier(node: Object, opts?: Object): boolean; declare function isExportNamespaceSpecifier(node: Object, opts?: Object): boolean; declare function isTSParameterProperty(node: Object, opts?: Object): boolean; declare function isTSDeclareFunction(node: Object, opts?: Object): boolean; declare function isTSDeclareMethod(node: Object, opts?: Object): boolean; declare function isTSQualifiedName(node: Object, opts?: Object): boolean; declare function isTSCallSignatureDeclaration(node: Object, opts?: Object): boolean; declare function isTSConstructSignatureDeclaration(node: Object, opts?: Object): boolean; declare function isTSPropertySignature(node: Object, opts?: Object): boolean; declare function isTSMethodSignature(node: Object, opts?: Object): boolean; declare function isTSIndexSignature(node: Object, opts?: Object): boolean; declare function isTSAnyKeyword(node: Object, opts?: Object): boolean; declare function isTSNumberKeyword(node: Object, opts?: Object): boolean; declare function isTSObjectKeyword(node: Object, opts?: Object): boolean; declare function isTSBooleanKeyword(node: Object, opts?: Object): boolean; declare function isTSStringKeyword(node: Object, opts?: Object): boolean; declare function isTSSymbolKeyword(node: Object, opts?: Object): boolean; declare function isTSVoidKeyword(node: Object, opts?: Object): boolean; declare function isTSUndefinedKeyword(node: Object, opts?: Object): boolean; declare function isTSNullKeyword(node: Object, opts?: Object): boolean; declare function isTSNeverKeyword(node: Object, opts?: Object): boolean; declare function isTSThisType(node: Object, opts?: Object): boolean; declare function isTSFunctionType(node: Object, opts?: Object): boolean; declare function isTSConstructorType(node: Object, opts?: Object): boolean; declare function isTSTypeReference(node: Object, opts?: Object): boolean; declare function isTSTypePredicate(node: Object, opts?: Object): boolean; declare function isTSTypeQuery(node: Object, opts?: Object): boolean; declare function isTSTypeLiteral(node: Object, opts?: Object): boolean; declare function isTSArrayType(node: Object, opts?: Object): boolean; declare function isTSTupleType(node: Object, opts?: Object): boolean; declare function isTSUnionType(node: Object, opts?: Object): boolean; declare function isTSIntersectionType(node: Object, opts?: Object): boolean; declare function isTSParenthesizedType(node: Object, opts?: Object): boolean; declare function isTSTypeOperator(node: Object, opts?: Object): boolean; declare function isTSIndexedAccessType(node: Object, opts?: Object): boolean; declare function isTSMappedType(node: Object, opts?: Object): boolean; declare function isTSLiteralType(node: Object, opts?: Object): boolean; declare function isTSExpressionWithTypeArguments(node: Object, opts?: Object): boolean; declare function isTSInterfaceDeclaration(node: Object, opts?: Object): boolean; declare function isTSInterfaceBody(node: Object, opts?: Object): boolean; declare function isTSTypeAliasDeclaration(node: Object, opts?: Object): boolean; declare function isTSAsExpression(node: Object, opts?: Object): boolean; declare function isTSTypeAssertion(node: Object, opts?: Object): boolean; declare function isTSEnumDeclaration(node: Object, opts?: Object): boolean; declare function isTSEnumMember(node: Object, opts?: Object): boolean; declare function isTSModuleDeclaration(node: Object, opts?: Object): boolean; declare function isTSModuleBlock(node: Object, opts?: Object): boolean; declare function isTSImportEqualsDeclaration(node: Object, opts?: Object): boolean; declare function isTSExternalModuleReference(node: Object, opts?: Object): boolean; declare function isTSNonNullExpression(node: Object, opts?: Object): boolean; declare function isTSExportAssignment(node: Object, opts?: Object): boolean; declare function isTSNamespaceExportDeclaration(node: Object, opts?: Object): boolean; declare function isTSTypeAnnotation(node: Object, opts?: Object): boolean; declare function isTSTypeParameterInstantiation(node: Object, opts?: Object): boolean; declare function isTSTypeParameterDeclaration(node: Object, opts?: Object): boolean; declare function isTSTypeParameter(node: Object, opts?: Object): boolean; 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 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; }