diff --git a/lib/types.js b/lib/types.js new file mode 100644 index 0000000000..d9e05a7252 --- /dev/null +++ b/lib/types.js @@ -0,0 +1,1152 @@ +// 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: Array; +} + +declare class BabelNodeAssignmentExpression extends BabelNode { + type: "AssignmentExpression"; + operator: string; + left: BabelNodeLVal; + right: BabelNodeExpression; +} + +declare class BabelNodeBinaryExpression extends BabelNode { + type: "BinaryExpression"; + operator: string; + 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"; + directives?: any; + body: any; +} + +declare class BabelNodeBreakStatement extends BabelNode { + type: "BreakStatement"; + label?: ?BabelNodeIdentifier; +} + +declare class BabelNodeCallExpression extends BabelNode { + type: "CallExpression"; + callee: BabelNodeExpression; + arguments: Array; +} + +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: BabelNodeBlockStatement; +} + +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; + returnType: any; + typeParameters: any; +} + +declare class BabelNodeFunctionExpression extends BabelNode { + type: "FunctionExpression"; + id?: ?BabelNodeIdentifier; + params: any; + body: BabelNodeBlockStatement; + generator?: boolean; + async?: boolean; + returnType: any; + typeParameters: any; +} + +declare class BabelNodeIdentifier extends BabelNode { + type: "Identifier"; + name: any; + typeAnnotation: any; +} + +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 BabelNodeNumberLiteral extends BabelNode { + type: "NumberLiteral"; + value: number; +} + +declare class BabelNodeNullLiteral extends BabelNode { + type: "NullLiteral"; +} + +declare class BabelNodeBooleanLiteral extends BabelNode { + type: "BooleanLiteral"; + value: boolean; +} + +declare class BabelNodeRegexLiteral extends BabelNode { + type: "RegexLiteral"; + pattern: string; + flags?: string; +} + +declare class BabelNodeLogicalExpression extends BabelNode { + type: "LogicalExpression"; + operator: any; + left: BabelNodeExpression; + right: BabelNodeExpression; +} + +declare class BabelNodeMemberExpression extends BabelNode { + type: "MemberExpression"; + object: BabelNodeExpression; + property: any; + computed?: boolean; +} + +declare class BabelNodeNewExpression extends BabelNode { + type: "NewExpression"; + callee: BabelNodeExpression; + arguments: any; +} + +declare class BabelNodeProgram extends BabelNode { + type: "Program"; + directives?: any; + body: any; +} + +declare class BabelNodeObjectExpression extends BabelNode { + type: "ObjectExpression"; + properties: any; +} + +declare class BabelNodeObjectMethod extends BabelNode { + type: "ObjectMethod"; + kind?: any; + computed?: boolean; + key: any; + decorators: any; + body: BabelNodeBlockStatement; + generator?: boolean; + async?: boolean; + params: any; + returnType: any; + typeParameters: any; +} + +declare class BabelNodeObjectProperty extends BabelNode { + type: "ObjectProperty"; + computed?: boolean; + key: any; + value: BabelNodeExpression; + shorthand?: boolean; + decorators?: any; +} + +declare class BabelNodeRestElement extends BabelNode { + type: "RestElement"; + argument: BabelNodeLVal; + typeAnnotation: any; +} + +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: any; + consequent: any; +} + +declare class BabelNodeSwitchStatement extends BabelNode { + type: "SwitchStatement"; + discriminant: any; + 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"; + body: BabelNodeBlockStatement; + handler?: any; + finalizer?: ?BabelNodeBlockStatement; + block: any; +} + +declare class BabelNodeUnaryExpression extends BabelNode { + type: "UnaryExpression"; + prefix?: boolean; + argument: BabelNodeExpression; + operator: any; +} + +declare class BabelNodeUpdateExpression extends BabelNode { + type: "UpdateExpression"; + prefix?: boolean; + argument: BabelNodeExpression; + operator: any; +} + +declare class BabelNodeVariableDeclaration extends BabelNode { + type: "VariableDeclaration"; + kind: any; + declarations: any; +} + +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; +} + +declare class BabelNodeAssignmentPattern extends BabelNode { + type: "AssignmentPattern"; + left: BabelNodeIdentifier; + right: BabelNodeExpression; +} + +declare class BabelNodeArrayPattern extends BabelNode { + type: "ArrayPattern"; + elements: any; + typeAnnotation: any; +} + +declare class BabelNodeArrowFunctionExpression extends BabelNode { + type: "ArrowFunctionExpression"; + params: any; + body: BabelNodeBlockStatement | BabelNodeExpression; + async?: boolean; + returnType: any; +} + +declare class BabelNodeClassBody extends BabelNode { + type: "ClassBody"; + body: any; +} + +declare class BabelNodeClassDeclaration extends BabelNode { + type: "ClassDeclaration"; + id: BabelNodeIdentifier; + body: BabelNodeClassBody; + superClass?: ?BabelNodeExpression; + decorators: any; + typeParameters: any; + superTypeParameters: any; +} + +declare class BabelNodeClassExpression extends BabelNode { + type: "ClassExpression"; + id?: ?BabelNodeIdentifier; + body: BabelNodeClassBody; + superClass?: ?BabelNodeExpression; + decorators: any; + typeParameters: any; + superTypeParameters: any; +} + +declare class BabelNodeExportAllDeclaration extends BabelNode { + type: "ExportAllDeclaration"; + source: any; +} + +declare class BabelNodeExportDefaultDeclaration extends BabelNode { + type: "ExportDefaultDeclaration"; + declaration: any; +} + +declare class BabelNodeExportNamedDeclaration extends BabelNode { + type: "ExportNamedDeclaration"; + declaration: any; + specifiers: any; + source: any; +} + +declare class BabelNodeExportSpecifier extends BabelNode { + type: "ExportSpecifier"; + local: BabelNodeIdentifier; + imported: BabelNodeIdentifier; + exported: any; +} + +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; +} + +declare class BabelNodeMetaProperty extends BabelNode { + type: "MetaProperty"; + meta: string; + property: string; +} + +declare class BabelNodeClassMethod extends BabelNode { + type: "ClassMethod"; + kind?: any; + computed?: boolean; + key: any; + params: any; + body: BabelNodeBlockStatement; + generator?: boolean; + async?: boolean; + decorators: any; + returnType: any; + typeParameters: any; +} + +declare class BabelNodeObjectPattern extends BabelNode { + type: "ObjectPattern"; + properties: any; + typeAnnotation: any; +} + +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"; + delegate?: boolean; + argument?: ?BabelNodeExpression; +} + +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 BabelNodeClassImplements extends BabelNode { + type: "ClassImplements"; + id: any; + typeParameters: any; +} + +declare class BabelNodeClassProperty extends BabelNode { + type: "ClassProperty"; + key: any; + value: any; + typeAnnotation: any; + decorators: 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 BabelNodeDeclareModule extends BabelNode { + type: "DeclareModule"; + id: any; + body: any; +} + +declare class BabelNodeDeclareVariable extends BabelNode { + type: "DeclareVariable"; + id: any; +} + +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 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 BabelNodeNullableTypeAnnotation extends BabelNode { + type: "NullableTypeAnnotation"; + typeAnnotation: any; +} + +declare class BabelNodeNumberLiteralTypeAnnotation extends BabelNode { + type: "NumberLiteralTypeAnnotation"; +} + +declare class BabelNodeNumberTypeAnnotation extends BabelNode { + type: "NumberTypeAnnotation"; +} + +declare class BabelNodeStringLiteralTypeAnnotation extends BabelNode { + type: "StringLiteralTypeAnnotation"; +} + +declare class BabelNodeStringTypeAnnotation extends BabelNode { + type: "StringTypeAnnotation"; +} + +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: any; +} + +declare class BabelNodeTypeCastExpression extends BabelNode { + type: "TypeCastExpression"; + expression: any; + typeAnnotation: any; +} + +declare class BabelNodeTypeParameterDeclaration extends BabelNode { + type: "TypeParameterDeclaration"; + params: any; +} + +declare class BabelNodeTypeParameterInstantiation extends BabelNode { + type: "TypeParameterInstantiation"; + params: any; +} + +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 BabelNodeQualifiedTypeIdentifier extends BabelNode { + type: "QualifiedTypeIdentifier"; + id: any; + qualification: 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 | BabelNodeJSXMemberExpression; + 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 BabelNodeJSXIdentifier extends BabelNode { + type: "JSXIdentifier"; + name: string; +} + +declare class BabelNodeJSXMemberExpression extends BabelNode { + type: "JSXMemberExpression"; + object: BabelNodeJSXIdentifier; + property: BabelNodeJSXIdentifier; +} + +declare class BabelNodeJSXNamespacedName extends BabelNode { + type: "JSXNamespacedName"; + namespace: BabelNodeJSXIdentifier; + name: BabelNodeJSXIdentifier; +} + +declare class BabelNodeJSXOpeningElement extends BabelNode { + type: "JSXOpeningElement"; + name: BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression; + selfClosing?: boolean; + attributes: any; +} + +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 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 BabelNodeRestProperty extends BabelNode { + type: "RestProperty"; + argument: BabelNodeLVal; +} + +declare class BabelNodeSpreadProperty extends BabelNode { + type: "SpreadProperty"; + argument: BabelNodeExpression; +} + +type BabelNodeExpression = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeCallExpression | BabelNodeConditionalExpression | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumberLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegexLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeObjectExpression | BabelNodeSequenceExpression | BabelNodeThisExpression | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeArrowFunctionExpression | BabelNodeClassExpression | BabelNodeMetaProperty | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeJSXElement | BabelNodeJSXEmptyExpression | BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeParenthesizedExpression | BabelNodeAwaitExpression | BabelNodeDoExpression; +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 | 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 | BabelNodeDeclareModule | BabelNodeDeclareVariable | BabelNodeInterfaceDeclaration | BabelNodeTypeAlias; +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 | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeArrowFunctionExpression | BabelNodeClassMethod; +type BabelNodePureish = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeStringLiteral | BabelNodeNumberLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeArrowFunctionExpression | BabelNodeClassDeclaration | BabelNodeClassExpression; +type BabelNodeDeclaration = BabelNodeFunctionDeclaration | BabelNodeVariableDeclaration | BabelNodeClassDeclaration | BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeImportDeclaration | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareModule | BabelNodeDeclareVariable | BabelNodeInterfaceDeclaration | BabelNodeTypeAlias; +type BabelNodeLVal = BabelNodeIdentifier | BabelNodeMemberExpression | BabelNodeRestElement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern; +type BabelNodeLiteral = BabelNodeStringLiteral | BabelNodeNumberLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegexLiteral | BabelNodeTemplateLiteral; +type BabelNodeImmutable = BabelNodeStringLiteral | BabelNodeNumberLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXExpressionContainer | BabelNodeJSXOpeningElement; +type BabelNodeUserWhitespacable = BabelNodeObjectMethod | BabelNodeObjectProperty | BabelNodeObjectTypeCallProperty | BabelNodeObjectTypeIndexer | BabelNodeObjectTypeProperty; +type BabelNodeMethod = BabelNodeObjectMethod | BabelNodeClassMethod; +type BabelNodeProperty = BabelNodeObjectProperty | BabelNodeClassProperty; +type BabelNodeUnaryLike = BabelNodeUnaryExpression | BabelNodeSpreadElement | BabelNodeRestProperty | BabelNodeSpreadProperty; +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 | BabelNodeClassImplements | BabelNodeClassProperty | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareModule | BabelNodeDeclareVariable | BabelNodeFunctionTypeAnnotation | BabelNodeFunctionTypeParam | BabelNodeGenericTypeAnnotation | BabelNodeInterfaceExtends | BabelNodeInterfaceDeclaration | BabelNodeIntersectionTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeNullableTypeAnnotation | BabelNodeNumberLiteralTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeStringLiteralTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeTupleTypeAnnotation | BabelNodeTypeofTypeAnnotation | BabelNodeTypeAlias | BabelNodeTypeAnnotation | BabelNodeTypeCastExpression | BabelNodeTypeParameterDeclaration | BabelNodeTypeParameterInstantiation | BabelNodeObjectTypeAnnotation | BabelNodeObjectTypeCallProperty | BabelNodeObjectTypeIndexer | BabelNodeObjectTypeProperty | BabelNodeQualifiedTypeIdentifier | BabelNodeUnionTypeAnnotation | BabelNodeVoidTypeAnnotation; +type BabelNodeFlowBaseAnnotation = BabelNodeAnyTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeVoidTypeAnnotation; +type BabelNodeFlowDeclaration = BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareModule | BabelNodeDeclareVariable | BabelNodeInterfaceDeclaration | BabelNodeTypeAlias; +type BabelNodeJSX = BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXEmptyExpression | BabelNodeJSXExpressionContainer | BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeJSXNamespacedName | BabelNodeJSXOpeningElement | BabelNodeJSXSpreadAttribute | BabelNodeJSXText; + +declare module "babel-types" { + declare function arrayExpression(elements: Array): BabelNodeArrayExpression; + declare function assignmentExpression(operator: string, left: BabelNodeLVal, right: BabelNodeExpression): BabelNodeAssignmentExpression; + declare function binaryExpression(operator: string, left: BabelNodeExpression, right: BabelNodeExpression): BabelNodeBinaryExpression; + declare function directive(value: BabelNodeDirectiveLiteral): BabelNodeDirective; + declare function directiveLiteral(value: string): BabelNodeDirectiveLiteral; + declare function blockStatement(directives?: any, body: any): BabelNodeBlockStatement; + declare function breakStatement(label?: ?BabelNodeIdentifier): BabelNodeBreakStatement; + declare function callExpression(callee: BabelNodeExpression, _arguments: Array): 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: BabelNodeBlockStatement): 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, returnType: any, typeParameters: any): BabelNodeFunctionDeclaration; + declare function functionExpression(id?: ?BabelNodeIdentifier, params: any, body: BabelNodeBlockStatement, generator?: boolean, async?: boolean, returnType: any, typeParameters: any): BabelNodeFunctionExpression; + declare function identifier(name: any, typeAnnotation: any): 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 numberLiteral(value: number): BabelNodeNumberLiteral; + declare function nullLiteral(): BabelNodeNullLiteral; + declare function booleanLiteral(value: boolean): BabelNodeBooleanLiteral; + declare function regexLiteral(pattern: string, flags?: string): BabelNodeRegexLiteral; + declare function logicalExpression(operator: any, left: BabelNodeExpression, right: BabelNodeExpression): BabelNodeLogicalExpression; + declare function memberExpression(object: BabelNodeExpression, property: any, computed?: boolean): BabelNodeMemberExpression; + declare function newExpression(callee: BabelNodeExpression, _arguments: any): BabelNodeNewExpression; + declare function program(directives?: any, body: any): BabelNodeProgram; + declare function objectExpression(properties: any): BabelNodeObjectExpression; + declare function objectMethod(kind?: any, computed?: boolean, key: any, decorators: any, body: BabelNodeBlockStatement, generator?: boolean, async?: boolean, params: any, returnType: any, typeParameters: any): BabelNodeObjectMethod; + declare function objectProperty(computed?: boolean, key: any, value: BabelNodeExpression, shorthand?: boolean, decorators?: any): BabelNodeObjectProperty; + declare function restElement(argument: BabelNodeLVal, typeAnnotation: any): BabelNodeRestElement; + declare function returnStatement(argument?: ?BabelNodeExpression): BabelNodeReturnStatement; + declare function sequenceExpression(expressions: Array): BabelNodeSequenceExpression; + declare function switchCase(test: any, consequent: any): BabelNodeSwitchCase; + declare function switchStatement(discriminant: any, cases: any): BabelNodeSwitchStatement; + declare function thisExpression(): BabelNodeThisExpression; + declare function throwStatement(argument: BabelNodeExpression): BabelNodeThrowStatement; + declare function tryStatement(body: BabelNodeBlockStatement, handler?: any, finalizer?: ?BabelNodeBlockStatement, block: any): BabelNodeTryStatement; + declare function unaryExpression(prefix?: boolean, argument: BabelNodeExpression, operator: any): BabelNodeUnaryExpression; + declare function updateExpression(prefix?: boolean, argument: BabelNodeExpression, operator: any): BabelNodeUpdateExpression; + declare function variableDeclaration(kind: any, declarations: any): 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): BabelNodeWithStatement; + declare function assignmentPattern(left: BabelNodeIdentifier, right: BabelNodeExpression): BabelNodeAssignmentPattern; + declare function arrayPattern(elements: any, typeAnnotation: any): BabelNodeArrayPattern; + declare function arrowFunctionExpression(params: any, body: BabelNodeBlockStatement | BabelNodeExpression, async?: boolean, returnType: any): BabelNodeArrowFunctionExpression; + declare function classBody(body: any): BabelNodeClassBody; + declare function classDeclaration(id: BabelNodeIdentifier, body: BabelNodeClassBody, superClass?: ?BabelNodeExpression, decorators: any, typeParameters: any, superTypeParameters: any, _implements: any): BabelNodeClassDeclaration; + declare function classExpression(id?: ?BabelNodeIdentifier, body: BabelNodeClassBody, superClass?: ?BabelNodeExpression, decorators: any, typeParameters: any, superTypeParameters: any, _implements: any): BabelNodeClassExpression; + declare function exportAllDeclaration(source: any): BabelNodeExportAllDeclaration; + declare function exportDefaultDeclaration(declaration: any): BabelNodeExportDefaultDeclaration; + declare function exportNamedDeclaration(declaration: any, specifiers: any, source: any): BabelNodeExportNamedDeclaration; + declare function exportSpecifier(local: BabelNodeIdentifier, imported: BabelNodeIdentifier, exported: any): BabelNodeExportSpecifier; + declare function forOfStatement(left: BabelNodeVariableDeclaration | BabelNodeLVal, right: BabelNodeExpression, body: BabelNodeStatement): 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): BabelNodeImportSpecifier; + declare function metaProperty(meta: string, property: string): BabelNodeMetaProperty; + declare function classMethod(kind?: any, computed?: boolean, _static?: boolean, key: any, params: any, body: BabelNodeBlockStatement, generator?: boolean, async?: boolean, decorators: any, returnType: any, typeParameters: any): BabelNodeClassMethod; + declare function objectPattern(properties: any, typeAnnotation: any): BabelNodeObjectPattern; + declare function spreadElement(argument: BabelNodeExpression): BabelNodeSpreadElement; + declare function super(): BabelNodeSuper; + 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(delegate?: boolean, argument?: ?BabelNodeExpression): BabelNodeYieldExpression; + declare function anyTypeAnnotation(): BabelNodeAnyTypeAnnotation; + declare function arrayTypeAnnotation(elementType: any): BabelNodeArrayTypeAnnotation; + declare function booleanTypeAnnotation(): BabelNodeBooleanTypeAnnotation; + declare function booleanLiteralTypeAnnotation(): BabelNodeBooleanLiteralTypeAnnotation; + declare function classImplements(id: any, typeParameters: any): BabelNodeClassImplements; + declare function classProperty(key: any, value: any, typeAnnotation: any, decorators: any): BabelNodeClassProperty; + declare function declareClass(id: any, typeParameters: any, _extends: any, body: any): BabelNodeDeclareClass; + declare function declareFunction(id: any): BabelNodeDeclareFunction; + declare function declareModule(id: any, body: any): BabelNodeDeclareModule; + declare function declareVariable(id: any): BabelNodeDeclareVariable; + 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 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 nullableTypeAnnotation(typeAnnotation: any): BabelNodeNullableTypeAnnotation; + declare function numberLiteralTypeAnnotation(): BabelNodeNumberLiteralTypeAnnotation; + declare function numberTypeAnnotation(): BabelNodeNumberTypeAnnotation; + declare function stringLiteralTypeAnnotation(): BabelNodeStringLiteralTypeAnnotation; + declare function stringTypeAnnotation(): BabelNodeStringTypeAnnotation; + 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: any): BabelNodeTypeAnnotation; + declare function typeCastExpression(expression: any, typeAnnotation: any): BabelNodeTypeCastExpression; + declare function typeParameterDeclaration(params: any): BabelNodeTypeParameterDeclaration; + declare function typeParameterInstantiation(params: any): BabelNodeTypeParameterInstantiation; + 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 qualifiedTypeIdentifier(id: any, qualification: any): BabelNodeQualifiedTypeIdentifier; + declare function unionTypeAnnotation(types: any): BabelNodeUnionTypeAnnotation; + declare function voidTypeAnnotation(): BabelNodeVoidTypeAnnotation; + declare function jSXAttribute(name: BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression, 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 jSXIdentifier(name: string): BabelNodeJSXIdentifier; + declare function jSXMemberExpression(object: BabelNodeJSXIdentifier, property: BabelNodeJSXIdentifier): BabelNodeJSXMemberExpression; + declare function jSXNamespacedName(namespace: BabelNodeJSXIdentifier, name: BabelNodeJSXIdentifier): BabelNodeJSXNamespacedName; + declare function jSXOpeningElement(name: BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression, selfClosing?: boolean, attributes: any): 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 decorator(expression: BabelNodeExpression): BabelNodeDecorator; + declare function doExpression(body: BabelNodeBlockStatement): BabelNodeDoExpression; + declare function exportDefaultSpecifier(exported: BabelNodeIdentifier): BabelNodeExportDefaultSpecifier; + declare function exportNamespaceSpecifier(exported: BabelNodeIdentifier): BabelNodeExportNamespaceSpecifier; + declare function restProperty(argument: BabelNodeLVal): BabelNodeRestProperty; + declare function spreadProperty(argument: BabelNodeExpression): BabelNodeSpreadProperty; + 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 isNumberLiteral(node: Object, opts?: Object): boolean; + declare function isNullLiteral(node: Object, opts?: Object): boolean; + declare function isBooleanLiteral(node: Object, opts?: Object): boolean; + declare function isRegexLiteral(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 isClassImplements(node: Object, opts?: Object): boolean; + declare function isClassProperty(node: Object, opts?: Object): boolean; + declare function isDeclareClass(node: Object, opts?: Object): boolean; + declare function isDeclareFunction(node: Object, opts?: Object): boolean; + declare function isDeclareModule(node: Object, opts?: Object): boolean; + declare function isDeclareVariable(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 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 isNullableTypeAnnotation(node: Object, opts?: Object): boolean; + declare function isNumberLiteralTypeAnnotation(node: Object, opts?: Object): boolean; + declare function isNumberTypeAnnotation(node: Object, opts?: Object): boolean; + declare function isStringLiteralTypeAnnotation(node: Object, opts?: Object): boolean; + declare function isStringTypeAnnotation(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 isTypeParameterDeclaration(node: Object, opts?: Object): boolean; + declare function isTypeParameterInstantiation(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 isQualifiedTypeIdentifier(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 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 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 isRestProperty(node: Object, opts?: Object): boolean; + declare function isSpreadProperty(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 isLVal(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 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 isJSX(node: Object, opts?: Object): boolean; + declare function isReferencedIdentifier(node: Object, opts?: Object): boolean; + declare function isReferencedMemberExpression(node: Object, opts?: Object): boolean; + declare function isBindingIdentifier(node: Object, opts?: Object): boolean; + declare function isScope(node: Object, opts?: Object): boolean; + declare function isReferenced(node: Object, opts?: Object): boolean; + declare function isBlockScoped(node: Object, opts?: Object): boolean; + declare function isVar(node: Object, opts?: Object): boolean; + declare function isUser(node: Object, opts?: Object): boolean; + declare function isGenerated(node: Object, opts?: Object): boolean; + declare function isPure(node: Object, opts?: Object): boolean; +}