diff --git a/lib/types.js b/lib/types.js index 560cb7963c..575ae15ae9 100644 --- a/lib/types.js +++ b/lib/types.js @@ -39,7 +39,7 @@ declare class BabelNode { declare class BabelNodeArrayExpression extends BabelNode { type: "ArrayExpression"; - elements: Array; + elements?: any; } declare class BabelNodeAssignmentExpression extends BabelNode { @@ -80,7 +80,7 @@ declare class BabelNodeBreakStatement extends BabelNode { declare class BabelNodeCallExpression extends BabelNode { type: "CallExpression"; callee: BabelNodeExpression; - arguments: Array; + arguments: any; } declare class BabelNodeCatchClause extends BabelNode { @@ -108,7 +108,7 @@ declare class BabelNodeDebuggerStatement extends BabelNode { declare class BabelNodeDoWhileStatement extends BabelNode { type: "DoWhileStatement"; test: BabelNodeExpression; - body: BabelNodeBlockStatement; + body: BabelNodeStatement; } declare class BabelNodeEmptyStatement extends BabelNode { @@ -275,7 +275,7 @@ declare class BabelNodeReturnStatement extends BabelNode { declare class BabelNodeSequenceExpression extends BabelNode { type: "SequenceExpression"; - expressions: Array; + expressions: any; } declare class BabelNodeSwitchCase extends BabelNode { @@ -342,7 +342,7 @@ declare class BabelNodeWhileStatement extends BabelNode { declare class BabelNodeWithStatement extends BabelNode { type: "WithStatement"; object: any; - body: BabelNodeBlockStatement; + body: BabelNodeBlockStatement | BabelNodeStatement; } declare class BabelNodeAssignmentPattern extends BabelNode { @@ -376,6 +376,7 @@ declare class BabelNodeClassDeclaration extends BabelNode { body: BabelNodeClassBody; superClass?: ?BabelNodeExpression; decorators: any; + mixins: any; typeParameters: any; superTypeParameters: any; } @@ -386,6 +387,7 @@ declare class BabelNodeClassExpression extends BabelNode { body: BabelNodeClassBody; superClass?: ?BabelNodeExpression; decorators: any; + mixins: any; typeParameters: any; superTypeParameters: any; } @@ -519,6 +521,10 @@ declare class BabelNodeBooleanLiteralTypeAnnotation extends BabelNode { type: "BooleanLiteralTypeAnnotation"; } +declare class BabelNodeNullLiteralTypeAnnotation extends BabelNode { + type: "NullLiteralTypeAnnotation"; +} + declare class BabelNodeClassImplements extends BabelNode { type: "ClassImplements"; id: any; @@ -545,12 +551,26 @@ declare class BabelNodeDeclareFunction extends BabelNode { 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 BabelNodeDeclareTypeAlias extends BabelNode { + type: "DeclareTypeAlias"; + id: any; + typeParameters: any; + right: any; +} + declare class BabelNodeDeclareVariable extends BabelNode { type: "DeclareVariable"; id: any; @@ -623,6 +643,10 @@ declare class BabelNodeStringTypeAnnotation extends BabelNode { type: "StringTypeAnnotation"; } +declare class BabelNodeThisTypeAnnotation extends BabelNode { + type: "ThisTypeAnnotation"; +} + declare class BabelNodeTupleTypeAnnotation extends BabelNode { type: "TupleTypeAnnotation"; types: any; @@ -703,7 +727,7 @@ declare class BabelNodeVoidTypeAnnotation extends BabelNode { declare class BabelNodeJSXAttribute extends BabelNode { type: "JSXAttribute"; - name: BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression; + name: BabelNodeJSXIdentifier | BabelNodeJSXNamespacedName; value?: ?BabelNodeJSXElement | BabelNodeStringLiteral | BabelNodeJSXExpressionContainer; } @@ -736,7 +760,7 @@ declare class BabelNodeJSXIdentifier extends BabelNode { declare class BabelNodeJSXMemberExpression extends BabelNode { type: "JSXMemberExpression"; - object: BabelNodeJSXIdentifier; + object: BabelNodeJSXMemberExpression | BabelNodeJSXIdentifier; property: BabelNodeJSXIdentifier; } @@ -813,12 +837,12 @@ declare class BabelNodeSpreadProperty extends BabelNode { argument: BabelNodeExpression; } -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 | BabelNodeDoExpression; +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 | 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 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 | BabelNodeDeclareTypeAlias | BabelNodeDeclareVariable | BabelNodeInterfaceDeclaration | BabelNodeTypeAlias; type BabelNodeTerminatorless = BabelNodeBreakStatement | BabelNodeContinueStatement | BabelNodeReturnStatement | BabelNodeThrowStatement | BabelNodeYieldExpression | BabelNodeAwaitExpression; type BabelNodeCompletionStatement = BabelNodeBreakStatement | BabelNodeContinueStatement | BabelNodeReturnStatement | BabelNodeThrowStatement; type BabelNodeConditional = BabelNodeConditionalExpression | BabelNodeIfStatement; @@ -830,12 +854,13 @@ type BabelNodeForXStatement = BabelNodeForInStatement | BabelNodeForOfStatement; type BabelNodeFunction = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeObjectMethod | BabelNodeArrowFunctionExpression | BabelNodeClassMethod; type BabelNodeFunctionParent = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | 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 | BabelNodeDeclareModule | BabelNodeDeclareVariable | BabelNodeInterfaceDeclaration | BabelNodeTypeAlias; +type BabelNodeDeclaration = BabelNodeFunctionDeclaration | BabelNodeVariableDeclaration | BabelNodeClassDeclaration | BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeImportDeclaration | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareTypeAlias | BabelNodeDeclareVariable | BabelNodeInterfaceDeclaration | BabelNodeTypeAlias; type BabelNodeLVal = BabelNodeIdentifier | BabelNodeMemberExpression | BabelNodeRestElement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern; type BabelNodeLiteral = BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeTemplateLiteral; type BabelNodeImmutable = BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXExpressionContainer | BabelNodeJSXOpeningElement; type BabelNodeUserWhitespacable = BabelNodeObjectMethod | BabelNodeObjectProperty | BabelNodeObjectTypeCallProperty | BabelNodeObjectTypeIndexer | BabelNodeObjectTypeProperty; type BabelNodeMethod = BabelNodeObjectMethod | BabelNodeClassMethod; +type BabelNodeObjectMember = BabelNodeObjectMethod | BabelNodeObjectProperty; type BabelNodeProperty = BabelNodeObjectProperty | BabelNodeClassProperty; type BabelNodeUnaryLike = BabelNodeUnaryExpression | BabelNodeSpreadElement | BabelNodeRestProperty | BabelNodeSpreadProperty; type BabelNodePattern = BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern; @@ -843,25 +868,25 @@ 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 | BabelNodeExistentialTypeParam | BabelNodeFunctionTypeAnnotation | BabelNodeFunctionTypeParam | BabelNodeGenericTypeAnnotation | BabelNodeInterfaceExtends | BabelNodeInterfaceDeclaration | BabelNodeIntersectionTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeNullableTypeAnnotation | BabelNodeNumericLiteralTypeAnnotation | 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 BabelNodeFlow = BabelNodeAnyTypeAnnotation | BabelNodeArrayTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeBooleanLiteralTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeClassImplements | BabelNodeClassProperty | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareTypeAlias | BabelNodeDeclareVariable | BabelNodeExistentialTypeParam | BabelNodeFunctionTypeAnnotation | BabelNodeFunctionTypeParam | BabelNodeGenericTypeAnnotation | BabelNodeInterfaceExtends | BabelNodeInterfaceDeclaration | BabelNodeIntersectionTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeNullableTypeAnnotation | BabelNodeNumericLiteralTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeStringLiteralTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeTupleTypeAnnotation | BabelNodeTypeofTypeAnnotation | BabelNodeTypeAlias | BabelNodeTypeAnnotation | BabelNodeTypeCastExpression | BabelNodeTypeParameterDeclaration | BabelNodeTypeParameterInstantiation | BabelNodeObjectTypeAnnotation | BabelNodeObjectTypeCallProperty | BabelNodeObjectTypeIndexer | BabelNodeObjectTypeProperty | BabelNodeQualifiedTypeIdentifier | BabelNodeUnionTypeAnnotation | BabelNodeVoidTypeAnnotation; +type BabelNodeFlowBaseAnnotation = BabelNodeAnyTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeVoidTypeAnnotation; +type BabelNodeFlowDeclaration = BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareTypeAlias | 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 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(directives?: any, body: any): BabelNodeBlockStatement; declare function breakStatement(label?: ?BabelNodeIdentifier): BabelNodeBreakStatement; - declare function callExpression(callee: BabelNodeExpression, _arguments: Array): BabelNodeCallExpression; + declare function callExpression(callee: BabelNodeExpression, _arguments: any): 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 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; @@ -886,7 +911,7 @@ declare module "babel-types" { 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 sequenceExpression(expressions: any): BabelNodeSequenceExpression; declare function switchCase(test?: ?BabelNodeExpression, consequent: any): BabelNodeSwitchCase; declare function switchStatement(discriminant: BabelNodeExpression, cases: any): BabelNodeSwitchStatement; declare function thisExpression(): BabelNodeThisExpression; @@ -897,13 +922,13 @@ declare module "babel-types" { 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 withStatement(object: any, body: BabelNodeBlockStatement | BabelNodeStatement): 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 classDeclaration(id: BabelNodeIdentifier, body: BabelNodeClassBody, superClass?: ?BabelNodeExpression, decorators: any, mixins: any, typeParameters: any, superTypeParameters: any, _implements: any): BabelNodeClassDeclaration; + declare function classExpression(id?: ?BabelNodeIdentifier, body: BabelNodeClassBody, superClass?: ?BabelNodeExpression, decorators: any, mixins: any, typeParameters: any, superTypeParameters: any, _implements: any): BabelNodeClassExpression; declare function exportAllDeclaration(source: BabelNodeStringLiteral): BabelNodeExportAllDeclaration; declare function exportDefaultDeclaration(declaration: BabelNodeFunctionDeclaration | BabelNodeClassDeclaration | BabelNodeExpression): BabelNodeExportDefaultDeclaration; declare function exportNamedDeclaration(declaration?: ?BabelNodeDeclaration, specifiers: any, source?: ?BabelNodeStringLiteral): BabelNodeExportNamedDeclaration; @@ -925,11 +950,14 @@ declare module "babel-types" { 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 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 declareInterface(id: any, typeParameters: any, _extends: any, body: any): BabelNodeDeclareInterface; declare function declareModule(id: any, body: any): BabelNodeDeclareModule; + declare function declareTypeAlias(id: any, typeParameters: any, right: any): BabelNodeDeclareTypeAlias; declare function declareVariable(id: any): BabelNodeDeclareVariable; declare function existentialTypeParam(): BabelNodeExistentialTypeParam; declare function functionTypeAnnotation(typeParameters: any, params: any, rest: any, returnType: any): BabelNodeFunctionTypeAnnotation; @@ -944,6 +972,7 @@ declare module "babel-types" { declare function numberTypeAnnotation(): BabelNodeNumberTypeAnnotation; 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; @@ -958,13 +987,13 @@ declare module "babel-types" { 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 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 jSXIdentifier(name: string): BabelNodeJSXIdentifier; - declare function jSXMemberExpression(object: BabelNodeJSXIdentifier, property: BabelNodeJSXIdentifier): BabelNodeJSXMemberExpression; + declare function jSXMemberExpression(object: BabelNodeJSXMemberExpression | 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; @@ -1056,11 +1085,14 @@ declare module "babel-types" { 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 isClassProperty(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 isDeclareTypeAlias(node: Object, opts?: Object): boolean; declare function isDeclareVariable(node: Object, opts?: Object): boolean; declare function isExistentialTypeParam(node: Object, opts?: Object): boolean; declare function isFunctionTypeAnnotation(node: Object, opts?: Object): boolean; @@ -1075,6 +1107,7 @@ declare module "babel-types" { 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 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; @@ -1133,6 +1166,7 @@ declare module "babel-types" { 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;