Fix linting errors for babel-types

This commit is contained in:
Marvin Hagemeister 2017-07-18 10:46:45 +02:00
parent 352aa44c0a
commit 9b935347f5
3 changed files with 433 additions and 389 deletions

View File

@ -1,7 +1,3 @@
/// <reference types="babel-traverse" />
// Examples from https://github.com/thejameskyle/babel-handbook/blob/master/translations/en/plugin-handbook.md#babel-types
import traverse from "babel-traverse";
import * as t from "babel-types";
@ -25,13 +21,13 @@ if (t.isBinaryExpression(ast)) {
ast.right;
ast.operator;
}
t.assertBinaryExpression(ast);
t.assertBinaryExpression(ast, { operator: "*" });
var exp: t.Expression = t.nullLiteral();
const exp: t.Expression = t.nullLiteral();
// React examples:
// https://github.com/babel/babel/blob/4e50b2d9d9c376cee7a2cbf56553fe5b982ea53c/packages/babel-plugin-transform-react-inline-elements/src/index.js#L61
traverse(ast, {
JSXElement(path, file) {

View File

@ -1,9 +1,10 @@
// Type definitions for babel-types v6.25
// Type definitions for babel-types 6.25
// Project: https://github.com/babel/babel/tree/master/packages/babel-types
// Definitions by: Troy Gerwien <https://github.com/yortus>
// Sam Baxter <https://github.com/baxtersa>
// Marvin Hagemeister <https://github.com/marvinhagemeister>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
export interface Comment {
value: string;
@ -34,9 +35,9 @@ export interface SourceLocation {
export interface Node {
type: string;
leadingComments?: Array<Comment>;
innerComments?: Array<Comment>;
trailingComments?: Array<Comment>;
leadingComments?: Comment[];
innerComments?: Comment[];
trailingComments?: Comment[];
start: number;
end: number;
loc: SourceLocation;
@ -150,7 +151,7 @@ export interface ForStatement extends Node {
export interface FunctionDeclaration extends Node {
type: "FunctionDeclaration";
id: Identifier;
params: Array<LVal>;
params: LVal[];
body: BlockStatement;
generator: boolean;
async: boolean;
@ -161,7 +162,7 @@ export interface FunctionDeclaration extends Node {
export interface FunctionExpression extends Node {
type: "FunctionExpression";
id: Identifier;
params: Array<LVal>;
params: LVal[];
body: BlockStatement;
generator: boolean;
async: boolean;
@ -254,7 +255,7 @@ export interface ObjectMethod extends Node {
value: Expression;
decorators?: Decorator[];
id: Identifier;
params: Array<LVal>;
params: LVal[];
body: BlockStatement;
generator: boolean;
async: boolean;
@ -361,14 +362,14 @@ export interface AssignmentPattern extends Node {
export interface ArrayPattern extends Node {
type: "ArrayPattern";
elements: Array<Expression>;
elements: Expression[];
typeAnnotation?: TypeAnnotation;
}
export interface ArrowFunctionExpression extends Node {
type: "ArrowFunctionExpression";
id: Identifier;
params: Array<LVal>;
params: LVal[];
body: BlockStatement | Expression;
generator: boolean;
async: boolean;
@ -474,7 +475,7 @@ export interface ClassMethod extends Node {
static: boolean;
decorators?: Decorator[];
id: Identifier;
params: Array<LVal>;
params: LVal[];
body: BlockStatement;
generator: boolean;
async: boolean;
@ -872,12 +873,33 @@ export interface SpreadProperty extends Node {
argument: Expression;
}
export type Expression = ArrayExpression | AssignmentExpression | BinaryExpression | CallExpression | ConditionalExpression | FunctionExpression | Identifier | StringLiteral | NumericLiteral | BooleanLiteral | NullLiteral | RegExpLiteral | LogicalExpression | MemberExpression | NewExpression | ObjectExpression | SequenceExpression | ThisExpression | UnaryExpression | UpdateExpression | ArrowFunctionExpression | ClassExpression | MetaProperty | Super | TaggedTemplateExpression | TemplateLiteral | YieldExpression | TypeCastExpression | JSXElement | JSXEmptyExpression | JSXIdentifier | JSXMemberExpression | ParenthesizedExpression | AwaitExpression | BindExpression | DoExpression;
export type Expression = ArrayExpression | AssignmentExpression | BinaryExpression | CallExpression
| ConditionalExpression | FunctionExpression | Identifier | StringLiteral | NumericLiteral | BooleanLiteral
| NullLiteral | RegExpLiteral | LogicalExpression | MemberExpression | NewExpression | ObjectExpression
| SequenceExpression | ThisExpression | UnaryExpression | UpdateExpression | ArrowFunctionExpression
| ClassExpression | MetaProperty | Super | TaggedTemplateExpression | TemplateLiteral | YieldExpression
| TypeCastExpression | JSXElement | JSXEmptyExpression | JSXIdentifier | JSXMemberExpression
| ParenthesizedExpression | AwaitExpression | BindExpression | DoExpression;
export type Binary = BinaryExpression | LogicalExpression;
export type Scopable = BlockStatement | CatchClause | DoWhileStatement | ForInStatement | ForStatement | FunctionDeclaration | FunctionExpression | Program | ObjectMethod | SwitchStatement | WhileStatement | ArrowFunctionExpression | ClassDeclaration | ClassExpression | ForOfStatement | ClassMethod;
export type BlockParent = BlockStatement | DoWhileStatement | ForInStatement | ForStatement | FunctionDeclaration | FunctionExpression | Program | ObjectMethod | SwitchStatement | WhileStatement | ArrowFunctionExpression | ForOfStatement | ClassMethod;
export type Scopable = BlockStatement | CatchClause | DoWhileStatement | ForInStatement | ForStatement
| FunctionDeclaration | FunctionExpression | Program | ObjectMethod | SwitchStatement | WhileStatement
| ArrowFunctionExpression | ClassDeclaration | ClassExpression | ForOfStatement | ClassMethod;
export type BlockParent = BlockStatement | DoWhileStatement | ForInStatement | ForStatement | FunctionDeclaration
| FunctionExpression | Program | ObjectMethod | SwitchStatement | WhileStatement | ArrowFunctionExpression
| ForOfStatement | ClassMethod;
export type Block = BlockStatement | Program;
export type Statement = BlockStatement | BreakStatement | ContinueStatement | DebuggerStatement | DoWhileStatement | EmptyStatement | ExpressionStatement | ForInStatement | ForStatement | FunctionDeclaration | IfStatement | LabeledStatement | ReturnStatement | SwitchStatement | ThrowStatement | TryStatement | VariableDeclaration | WhileStatement | WithStatement | ClassDeclaration | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ForOfStatement | ImportDeclaration | DeclareClass | DeclareFunction | DeclareInterface | DeclareModule | DeclareTypeAlias | DeclareVariable | InterfaceDeclaration | TypeAlias;
export type Statement = BlockStatement | BreakStatement | ContinueStatement | DebuggerStatement | DoWhileStatement
| EmptyStatement | ExpressionStatement | ForInStatement | ForStatement | FunctionDeclaration | IfStatement
| LabeledStatement | ReturnStatement | SwitchStatement | ThrowStatement | TryStatement | VariableDeclaration
| WhileStatement | WithStatement | ClassDeclaration | ExportAllDeclaration | ExportDefaultDeclaration
| ExportNamedDeclaration | ForOfStatement | ImportDeclaration | DeclareClass | DeclareFunction | DeclareInterface
| DeclareModule | DeclareTypeAlias | DeclareVariable | InterfaceDeclaration | TypeAlias;
export type Terminatorless = BreakStatement | ContinueStatement | ReturnStatement | ThrowStatement | YieldExpression | AwaitExpression;
export type CompletionStatement = BreakStatement | ContinueStatement | ReturnStatement | ThrowStatement;
export type Conditional = ConditionalExpression | IfStatement;
@ -889,7 +911,11 @@ export type ForXStatement = ForInStatement | ForOfStatement;
export type Function = FunctionDeclaration | FunctionExpression | ObjectMethod | ArrowFunctionExpression | ClassMethod;
export type FunctionParent = FunctionDeclaration | FunctionExpression | Program | ObjectMethod | ArrowFunctionExpression | ClassMethod;
export type Pureish = FunctionDeclaration | FunctionExpression | StringLiteral | NumericLiteral | BooleanLiteral | NullLiteral | ArrowFunctionExpression | ClassDeclaration | ClassExpression;
export type Declaration = FunctionDeclaration | VariableDeclaration | ClassDeclaration | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ImportDeclaration | DeclareClass | DeclareFunction | DeclareInterface | DeclareModule | DeclareTypeAlias | DeclareVariable | InterfaceDeclaration | TypeAlias;
export type Declaration = FunctionDeclaration | VariableDeclaration | ClassDeclaration | ExportAllDeclaration
| ExportDefaultDeclaration | ExportNamedDeclaration | ImportDeclaration | DeclareClass | DeclareFunction
| DeclareInterface | DeclareModule | DeclareTypeAlias | DeclareVariable | InterfaceDeclaration | TypeAlias;
export type LVal = Identifier | MemberExpression | RestElement | AssignmentPattern | ArrayPattern | ObjectPattern;
export type Literal = StringLiteral | NumericLiteral | BooleanLiteral | NullLiteral | RegExpLiteral | TemplateLiteral;
export type Immutable = StringLiteral | NumericLiteral | BooleanLiteral | NullLiteral | JSXAttribute | JSXClosingElement | JSXElement | JSXExpressionContainer | JSXOpeningElement;
@ -903,15 +929,36 @@ export type Class = ClassDeclaration | ClassExpression;
export type ModuleDeclaration = ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ImportDeclaration;
export type ExportDeclaration = ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration;
export type ModuleSpecifier = ExportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier | ExportDefaultSpecifier | ExportNamespaceSpecifier;
export type Flow = AnyTypeAnnotation | ArrayTypeAnnotation | BooleanTypeAnnotation | BooleanLiteralTypeAnnotation | ClassImplements | ClassProperty | DeclareClass | DeclareFunction | DeclareInterface | DeclareModule | DeclareTypeAlias | DeclareVariable | ExistentialTypeParam | FunctionTypeAnnotation | FunctionTypeParam | GenericTypeAnnotation | InterfaceExtends | InterfaceDeclaration | IntersectionTypeAnnotation | MixedTypeAnnotation | NullableTypeAnnotation | NumericLiteralTypeAnnotation | NumberTypeAnnotation | StringLiteralTypeAnnotation | StringTypeAnnotation | ThisTypeAnnotation | TupleTypeAnnotation | TypeofTypeAnnotation | TypeAlias | TypeAnnotation | TypeCastExpression | TypeParameterDeclaration | TypeParameterInstantiation | ObjectTypeAnnotation | ObjectTypeCallProperty | ObjectTypeIndexer | ObjectTypeProperty | QualifiedTypeIdentifier | UnionTypeAnnotation | VoidTypeAnnotation;
export type FlowTypeAnnotation = AnyTypeAnnotation | ArrayTypeAnnotation | BooleanTypeAnnotation | BooleanLiteralTypeAnnotation | FunctionTypeAnnotation | GenericTypeAnnotation | IntersectionTypeAnnotation | MixedTypeAnnotation | NullableTypeAnnotation | NumericLiteralTypeAnnotation | NumberTypeAnnotation | StringLiteralTypeAnnotation | StringTypeAnnotation | ThisTypeAnnotation | TupleTypeAnnotation | TypeofTypeAnnotation | TypeAnnotation | ObjectTypeAnnotation | UnionTypeAnnotation | VoidTypeAnnotation;
export type Flow = AnyTypeAnnotation | ArrayTypeAnnotation | BooleanTypeAnnotation | BooleanLiteralTypeAnnotation
| ClassImplements | ClassProperty | DeclareClass | DeclareFunction | DeclareInterface | DeclareModule
| DeclareTypeAlias | DeclareVariable | ExistentialTypeParam | FunctionTypeAnnotation | FunctionTypeParam
| GenericTypeAnnotation | InterfaceExtends | InterfaceDeclaration | IntersectionTypeAnnotation
| MixedTypeAnnotation | NullableTypeAnnotation | NumericLiteralTypeAnnotation | NumberTypeAnnotation
| StringLiteralTypeAnnotation | StringTypeAnnotation | ThisTypeAnnotation | TupleTypeAnnotation
| TypeofTypeAnnotation | TypeAlias | TypeAnnotation | TypeCastExpression | TypeParameterDeclaration
| TypeParameterInstantiation | ObjectTypeAnnotation | ObjectTypeCallProperty | ObjectTypeIndexer
| ObjectTypeProperty | QualifiedTypeIdentifier | UnionTypeAnnotation | VoidTypeAnnotation;
export type FlowTypeAnnotation = AnyTypeAnnotation | ArrayTypeAnnotation | BooleanTypeAnnotation
| BooleanLiteralTypeAnnotation | FunctionTypeAnnotation | GenericTypeAnnotation | IntersectionTypeAnnotation
| MixedTypeAnnotation | NullableTypeAnnotation | NumericLiteralTypeAnnotation | NumberTypeAnnotation
| StringLiteralTypeAnnotation | StringTypeAnnotation | ThisTypeAnnotation | TupleTypeAnnotation
| TypeofTypeAnnotation | TypeAnnotation | ObjectTypeAnnotation | UnionTypeAnnotation | VoidTypeAnnotation;
export type FlowBaseAnnotation = AnyTypeAnnotation | BooleanTypeAnnotation | MixedTypeAnnotation | NumberTypeAnnotation | StringTypeAnnotation | ThisTypeAnnotation | VoidTypeAnnotation;
export type FlowDeclaration = DeclareClass | DeclareFunction | DeclareInterface | DeclareModule | DeclareTypeAlias | DeclareVariable | InterfaceDeclaration | TypeAlias;
export type JSX = JSXAttribute | JSXClosingElement | JSXElement | JSXEmptyExpression | JSXExpressionContainer | JSXIdentifier | JSXMemberExpression | JSXNamespacedName | JSXOpeningElement | JSXSpreadAttribute | JSXText;
export type JSX = JSXAttribute | JSXClosingElement | JSXElement | JSXEmptyExpression | JSXExpressionContainer
| JSXIdentifier | JSXMemberExpression | JSXNamespacedName | JSXOpeningElement | JSXSpreadAttribute | JSXText;
export function arrayExpression(elements?: Array<Expression | SpreadElement>): ArrayExpression;
export function assignmentExpression(operator?: string, left?: LVal, right?: Expression): AssignmentExpression;
export function binaryExpression(operator?: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=", left?: Expression, right?: Expression): BinaryExpression;
export function binaryExpression(
operator?: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=",
left?: Expression,
right?: Expression
): BinaryExpression;
export function directive(value?: DirectiveLiteral): Directive;
export function directiveLiteral(value?: string): DirectiveLiteral;
export function blockStatement(body?: Statement[], directives?: Directive[]): BlockStatement;
@ -927,8 +974,8 @@ export function expressionStatement(expression?: Expression): ExpressionStatemen
export function file(program?: Program, comments?: Comment[], tokens?: any[]): File;
export function forInStatement(left?: VariableDeclaration | LVal, right?: Expression, body?: Statement): ForInStatement;
export function forStatement(init?: VariableDeclaration | Expression, test?: Expression, update?: Expression, body?: Statement): ForStatement;
export function functionDeclaration(id?: Identifier, params?: Array<LVal>, body?: BlockStatement, generator?: boolean, async?: boolean): FunctionDeclaration;
export function functionExpression(id?: Identifier, params?: Array<LVal>, body?: BlockStatement, generator?: boolean, async?: boolean): FunctionExpression;
export function functionDeclaration(id?: Identifier, params?: LVal[], body?: BlockStatement, generator?: boolean, async?: boolean): FunctionDeclaration;
export function functionExpression(id?: Identifier, params?: LVal[], body?: BlockStatement, generator?: boolean, async?: boolean): FunctionExpression;
export function identifier(name?: string): Identifier;
export function ifStatement(test?: Expression, consequent?: Statement, alternate?: Statement): IfStatement;
export function labeledStatement(label?: Identifier, body?: Statement): LabeledStatement;
@ -942,7 +989,7 @@ export function memberExpression(object?: Expression | Super, property?: Express
export function newExpression(callee?: Expression | Super, _arguments?: Array<Expression | SpreadElement>): NewExpression;
export function program(body?: Array<Statement | ModuleDeclaration>, directives?: Directive[]): Program;
export function objectExpression(properties?: Array<ObjectProperty | ObjectMethod | SpreadProperty>): ObjectExpression;
export function objectMethod(kind?: "get" | "set" | "method", key?: Expression, params?: Array<LVal>, body?: BlockStatement, computed?: boolean): ObjectMethod;
export function objectMethod(kind?: "get" | "set" | "method", key?: Expression, params?: LVal[], body?: BlockStatement, computed?: boolean): ObjectMethod;
export function objectProperty(key?: Expression, value?: Expression, computed?: boolean, shorthand?: boolean, decorators?: Decorator[]): ObjectProperty;
export function restElement(argument?: LVal, typeAnnotation?: TypeAnnotation): RestElement;
export function returnStatement(argument?: Expression): ReturnStatement;
@ -959,8 +1006,8 @@ export function variableDeclarator(id?: LVal, init?: Expression): VariableDeclar
export function whileStatement(test?: Expression, body?: BlockStatement | Statement): WhileStatement;
export function withStatement(object?: Expression, body?: BlockStatement | Statement): WithStatement;
export function assignmentPattern(left?: Identifier, right?: Expression): AssignmentPattern;
export function arrayPattern(elements?: Array<Expression>, typeAnnotation?: TypeAnnotation): ArrayPattern;
export function arrowFunctionExpression(params?: Array<LVal>, body?: BlockStatement | Expression, async?: boolean): ArrowFunctionExpression;
export function arrayPattern(elements?: Expression[], typeAnnotation?: TypeAnnotation): ArrayPattern;
export function arrowFunctionExpression(params?: LVal[], body?: BlockStatement | Expression, async?: boolean): ArrowFunctionExpression;
export function classBody(body?: Array<ClassMethod | ClassProperty>): ClassBody;
export function classDeclaration(id?: Identifier, superClass?: Expression, body?: ClassBody, decorators?: Decorator[]): ClassDeclaration;
export function classExpression(id?: Identifier, superClass?: Expression, body?: ClassBody, decorators?: Decorator[]): ClassExpression;
@ -974,11 +1021,11 @@ export function importDefaultSpecifier(local?: Identifier): ImportDefaultSpecifi
export function importNamespaceSpecifier(local?: Identifier): ImportNamespaceSpecifier;
export function importSpecifier(local?: Identifier, imported?: Identifier): ImportSpecifier;
export function metaProperty(meta?: string, property?: string): MetaProperty;
export function classMethod(kind?: "constructor" | "method" | "get" | "set", key?: Expression, params?: Array<LVal>, body?: BlockStatement, computed?: boolean, _static?: boolean): ClassMethod;
export function classMethod(kind?: "constructor" | "method" | "get" | "set", key?: Expression, params?: LVal[], body?: BlockStatement, computed?: boolean, _static?: boolean): ClassMethod;
export function objectPattern(properties?: Array<AssignmentProperty | RestProperty>, typeAnnotation?: TypeAnnotation): ObjectPattern;
export function spreadElement(argument?: Expression): SpreadElement;
export function taggedTemplateExpression(tag?: Expression, quasi?: TemplateLiteral): TaggedTemplateExpression;
export function templateElement(value?: {cooked?: string; raw?: string;}, tail?: boolean): TemplateElement;
export function templateElement(value?: { cooked?: string; raw?: string; }, tail?: boolean): TemplateElement;
export function templateLiteral(quasis?: TemplateElement[], expressions?: Expression[]): TemplateLiteral;
export function yieldExpression(argument?: Expression, delegate?: boolean): YieldExpression;
export function anyTypeAnnotation(): AnyTypeAnnotation;
@ -1044,367 +1091,367 @@ export function exportNamespaceSpecifier(exported?: Identifier): ExportNamespace
export function restProperty(argument?: LVal): RestProperty;
export function spreadProperty(argument?: Expression): SpreadProperty;
export function isArrayExpression(node: Object, opts?: Object): node is ArrayExpression;
export function isAssignmentExpression(node: Object, opts?: Object): node is AssignmentExpression;
export function isBinaryExpression(node: Object, opts?: Object): node is BinaryExpression;
export function isDirective(node: Object, opts?: Object): node is Directive;
export function isDirectiveLiteral(node: Object, opts?: Object): node is DirectiveLiteral;
export function isBlockStatement(node: Object, opts?: Object): node is BlockStatement;
export function isBreakStatement(node: Object, opts?: Object): node is BreakStatement;
export function isCallExpression(node: Object, opts?: Object): node is CallExpression;
export function isCatchClause(node: Object, opts?: Object): node is CatchClause;
export function isConditionalExpression(node: Object, opts?: Object): node is ConditionalExpression;
export function isContinueStatement(node: Object, opts?: Object): node is ContinueStatement;
export function isDebuggerStatement(node: Object, opts?: Object): node is DebuggerStatement;
export function isDoWhileStatement(node: Object, opts?: Object): node is DoWhileStatement;
export function isEmptyStatement(node: Object, opts?: Object): node is EmptyStatement;
export function isExpressionStatement(node: Object, opts?: Object): node is ExpressionStatement;
export function isFile(node: Object, opts?: Object): node is File;
export function isForInStatement(node: Object, opts?: Object): node is ForInStatement;
export function isForStatement(node: Object, opts?: Object): node is ForStatement;
export function isFunctionDeclaration(node: Object, opts?: Object): node is FunctionDeclaration;
export function isFunctionExpression(node: Object, opts?: Object): node is FunctionExpression;
export function isIdentifier(node: Object, opts?: Object): node is Identifier;
export function isIfStatement(node: Object, opts?: Object): node is IfStatement;
export function isLabeledStatement(node: Object, opts?: Object): node is LabeledStatement;
export function isStringLiteral(node: Object, opts?: Object): node is StringLiteral;
export function isNumericLiteral(node: Object, opts?: Object): node is NumericLiteral;
export function isNullLiteral(node: Object, opts?: Object): node is NullLiteral;
export function isBooleanLiteral(node: Object, opts?: Object): node is BooleanLiteral;
export function isRegExpLiteral(node: Object, opts?: Object): node is RegExpLiteral;
export function isLogicalExpression(node: Object, opts?: Object): node is LogicalExpression;
export function isMemberExpression(node: Object, opts?: Object): node is MemberExpression;
export function isNewExpression(node: Object, opts?: Object): node is NewExpression;
export function isProgram(node: Object, opts?: Object): node is Program;
export function isObjectExpression(node: Object, opts?: Object): node is ObjectExpression;
export function isObjectMethod(node: Object, opts?: Object): node is ObjectMethod;
export function isObjectProperty(node: Object, opts?: Object): node is ObjectProperty;
export function isRestElement(node: Object, opts?: Object): node is RestElement;
export function isReturnStatement(node: Object, opts?: Object): node is ReturnStatement;
export function isSequenceExpression(node: Object, opts?: Object): node is SequenceExpression;
export function isSwitchCase(node: Object, opts?: Object): node is SwitchCase;
export function isSwitchStatement(node: Object, opts?: Object): node is SwitchStatement;
export function isThisExpression(node: Object, opts?: Object): node is ThisExpression;
export function isThrowStatement(node: Object, opts?: Object): node is ThrowStatement;
export function isTryStatement(node: Object, opts?: Object): node is TryStatement;
export function isUnaryExpression(node: Object, opts?: Object): node is UnaryExpression;
export function isUpdateExpression(node: Object, opts?: Object): node is UpdateExpression;
export function isVariableDeclaration(node: Object, opts?: Object): node is VariableDeclaration;
export function isVariableDeclarator(node: Object, opts?: Object): node is VariableDeclarator;
export function isWhileStatement(node: Object, opts?: Object): node is WhileStatement;
export function isWithStatement(node: Object, opts?: Object): node is WithStatement;
export function isAssignmentPattern(node: Object, opts?: Object): node is AssignmentPattern;
export function isArrayPattern(node: Object, opts?: Object): node is ArrayPattern;
export function isArrowFunctionExpression(node: Object, opts?: Object): node is ArrowFunctionExpression;
export function isClassBody(node: Object, opts?: Object): node is ClassBody;
export function isClassDeclaration(node: Object, opts?: Object): node is ClassDeclaration;
export function isClassExpression(node: Object, opts?: Object): node is ClassExpression;
export function isExportAllDeclaration(node: Object, opts?: Object): node is ExportAllDeclaration;
export function isExportDefaultDeclaration(node: Object, opts?: Object): node is ExportDefaultDeclaration;
export function isExportNamedDeclaration(node: Object, opts?: Object): node is ExportNamedDeclaration;
export function isExportSpecifier(node: Object, opts?: Object): node is ExportSpecifier;
export function isForOfStatement(node: Object, opts?: Object): node is ForOfStatement;
export function isImportDeclaration(node: Object, opts?: Object): node is ImportDeclaration;
export function isImportDefaultSpecifier(node: Object, opts?: Object): node is ImportDefaultSpecifier;
export function isImportNamespaceSpecifier(node: Object, opts?: Object): node is ImportNamespaceSpecifier;
export function isImportSpecifier(node: Object, opts?: Object): node is ImportSpecifier;
export function isMetaProperty(node: Object, opts?: Object): node is MetaProperty;
export function isClassMethod(node: Object, opts?: Object): node is ClassMethod;
export function isObjectPattern(node: Object, opts?: Object): node is ObjectPattern;
export function isSpreadElement(node: Object, opts?: Object): node is SpreadElement;
export function isSuper(node: Object, opts?: Object): node is Super;
export function isTaggedTemplateExpression(node: Object, opts?: Object): node is TaggedTemplateExpression;
export function isTemplateElement(node: Object, opts?: Object): node is TemplateElement;
export function isTemplateLiteral(node: Object, opts?: Object): node is TemplateLiteral;
export function isYieldExpression(node: Object, opts?: Object): node is YieldExpression;
export function isAnyTypeAnnotation(node: Object, opts?: Object): node is AnyTypeAnnotation;
export function isArrayTypeAnnotation(node: Object, opts?: Object): node is ArrayTypeAnnotation;
export function isBooleanTypeAnnotation(node: Object, opts?: Object): node is BooleanTypeAnnotation;
export function isBooleanLiteralTypeAnnotation(node: Object, opts?: Object): node is BooleanLiteralTypeAnnotation;
export function isNullLiteralTypeAnnotation(node: Object, opts?: Object): node is NullLiteralTypeAnnotation;
export function isClassImplements(node: Object, opts?: Object): node is ClassImplements;
export function isClassProperty(node: Object, opts?: Object): node is ClassProperty;
export function isDeclareClass(node: Object, opts?: Object): node is DeclareClass;
export function isDeclareFunction(node: Object, opts?: Object): node is DeclareFunction;
export function isDeclareInterface(node: Object, opts?: Object): node is DeclareInterface;
export function isDeclareModule(node: Object, opts?: Object): node is DeclareModule;
export function isDeclareTypeAlias(node: Object, opts?: Object): node is DeclareTypeAlias;
export function isDeclareVariable(node: Object, opts?: Object): node is DeclareVariable;
export function isExistentialTypeParam(node: Object, opts?: Object): node is ExistentialTypeParam;
export function isFunctionTypeAnnotation(node: Object, opts?: Object): node is FunctionTypeAnnotation;
export function isFunctionTypeParam(node: Object, opts?: Object): node is FunctionTypeParam;
export function isGenericTypeAnnotation(node: Object, opts?: Object): node is GenericTypeAnnotation;
export function isInterfaceExtends(node: Object, opts?: Object): node is InterfaceExtends;
export function isInterfaceDeclaration(node: Object, opts?: Object): node is InterfaceDeclaration;
export function isIntersectionTypeAnnotation(node: Object, opts?: Object): node is IntersectionTypeAnnotation;
export function isMixedTypeAnnotation(node: Object, opts?: Object): node is MixedTypeAnnotation;
export function isNullableTypeAnnotation(node: Object, opts?: Object): node is NullableTypeAnnotation;
export function isNumericLiteralTypeAnnotation(node: Object, opts?: Object): node is NumericLiteralTypeAnnotation;
export function isNumberTypeAnnotation(node: Object, opts?: Object): node is NumberTypeAnnotation;
export function isStringLiteralTypeAnnotation(node: Object, opts?: Object): node is StringLiteralTypeAnnotation;
export function isStringTypeAnnotation(node: Object, opts?: Object): node is StringTypeAnnotation;
export function isThisTypeAnnotation(node: Object, opts?: Object): node is ThisTypeAnnotation;
export function isTupleTypeAnnotation(node: Object, opts?: Object): node is TupleTypeAnnotation;
export function isTypeofTypeAnnotation(node: Object, opts?: Object): node is TypeofTypeAnnotation;
export function isTypeAlias(node: Object, opts?: Object): node is TypeAlias;
export function isTypeAnnotation(node: Object, opts?: Object): node is TypeAnnotation;
export function isTypeCastExpression(node: Object, opts?: Object): node is TypeCastExpression;
export function isTypeParameterDeclaration(node: Object, opts?: Object): node is TypeParameterDeclaration;
export function isTypeParameterInstantiation(node: Object, opts?: Object): node is TypeParameterInstantiation;
export function isObjectTypeAnnotation(node: Object, opts?: Object): node is ObjectTypeAnnotation;
export function isObjectTypeCallProperty(node: Object, opts?: Object): node is ObjectTypeCallProperty;
export function isObjectTypeIndexer(node: Object, opts?: Object): node is ObjectTypeIndexer;
export function isObjectTypeProperty(node: Object, opts?: Object): node is ObjectTypeProperty;
export function isQualifiedTypeIdentifier(node: Object, opts?: Object): node is QualifiedTypeIdentifier;
export function isUnionTypeAnnotation(node: Object, opts?: Object): node is UnionTypeAnnotation;
export function isVoidTypeAnnotation(node: Object, opts?: Object): node is VoidTypeAnnotation;
export function isJSXAttribute(node: Object, opts?: Object): node is JSXAttribute;
export function isJSXClosingElement(node: Object, opts?: Object): node is JSXClosingElement;
export function isJSXElement(node: Object, opts?: Object): node is JSXElement;
export function isJSXEmptyExpression(node: Object, opts?: Object): node is JSXEmptyExpression;
export function isJSXExpressionContainer(node: Object, opts?: Object): node is JSXExpressionContainer;
export function isJSXIdentifier(node: Object, opts?: Object): node is JSXIdentifier;
export function isJSXMemberExpression(node: Object, opts?: Object): node is JSXMemberExpression;
export function isJSXNamespacedName(node: Object, opts?: Object): node is JSXNamespacedName;
export function isJSXOpeningElement(node: Object, opts?: Object): node is JSXOpeningElement;
export function isJSXSpreadAttribute(node: Object, opts?: Object): node is JSXSpreadAttribute;
export function isJSXText(node: Object, opts?: Object): node is JSXText;
export function isNoop(node: Object, opts?: Object): node is Noop;
export function isParenthesizedExpression(node: Object, opts?: Object): node is ParenthesizedExpression;
export function isAwaitExpression(node: Object, opts?: Object): node is AwaitExpression;
export function isBindExpression(node: Object, opts?: Object): node is BindExpression;
export function isDecorator(node: Object, opts?: Object): node is Decorator;
export function isDoExpression(node: Object, opts?: Object): node is DoExpression;
export function isExportDefaultSpecifier(node: Object, opts?: Object): node is ExportDefaultSpecifier;
export function isExportNamespaceSpecifier(node: Object, opts?: Object): node is ExportNamespaceSpecifier;
export function isRestProperty(node: Object, opts?: Object): node is RestProperty;
export function isSpreadProperty(node: Object, opts?: Object): node is SpreadProperty;
export function isExpression(node: Object, opts?: Object): node is Expression;
export function isBinary(node: Object, opts?: Object): node is Binary;
export function isScopable(node: Object, opts?: Object): node is Scopable;
export function isBlockParent(node: Object, opts?: Object): node is BlockParent;
export function isBlock(node: Object, opts?: Object): node is Block;
export function isStatement(node: Object, opts?: Object): node is Statement;
export function isTerminatorless(node: Object, opts?: Object): node is Terminatorless;
export function isCompletionStatement(node: Object, opts?: Object): node is CompletionStatement;
export function isConditional(node: Object, opts?: Object): node is Conditional;
export function isLoop(node: Object, opts?: Object): node is Loop;
export function isWhile(node: Object, opts?: Object): node is While;
export function isExpressionWrapper(node: Object, opts?: Object): node is ExpressionWrapper;
export function isFor(node: Object, opts?: Object): node is For;
export function isForXStatement(node: Object, opts?: Object): node is ForXStatement;
export function isFunction(node: Object, opts?: Object): node is Function;
export function isFunctionParent(node: Object, opts?: Object): node is FunctionParent;
export function isPureish(node: Object, opts?: Object): node is Pureish;
export function isDeclaration(node: Object, opts?: Object): node is Declaration;
export function isLVal(node: Object, opts?: Object): node is LVal;
export function isLiteral(node: Object, opts?: Object): node is Literal;
export function isImmutable(node: Object, opts?: Object): node is Immutable;
export function isUserWhitespacable(node: Object, opts?: Object): node is UserWhitespacable;
export function isMethod(node: Object, opts?: Object): node is Method;
export function isObjectMember(node: Object, opts?: Object): node is ObjectMember;
export function isProperty(node: Object, opts?: Object): node is Property;
export function isUnaryLike(node: Object, opts?: Object): node is UnaryLike;
export function isPattern(node: Object, opts?: Object): node is Pattern;
export function isClass(node: Object, opts?: Object): node is Class;
export function isModuleDeclaration(node: Object, opts?: Object): node is ModuleDeclaration;
export function isExportDeclaration(node: Object, opts?: Object): node is ExportDeclaration;
export function isModuleSpecifier(node: Object, opts?: Object): node is ModuleSpecifier;
export function isFlow(node: Object, opts?: Object): node is Flow;
export function isFlowBaseAnnotation(node: Object, opts?: Object): node is FlowBaseAnnotation;
export function isFlowDeclaration(node: Object, opts?: Object): node is FlowDeclaration;
export function isJSX(node: Object, opts?: Object): node is JSX;
export function isNumberLiteral(node: Object, opts?: Object): node is NumericLiteral;
export function isRegexLiteral(node: Object, opts?: Object): node is RegExpLiteral;
export function isArrayExpression(node: object, opts?: object): node is ArrayExpression;
export function isAssignmentExpression(node: object, opts?: object): node is AssignmentExpression;
export function isBinaryExpression(node: object, opts?: object): node is BinaryExpression;
export function isDirective(node: object, opts?: object): node is Directive;
export function isDirectiveLiteral(node: object, opts?: object): node is DirectiveLiteral;
export function isBlockStatement(node: object, opts?: object): node is BlockStatement;
export function isBreakStatement(node: object, opts?: object): node is BreakStatement;
export function isCallExpression(node: object, opts?: object): node is CallExpression;
export function isCatchClause(node: object, opts?: object): node is CatchClause;
export function isConditionalExpression(node: object, opts?: object): node is ConditionalExpression;
export function isContinueStatement(node: object, opts?: object): node is ContinueStatement;
export function isDebuggerStatement(node: object, opts?: object): node is DebuggerStatement;
export function isDoWhileStatement(node: object, opts?: object): node is DoWhileStatement;
export function isEmptyStatement(node: object, opts?: object): node is EmptyStatement;
export function isExpressionStatement(node: object, opts?: object): node is ExpressionStatement;
export function isFile(node: object, opts?: object): node is File;
export function isForInStatement(node: object, opts?: object): node is ForInStatement;
export function isForStatement(node: object, opts?: object): node is ForStatement;
export function isFunctionDeclaration(node: object, opts?: object): node is FunctionDeclaration;
export function isFunctionExpression(node: object, opts?: object): node is FunctionExpression;
export function isIdentifier(node: object, opts?: object): node is Identifier;
export function isIfStatement(node: object, opts?: object): node is IfStatement;
export function isLabeledStatement(node: object, opts?: object): node is LabeledStatement;
export function isStringLiteral(node: object, opts?: object): node is StringLiteral;
export function isNumericLiteral(node: object, opts?: object): node is NumericLiteral;
export function isNullLiteral(node: object, opts?: object): node is NullLiteral;
export function isBooleanLiteral(node: object, opts?: object): node is BooleanLiteral;
export function isRegExpLiteral(node: object, opts?: object): node is RegExpLiteral;
export function isLogicalExpression(node: object, opts?: object): node is LogicalExpression;
export function isMemberExpression(node: object, opts?: object): node is MemberExpression;
export function isNewExpression(node: object, opts?: object): node is NewExpression;
export function isProgram(node: object, opts?: object): node is Program;
export function isObjectExpression(node: object, opts?: object): node is ObjectExpression;
export function isObjectMethod(node: object, opts?: object): node is ObjectMethod;
export function isObjectProperty(node: object, opts?: object): node is ObjectProperty;
export function isRestElement(node: object, opts?: object): node is RestElement;
export function isReturnStatement(node: object, opts?: object): node is ReturnStatement;
export function isSequenceExpression(node: object, opts?: object): node is SequenceExpression;
export function isSwitchCase(node: object, opts?: object): node is SwitchCase;
export function isSwitchStatement(node: object, opts?: object): node is SwitchStatement;
export function isThisExpression(node: object, opts?: object): node is ThisExpression;
export function isThrowStatement(node: object, opts?: object): node is ThrowStatement;
export function isTryStatement(node: object, opts?: object): node is TryStatement;
export function isUnaryExpression(node: object, opts?: object): node is UnaryExpression;
export function isUpdateExpression(node: object, opts?: object): node is UpdateExpression;
export function isVariableDeclaration(node: object, opts?: object): node is VariableDeclaration;
export function isVariableDeclarator(node: object, opts?: object): node is VariableDeclarator;
export function isWhileStatement(node: object, opts?: object): node is WhileStatement;
export function isWithStatement(node: object, opts?: object): node is WithStatement;
export function isAssignmentPattern(node: object, opts?: object): node is AssignmentPattern;
export function isArrayPattern(node: object, opts?: object): node is ArrayPattern;
export function isArrowFunctionExpression(node: object, opts?: object): node is ArrowFunctionExpression;
export function isClassBody(node: object, opts?: object): node is ClassBody;
export function isClassDeclaration(node: object, opts?: object): node is ClassDeclaration;
export function isClassExpression(node: object, opts?: object): node is ClassExpression;
export function isExportAllDeclaration(node: object, opts?: object): node is ExportAllDeclaration;
export function isExportDefaultDeclaration(node: object, opts?: object): node is ExportDefaultDeclaration;
export function isExportNamedDeclaration(node: object, opts?: object): node is ExportNamedDeclaration;
export function isExportSpecifier(node: object, opts?: object): node is ExportSpecifier;
export function isForOfStatement(node: object, opts?: object): node is ForOfStatement;
export function isImportDeclaration(node: object, opts?: object): node is ImportDeclaration;
export function isImportDefaultSpecifier(node: object, opts?: object): node is ImportDefaultSpecifier;
export function isImportNamespaceSpecifier(node: object, opts?: object): node is ImportNamespaceSpecifier;
export function isImportSpecifier(node: object, opts?: object): node is ImportSpecifier;
export function isMetaProperty(node: object, opts?: object): node is MetaProperty;
export function isClassMethod(node: object, opts?: object): node is ClassMethod;
export function isObjectPattern(node: object, opts?: object): node is ObjectPattern;
export function isSpreadElement(node: object, opts?: object): node is SpreadElement;
export function isSuper(node: object, opts?: object): node is Super;
export function isTaggedTemplateExpression(node: object, opts?: object): node is TaggedTemplateExpression;
export function isTemplateElement(node: object, opts?: object): node is TemplateElement;
export function isTemplateLiteral(node: object, opts?: object): node is TemplateLiteral;
export function isYieldExpression(node: object, opts?: object): node is YieldExpression;
export function isAnyTypeAnnotation(node: object, opts?: object): node is AnyTypeAnnotation;
export function isArrayTypeAnnotation(node: object, opts?: object): node is ArrayTypeAnnotation;
export function isBooleanTypeAnnotation(node: object, opts?: object): node is BooleanTypeAnnotation;
export function isBooleanLiteralTypeAnnotation(node: object, opts?: object): node is BooleanLiteralTypeAnnotation;
export function isNullLiteralTypeAnnotation(node: object, opts?: object): node is NullLiteralTypeAnnotation;
export function isClassImplements(node: object, opts?: object): node is ClassImplements;
export function isClassProperty(node: object, opts?: object): node is ClassProperty;
export function isDeclareClass(node: object, opts?: object): node is DeclareClass;
export function isDeclareFunction(node: object, opts?: object): node is DeclareFunction;
export function isDeclareInterface(node: object, opts?: object): node is DeclareInterface;
export function isDeclareModule(node: object, opts?: object): node is DeclareModule;
export function isDeclareTypeAlias(node: object, opts?: object): node is DeclareTypeAlias;
export function isDeclareVariable(node: object, opts?: object): node is DeclareVariable;
export function isExistentialTypeParam(node: object, opts?: object): node is ExistentialTypeParam;
export function isFunctionTypeAnnotation(node: object, opts?: object): node is FunctionTypeAnnotation;
export function isFunctionTypeParam(node: object, opts?: object): node is FunctionTypeParam;
export function isGenericTypeAnnotation(node: object, opts?: object): node is GenericTypeAnnotation;
export function isInterfaceExtends(node: object, opts?: object): node is InterfaceExtends;
export function isInterfaceDeclaration(node: object, opts?: object): node is InterfaceDeclaration;
export function isIntersectionTypeAnnotation(node: object, opts?: object): node is IntersectionTypeAnnotation;
export function isMixedTypeAnnotation(node: object, opts?: object): node is MixedTypeAnnotation;
export function isNullableTypeAnnotation(node: object, opts?: object): node is NullableTypeAnnotation;
export function isNumericLiteralTypeAnnotation(node: object, opts?: object): node is NumericLiteralTypeAnnotation;
export function isNumberTypeAnnotation(node: object, opts?: object): node is NumberTypeAnnotation;
export function isStringLiteralTypeAnnotation(node: object, opts?: object): node is StringLiteralTypeAnnotation;
export function isStringTypeAnnotation(node: object, opts?: object): node is StringTypeAnnotation;
export function isThisTypeAnnotation(node: object, opts?: object): node is ThisTypeAnnotation;
export function isTupleTypeAnnotation(node: object, opts?: object): node is TupleTypeAnnotation;
export function isTypeofTypeAnnotation(node: object, opts?: object): node is TypeofTypeAnnotation;
export function isTypeAlias(node: object, opts?: object): node is TypeAlias;
export function isTypeAnnotation(node: object, opts?: object): node is TypeAnnotation;
export function isTypeCastExpression(node: object, opts?: object): node is TypeCastExpression;
export function isTypeParameterDeclaration(node: object, opts?: object): node is TypeParameterDeclaration;
export function isTypeParameterInstantiation(node: object, opts?: object): node is TypeParameterInstantiation;
export function isObjectTypeAnnotation(node: object, opts?: object): node is ObjectTypeAnnotation;
export function isObjectTypeCallProperty(node: object, opts?: object): node is ObjectTypeCallProperty;
export function isObjectTypeIndexer(node: object, opts?: object): node is ObjectTypeIndexer;
export function isObjectTypeProperty(node: object, opts?: object): node is ObjectTypeProperty;
export function isQualifiedTypeIdentifier(node: object, opts?: object): node is QualifiedTypeIdentifier;
export function isUnionTypeAnnotation(node: object, opts?: object): node is UnionTypeAnnotation;
export function isVoidTypeAnnotation(node: object, opts?: object): node is VoidTypeAnnotation;
export function isJSXAttribute(node: object, opts?: object): node is JSXAttribute;
export function isJSXClosingElement(node: object, opts?: object): node is JSXClosingElement;
export function isJSXElement(node: object, opts?: object): node is JSXElement;
export function isJSXEmptyExpression(node: object, opts?: object): node is JSXEmptyExpression;
export function isJSXExpressionContainer(node: object, opts?: object): node is JSXExpressionContainer;
export function isJSXIdentifier(node: object, opts?: object): node is JSXIdentifier;
export function isJSXMemberExpression(node: object, opts?: object): node is JSXMemberExpression;
export function isJSXNamespacedName(node: object, opts?: object): node is JSXNamespacedName;
export function isJSXOpeningElement(node: object, opts?: object): node is JSXOpeningElement;
export function isJSXSpreadAttribute(node: object, opts?: object): node is JSXSpreadAttribute;
export function isJSXText(node: object, opts?: object): node is JSXText;
export function isNoop(node: object, opts?: object): node is Noop;
export function isParenthesizedExpression(node: object, opts?: object): node is ParenthesizedExpression;
export function isAwaitExpression(node: object, opts?: object): node is AwaitExpression;
export function isBindExpression(node: object, opts?: object): node is BindExpression;
export function isDecorator(node: object, opts?: object): node is Decorator;
export function isDoExpression(node: object, opts?: object): node is DoExpression;
export function isExportDefaultSpecifier(node: object, opts?: object): node is ExportDefaultSpecifier;
export function isExportNamespaceSpecifier(node: object, opts?: object): node is ExportNamespaceSpecifier;
export function isRestProperty(node: object, opts?: object): node is RestProperty;
export function isSpreadProperty(node: object, opts?: object): node is SpreadProperty;
export function isExpression(node: object, opts?: object): node is Expression;
export function isBinary(node: object, opts?: object): node is Binary;
export function isScopable(node: object, opts?: object): node is Scopable;
export function isBlockParent(node: object, opts?: object): node is BlockParent;
export function isBlock(node: object, opts?: object): node is Block;
export function isStatement(node: object, opts?: object): node is Statement;
export function isTerminatorless(node: object, opts?: object): node is Terminatorless;
export function isCompletionStatement(node: object, opts?: object): node is CompletionStatement;
export function isConditional(node: object, opts?: object): node is Conditional;
export function isLoop(node: object, opts?: object): node is Loop;
export function isWhile(node: object, opts?: object): node is While;
export function isExpressionWrapper(node: object, opts?: object): node is ExpressionWrapper;
export function isFor(node: object, opts?: object): node is For;
export function isForXStatement(node: object, opts?: object): node is ForXStatement;
// tslint:disable-next-line ban-types
export function isFunction(node: object, opts?: object): node is Function;
export function isFunctionParent(node: object, opts?: object): node is FunctionParent;
export function isPureish(node: object, opts?: object): node is Pureish;
export function isDeclaration(node: object, opts?: object): node is Declaration;
export function isLVal(node: object, opts?: object): node is LVal;
export function isLiteral(node: object, opts?: object): node is Literal;
export function isImmutable(node: object, opts?: object): node is Immutable;
export function isUserWhitespacable(node: object, opts?: object): node is UserWhitespacable;
export function isMethod(node: object, opts?: object): node is Method;
export function isObjectMember(node: object, opts?: object): node is ObjectMember;
export function isProperty(node: object, opts?: object): node is Property;
export function isUnaryLike(node: object, opts?: object): node is UnaryLike;
export function isPattern(node: object, opts?: object): node is Pattern;
export function isClass(node: object, opts?: object): node is Class;
export function isModuleDeclaration(node: object, opts?: object): node is ModuleDeclaration;
export function isExportDeclaration(node: object, opts?: object): node is ExportDeclaration;
export function isModuleSpecifier(node: object, opts?: object): node is ModuleSpecifier;
export function isFlow(node: object, opts?: object): node is Flow;
export function isFlowBaseAnnotation(node: object, opts?: object): node is FlowBaseAnnotation;
export function isFlowDeclaration(node: object, opts?: object): node is FlowDeclaration;
export function isJSX(node: object, opts?: object): node is JSX;
export function isNumberLiteral(node: object, opts?: object): node is NumericLiteral;
export function isRegexLiteral(node: object, opts?: object): node is RegExpLiteral;
export function isReferencedIdentifier(node: Object, opts?: Object): boolean;
export function isReferencedMemberExpression(node: Object, opts?: Object): boolean;
export function isBindingIdentifier(node: Object, opts?: Object): boolean;
export function isScope(node: Object, opts?: Object): boolean;
export function isReferenced(node: Object, opts?: Object): boolean;
export function isBlockScoped(node: Object, opts?: Object): boolean;
export function isVar(node: Object, opts?: Object): boolean;
export function isUser(node: Object, opts?: Object): boolean;
export function isGenerated(node: Object, opts?: Object): boolean;
export function isPure(node: Object, opts?: Object): boolean;
export function isReferencedIdentifier(node: object, opts?: object): boolean;
export function isReferencedMemberExpression(node: object, opts?: object): boolean;
export function isBindingIdentifier(node: object, opts?: object): boolean;
export function isScope(node: object, opts?: object): boolean;
export function isReferenced(node: object, opts?: object): boolean;
export function isBlockScoped(node: object, opts?: object): boolean;
export function isVar(node: object, opts?: object): boolean;
export function isUser(node: object, opts?: object): boolean;
export function isGenerated(node: object, opts?: object): boolean;
export function isPure(node: object, opts?: object): boolean;
// React specific
interface ReactHelpers {
export interface ReactHelpers {
isCompatTag(tagName?: string): boolean;
buildChildren(node: Object): Object[];
buildChildren(node: object): Node[];
}
export const react: ReactHelpers;
export function assertArrayExpression(node: Object, opts?: Object): void;
export function assertAssignmentExpression(node: Object, opts?: Object): void;
export function assertBinaryExpression(node: Object, opts?: Object): void;
export function assertDirective(node: Object, opts?: Object): void;
export function assertDirectiveLiteral(node: Object, opts?: Object): void;
export function assertBlockStatement(node: Object, opts?: Object): void;
export function assertBreakStatement(node: Object, opts?: Object): void;
export function assertCallExpression(node: Object, opts?: Object): void;
export function assertCatchClause(node: Object, opts?: Object): void;
export function assertConditionalExpression(node: Object, opts?: Object): void;
export function assertContinueStatement(node: Object, opts?: Object): void;
export function assertDebuggerStatement(node: Object, opts?: Object): void;
export function assertDoWhileStatement(node: Object, opts?: Object): void;
export function assertEmptyStatement(node: Object, opts?: Object): void;
export function assertExpressionStatement(node: Object, opts?: Object): void;
export function assertFile(node: Object, opts?: Object): void;
export function assertForInStatement(node: Object, opts?: Object): void;
export function assertForStatement(node: Object, opts?: Object): void;
export function assertFunctionDeclaration(node: Object, opts?: Object): void;
export function assertFunctionExpression(node: Object, opts?: Object): void;
export function assertIdentifier(node: Object, opts?: Object): void;
export function assertIfStatement(node: Object, opts?: Object): void;
export function assertLabeledStatement(node: Object, opts?: Object): void;
export function assertStringLiteral(node: Object, opts?: Object): void;
export function assertNumericLiteral(node: Object, opts?: Object): void;
export function assertNullLiteral(node: Object, opts?: Object): void;
export function assertBooleanLiteral(node: Object, opts?: Object): void;
export function assertRegExpLiteral(node: Object, opts?: Object): void;
export function assertLogicalExpression(node: Object, opts?: Object): void;
export function assertMemberExpression(node: Object, opts?: Object): void;
export function assertNewExpression(node: Object, opts?: Object): void;
export function assertProgram(node: Object, opts?: Object): void;
export function assertObjectExpression(node: Object, opts?: Object): void;
export function assertObjectMethod(node: Object, opts?: Object): void;
export function assertObjectProperty(node: Object, opts?: Object): void;
export function assertRestElement(node: Object, opts?: Object): void;
export function assertReturnStatement(node: Object, opts?: Object): void;
export function assertSequenceExpression(node: Object, opts?: Object): void;
export function assertSwitchCase(node: Object, opts?: Object): void;
export function assertSwitchStatement(node: Object, opts?: Object): void;
export function assertThisExpression(node: Object, opts?: Object): void;
export function assertThrowStatement(node: Object, opts?: Object): void;
export function assertTryStatement(node: Object, opts?: Object): void;
export function assertUnaryExpression(node: Object, opts?: Object): void;
export function assertUpdateExpression(node: Object, opts?: Object): void;
export function assertVariableDeclaration(node: Object, opts?: Object): void;
export function assertVariableDeclarator(node: Object, opts?: Object): void;
export function assertWhileStatement(node: Object, opts?: Object): void;
export function assertWithStatement(node: Object, opts?: Object): void;
export function assertAssignmentPattern(node: Object, opts?: Object): void;
export function assertArrayPattern(node: Object, opts?: Object): void;
export function assertArrowFunctionExpression(node: Object, opts?: Object): void;
export function assertClassBody(node: Object, opts?: Object): void;
export function assertClassDeclaration(node: Object, opts?: Object): void;
export function assertClassExpression(node: Object, opts?: Object): void;
export function assertExportAllDeclaration(node: Object, opts?: Object): void;
export function assertExportDefaultDeclaration(node: Object, opts?: Object): void;
export function assertExportNamedDeclaration(node: Object, opts?: Object): void;
export function assertExportSpecifier(node: Object, opts?: Object): void;
export function assertForOfStatement(node: Object, opts?: Object): void;
export function assertImportDeclaration(node: Object, opts?: Object): void;
export function assertImportDefaultSpecifier(node: Object, opts?: Object): void;
export function assertImportNamespaceSpecifier(node: Object, opts?: Object): void;
export function assertImportSpecifier(node: Object, opts?: Object): void;
export function assertMetaProperty(node: Object, opts?: Object): void;
export function assertClassMethod(node: Object, opts?: Object): void;
export function assertObjectPattern(node: Object, opts?: Object): void;
export function assertSpreadElement(node: Object, opts?: Object): void;
export function assertSuper(node: Object, opts?: Object): void;
export function assertTaggedTemplateExpression(node: Object, opts?: Object): void;
export function assertTemplateElement(node: Object, opts?: Object): void;
export function assertTemplateLiteral(node: Object, opts?: Object): void;
export function assertYieldExpression(node: Object, opts?: Object): void;
export function assertAnyTypeAnnotation(node: Object, opts?: Object): void;
export function assertArrayTypeAnnotation(node: Object, opts?: Object): void;
export function assertBooleanTypeAnnotation(node: Object, opts?: Object): void;
export function assertBooleanLiteralTypeAnnotation(node: Object, opts?: Object): void;
export function assertNullLiteralTypeAnnotation(node: Object, opts?: Object): void;
export function assertClassImplements(node: Object, opts?: Object): void;
export function assertClassProperty(node: Object, opts?: Object): void;
export function assertDeclareClass(node: Object, opts?: Object): void;
export function assertDeclareFunction(node: Object, opts?: Object): void;
export function assertDeclareInterface(node: Object, opts?: Object): void;
export function assertDeclareModule(node: Object, opts?: Object): void;
export function assertDeclareTypeAlias(node: Object, opts?: Object): void;
export function assertDeclareVariable(node: Object, opts?: Object): void;
export function assertExistentialTypeParam(node: Object, opts?: Object): void;
export function assertFunctionTypeAnnotation(node: Object, opts?: Object): void;
export function assertFunctionTypeParam(node: Object, opts?: Object): void;
export function assertGenericTypeAnnotation(node: Object, opts?: Object): void;
export function assertInterfaceExtends(node: Object, opts?: Object): void;
export function assertInterfaceDeclaration(node: Object, opts?: Object): void;
export function assertIntersectionTypeAnnotation(node: Object, opts?: Object): void;
export function assertMixedTypeAnnotation(node: Object, opts?: Object): void;
export function assertNullableTypeAnnotation(node: Object, opts?: Object): void;
export function assertNumericLiteralTypeAnnotation(node: Object, opts?: Object): void;
export function assertNumberTypeAnnotation(node: Object, opts?: Object): void;
export function assertStringLiteralTypeAnnotation(node: Object, opts?: Object): void;
export function assertStringTypeAnnotation(node: Object, opts?: Object): void;
export function assertThisTypeAnnotation(node: Object, opts?: Object): void;
export function assertTupleTypeAnnotation(node: Object, opts?: Object): void;
export function assertTypeofTypeAnnotation(node: Object, opts?: Object): void;
export function assertTypeAlias(node: Object, opts?: Object): void;
export function assertTypeAnnotation(node: Object, opts?: Object): void;
export function assertTypeCastExpression(node: Object, opts?: Object): void;
export function assertTypeParameterDeclaration(node: Object, opts?: Object): void;
export function assertTypeParameterInstantiation(node: Object, opts?: Object): void;
export function assertObjectTypeAnnotation(node: Object, opts?: Object): void;
export function assertObjectTypeCallProperty(node: Object, opts?: Object): void;
export function assertObjectTypeIndexer(node: Object, opts?: Object): void;
export function assertObjectTypeProperty(node: Object, opts?: Object): void;
export function assertQualifiedTypeIdentifier(node: Object, opts?: Object): void;
export function assertUnionTypeAnnotation(node: Object, opts?: Object): void;
export function assertVoidTypeAnnotation(node: Object, opts?: Object): void;
export function assertJSXAttribute(node: Object, opts?: Object): void;
export function assertJSXClosingElement(node: Object, opts?: Object): void;
export function assertJSXElement(node: Object, opts?: Object): void;
export function assertJSXEmptyExpression(node: Object, opts?: Object): void;
export function assertJSXExpressionContainer(node: Object, opts?: Object): void;
export function assertJSXIdentifier(node: Object, opts?: Object): void;
export function assertJSXMemberExpression(node: Object, opts?: Object): void;
export function assertJSXNamespacedName(node: Object, opts?: Object): void;
export function assertJSXOpeningElement(node: Object, opts?: Object): void;
export function assertJSXSpreadAttribute(node: Object, opts?: Object): void;
export function assertJSXText(node: Object, opts?: Object): void;
export function assertNoop(node: Object, opts?: Object): void;
export function assertParenthesizedExpression(node: Object, opts?: Object): void;
export function assertAwaitExpression(node: Object, opts?: Object): void;
export function assertBindExpression(node: Object, opts?: Object): void;
export function assertDecorator(node: Object, opts?: Object): void;
export function assertDoExpression(node: Object, opts?: Object): void;
export function assertExportDefaultSpecifier(node: Object, opts?: Object): void;
export function assertExportNamespaceSpecifier(node: Object, opts?: Object): void;
export function assertRestProperty(node: Object, opts?: Object): void;
export function assertSpreadProperty(node: Object, opts?: Object): void;
export function assertExpression(node: Object, opts?: Object): void;
export function assertBinary(node: Object, opts?: Object): void;
export function assertScopable(node: Object, opts?: Object): void;
export function assertBlockParent(node: Object, opts?: Object): void;
export function assertBlock(node: Object, opts?: Object): void;
export function assertStatement(node: Object, opts?: Object): void;
export function assertTerminatorless(node: Object, opts?: Object): void;
export function assertCompletionStatement(node: Object, opts?: Object): void;
export function assertConditional(node: Object, opts?: Object): void;
export function assertLoop(node: Object, opts?: Object): void;
export function assertWhile(node: Object, opts?: Object): void;
export function assertExpressionWrapper(node: Object, opts?: Object): void;
export function assertFor(node: Object, opts?: Object): void;
export function assertForXStatement(node: Object, opts?: Object): void;
export function assertFunction(node: Object, opts?: Object): void;
export function assertFunctionParent(node: Object, opts?: Object): void;
export function assertPureish(node: Object, opts?: Object): void;
export function assertDeclaration(node: Object, opts?: Object): void;
export function assertLVal(node: Object, opts?: Object): void;
export function assertLiteral(node: Object, opts?: Object): void;
export function assertImmutable(node: Object, opts?: Object): void;
export function assertUserWhitespacable(node: Object, opts?: Object): void;
export function assertMethod(node: Object, opts?: Object): void;
export function assertObjectMember(node: Object, opts?: Object): void;
export function assertProperty(node: Object, opts?: Object): void;
export function assertUnaryLike(node: Object, opts?: Object): void;
export function assertPattern(node: Object, opts?: Object): void;
export function assertClass(node: Object, opts?: Object): void;
export function assertModuleDeclaration(node: Object, opts?: Object): void;
export function assertExportDeclaration(node: Object, opts?: Object): void;
export function assertModuleSpecifier(node: Object, opts?: Object): void;
export function assertFlow(node: Object, opts?: Object): void;
export function assertFlowBaseAnnotation(node: Object, opts?: Object): void;
export function assertFlowDeclaration(node: Object, opts?: Object): void;
export function assertJSX(node: Object, opts?: Object): void;
export function assertNumberLiteral(node: Object, opts?: Object): void;
export function assertRegexLiteral(node: Object, opts?: Object): void;
export function assertArrayExpression(node: object, opts?: object): void;
export function assertAssignmentExpression(node: object, opts?: object): void;
export function assertBinaryExpression(node: object, opts?: object): void;
export function assertDirective(node: object, opts?: object): void;
export function assertDirectiveLiteral(node: object, opts?: object): void;
export function assertBlockStatement(node: object, opts?: object): void;
export function assertBreakStatement(node: object, opts?: object): void;
export function assertCallExpression(node: object, opts?: object): void;
export function assertCatchClause(node: object, opts?: object): void;
export function assertConditionalExpression(node: object, opts?: object): void;
export function assertContinueStatement(node: object, opts?: object): void;
export function assertDebuggerStatement(node: object, opts?: object): void;
export function assertDoWhileStatement(node: object, opts?: object): void;
export function assertEmptyStatement(node: object, opts?: object): void;
export function assertExpressionStatement(node: object, opts?: object): void;
export function assertFile(node: object, opts?: object): void;
export function assertForInStatement(node: object, opts?: object): void;
export function assertForStatement(node: object, opts?: object): void;
export function assertFunctionDeclaration(node: object, opts?: object): void;
export function assertFunctionExpression(node: object, opts?: object): void;
export function assertIdentifier(node: object, opts?: object): void;
export function assertIfStatement(node: object, opts?: object): void;
export function assertLabeledStatement(node: object, opts?: object): void;
export function assertStringLiteral(node: object, opts?: object): void;
export function assertNumericLiteral(node: object, opts?: object): void;
export function assertNullLiteral(node: object, opts?: object): void;
export function assertBooleanLiteral(node: object, opts?: object): void;
export function assertRegExpLiteral(node: object, opts?: object): void;
export function assertLogicalExpression(node: object, opts?: object): void;
export function assertMemberExpression(node: object, opts?: object): void;
export function assertNewExpression(node: object, opts?: object): void;
export function assertProgram(node: object, opts?: object): void;
export function assertObjectExpression(node: object, opts?: object): void;
export function assertObjectMethod(node: object, opts?: object): void;
export function assertObjectProperty(node: object, opts?: object): void;
export function assertRestElement(node: object, opts?: object): void;
export function assertReturnStatement(node: object, opts?: object): void;
export function assertSequenceExpression(node: object, opts?: object): void;
export function assertSwitchCase(node: object, opts?: object): void;
export function assertSwitchStatement(node: object, opts?: object): void;
export function assertThisExpression(node: object, opts?: object): void;
export function assertThrowStatement(node: object, opts?: object): void;
export function assertTryStatement(node: object, opts?: object): void;
export function assertUnaryExpression(node: object, opts?: object): void;
export function assertUpdateExpression(node: object, opts?: object): void;
export function assertVariableDeclaration(node: object, opts?: object): void;
export function assertVariableDeclarator(node: object, opts?: object): void;
export function assertWhileStatement(node: object, opts?: object): void;
export function assertWithStatement(node: object, opts?: object): void;
export function assertAssignmentPattern(node: object, opts?: object): void;
export function assertArrayPattern(node: object, opts?: object): void;
export function assertArrowFunctionExpression(node: object, opts?: object): void;
export function assertClassBody(node: object, opts?: object): void;
export function assertClassDeclaration(node: object, opts?: object): void;
export function assertClassExpression(node: object, opts?: object): void;
export function assertExportAllDeclaration(node: object, opts?: object): void;
export function assertExportDefaultDeclaration(node: object, opts?: object): void;
export function assertExportNamedDeclaration(node: object, opts?: object): void;
export function assertExportSpecifier(node: object, opts?: object): void;
export function assertForOfStatement(node: object, opts?: object): void;
export function assertImportDeclaration(node: object, opts?: object): void;
export function assertImportDefaultSpecifier(node: object, opts?: object): void;
export function assertImportNamespaceSpecifier(node: object, opts?: object): void;
export function assertImportSpecifier(node: object, opts?: object): void;
export function assertMetaProperty(node: object, opts?: object): void;
export function assertClassMethod(node: object, opts?: object): void;
export function assertObjectPattern(node: object, opts?: object): void;
export function assertSpreadElement(node: object, opts?: object): void;
export function assertSuper(node: object, opts?: object): void;
export function assertTaggedTemplateExpression(node: object, opts?: object): void;
export function assertTemplateElement(node: object, opts?: object): void;
export function assertTemplateLiteral(node: object, opts?: object): void;
export function assertYieldExpression(node: object, opts?: object): void;
export function assertAnyTypeAnnotation(node: object, opts?: object): void;
export function assertArrayTypeAnnotation(node: object, opts?: object): void;
export function assertBooleanTypeAnnotation(node: object, opts?: object): void;
export function assertBooleanLiteralTypeAnnotation(node: object, opts?: object): void;
export function assertNullLiteralTypeAnnotation(node: object, opts?: object): void;
export function assertClassImplements(node: object, opts?: object): void;
export function assertClassProperty(node: object, opts?: object): void;
export function assertDeclareClass(node: object, opts?: object): void;
export function assertDeclareFunction(node: object, opts?: object): void;
export function assertDeclareInterface(node: object, opts?: object): void;
export function assertDeclareModule(node: object, opts?: object): void;
export function assertDeclareTypeAlias(node: object, opts?: object): void;
export function assertDeclareVariable(node: object, opts?: object): void;
export function assertExistentialTypeParam(node: object, opts?: object): void;
export function assertFunctionTypeAnnotation(node: object, opts?: object): void;
export function assertFunctionTypeParam(node: object, opts?: object): void;
export function assertGenericTypeAnnotation(node: object, opts?: object): void;
export function assertInterfaceExtends(node: object, opts?: object): void;
export function assertInterfaceDeclaration(node: object, opts?: object): void;
export function assertIntersectionTypeAnnotation(node: object, opts?: object): void;
export function assertMixedTypeAnnotation(node: object, opts?: object): void;
export function assertNullableTypeAnnotation(node: object, opts?: object): void;
export function assertNumericLiteralTypeAnnotation(node: object, opts?: object): void;
export function assertNumberTypeAnnotation(node: object, opts?: object): void;
export function assertStringLiteralTypeAnnotation(node: object, opts?: object): void;
export function assertStringTypeAnnotation(node: object, opts?: object): void;
export function assertThisTypeAnnotation(node: object, opts?: object): void;
export function assertTupleTypeAnnotation(node: object, opts?: object): void;
export function assertTypeofTypeAnnotation(node: object, opts?: object): void;
export function assertTypeAlias(node: object, opts?: object): void;
export function assertTypeAnnotation(node: object, opts?: object): void;
export function assertTypeCastExpression(node: object, opts?: object): void;
export function assertTypeParameterDeclaration(node: object, opts?: object): void;
export function assertTypeParameterInstantiation(node: object, opts?: object): void;
export function assertObjectTypeAnnotation(node: object, opts?: object): void;
export function assertObjectTypeCallProperty(node: object, opts?: object): void;
export function assertObjectTypeIndexer(node: object, opts?: object): void;
export function assertObjectTypeProperty(node: object, opts?: object): void;
export function assertQualifiedTypeIdentifier(node: object, opts?: object): void;
export function assertUnionTypeAnnotation(node: object, opts?: object): void;
export function assertVoidTypeAnnotation(node: object, opts?: object): void;
export function assertJSXAttribute(node: object, opts?: object): void;
export function assertJSXClosingElement(node: object, opts?: object): void;
export function assertJSXElement(node: object, opts?: object): void;
export function assertJSXEmptyExpression(node: object, opts?: object): void;
export function assertJSXExpressionContainer(node: object, opts?: object): void;
export function assertJSXIdentifier(node: object, opts?: object): void;
export function assertJSXMemberExpression(node: object, opts?: object): void;
export function assertJSXNamespacedName(node: object, opts?: object): void;
export function assertJSXOpeningElement(node: object, opts?: object): void;
export function assertJSXSpreadAttribute(node: object, opts?: object): void;
export function assertJSXText(node: object, opts?: object): void;
export function assertNoop(node: object, opts?: object): void;
export function assertParenthesizedExpression(node: object, opts?: object): void;
export function assertAwaitExpression(node: object, opts?: object): void;
export function assertBindExpression(node: object, opts?: object): void;
export function assertDecorator(node: object, opts?: object): void;
export function assertDoExpression(node: object, opts?: object): void;
export function assertExportDefaultSpecifier(node: object, opts?: object): void;
export function assertExportNamespaceSpecifier(node: object, opts?: object): void;
export function assertRestProperty(node: object, opts?: object): void;
export function assertSpreadProperty(node: object, opts?: object): void;
export function assertExpression(node: object, opts?: object): void;
export function assertBinary(node: object, opts?: object): void;
export function assertScopable(node: object, opts?: object): void;
export function assertBlockParent(node: object, opts?: object): void;
export function assertBlock(node: object, opts?: object): void;
export function assertStatement(node: object, opts?: object): void;
export function assertTerminatorless(node: object, opts?: object): void;
export function assertCompletionStatement(node: object, opts?: object): void;
export function assertConditional(node: object, opts?: object): void;
export function assertLoop(node: object, opts?: object): void;
export function assertWhile(node: object, opts?: object): void;
export function assertExpressionWrapper(node: object, opts?: object): void;
export function assertFor(node: object, opts?: object): void;
export function assertForXStatement(node: object, opts?: object): void;
export function assertFunction(node: object, opts?: object): void;
export function assertFunctionParent(node: object, opts?: object): void;
export function assertPureish(node: object, opts?: object): void;
export function assertDeclaration(node: object, opts?: object): void;
export function assertLVal(node: object, opts?: object): void;
export function assertLiteral(node: object, opts?: object): void;
export function assertImmutable(node: object, opts?: object): void;
export function assertUserWhitespacable(node: object, opts?: object): void;
export function assertMethod(node: object, opts?: object): void;
export function assertObjectMember(node: object, opts?: object): void;
export function assertProperty(node: object, opts?: object): void;
export function assertUnaryLike(node: object, opts?: object): void;
export function assertPattern(node: object, opts?: object): void;
export function assertClass(node: object, opts?: object): void;
export function assertModuleDeclaration(node: object, opts?: object): void;
export function assertExportDeclaration(node: object, opts?: object): void;
export function assertModuleSpecifier(node: object, opts?: object): void;
export function assertFlow(node: object, opts?: object): void;
export function assertFlowBaseAnnotation(node: object, opts?: object): void;
export function assertFlowDeclaration(node: object, opts?: object): void;
export function assertJSX(node: object, opts?: object): void;
export function assertNumberLiteral(node: object, opts?: object): void;
export function assertRegexLiteral(node: object, opts?: object): void;

View File

@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }