// NOTE: This file is autogenerated. Do not modify. // See packages/babel-types/scripts/generators/typescript-legacy.js for script used. interface BaseComment { value: string; start: number; end: number; loc: SourceLocation; type: 'CommentBlock' | 'CommentLine'; } export interface CommentBlock extends BaseComment { type: 'CommentBlock'; } export interface CommentLine extends BaseComment { type: 'CommentLine'; } export type Comment = CommentBlock | CommentLine; export interface SourceLocation { start: { line: number; column: number; }; end: { line: number; column: number; }; } interface BaseNode { leadingComments: ReadonlyArray | null; innerComments: ReadonlyArray | null; trailingComments: ReadonlyArray | null; start: number | null; end: number | null; loc: SourceLocation | null; type: Node['type']; extra?: Record; } export type Node = | Accessor | AnyTypeAnnotation | ArgumentPlaceholder | ArrayExpression | ArrayPattern | ArrayTypeAnnotation | ArrowFunctionExpression | AssignmentExpression | AssignmentPattern | AwaitExpression | BigIntLiteral | Binary | BinaryExpression | BindExpression | Block | BlockParent | BlockStatement | BooleanLiteral | BooleanLiteralTypeAnnotation | BooleanTypeAnnotation | BreakStatement | CallExpression | CatchClause | Class | ClassAccessorProperty | ClassBody | ClassDeclaration | ClassExpression | ClassImplements | ClassMethod | ClassPrivateMethod | ClassPrivateProperty | ClassProperty | CompletionStatement | Conditional | ConditionalExpression | ContinueStatement | DebuggerStatement | DecimalLiteral | Declaration | DeclareClass | DeclareExportAllDeclaration | DeclareExportDeclaration | DeclareFunction | DeclareInterface | DeclareModule | DeclareModuleExports | DeclareOpaqueType | DeclareTypeAlias | DeclareVariable | DeclaredPredicate | Decorator | Directive | DirectiveLiteral | DoExpression | DoWhileStatement | EmptyStatement | EmptyTypeAnnotation | EnumBody | EnumBooleanBody | EnumBooleanMember | EnumDeclaration | EnumDefaultedMember | EnumMember | EnumNumberBody | EnumNumberMember | EnumStringBody | EnumStringMember | EnumSymbolBody | ExistsTypeAnnotation | ExportAllDeclaration | ExportDeclaration | ExportDefaultDeclaration | ExportDefaultSpecifier | ExportNamedDeclaration | ExportNamespaceSpecifier | ExportSpecifier | Expression | ExpressionStatement | ExpressionWrapper | File | Flow | FlowBaseAnnotation | FlowDeclaration | FlowPredicate | FlowType | For | ForInStatement | ForOfStatement | ForStatement | ForXStatement | Function | FunctionDeclaration | FunctionExpression | FunctionParent | FunctionTypeAnnotation | FunctionTypeParam | GenericTypeAnnotation | Identifier | IfStatement | Immutable | Import | ImportAttribute | ImportDeclaration | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier | IndexedAccessType | InferredPredicate | InterfaceDeclaration | InterfaceExtends | InterfaceTypeAnnotation | InterpreterDirective | IntersectionTypeAnnotation | JSX | JSXAttribute | JSXClosingElement | JSXClosingFragment | JSXElement | JSXEmptyExpression | JSXExpressionContainer | JSXFragment | JSXIdentifier | JSXMemberExpression | JSXNamespacedName | JSXOpeningElement | JSXOpeningFragment | JSXSpreadAttribute | JSXSpreadChild | JSXText | LVal | LabeledStatement | Literal | LogicalExpression | Loop | MemberExpression | MetaProperty | Method | Miscellaneous | MixedTypeAnnotation | ModuleDeclaration | ModuleExpression | ModuleSpecifier | NewExpression | Noop | NullLiteral | NullLiteralTypeAnnotation | NullableTypeAnnotation | NumberLiteral | NumberLiteralTypeAnnotation | NumberTypeAnnotation | NumericLiteral | ObjectExpression | ObjectMember | ObjectMethod | ObjectPattern | ObjectProperty | ObjectTypeAnnotation | ObjectTypeCallProperty | ObjectTypeIndexer | ObjectTypeInternalSlot | ObjectTypeProperty | ObjectTypeSpreadProperty | OpaqueType | OptionalCallExpression | OptionalIndexedAccessType | OptionalMemberExpression | ParenthesizedExpression | Pattern | PatternLike | PipelineBareFunction | PipelinePrimaryTopicReference | PipelineTopicExpression | Placeholder | Private | PrivateName | Program | Property | Pureish | QualifiedTypeIdentifier | RecordExpression | RegExpLiteral | RegexLiteral | RestElement | RestProperty | ReturnStatement | Scopable | SequenceExpression | SpreadElement | SpreadProperty | Standardized | Statement | StaticBlock | StringLiteral | StringLiteralTypeAnnotation | StringTypeAnnotation | Super | SwitchCase | SwitchStatement | SymbolTypeAnnotation | TSAnyKeyword | TSArrayType | TSAsExpression | TSBaseType | TSBigIntKeyword | TSBooleanKeyword | TSCallSignatureDeclaration | TSConditionalType | TSConstructSignatureDeclaration | TSConstructorType | TSDeclareFunction | TSDeclareMethod | TSEntityName | TSEnumDeclaration | TSEnumMember | TSExportAssignment | TSExpressionWithTypeArguments | TSExternalModuleReference | TSFunctionType | TSImportEqualsDeclaration | TSImportType | TSIndexSignature | TSIndexedAccessType | TSInferType | TSInstantiationExpression | TSInterfaceBody | TSInterfaceDeclaration | TSIntersectionType | TSIntrinsicKeyword | TSLiteralType | TSMappedType | TSMethodSignature | TSModuleBlock | TSModuleDeclaration | TSNamedTupleMember | TSNamespaceExportDeclaration | TSNeverKeyword | TSNonNullExpression | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSOptionalType | TSParameterProperty | TSParenthesizedType | TSPropertySignature | TSQualifiedName | TSRestType | TSStringKeyword | TSSymbolKeyword | TSThisType | TSTupleType | TSType | TSTypeAliasDeclaration | TSTypeAnnotation | TSTypeAssertion | TSTypeElement | TSTypeLiteral | TSTypeOperator | TSTypeParameter | TSTypeParameterDeclaration | TSTypeParameterInstantiation | TSTypePredicate | TSTypeQuery | TSTypeReference | TSUndefinedKeyword | TSUnionType | TSUnknownKeyword | TSVoidKeyword | TaggedTemplateExpression | TemplateElement | TemplateLiteral | Terminatorless | ThisExpression | ThisTypeAnnotation | ThrowStatement | TopicReference | TryStatement | TupleExpression | TupleTypeAnnotation | TypeAlias | TypeAnnotation | TypeCastExpression | TypeParameter | TypeParameterDeclaration | TypeParameterInstantiation | TypeScript | TypeofTypeAnnotation | UnaryExpression | UnaryLike | UnionTypeAnnotation | UpdateExpression | UserWhitespacable | V8IntrinsicIdentifier | VariableDeclaration | VariableDeclarator | Variance | VoidTypeAnnotation | While | WhileStatement | WithStatement | YieldExpression; export interface ArrayExpression extends BaseNode { type: 'ArrayExpression'; elements: Array; } export interface AssignmentExpression extends BaseNode { type: 'AssignmentExpression'; operator: string; left: LVal; right: Expression; } export interface BinaryExpression extends BaseNode { type: 'BinaryExpression'; operator: | '+' | '-' | '/' | '%' | '*' | '**' | '&' | '|' | '>>' | '>>>' | '<<' | '^' | '==' | '===' | '!=' | '!==' | 'in' | 'instanceof' | '>' | '<' | '>=' | '<=' | '|>'; left: Expression | PrivateName; right: Expression; } export interface InterpreterDirective extends BaseNode { type: 'InterpreterDirective'; value: string; } export interface Directive extends BaseNode { type: 'Directive'; value: DirectiveLiteral; } export interface DirectiveLiteral extends BaseNode { type: 'DirectiveLiteral'; value: string; } export interface BlockStatement extends BaseNode { type: 'BlockStatement'; body: Array; directives: Array; } export interface BreakStatement extends BaseNode { type: 'BreakStatement'; label: Identifier | null; } export interface CallExpression extends BaseNode { type: 'CallExpression'; callee: Expression | Super | V8IntrinsicIdentifier; arguments: Array; optional: true | false | null; typeArguments: TypeParameterInstantiation | null; typeParameters: TSTypeParameterInstantiation | null; } export interface CatchClause extends BaseNode { type: 'CatchClause'; param: Identifier | ArrayPattern | ObjectPattern | null; body: BlockStatement; } export interface ConditionalExpression extends BaseNode { type: 'ConditionalExpression'; test: Expression; consequent: Expression; alternate: Expression; } export interface ContinueStatement extends BaseNode { type: 'ContinueStatement'; label: Identifier | null; } export interface DebuggerStatement extends BaseNode { type: 'DebuggerStatement'; } export interface DoWhileStatement extends BaseNode { type: 'DoWhileStatement'; test: Expression; body: Statement; } export interface EmptyStatement extends BaseNode { type: 'EmptyStatement'; } export interface ExpressionStatement extends BaseNode { type: 'ExpressionStatement'; expression: Expression; } export interface File extends BaseNode { type: 'File'; program: Program; comments: Array | null; tokens: Array | null; } export interface ForInStatement extends BaseNode { type: 'ForInStatement'; left: VariableDeclaration | LVal; right: Expression; body: Statement; } export interface ForStatement extends BaseNode { type: 'ForStatement'; init: VariableDeclaration | Expression | null; test: Expression | null; update: Expression | null; body: Statement; } export interface FunctionDeclaration extends BaseNode { type: 'FunctionDeclaration'; id: Identifier | null; params: Array; body: BlockStatement; generator: boolean; async: boolean; declare: boolean | null; predicate: DeclaredPredicate | InferredPredicate | null; returnType: TypeAnnotation | TSTypeAnnotation | Noop | null; typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; } export interface FunctionExpression extends BaseNode { type: 'FunctionExpression'; id: Identifier | null; params: Array; body: BlockStatement; generator: boolean; async: boolean; predicate: DeclaredPredicate | InferredPredicate | null; returnType: TypeAnnotation | TSTypeAnnotation | Noop | null; typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; } export interface Identifier extends BaseNode { type: 'Identifier'; name: string; decorators: Array | null; optional: boolean | null; typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null; } export interface IfStatement extends BaseNode { type: 'IfStatement'; test: Expression; consequent: Statement; alternate: Statement | null; } export interface LabeledStatement extends BaseNode { type: 'LabeledStatement'; label: Identifier; body: Statement; } export interface StringLiteral extends BaseNode { type: 'StringLiteral'; value: string; } export interface NumericLiteral extends BaseNode { type: 'NumericLiteral'; value: number; } export interface NullLiteral extends BaseNode { type: 'NullLiteral'; } export interface BooleanLiteral extends BaseNode { type: 'BooleanLiteral'; value: boolean; } export interface RegExpLiteral extends BaseNode { type: 'RegExpLiteral'; pattern: string; flags: string; } export interface LogicalExpression extends BaseNode { type: 'LogicalExpression'; operator: '||' | '&&' | '??'; left: Expression; right: Expression; } export interface MemberExpression extends BaseNode { type: 'MemberExpression'; object: Expression | Super; property: Expression | Identifier | PrivateName; computed: boolean; optional: true | false | null; } export interface NewExpression extends BaseNode { type: 'NewExpression'; callee: Expression | Super | V8IntrinsicIdentifier; arguments: Array; optional: true | false | null; typeArguments: TypeParameterInstantiation | null; typeParameters: TSTypeParameterInstantiation | null; } export interface Program extends BaseNode { type: 'Program'; body: Array; directives: Array; sourceType: 'script' | 'module'; interpreter: InterpreterDirective | null; sourceFile: string; } export interface ObjectExpression extends BaseNode { type: 'ObjectExpression'; properties: Array; } export interface ObjectMethod extends BaseNode { type: 'ObjectMethod'; kind: 'method' | 'get' | 'set'; key: Expression | Identifier | StringLiteral | NumericLiteral | BigIntLiteral; params: Array; body: BlockStatement; computed: boolean; generator: boolean; async: boolean; decorators: Array | null; returnType: TypeAnnotation | TSTypeAnnotation | Noop | null; typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; } export interface ObjectProperty extends BaseNode { type: 'ObjectProperty'; key: | Expression | Identifier | StringLiteral | NumericLiteral | BigIntLiteral | DecimalLiteral | PrivateName; value: Expression | PatternLike; computed: boolean; shorthand: boolean; decorators: Array | null; } export interface RestElement extends BaseNode { type: 'RestElement'; argument: LVal; decorators: Array | null; optional: boolean | null; typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null; } export interface ReturnStatement extends BaseNode { type: 'ReturnStatement'; argument: Expression | null; } export interface SequenceExpression extends BaseNode { type: 'SequenceExpression'; expressions: Array; } export interface ParenthesizedExpression extends BaseNode { type: 'ParenthesizedExpression'; expression: Expression; } export interface SwitchCase extends BaseNode { type: 'SwitchCase'; test: Expression | null; consequent: Array; } export interface SwitchStatement extends BaseNode { type: 'SwitchStatement'; discriminant: Expression; cases: Array; } export interface ThisExpression extends BaseNode { type: 'ThisExpression'; } export interface ThrowStatement extends BaseNode { type: 'ThrowStatement'; argument: Expression; } export interface TryStatement extends BaseNode { type: 'TryStatement'; block: BlockStatement; handler: CatchClause | null; finalizer: BlockStatement | null; } export interface UnaryExpression extends BaseNode { type: 'UnaryExpression'; operator: 'void' | 'throw' | 'delete' | '!' | '+' | '-' | '~' | 'typeof'; argument: Expression; prefix: boolean; } export interface UpdateExpression extends BaseNode { type: 'UpdateExpression'; operator: '++' | '--'; argument: Expression; prefix: boolean; } export interface VariableDeclaration extends BaseNode { type: 'VariableDeclaration'; kind: 'var' | 'let' | 'const'; declarations: Array; declare: boolean | null; } export interface VariableDeclarator extends BaseNode { type: 'VariableDeclarator'; id: LVal; init: Expression | null; definite: boolean | null; } export interface WhileStatement extends BaseNode { type: 'WhileStatement'; test: Expression; body: Statement; } export interface WithStatement extends BaseNode { type: 'WithStatement'; object: Expression; body: Statement; } export interface AssignmentPattern extends BaseNode { type: 'AssignmentPattern'; left: | Identifier | ObjectPattern | ArrayPattern | MemberExpression | TSAsExpression | TSTypeAssertion | TSNonNullExpression; right: Expression; decorators: Array | null; typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null; } export interface ArrayPattern extends BaseNode { type: 'ArrayPattern'; elements: Array; decorators: Array | null; optional: boolean | null; typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null; } export interface ArrowFunctionExpression extends BaseNode { type: 'ArrowFunctionExpression'; params: Array; body: BlockStatement | Expression; async: boolean; expression: boolean; generator: boolean; predicate: DeclaredPredicate | InferredPredicate | null; returnType: TypeAnnotation | TSTypeAnnotation | Noop | null; typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; } export interface ClassBody extends BaseNode { type: 'ClassBody'; body: Array< | ClassMethod | ClassPrivateMethod | ClassProperty | ClassPrivateProperty | ClassAccessorProperty | TSDeclareMethod | TSIndexSignature | StaticBlock >; } export interface ClassExpression extends BaseNode { type: 'ClassExpression'; id: Identifier | null; superClass: Expression | null; body: ClassBody; decorators: Array | null; implements: Array | null; mixins: InterfaceExtends | null; superTypeParameters: TypeParameterInstantiation | TSTypeParameterInstantiation | null; typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; } export interface ClassDeclaration extends BaseNode { type: 'ClassDeclaration'; id: Identifier; superClass: Expression | null; body: ClassBody; decorators: Array | null; abstract: boolean | null; declare: boolean | null; implements: Array | null; mixins: InterfaceExtends | null; superTypeParameters: TypeParameterInstantiation | TSTypeParameterInstantiation | null; typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; } export interface ExportAllDeclaration extends BaseNode { type: 'ExportAllDeclaration'; source: StringLiteral; assertions: Array | null; exportKind: 'type' | 'value' | null; } export interface ExportDefaultDeclaration extends BaseNode { type: 'ExportDefaultDeclaration'; declaration: TSDeclareFunction | FunctionDeclaration | ClassDeclaration | Expression; exportKind: 'value' | null; } export interface ExportNamedDeclaration extends BaseNode { type: 'ExportNamedDeclaration'; declaration: Declaration | null; specifiers: Array; source: StringLiteral | null; assertions: Array | null; exportKind: 'type' | 'value' | null; } export interface ExportSpecifier extends BaseNode { type: 'ExportSpecifier'; local: Identifier; exported: Identifier | StringLiteral; exportKind: 'type' | 'value' | null; } export interface ForOfStatement extends BaseNode { type: 'ForOfStatement'; left: VariableDeclaration | LVal; right: Expression; body: Statement; await: boolean; } export interface ImportDeclaration extends BaseNode { type: 'ImportDeclaration'; specifiers: Array; source: StringLiteral; assertions: Array | null; importKind: 'type' | 'typeof' | 'value' | null; } export interface ImportDefaultSpecifier extends BaseNode { type: 'ImportDefaultSpecifier'; local: Identifier; } export interface ImportNamespaceSpecifier extends BaseNode { type: 'ImportNamespaceSpecifier'; local: Identifier; } export interface ImportSpecifier extends BaseNode { type: 'ImportSpecifier'; local: Identifier; imported: Identifier | StringLiteral; importKind: 'type' | 'typeof' | 'value' | null; } export interface MetaProperty extends BaseNode { type: 'MetaProperty'; meta: Identifier; property: Identifier; } export interface ClassMethod extends BaseNode { type: 'ClassMethod'; kind: 'get' | 'set' | 'method' | 'constructor'; key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression; params: Array; body: BlockStatement; computed: boolean; static: boolean; generator: boolean; async: boolean; abstract: boolean | null; access: 'public' | 'private' | 'protected' | null; accessibility: 'public' | 'private' | 'protected' | null; decorators: Array | null; optional: boolean | null; override: boolean; returnType: TypeAnnotation | TSTypeAnnotation | Noop | null; typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; } export interface ObjectPattern extends BaseNode { type: 'ObjectPattern'; properties: Array; decorators: Array | null; typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null; } export interface SpreadElement extends BaseNode { type: 'SpreadElement'; argument: Expression; } export interface Super extends BaseNode { type: 'Super'; } export interface TaggedTemplateExpression extends BaseNode { type: 'TaggedTemplateExpression'; tag: Expression; quasi: TemplateLiteral; typeParameters: TypeParameterInstantiation | TSTypeParameterInstantiation | null; } export interface TemplateElement extends BaseNode { type: 'TemplateElement'; value: { raw: string; cooked?: string }; tail: boolean; } export interface TemplateLiteral extends BaseNode { type: 'TemplateLiteral'; quasis: Array; expressions: Array; } export interface YieldExpression extends BaseNode { type: 'YieldExpression'; argument: Expression | null; delegate: boolean; } export interface AwaitExpression extends BaseNode { type: 'AwaitExpression'; argument: Expression; } export interface Import extends BaseNode { type: 'Import'; } export interface BigIntLiteral extends BaseNode { type: 'BigIntLiteral'; value: string; } export interface ExportNamespaceSpecifier extends BaseNode { type: 'ExportNamespaceSpecifier'; exported: Identifier; } export interface OptionalMemberExpression extends BaseNode { type: 'OptionalMemberExpression'; object: Expression; property: Expression | Identifier; computed: boolean; optional: boolean; } export interface OptionalCallExpression extends BaseNode { type: 'OptionalCallExpression'; callee: Expression; arguments: Array; optional: boolean; typeArguments: TypeParameterInstantiation | null; typeParameters: TSTypeParameterInstantiation | null; } export interface ClassProperty extends BaseNode { type: 'ClassProperty'; key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression; value: Expression | null; typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null; decorators: Array | null; computed: boolean; static: boolean; abstract: boolean | null; accessibility: 'public' | 'private' | 'protected' | null; declare: boolean | null; definite: boolean | null; optional: boolean | null; override: boolean; readonly: boolean | null; variance: Variance | null; } export interface ClassAccessorProperty extends BaseNode { type: 'ClassAccessorProperty'; key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression | PrivateName; value: Expression | null; typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null; decorators: Array | null; computed: boolean; static: boolean; abstract: boolean | null; accessibility: 'public' | 'private' | 'protected' | null; declare: boolean | null; definite: boolean | null; optional: boolean | null; override: boolean; readonly: boolean | null; variance: Variance | null; } export interface ClassPrivateProperty extends BaseNode { type: 'ClassPrivateProperty'; key: PrivateName; value: Expression | null; decorators: Array | null; static: boolean; definite: boolean | null; readonly: boolean | null; typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null; variance: Variance | null; } export interface ClassPrivateMethod extends BaseNode { type: 'ClassPrivateMethod'; kind: 'get' | 'set' | 'method'; key: PrivateName; params: Array; body: BlockStatement; static: boolean; abstract: boolean | null; access: 'public' | 'private' | 'protected' | null; accessibility: 'public' | 'private' | 'protected' | null; async: boolean; computed: boolean; decorators: Array | null; generator: boolean; optional: boolean | null; override: boolean; returnType: TypeAnnotation | TSTypeAnnotation | Noop | null; typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; } export interface PrivateName extends BaseNode { type: 'PrivateName'; id: Identifier; } export interface StaticBlock extends BaseNode { type: 'StaticBlock'; body: Array; } export interface AnyTypeAnnotation extends BaseNode { type: 'AnyTypeAnnotation'; } export interface ArrayTypeAnnotation extends BaseNode { type: 'ArrayTypeAnnotation'; elementType: FlowType; } export interface BooleanTypeAnnotation extends BaseNode { type: 'BooleanTypeAnnotation'; } export interface BooleanLiteralTypeAnnotation extends BaseNode { type: 'BooleanLiteralTypeAnnotation'; value: boolean; } export interface NullLiteralTypeAnnotation extends BaseNode { type: 'NullLiteralTypeAnnotation'; } export interface ClassImplements extends BaseNode { type: 'ClassImplements'; id: Identifier; typeParameters: TypeParameterInstantiation | null; } export interface DeclareClass extends BaseNode { type: 'DeclareClass'; id: Identifier; typeParameters: TypeParameterDeclaration | null; extends: Array | null; body: ObjectTypeAnnotation; implements: Array | null; mixins: Array | null; } export interface DeclareFunction extends BaseNode { type: 'DeclareFunction'; id: Identifier; predicate: DeclaredPredicate | null; } export interface DeclareInterface extends BaseNode { type: 'DeclareInterface'; id: Identifier; typeParameters: TypeParameterDeclaration | null; extends: Array | null; body: ObjectTypeAnnotation; implements: Array | null; mixins: Array | null; } export interface DeclareModule extends BaseNode { type: 'DeclareModule'; id: Identifier | StringLiteral; body: BlockStatement; kind: 'CommonJS' | 'ES' | null; } export interface DeclareModuleExports extends BaseNode { type: 'DeclareModuleExports'; typeAnnotation: TypeAnnotation; } export interface DeclareTypeAlias extends BaseNode { type: 'DeclareTypeAlias'; id: Identifier; typeParameters: TypeParameterDeclaration | null; right: FlowType; } export interface DeclareOpaqueType extends BaseNode { type: 'DeclareOpaqueType'; id: Identifier; typeParameters: TypeParameterDeclaration | null; supertype: FlowType | null; impltype: FlowType | null; } export interface DeclareVariable extends BaseNode { type: 'DeclareVariable'; id: Identifier; } export interface DeclareExportDeclaration extends BaseNode { type: 'DeclareExportDeclaration'; declaration: Flow | null; specifiers: Array | null; source: StringLiteral | null; default: boolean | null; } export interface DeclareExportAllDeclaration extends BaseNode { type: 'DeclareExportAllDeclaration'; source: StringLiteral; exportKind: 'type' | 'value' | null; } export interface DeclaredPredicate extends BaseNode { type: 'DeclaredPredicate'; value: Flow; } export interface ExistsTypeAnnotation extends BaseNode { type: 'ExistsTypeAnnotation'; } export interface FunctionTypeAnnotation extends BaseNode { type: 'FunctionTypeAnnotation'; typeParameters: TypeParameterDeclaration | null; params: Array; rest: FunctionTypeParam | null; returnType: FlowType; this: FunctionTypeParam | null; } export interface FunctionTypeParam extends BaseNode { type: 'FunctionTypeParam'; name: Identifier | null; typeAnnotation: FlowType; optional: boolean | null; } export interface GenericTypeAnnotation extends BaseNode { type: 'GenericTypeAnnotation'; id: Identifier | QualifiedTypeIdentifier; typeParameters: TypeParameterInstantiation | null; } export interface InferredPredicate extends BaseNode { type: 'InferredPredicate'; } export interface InterfaceExtends extends BaseNode { type: 'InterfaceExtends'; id: Identifier | QualifiedTypeIdentifier; typeParameters: TypeParameterInstantiation | null; } export interface InterfaceDeclaration extends BaseNode { type: 'InterfaceDeclaration'; id: Identifier; typeParameters: TypeParameterDeclaration | null; extends: Array | null; body: ObjectTypeAnnotation; implements: Array | null; mixins: Array | null; } export interface InterfaceTypeAnnotation extends BaseNode { type: 'InterfaceTypeAnnotation'; extends: Array | null; body: ObjectTypeAnnotation; } export interface IntersectionTypeAnnotation extends BaseNode { type: 'IntersectionTypeAnnotation'; types: Array; } export interface MixedTypeAnnotation extends BaseNode { type: 'MixedTypeAnnotation'; } export interface EmptyTypeAnnotation extends BaseNode { type: 'EmptyTypeAnnotation'; } export interface NullableTypeAnnotation extends BaseNode { type: 'NullableTypeAnnotation'; typeAnnotation: FlowType; } export interface NumberLiteralTypeAnnotation extends BaseNode { type: 'NumberLiteralTypeAnnotation'; value: number; } export interface NumberTypeAnnotation extends BaseNode { type: 'NumberTypeAnnotation'; } export interface ObjectTypeAnnotation extends BaseNode { type: 'ObjectTypeAnnotation'; properties: Array; indexers: Array; callProperties: Array; internalSlots: Array; exact: boolean; inexact: boolean | null; } export interface ObjectTypeInternalSlot extends BaseNode { type: 'ObjectTypeInternalSlot'; id: Identifier; value: FlowType; optional: boolean; static: boolean; method: boolean; } export interface ObjectTypeCallProperty extends BaseNode { type: 'ObjectTypeCallProperty'; value: FlowType; static: boolean; } export interface ObjectTypeIndexer extends BaseNode { type: 'ObjectTypeIndexer'; id: Identifier | null; key: FlowType; value: FlowType; variance: Variance | null; static: boolean; } export interface ObjectTypeProperty extends BaseNode { type: 'ObjectTypeProperty'; key: Identifier | StringLiteral; value: FlowType; variance: Variance | null; kind: 'init' | 'get' | 'set'; method: boolean; optional: boolean; proto: boolean; static: boolean; } export interface ObjectTypeSpreadProperty extends BaseNode { type: 'ObjectTypeSpreadProperty'; argument: FlowType; } export interface OpaqueType extends BaseNode { type: 'OpaqueType'; id: Identifier; typeParameters: TypeParameterDeclaration | null; supertype: FlowType | null; impltype: FlowType; } export interface QualifiedTypeIdentifier extends BaseNode { type: 'QualifiedTypeIdentifier'; id: Identifier; qualification: Identifier | QualifiedTypeIdentifier; } export interface StringLiteralTypeAnnotation extends BaseNode { type: 'StringLiteralTypeAnnotation'; value: string; } export interface StringTypeAnnotation extends BaseNode { type: 'StringTypeAnnotation'; } export interface SymbolTypeAnnotation extends BaseNode { type: 'SymbolTypeAnnotation'; } export interface ThisTypeAnnotation extends BaseNode { type: 'ThisTypeAnnotation'; } export interface TupleTypeAnnotation extends BaseNode { type: 'TupleTypeAnnotation'; types: Array; } export interface TypeofTypeAnnotation extends BaseNode { type: 'TypeofTypeAnnotation'; argument: FlowType; } export interface TypeAlias extends BaseNode { type: 'TypeAlias'; id: Identifier; typeParameters: TypeParameterDeclaration | null; right: FlowType; } export interface TypeAnnotation extends BaseNode { type: 'TypeAnnotation'; typeAnnotation: FlowType; } export interface TypeCastExpression extends BaseNode { type: 'TypeCastExpression'; expression: Expression; typeAnnotation: TypeAnnotation; } export interface TypeParameter extends BaseNode { type: 'TypeParameter'; bound: TypeAnnotation | null; default: FlowType | null; variance: Variance | null; name: string; } export interface TypeParameterDeclaration extends BaseNode { type: 'TypeParameterDeclaration'; params: Array; } export interface TypeParameterInstantiation extends BaseNode { type: 'TypeParameterInstantiation'; params: Array; } export interface UnionTypeAnnotation extends BaseNode { type: 'UnionTypeAnnotation'; types: Array; } export interface Variance extends BaseNode { type: 'Variance'; kind: 'minus' | 'plus'; } export interface VoidTypeAnnotation extends BaseNode { type: 'VoidTypeAnnotation'; } export interface EnumDeclaration extends BaseNode { type: 'EnumDeclaration'; id: Identifier; body: EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody; } export interface EnumBooleanBody extends BaseNode { type: 'EnumBooleanBody'; members: Array; explicitType: boolean; hasUnknownMembers: boolean; } export interface EnumNumberBody extends BaseNode { type: 'EnumNumberBody'; members: Array; explicitType: boolean; hasUnknownMembers: boolean; } export interface EnumStringBody extends BaseNode { type: 'EnumStringBody'; members: Array; explicitType: boolean; hasUnknownMembers: boolean; } export interface EnumSymbolBody extends BaseNode { type: 'EnumSymbolBody'; members: Array; hasUnknownMembers: boolean; } export interface EnumBooleanMember extends BaseNode { type: 'EnumBooleanMember'; id: Identifier; init: BooleanLiteral; } export interface EnumNumberMember extends BaseNode { type: 'EnumNumberMember'; id: Identifier; init: NumericLiteral; } export interface EnumStringMember extends BaseNode { type: 'EnumStringMember'; id: Identifier; init: StringLiteral; } export interface EnumDefaultedMember extends BaseNode { type: 'EnumDefaultedMember'; id: Identifier; } export interface IndexedAccessType extends BaseNode { type: 'IndexedAccessType'; objectType: FlowType; indexType: FlowType; } export interface OptionalIndexedAccessType extends BaseNode { type: 'OptionalIndexedAccessType'; objectType: FlowType; indexType: FlowType; optional: boolean; } export interface JSXAttribute extends BaseNode { type: 'JSXAttribute'; name: JSXIdentifier | JSXNamespacedName; value: JSXElement | JSXFragment | StringLiteral | JSXExpressionContainer | null; } export interface JSXClosingElement extends BaseNode { type: 'JSXClosingElement'; name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName; } export interface JSXElement extends BaseNode { type: 'JSXElement'; openingElement: JSXOpeningElement; closingElement: JSXClosingElement | null; children: Array; selfClosing: boolean | null; } export interface JSXEmptyExpression extends BaseNode { type: 'JSXEmptyExpression'; } export interface JSXExpressionContainer extends BaseNode { type: 'JSXExpressionContainer'; expression: Expression | JSXEmptyExpression; } export interface JSXSpreadChild extends BaseNode { type: 'JSXSpreadChild'; expression: Expression; } export interface JSXIdentifier extends BaseNode { type: 'JSXIdentifier'; name: string; } export interface JSXMemberExpression extends BaseNode { type: 'JSXMemberExpression'; object: JSXMemberExpression | JSXIdentifier; property: JSXIdentifier; } export interface JSXNamespacedName extends BaseNode { type: 'JSXNamespacedName'; namespace: JSXIdentifier; name: JSXIdentifier; } export interface JSXOpeningElement extends BaseNode { type: 'JSXOpeningElement'; name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName; attributes: Array; selfClosing: boolean; typeParameters: TypeParameterInstantiation | TSTypeParameterInstantiation | null; } export interface JSXSpreadAttribute extends BaseNode { type: 'JSXSpreadAttribute'; argument: Expression; } export interface JSXText extends BaseNode { type: 'JSXText'; value: string; } export interface JSXFragment extends BaseNode { type: 'JSXFragment'; openingFragment: JSXOpeningFragment; closingFragment: JSXClosingFragment; children: Array; } export interface JSXOpeningFragment extends BaseNode { type: 'JSXOpeningFragment'; } export interface JSXClosingFragment extends BaseNode { type: 'JSXClosingFragment'; } export interface Noop extends BaseNode { type: 'Noop'; } export interface Placeholder extends BaseNode { type: 'Placeholder'; expectedNode: | 'Identifier' | 'StringLiteral' | 'Expression' | 'Statement' | 'Declaration' | 'BlockStatement' | 'ClassBody' | 'Pattern'; name: Identifier; } export interface V8IntrinsicIdentifier extends BaseNode { type: 'V8IntrinsicIdentifier'; name: string; } export interface ArgumentPlaceholder extends BaseNode { type: 'ArgumentPlaceholder'; } export interface BindExpression extends BaseNode { type: 'BindExpression'; object: Expression; callee: Expression; } export interface ImportAttribute extends BaseNode { type: 'ImportAttribute'; key: Identifier | StringLiteral; value: StringLiteral; } export interface Decorator extends BaseNode { type: 'Decorator'; expression: Expression; } export interface DoExpression extends BaseNode { type: 'DoExpression'; body: BlockStatement; async: boolean; } export interface ExportDefaultSpecifier extends BaseNode { type: 'ExportDefaultSpecifier'; exported: Identifier; } export interface RecordExpression extends BaseNode { type: 'RecordExpression'; properties: Array; } export interface TupleExpression extends BaseNode { type: 'TupleExpression'; elements: Array; } export interface DecimalLiteral extends BaseNode { type: 'DecimalLiteral'; value: string; } export interface ModuleExpression extends BaseNode { type: 'ModuleExpression'; body: Program; } export interface TopicReference extends BaseNode { type: 'TopicReference'; } export interface PipelineTopicExpression extends BaseNode { type: 'PipelineTopicExpression'; expression: Expression; } export interface PipelineBareFunction extends BaseNode { type: 'PipelineBareFunction'; callee: Expression; } export interface PipelinePrimaryTopicReference extends BaseNode { type: 'PipelinePrimaryTopicReference'; } export interface TSParameterProperty extends BaseNode { type: 'TSParameterProperty'; parameter: Identifier | AssignmentPattern; accessibility: 'public' | 'private' | 'protected' | null; decorators: Array | null; override: boolean | null; readonly: boolean | null; } export interface TSDeclareFunction extends BaseNode { type: 'TSDeclareFunction'; id: Identifier | null; typeParameters: TSTypeParameterDeclaration | Noop | null; params: Array; returnType: TSTypeAnnotation | Noop | null; async: boolean; declare: boolean | null; generator: boolean; } export interface TSDeclareMethod extends BaseNode { type: 'TSDeclareMethod'; decorators: Array | null; key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression; typeParameters: TSTypeParameterDeclaration | Noop | null; params: Array; returnType: TSTypeAnnotation | Noop | null; abstract: boolean | null; access: 'public' | 'private' | 'protected' | null; accessibility: 'public' | 'private' | 'protected' | null; async: boolean; computed: boolean; generator: boolean; kind: 'get' | 'set' | 'method' | 'constructor'; optional: boolean | null; override: boolean; static: boolean; } export interface TSQualifiedName extends BaseNode { type: 'TSQualifiedName'; left: TSEntityName; right: Identifier; } export interface TSCallSignatureDeclaration extends BaseNode { type: 'TSCallSignatureDeclaration'; typeParameters: TSTypeParameterDeclaration | null; parameters: Array; typeAnnotation: TSTypeAnnotation | null; } export interface TSConstructSignatureDeclaration extends BaseNode { type: 'TSConstructSignatureDeclaration'; typeParameters: TSTypeParameterDeclaration | null; parameters: Array; typeAnnotation: TSTypeAnnotation | null; } export interface TSPropertySignature extends BaseNode { type: 'TSPropertySignature'; key: Expression; typeAnnotation: TSTypeAnnotation | null; initializer: Expression | null; computed: boolean; kind: 'get' | 'set'; optional: boolean | null; readonly: boolean | null; } export interface TSMethodSignature extends BaseNode { type: 'TSMethodSignature'; key: Expression; typeParameters: TSTypeParameterDeclaration | null; parameters: Array; typeAnnotation: TSTypeAnnotation | null; computed: boolean; kind: 'method' | 'get' | 'set'; optional: boolean | null; } export interface TSIndexSignature extends BaseNode { type: 'TSIndexSignature'; parameters: Array; typeAnnotation: TSTypeAnnotation | null; readonly: boolean | null; static: boolean | null; } export interface TSAnyKeyword extends BaseNode { type: 'TSAnyKeyword'; } export interface TSBooleanKeyword extends BaseNode { type: 'TSBooleanKeyword'; } export interface TSBigIntKeyword extends BaseNode { type: 'TSBigIntKeyword'; } export interface TSIntrinsicKeyword extends BaseNode { type: 'TSIntrinsicKeyword'; } export interface TSNeverKeyword extends BaseNode { type: 'TSNeverKeyword'; } export interface TSNullKeyword extends BaseNode { type: 'TSNullKeyword'; } export interface TSNumberKeyword extends BaseNode { type: 'TSNumberKeyword'; } export interface TSObjectKeyword extends BaseNode { type: 'TSObjectKeyword'; } export interface TSStringKeyword extends BaseNode { type: 'TSStringKeyword'; } export interface TSSymbolKeyword extends BaseNode { type: 'TSSymbolKeyword'; } export interface TSUndefinedKeyword extends BaseNode { type: 'TSUndefinedKeyword'; } export interface TSUnknownKeyword extends BaseNode { type: 'TSUnknownKeyword'; } export interface TSVoidKeyword extends BaseNode { type: 'TSVoidKeyword'; } export interface TSThisType extends BaseNode { type: 'TSThisType'; } export interface TSFunctionType extends BaseNode { type: 'TSFunctionType'; typeParameters: TSTypeParameterDeclaration | null; parameters: Array; typeAnnotation: TSTypeAnnotation | null; } export interface TSConstructorType extends BaseNode { type: 'TSConstructorType'; typeParameters: TSTypeParameterDeclaration | null; parameters: Array; typeAnnotation: TSTypeAnnotation | null; abstract: boolean | null; } export interface TSTypeReference extends BaseNode { type: 'TSTypeReference'; typeName: TSEntityName; typeParameters: TSTypeParameterInstantiation | null; } export interface TSTypePredicate extends BaseNode { type: 'TSTypePredicate'; parameterName: Identifier | TSThisType; typeAnnotation: TSTypeAnnotation | null; asserts: boolean | null; } export interface TSTypeQuery extends BaseNode { type: 'TSTypeQuery'; exprName: TSEntityName | TSImportType; typeParameters: TSTypeParameterInstantiation | null; } export interface TSTypeLiteral extends BaseNode { type: 'TSTypeLiteral'; members: Array; } export interface TSArrayType extends BaseNode { type: 'TSArrayType'; elementType: TSType; } export interface TSTupleType extends BaseNode { type: 'TSTupleType'; elementTypes: Array; } export interface TSOptionalType extends BaseNode { type: 'TSOptionalType'; typeAnnotation: TSType; } export interface TSRestType extends BaseNode { type: 'TSRestType'; typeAnnotation: TSType; } export interface TSNamedTupleMember extends BaseNode { type: 'TSNamedTupleMember'; label: Identifier; elementType: TSType; optional: boolean; } export interface TSUnionType extends BaseNode { type: 'TSUnionType'; types: Array; } export interface TSIntersectionType extends BaseNode { type: 'TSIntersectionType'; types: Array; } export interface TSConditionalType extends BaseNode { type: 'TSConditionalType'; checkType: TSType; extendsType: TSType; trueType: TSType; falseType: TSType; } export interface TSInferType extends BaseNode { type: 'TSInferType'; typeParameter: TSTypeParameter; } export interface TSParenthesizedType extends BaseNode { type: 'TSParenthesizedType'; typeAnnotation: TSType; } export interface TSTypeOperator extends BaseNode { type: 'TSTypeOperator'; typeAnnotation: TSType; operator: string; } export interface TSIndexedAccessType extends BaseNode { type: 'TSIndexedAccessType'; objectType: TSType; indexType: TSType; } export interface TSMappedType extends BaseNode { type: 'TSMappedType'; typeParameter: TSTypeParameter; typeAnnotation: TSType | null; nameType: TSType | null; optional: true | false | '+' | '-' | null; readonly: true | false | '+' | '-' | null; } export interface TSLiteralType extends BaseNode { type: 'TSLiteralType'; literal: | NumericLiteral | StringLiteral | BooleanLiteral | BigIntLiteral | TemplateLiteral | UnaryExpression; } export interface TSExpressionWithTypeArguments extends BaseNode { type: 'TSExpressionWithTypeArguments'; expression: TSEntityName; typeParameters: TSTypeParameterInstantiation | null; } export interface TSInterfaceDeclaration extends BaseNode { type: 'TSInterfaceDeclaration'; id: Identifier; typeParameters: TSTypeParameterDeclaration | null; extends: Array | null; body: TSInterfaceBody; declare: boolean | null; } export interface TSInterfaceBody extends BaseNode { type: 'TSInterfaceBody'; body: Array; } export interface TSTypeAliasDeclaration extends BaseNode { type: 'TSTypeAliasDeclaration'; id: Identifier; typeParameters: TSTypeParameterDeclaration | null; typeAnnotation: TSType; declare: boolean | null; } export interface TSInstantiationExpression extends BaseNode { type: 'TSInstantiationExpression'; expression: Expression; typeParameters: TSTypeParameterInstantiation | null; } export interface TSAsExpression extends BaseNode { type: 'TSAsExpression'; expression: Expression; typeAnnotation: TSType; } export interface TSTypeAssertion extends BaseNode { type: 'TSTypeAssertion'; typeAnnotation: TSType; expression: Expression; } export interface TSEnumDeclaration extends BaseNode { type: 'TSEnumDeclaration'; id: Identifier; members: Array; const: boolean | null; declare: boolean | null; initializer: Expression | null; } export interface TSEnumMember extends BaseNode { type: 'TSEnumMember'; id: Identifier | StringLiteral; initializer: Expression | null; } export interface TSModuleDeclaration extends BaseNode { type: 'TSModuleDeclaration'; id: Identifier | StringLiteral; body: TSModuleBlock | TSModuleDeclaration; declare: boolean | null; global: boolean | null; } export interface TSModuleBlock extends BaseNode { type: 'TSModuleBlock'; body: Array; } export interface TSImportType extends BaseNode { type: 'TSImportType'; argument: StringLiteral; qualifier: TSEntityName | null; typeParameters: TSTypeParameterInstantiation | null; } export interface TSImportEqualsDeclaration extends BaseNode { type: 'TSImportEqualsDeclaration'; id: Identifier; moduleReference: TSEntityName | TSExternalModuleReference; importKind: 'type' | 'value' | null; isExport: boolean; } export interface TSExternalModuleReference extends BaseNode { type: 'TSExternalModuleReference'; expression: StringLiteral; } export interface TSNonNullExpression extends BaseNode { type: 'TSNonNullExpression'; expression: Expression; } export interface TSExportAssignment extends BaseNode { type: 'TSExportAssignment'; expression: Expression; } export interface TSNamespaceExportDeclaration extends BaseNode { type: 'TSNamespaceExportDeclaration'; id: Identifier; } export interface TSTypeAnnotation extends BaseNode { type: 'TSTypeAnnotation'; typeAnnotation: TSType; } export interface TSTypeParameterInstantiation extends BaseNode { type: 'TSTypeParameterInstantiation'; params: Array; } export interface TSTypeParameterDeclaration extends BaseNode { type: 'TSTypeParameterDeclaration'; params: Array; } export interface TSTypeParameter extends BaseNode { type: 'TSTypeParameter'; constraint: TSType | null; default: TSType | null; name: string; in: boolean | null; out: boolean | null; } /** * @deprecated Use `NumericLiteral` */ export type NumberLiteral = NumericLiteral; /** * @deprecated Use `RegExpLiteral` */ export type RegexLiteral = RegExpLiteral; /** * @deprecated Use `RestElement` */ export type RestProperty = RestElement; /** * @deprecated Use `SpreadElement` */ export type SpreadProperty = SpreadElement; export type Standardized = | ArrayExpression | AssignmentExpression | BinaryExpression | InterpreterDirective | Directive | DirectiveLiteral | BlockStatement | BreakStatement | CallExpression | CatchClause | ConditionalExpression | ContinueStatement | DebuggerStatement | DoWhileStatement | EmptyStatement | ExpressionStatement | File | ForInStatement | ForStatement | FunctionDeclaration | FunctionExpression | Identifier | IfStatement | LabeledStatement | StringLiteral | NumericLiteral | NullLiteral | BooleanLiteral | RegExpLiteral | LogicalExpression | MemberExpression | NewExpression | Program | ObjectExpression | ObjectMethod | ObjectProperty | RestElement | ReturnStatement | SequenceExpression | ParenthesizedExpression | SwitchCase | SwitchStatement | ThisExpression | ThrowStatement | TryStatement | UnaryExpression | UpdateExpression | VariableDeclaration | VariableDeclarator | WhileStatement | WithStatement | AssignmentPattern | ArrayPattern | ArrowFunctionExpression | ClassBody | ClassExpression | ClassDeclaration | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ExportSpecifier | ForOfStatement | ImportDeclaration | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier | MetaProperty | ClassMethod | ObjectPattern | SpreadElement | Super | TaggedTemplateExpression | TemplateElement | TemplateLiteral | YieldExpression | AwaitExpression | Import | BigIntLiteral | ExportNamespaceSpecifier | OptionalMemberExpression | OptionalCallExpression | ClassProperty | ClassAccessorProperty | ClassPrivateProperty | ClassPrivateMethod | PrivateName | StaticBlock; export type Expression = | ArrayExpression | AssignmentExpression | BinaryExpression | CallExpression | ConditionalExpression | FunctionExpression | Identifier | StringLiteral | NumericLiteral | NullLiteral | BooleanLiteral | RegExpLiteral | LogicalExpression | MemberExpression | NewExpression | ObjectExpression | SequenceExpression | ParenthesizedExpression | ThisExpression | UnaryExpression | UpdateExpression | ArrowFunctionExpression | ClassExpression | MetaProperty | Super | TaggedTemplateExpression | TemplateLiteral | YieldExpression | AwaitExpression | Import | BigIntLiteral | OptionalMemberExpression | OptionalCallExpression | TypeCastExpression | JSXElement | JSXFragment | BindExpression | DoExpression | RecordExpression | TupleExpression | DecimalLiteral | ModuleExpression | TopicReference | PipelineTopicExpression | PipelineBareFunction | PipelinePrimaryTopicReference | TSInstantiationExpression | TSAsExpression | TSTypeAssertion | TSNonNullExpression; export type Binary = BinaryExpression | LogicalExpression; export type Scopable = | BlockStatement | CatchClause | DoWhileStatement | ForInStatement | ForStatement | FunctionDeclaration | FunctionExpression | Program | ObjectMethod | SwitchStatement | WhileStatement | ArrowFunctionExpression | ClassExpression | ClassDeclaration | ForOfStatement | ClassMethod | ClassPrivateMethod | StaticBlock | TSModuleBlock; export type BlockParent = | BlockStatement | CatchClause | DoWhileStatement | ForInStatement | ForStatement | FunctionDeclaration | FunctionExpression | Program | ObjectMethod | SwitchStatement | WhileStatement | ArrowFunctionExpression | ForOfStatement | ClassMethod | ClassPrivateMethod | StaticBlock | TSModuleBlock; export type Block = BlockStatement | Program | TSModuleBlock; 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 | DeclareModuleExports | DeclareTypeAlias | DeclareOpaqueType | DeclareVariable | DeclareExportDeclaration | DeclareExportAllDeclaration | InterfaceDeclaration | OpaqueType | TypeAlias | EnumDeclaration | TSDeclareFunction | TSInterfaceDeclaration | TSTypeAliasDeclaration | TSEnumDeclaration | TSModuleDeclaration | TSImportEqualsDeclaration | TSExportAssignment | TSNamespaceExportDeclaration; export type Terminatorless = | BreakStatement | ContinueStatement | ReturnStatement | ThrowStatement | YieldExpression | AwaitExpression; export type CompletionStatement = | BreakStatement | ContinueStatement | ReturnStatement | ThrowStatement; export type Conditional = ConditionalExpression | IfStatement; export type Loop = | DoWhileStatement | ForInStatement | ForStatement | WhileStatement | ForOfStatement; export type While = DoWhileStatement | WhileStatement; export type ExpressionWrapper = ExpressionStatement | ParenthesizedExpression | TypeCastExpression; export type For = ForInStatement | ForStatement | ForOfStatement; export type ForXStatement = ForInStatement | ForOfStatement; export type Function = | FunctionDeclaration | FunctionExpression | ObjectMethod | ArrowFunctionExpression | ClassMethod | ClassPrivateMethod; export type FunctionParent = | FunctionDeclaration | FunctionExpression | ObjectMethod | ArrowFunctionExpression | ClassMethod | ClassPrivateMethod | StaticBlock; export type Pureish = | FunctionDeclaration | FunctionExpression | StringLiteral | NumericLiteral | NullLiteral | BooleanLiteral | RegExpLiteral | ArrowFunctionExpression | BigIntLiteral | DecimalLiteral; export type Declaration = | FunctionDeclaration | VariableDeclaration | ClassDeclaration | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ImportDeclaration | DeclareClass | DeclareFunction | DeclareInterface | DeclareModule | DeclareModuleExports | DeclareTypeAlias | DeclareOpaqueType | DeclareVariable | DeclareExportDeclaration | DeclareExportAllDeclaration | InterfaceDeclaration | OpaqueType | TypeAlias | EnumDeclaration | TSDeclareFunction | TSInterfaceDeclaration | TSTypeAliasDeclaration | TSEnumDeclaration | TSModuleDeclaration; export type PatternLike = | Identifier | RestElement | AssignmentPattern | ArrayPattern | ObjectPattern | TSAsExpression | TSTypeAssertion | TSNonNullExpression; export type LVal = | Identifier | MemberExpression | RestElement | AssignmentPattern | ArrayPattern | ObjectPattern | TSParameterProperty | TSAsExpression | TSTypeAssertion | TSNonNullExpression; export type TSEntityName = Identifier | TSQualifiedName; export type Literal = | StringLiteral | NumericLiteral | NullLiteral | BooleanLiteral | RegExpLiteral | TemplateLiteral | BigIntLiteral | DecimalLiteral; export type Immutable = | StringLiteral | NumericLiteral | NullLiteral | BooleanLiteral | BigIntLiteral | JSXAttribute | JSXClosingElement | JSXElement | JSXExpressionContainer | JSXSpreadChild | JSXOpeningElement | JSXText | JSXFragment | JSXOpeningFragment | JSXClosingFragment | DecimalLiteral; export type UserWhitespacable = | ObjectMethod | ObjectProperty | ObjectTypeInternalSlot | ObjectTypeCallProperty | ObjectTypeIndexer | ObjectTypeProperty | ObjectTypeSpreadProperty; export type Method = ObjectMethod | ClassMethod | ClassPrivateMethod; export type ObjectMember = ObjectMethod | ObjectProperty; export type Property = | ObjectProperty | ClassProperty | ClassAccessorProperty | ClassPrivateProperty; export type UnaryLike = UnaryExpression | SpreadElement; export type Pattern = AssignmentPattern | ArrayPattern | ObjectPattern; export type Class = ClassExpression | ClassDeclaration; export type ModuleDeclaration = | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ImportDeclaration; export type ExportDeclaration = | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration; export type ModuleSpecifier = | ExportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier | ExportNamespaceSpecifier | ExportDefaultSpecifier; export type Accessor = ClassAccessorProperty; export type Private = ClassPrivateProperty | ClassPrivateMethod | PrivateName; export type Flow = | AnyTypeAnnotation | ArrayTypeAnnotation | BooleanTypeAnnotation | BooleanLiteralTypeAnnotation | NullLiteralTypeAnnotation | ClassImplements | DeclareClass | DeclareFunction | DeclareInterface | DeclareModule | DeclareModuleExports | DeclareTypeAlias | DeclareOpaqueType | DeclareVariable | DeclareExportDeclaration | DeclareExportAllDeclaration | DeclaredPredicate | ExistsTypeAnnotation | FunctionTypeAnnotation | FunctionTypeParam | GenericTypeAnnotation | InferredPredicate | InterfaceExtends | InterfaceDeclaration | InterfaceTypeAnnotation | IntersectionTypeAnnotation | MixedTypeAnnotation | EmptyTypeAnnotation | NullableTypeAnnotation | NumberLiteralTypeAnnotation | NumberTypeAnnotation | ObjectTypeAnnotation | ObjectTypeInternalSlot | ObjectTypeCallProperty | ObjectTypeIndexer | ObjectTypeProperty | ObjectTypeSpreadProperty | OpaqueType | QualifiedTypeIdentifier | StringLiteralTypeAnnotation | StringTypeAnnotation | SymbolTypeAnnotation | ThisTypeAnnotation | TupleTypeAnnotation | TypeofTypeAnnotation | TypeAlias | TypeAnnotation | TypeCastExpression | TypeParameter | TypeParameterDeclaration | TypeParameterInstantiation | UnionTypeAnnotation | Variance | VoidTypeAnnotation | EnumDeclaration | EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody | EnumBooleanMember | EnumNumberMember | EnumStringMember | EnumDefaultedMember | IndexedAccessType | OptionalIndexedAccessType; export type FlowType = | AnyTypeAnnotation | ArrayTypeAnnotation | BooleanTypeAnnotation | BooleanLiteralTypeAnnotation | NullLiteralTypeAnnotation | ExistsTypeAnnotation | FunctionTypeAnnotation | GenericTypeAnnotation | InterfaceTypeAnnotation | IntersectionTypeAnnotation | MixedTypeAnnotation | EmptyTypeAnnotation | NullableTypeAnnotation | NumberLiteralTypeAnnotation | NumberTypeAnnotation | ObjectTypeAnnotation | StringLiteralTypeAnnotation | StringTypeAnnotation | SymbolTypeAnnotation | ThisTypeAnnotation | TupleTypeAnnotation | TypeofTypeAnnotation | UnionTypeAnnotation | VoidTypeAnnotation | IndexedAccessType | OptionalIndexedAccessType; export type FlowBaseAnnotation = | AnyTypeAnnotation | BooleanTypeAnnotation | NullLiteralTypeAnnotation | MixedTypeAnnotation | EmptyTypeAnnotation | NumberTypeAnnotation | StringTypeAnnotation | SymbolTypeAnnotation | ThisTypeAnnotation | VoidTypeAnnotation; export type FlowDeclaration = | DeclareClass | DeclareFunction | DeclareInterface | DeclareModule | DeclareModuleExports | DeclareTypeAlias | DeclareOpaqueType | DeclareVariable | DeclareExportDeclaration | DeclareExportAllDeclaration | InterfaceDeclaration | OpaqueType | TypeAlias; export type FlowPredicate = DeclaredPredicate | InferredPredicate; export type EnumBody = EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody; export type EnumMember = | EnumBooleanMember | EnumNumberMember | EnumStringMember | EnumDefaultedMember; export type JSX = | JSXAttribute | JSXClosingElement | JSXElement | JSXEmptyExpression | JSXExpressionContainer | JSXSpreadChild | JSXIdentifier | JSXMemberExpression | JSXNamespacedName | JSXOpeningElement | JSXSpreadAttribute | JSXText | JSXFragment | JSXOpeningFragment | JSXClosingFragment; export type Miscellaneous = Noop | Placeholder | V8IntrinsicIdentifier; export type TypeScript = | TSParameterProperty | TSDeclareFunction | TSDeclareMethod | TSQualifiedName | TSCallSignatureDeclaration | TSConstructSignatureDeclaration | TSPropertySignature | TSMethodSignature | TSIndexSignature | TSAnyKeyword | TSBooleanKeyword | TSBigIntKeyword | TSIntrinsicKeyword | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSStringKeyword | TSSymbolKeyword | TSUndefinedKeyword | TSUnknownKeyword | TSVoidKeyword | TSThisType | TSFunctionType | TSConstructorType | TSTypeReference | TSTypePredicate | TSTypeQuery | TSTypeLiteral | TSArrayType | TSTupleType | TSOptionalType | TSRestType | TSNamedTupleMember | TSUnionType | TSIntersectionType | TSConditionalType | TSInferType | TSParenthesizedType | TSTypeOperator | TSIndexedAccessType | TSMappedType | TSLiteralType | TSExpressionWithTypeArguments | TSInterfaceDeclaration | TSInterfaceBody | TSTypeAliasDeclaration | TSInstantiationExpression | TSAsExpression | TSTypeAssertion | TSEnumDeclaration | TSEnumMember | TSModuleDeclaration | TSModuleBlock | TSImportType | TSImportEqualsDeclaration | TSExternalModuleReference | TSNonNullExpression | TSExportAssignment | TSNamespaceExportDeclaration | TSTypeAnnotation | TSTypeParameterInstantiation | TSTypeParameterDeclaration | TSTypeParameter; export type TSTypeElement = | TSCallSignatureDeclaration | TSConstructSignatureDeclaration | TSPropertySignature | TSMethodSignature | TSIndexSignature; export type TSType = | TSAnyKeyword | TSBooleanKeyword | TSBigIntKeyword | TSIntrinsicKeyword | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSStringKeyword | TSSymbolKeyword | TSUndefinedKeyword | TSUnknownKeyword | TSVoidKeyword | TSThisType | TSFunctionType | TSConstructorType | TSTypeReference | TSTypePredicate | TSTypeQuery | TSTypeLiteral | TSArrayType | TSTupleType | TSOptionalType | TSRestType | TSUnionType | TSIntersectionType | TSConditionalType | TSInferType | TSParenthesizedType | TSTypeOperator | TSIndexedAccessType | TSMappedType | TSLiteralType | TSExpressionWithTypeArguments | TSImportType; export type TSBaseType = | TSAnyKeyword | TSBooleanKeyword | TSBigIntKeyword | TSIntrinsicKeyword | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSStringKeyword | TSSymbolKeyword | TSUndefinedKeyword | TSUnknownKeyword | TSVoidKeyword | TSThisType | TSLiteralType; export interface Aliases { Standardized: Standardized; Expression: Expression; Binary: Binary; Scopable: Scopable; BlockParent: BlockParent; Block: Block; Statement: Statement; Terminatorless: Terminatorless; CompletionStatement: CompletionStatement; Conditional: Conditional; Loop: Loop; While: While; ExpressionWrapper: ExpressionWrapper; For: For; ForXStatement: ForXStatement; Function: Function; FunctionParent: FunctionParent; Pureish: Pureish; Declaration: Declaration; PatternLike: PatternLike; LVal: LVal; TSEntityName: TSEntityName; Literal: Literal; Immutable: Immutable; UserWhitespacable: UserWhitespacable; Method: Method; ObjectMember: ObjectMember; Property: Property; UnaryLike: UnaryLike; Pattern: Pattern; Class: Class; ModuleDeclaration: ModuleDeclaration; ExportDeclaration: ExportDeclaration; ModuleSpecifier: ModuleSpecifier; Accessor: Accessor; Private: Private; Flow: Flow; FlowType: FlowType; FlowBaseAnnotation: FlowBaseAnnotation; FlowDeclaration: FlowDeclaration; FlowPredicate: FlowPredicate; EnumBody: EnumBody; EnumMember: EnumMember; JSX: JSX; Miscellaneous: Miscellaneous; TypeScript: TypeScript; TSTypeElement: TSTypeElement; TSType: TSType; TSBaseType: TSBaseType; } export function arrayExpression( elements?: Array ): ArrayExpression; export function assignmentExpression( operator: string, left: LVal, right: Expression ): AssignmentExpression; export function binaryExpression( operator: | '+' | '-' | '/' | '%' | '*' | '**' | '&' | '|' | '>>' | '>>>' | '<<' | '^' | '==' | '===' | '!=' | '!==' | 'in' | 'instanceof' | '>' | '<' | '>=' | '<=' | '|>', left: Expression | PrivateName, right: Expression ): BinaryExpression; export function interpreterDirective(value: string): InterpreterDirective; export function directive(value: DirectiveLiteral): Directive; export function directiveLiteral(value: string): DirectiveLiteral; export function blockStatement( body: Array, directives?: Array ): BlockStatement; export function breakStatement(label?: Identifier | null): BreakStatement; export function callExpression( callee: Expression | Super | V8IntrinsicIdentifier, _arguments: Array ): CallExpression; export function catchClause( param: Identifier | ArrayPattern | ObjectPattern | null | undefined, body: BlockStatement ): CatchClause; export function conditionalExpression( test: Expression, consequent: Expression, alternate: Expression ): ConditionalExpression; export function continueStatement(label?: Identifier | null): ContinueStatement; export function debuggerStatement(): DebuggerStatement; export function doWhileStatement(test: Expression, body: Statement): DoWhileStatement; export function emptyStatement(): EmptyStatement; export function expressionStatement(expression: Expression): ExpressionStatement; export function file( program: Program, comments?: Array | null, tokens?: Array | null ): File; export function forInStatement( left: VariableDeclaration | LVal, right: Expression, body: Statement ): ForInStatement; export function forStatement( init: VariableDeclaration | Expression | null | undefined, test: Expression | null | undefined, update: Expression | null | undefined, body: Statement ): ForStatement; export function functionDeclaration( id: Identifier | null | undefined, params: Array, body: BlockStatement, generator?: boolean, async?: boolean ): FunctionDeclaration; export function functionExpression( id: Identifier | null | undefined, params: Array, body: BlockStatement, generator?: boolean, async?: boolean ): FunctionExpression; export function identifier(name: string): Identifier; export function ifStatement( test: Expression, consequent: Statement, alternate?: Statement | null ): IfStatement; export function labeledStatement(label: Identifier, body: Statement): LabeledStatement; export function stringLiteral(value: string): StringLiteral; export function numericLiteral(value: number): NumericLiteral; export function nullLiteral(): NullLiteral; export function booleanLiteral(value: boolean): BooleanLiteral; export function regExpLiteral(pattern: string, flags?: string): RegExpLiteral; export function logicalExpression( operator: '||' | '&&' | '??', left: Expression, right: Expression ): LogicalExpression; export function memberExpression( object: Expression | Super, property: Expression | Identifier | PrivateName, computed?: boolean, optional?: true | false | null ): MemberExpression; export function newExpression( callee: Expression | Super | V8IntrinsicIdentifier, _arguments: Array ): NewExpression; export function program( body: Array, directives?: Array, sourceType?: 'script' | 'module', interpreter?: InterpreterDirective | null ): Program; export function objectExpression( properties: Array ): ObjectExpression; export function objectMethod( kind: 'method' | 'get' | 'set' | undefined, key: Expression | Identifier | StringLiteral | NumericLiteral | BigIntLiteral, params: Array, body: BlockStatement, computed?: boolean, generator?: boolean, async?: boolean ): ObjectMethod; export function objectProperty( key: | Expression | Identifier | StringLiteral | NumericLiteral | BigIntLiteral | DecimalLiteral | PrivateName, value: Expression | PatternLike, computed?: boolean, shorthand?: boolean, decorators?: Array | null ): ObjectProperty; export function restElement(argument: LVal): RestElement; export function returnStatement(argument?: Expression | null): ReturnStatement; export function sequenceExpression(expressions: Array): SequenceExpression; export function parenthesizedExpression(expression: Expression): ParenthesizedExpression; export function switchCase( test: Expression | null | undefined, consequent: Array ): SwitchCase; export function switchStatement( discriminant: Expression, cases: Array ): SwitchStatement; export function thisExpression(): ThisExpression; export function throwStatement(argument: Expression): ThrowStatement; export function tryStatement( block: BlockStatement, handler?: CatchClause | null, finalizer?: BlockStatement | null ): TryStatement; export function unaryExpression( operator: 'void' | 'throw' | 'delete' | '!' | '+' | '-' | '~' | 'typeof', argument: Expression, prefix?: boolean ): UnaryExpression; export function updateExpression( operator: '++' | '--', argument: Expression, prefix?: boolean ): UpdateExpression; export function variableDeclaration( kind: 'var' | 'let' | 'const', declarations: Array ): VariableDeclaration; export function variableDeclarator(id: LVal, init?: Expression | null): VariableDeclarator; export function whileStatement(test: Expression, body: Statement): WhileStatement; export function withStatement(object: Expression, body: Statement): WithStatement; export function assignmentPattern( left: | Identifier | ObjectPattern | ArrayPattern | MemberExpression | TSAsExpression | TSTypeAssertion | TSNonNullExpression, right: Expression ): AssignmentPattern; export function arrayPattern(elements: Array): ArrayPattern; export function arrowFunctionExpression( params: Array, body: BlockStatement | Expression, async?: boolean ): ArrowFunctionExpression; export function classBody( body: Array< | ClassMethod | ClassPrivateMethod | ClassProperty | ClassPrivateProperty | ClassAccessorProperty | TSDeclareMethod | TSIndexSignature | StaticBlock > ): ClassBody; export function classExpression( id: Identifier | null | undefined, superClass: Expression | null | undefined, body: ClassBody, decorators?: Array | null ): ClassExpression; export function classDeclaration( id: Identifier, superClass: Expression | null | undefined, body: ClassBody, decorators?: Array | null ): ClassDeclaration; export function exportAllDeclaration(source: StringLiteral): ExportAllDeclaration; export function exportDefaultDeclaration( declaration: TSDeclareFunction | FunctionDeclaration | ClassDeclaration | Expression ): ExportDefaultDeclaration; export function exportNamedDeclaration( declaration?: Declaration | null, specifiers?: Array, source?: StringLiteral | null ): ExportNamedDeclaration; export function exportSpecifier( local: Identifier, exported: Identifier | StringLiteral ): ExportSpecifier; export function forOfStatement( left: VariableDeclaration | LVal, right: Expression, body: Statement, _await?: boolean ): ForOfStatement; export function importDeclaration( specifiers: Array, source: StringLiteral ): ImportDeclaration; export function importDefaultSpecifier(local: Identifier): ImportDefaultSpecifier; export function importNamespaceSpecifier(local: Identifier): ImportNamespaceSpecifier; export function importSpecifier( local: Identifier, imported: Identifier | StringLiteral ): ImportSpecifier; export function metaProperty(meta: Identifier, property: Identifier): MetaProperty; export function classMethod( kind: 'get' | 'set' | 'method' | 'constructor' | undefined, key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression, params: Array, body: BlockStatement, computed?: boolean, _static?: boolean, generator?: boolean, async?: boolean ): ClassMethod; export function objectPattern(properties: Array): ObjectPattern; export function spreadElement(argument: Expression): SpreadElement; declare function _super(): Super; export { _super as super }; export function taggedTemplateExpression( tag: Expression, quasi: TemplateLiteral ): TaggedTemplateExpression; export function templateElement( value: { raw: string; cooked?: string }, tail?: boolean ): TemplateElement; export function templateLiteral( quasis: Array, expressions: Array ): TemplateLiteral; export function yieldExpression(argument?: Expression | null, delegate?: boolean): YieldExpression; export function awaitExpression(argument: Expression): AwaitExpression; declare function _import(): Import; export { _import as import }; export function bigIntLiteral(value: string): BigIntLiteral; export function exportNamespaceSpecifier(exported: Identifier): ExportNamespaceSpecifier; export function optionalMemberExpression( object: Expression, property: Expression | Identifier, computed: boolean | undefined, optional: boolean ): OptionalMemberExpression; export function optionalCallExpression( callee: Expression, _arguments: Array, optional: boolean ): OptionalCallExpression; export function classProperty( key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression, value?: Expression | null, typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null, decorators?: Array | null, computed?: boolean, _static?: boolean ): ClassProperty; export function classAccessorProperty( key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression | PrivateName, value?: Expression | null, typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null, decorators?: Array | null, computed?: boolean, _static?: boolean ): ClassAccessorProperty; export function classPrivateProperty( key: PrivateName, value?: Expression | null, decorators?: Array | null, _static?: boolean ): ClassPrivateProperty; export function classPrivateMethod( kind: 'get' | 'set' | 'method' | undefined, key: PrivateName, params: Array, body: BlockStatement, _static?: boolean ): ClassPrivateMethod; export function privateName(id: Identifier): PrivateName; export function staticBlock(body: Array): StaticBlock; export function anyTypeAnnotation(): AnyTypeAnnotation; export function arrayTypeAnnotation(elementType: FlowType): ArrayTypeAnnotation; export function booleanTypeAnnotation(): BooleanTypeAnnotation; export function booleanLiteralTypeAnnotation(value: boolean): BooleanLiteralTypeAnnotation; export function nullLiteralTypeAnnotation(): NullLiteralTypeAnnotation; export function classImplements( id: Identifier, typeParameters?: TypeParameterInstantiation | null ): ClassImplements; export function declareClass( id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, _extends: Array | null | undefined, body: ObjectTypeAnnotation ): DeclareClass; export function declareFunction(id: Identifier): DeclareFunction; export function declareInterface( id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, _extends: Array | null | undefined, body: ObjectTypeAnnotation ): DeclareInterface; export function declareModule( id: Identifier | StringLiteral, body: BlockStatement, kind?: 'CommonJS' | 'ES' | null ): DeclareModule; export function declareModuleExports(typeAnnotation: TypeAnnotation): DeclareModuleExports; export function declareTypeAlias( id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, right: FlowType ): DeclareTypeAlias; export function declareOpaqueType( id: Identifier, typeParameters?: TypeParameterDeclaration | null, supertype?: FlowType | null ): DeclareOpaqueType; export function declareVariable(id: Identifier): DeclareVariable; export function declareExportDeclaration( declaration?: Flow | null, specifiers?: Array | null, source?: StringLiteral | null ): DeclareExportDeclaration; export function declareExportAllDeclaration(source: StringLiteral): DeclareExportAllDeclaration; export function declaredPredicate(value: Flow): DeclaredPredicate; export function existsTypeAnnotation(): ExistsTypeAnnotation; export function functionTypeAnnotation( typeParameters: TypeParameterDeclaration | null | undefined, params: Array, rest: FunctionTypeParam | null | undefined, returnType: FlowType ): FunctionTypeAnnotation; export function functionTypeParam( name: Identifier | null | undefined, typeAnnotation: FlowType ): FunctionTypeParam; export function genericTypeAnnotation( id: Identifier | QualifiedTypeIdentifier, typeParameters?: TypeParameterInstantiation | null ): GenericTypeAnnotation; export function inferredPredicate(): InferredPredicate; export function interfaceExtends( id: Identifier | QualifiedTypeIdentifier, typeParameters?: TypeParameterInstantiation | null ): InterfaceExtends; export function interfaceDeclaration( id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, _extends: Array | null | undefined, body: ObjectTypeAnnotation ): InterfaceDeclaration; export function interfaceTypeAnnotation( _extends: Array | null | undefined, body: ObjectTypeAnnotation ): InterfaceTypeAnnotation; export function intersectionTypeAnnotation(types: Array): IntersectionTypeAnnotation; export function mixedTypeAnnotation(): MixedTypeAnnotation; export function emptyTypeAnnotation(): EmptyTypeAnnotation; export function nullableTypeAnnotation(typeAnnotation: FlowType): NullableTypeAnnotation; export function numberLiteralTypeAnnotation(value: number): NumberLiteralTypeAnnotation; export function numberTypeAnnotation(): NumberTypeAnnotation; export function objectTypeAnnotation( properties: Array, indexers?: Array, callProperties?: Array, internalSlots?: Array, exact?: boolean ): ObjectTypeAnnotation; export function objectTypeInternalSlot( id: Identifier, value: FlowType, optional: boolean, _static: boolean, method: boolean ): ObjectTypeInternalSlot; export function objectTypeCallProperty(value: FlowType): ObjectTypeCallProperty; export function objectTypeIndexer( id: Identifier | null | undefined, key: FlowType, value: FlowType, variance?: Variance | null ): ObjectTypeIndexer; export function objectTypeProperty( key: Identifier | StringLiteral, value: FlowType, variance?: Variance | null ): ObjectTypeProperty; export function objectTypeSpreadProperty(argument: FlowType): ObjectTypeSpreadProperty; export function opaqueType( id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, supertype: FlowType | null | undefined, impltype: FlowType ): OpaqueType; export function qualifiedTypeIdentifier( id: Identifier, qualification: Identifier | QualifiedTypeIdentifier ): QualifiedTypeIdentifier; export function stringLiteralTypeAnnotation(value: string): StringLiteralTypeAnnotation; export function stringTypeAnnotation(): StringTypeAnnotation; export function symbolTypeAnnotation(): SymbolTypeAnnotation; export function thisTypeAnnotation(): ThisTypeAnnotation; export function tupleTypeAnnotation(types: Array): TupleTypeAnnotation; export function typeofTypeAnnotation(argument: FlowType): TypeofTypeAnnotation; export function typeAlias( id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, right: FlowType ): TypeAlias; export function typeAnnotation(typeAnnotation: FlowType): TypeAnnotation; export function typeCastExpression( expression: Expression, typeAnnotation: TypeAnnotation ): TypeCastExpression; export function typeParameter( bound?: TypeAnnotation | null, _default?: FlowType | null, variance?: Variance | null ): TypeParameter; export function typeParameterDeclaration(params: Array): TypeParameterDeclaration; export function typeParameterInstantiation(params: Array): TypeParameterInstantiation; export function unionTypeAnnotation(types: Array): UnionTypeAnnotation; export function variance(kind: 'minus' | 'plus'): Variance; export function voidTypeAnnotation(): VoidTypeAnnotation; export function enumDeclaration( id: Identifier, body: EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody ): EnumDeclaration; export function enumBooleanBody(members: Array): EnumBooleanBody; export function enumNumberBody(members: Array): EnumNumberBody; export function enumStringBody( members: Array ): EnumStringBody; export function enumSymbolBody(members: Array): EnumSymbolBody; export function enumBooleanMember(id: Identifier): EnumBooleanMember; export function enumNumberMember(id: Identifier, init: NumericLiteral): EnumNumberMember; export function enumStringMember(id: Identifier, init: StringLiteral): EnumStringMember; export function enumDefaultedMember(id: Identifier): EnumDefaultedMember; export function indexedAccessType(objectType: FlowType, indexType: FlowType): IndexedAccessType; export function optionalIndexedAccessType( objectType: FlowType, indexType: FlowType ): OptionalIndexedAccessType; export function jsxAttribute( name: JSXIdentifier | JSXNamespacedName, value?: JSXElement | JSXFragment | StringLiteral | JSXExpressionContainer | null ): JSXAttribute; export function jsxClosingElement( name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName ): JSXClosingElement; export function jsxElement( openingElement: JSXOpeningElement, closingElement: JSXClosingElement | null | undefined, children: Array, selfClosing?: boolean | null ): JSXElement; export function jsxEmptyExpression(): JSXEmptyExpression; export function jsxExpressionContainer( expression: Expression | JSXEmptyExpression ): JSXExpressionContainer; export function jsxSpreadChild(expression: Expression): JSXSpreadChild; export function jsxIdentifier(name: string): JSXIdentifier; export function jsxMemberExpression( object: JSXMemberExpression | JSXIdentifier, property: JSXIdentifier ): JSXMemberExpression; export function jsxNamespacedName(namespace: JSXIdentifier, name: JSXIdentifier): JSXNamespacedName; export function jsxOpeningElement( name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName, attributes: Array, selfClosing?: boolean ): JSXOpeningElement; export function jsxSpreadAttribute(argument: Expression): JSXSpreadAttribute; export function jsxText(value: string): JSXText; export function jsxFragment( openingFragment: JSXOpeningFragment, closingFragment: JSXClosingFragment, children: Array ): JSXFragment; export function jsxOpeningFragment(): JSXOpeningFragment; export function jsxClosingFragment(): JSXClosingFragment; export function noop(): Noop; export function placeholder( expectedNode: | 'Identifier' | 'StringLiteral' | 'Expression' | 'Statement' | 'Declaration' | 'BlockStatement' | 'ClassBody' | 'Pattern', name: Identifier ): Placeholder; export function v8IntrinsicIdentifier(name: string): V8IntrinsicIdentifier; export function argumentPlaceholder(): ArgumentPlaceholder; export function bindExpression(object: Expression, callee: Expression): BindExpression; export function importAttribute( key: Identifier | StringLiteral, value: StringLiteral ): ImportAttribute; export function decorator(expression: Expression): Decorator; export function doExpression(body: BlockStatement, async?: boolean): DoExpression; export function exportDefaultSpecifier(exported: Identifier): ExportDefaultSpecifier; export function recordExpression( properties: Array ): RecordExpression; export function tupleExpression(elements?: Array): TupleExpression; export function decimalLiteral(value: string): DecimalLiteral; export function moduleExpression(body: Program): ModuleExpression; export function topicReference(): TopicReference; export function pipelineTopicExpression(expression: Expression): PipelineTopicExpression; export function pipelineBareFunction(callee: Expression): PipelineBareFunction; export function pipelinePrimaryTopicReference(): PipelinePrimaryTopicReference; export function tsParameterProperty(parameter: Identifier | AssignmentPattern): TSParameterProperty; export function tsDeclareFunction( id: Identifier | null | undefined, typeParameters: TSTypeParameterDeclaration | Noop | null | undefined, params: Array, returnType?: TSTypeAnnotation | Noop | null ): TSDeclareFunction; export function tsDeclareMethod( decorators: Array | null | undefined, key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression, typeParameters: TSTypeParameterDeclaration | Noop | null | undefined, params: Array, returnType?: TSTypeAnnotation | Noop | null ): TSDeclareMethod; export function tsQualifiedName(left: TSEntityName, right: Identifier): TSQualifiedName; export function tsCallSignatureDeclaration( typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array, typeAnnotation?: TSTypeAnnotation | null ): TSCallSignatureDeclaration; export function tsConstructSignatureDeclaration( typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array, typeAnnotation?: TSTypeAnnotation | null ): TSConstructSignatureDeclaration; export function tsPropertySignature( key: Expression, typeAnnotation?: TSTypeAnnotation | null, initializer?: Expression | null ): TSPropertySignature; export function tsMethodSignature( key: Expression, typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array, typeAnnotation?: TSTypeAnnotation | null ): TSMethodSignature; export function tsIndexSignature( parameters: Array, typeAnnotation?: TSTypeAnnotation | null ): TSIndexSignature; export function tsAnyKeyword(): TSAnyKeyword; export function tsBooleanKeyword(): TSBooleanKeyword; export function tsBigIntKeyword(): TSBigIntKeyword; export function tsIntrinsicKeyword(): TSIntrinsicKeyword; export function tsNeverKeyword(): TSNeverKeyword; export function tsNullKeyword(): TSNullKeyword; export function tsNumberKeyword(): TSNumberKeyword; export function tsObjectKeyword(): TSObjectKeyword; export function tsStringKeyword(): TSStringKeyword; export function tsSymbolKeyword(): TSSymbolKeyword; export function tsUndefinedKeyword(): TSUndefinedKeyword; export function tsUnknownKeyword(): TSUnknownKeyword; export function tsVoidKeyword(): TSVoidKeyword; export function tsThisType(): TSThisType; export function tsFunctionType( typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array, typeAnnotation?: TSTypeAnnotation | null ): TSFunctionType; export function tsConstructorType( typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array, typeAnnotation?: TSTypeAnnotation | null ): TSConstructorType; export function tsTypeReference( typeName: TSEntityName, typeParameters?: TSTypeParameterInstantiation | null ): TSTypeReference; export function tsTypePredicate( parameterName: Identifier | TSThisType, typeAnnotation?: TSTypeAnnotation | null, asserts?: boolean | null ): TSTypePredicate; export function tsTypeQuery( exprName: TSEntityName | TSImportType, typeParameters?: TSTypeParameterInstantiation | null ): TSTypeQuery; export function tsTypeLiteral(members: Array): TSTypeLiteral; export function tsArrayType(elementType: TSType): TSArrayType; export function tsTupleType(elementTypes: Array): TSTupleType; export function tsOptionalType(typeAnnotation: TSType): TSOptionalType; export function tsRestType(typeAnnotation: TSType): TSRestType; export function tsNamedTupleMember( label: Identifier, elementType: TSType, optional?: boolean ): TSNamedTupleMember; export function tsUnionType(types: Array): TSUnionType; export function tsIntersectionType(types: Array): TSIntersectionType; export function tsConditionalType( checkType: TSType, extendsType: TSType, trueType: TSType, falseType: TSType ): TSConditionalType; export function tsInferType(typeParameter: TSTypeParameter): TSInferType; export function tsParenthesizedType(typeAnnotation: TSType): TSParenthesizedType; export function tsTypeOperator(typeAnnotation: TSType): TSTypeOperator; export function tsIndexedAccessType(objectType: TSType, indexType: TSType): TSIndexedAccessType; export function tsMappedType( typeParameter: TSTypeParameter, typeAnnotation?: TSType | null, nameType?: TSType | null ): TSMappedType; export function tsLiteralType( literal: | NumericLiteral | StringLiteral | BooleanLiteral | BigIntLiteral | TemplateLiteral | UnaryExpression ): TSLiteralType; export function tsExpressionWithTypeArguments( expression: TSEntityName, typeParameters?: TSTypeParameterInstantiation | null ): TSExpressionWithTypeArguments; export function tsInterfaceDeclaration( id: Identifier, typeParameters: TSTypeParameterDeclaration | null | undefined, _extends: Array | null | undefined, body: TSInterfaceBody ): TSInterfaceDeclaration; export function tsInterfaceBody(body: Array): TSInterfaceBody; export function tsTypeAliasDeclaration( id: Identifier, typeParameters: TSTypeParameterDeclaration | null | undefined, typeAnnotation: TSType ): TSTypeAliasDeclaration; export function tsInstantiationExpression( expression: Expression, typeParameters?: TSTypeParameterInstantiation | null ): TSInstantiationExpression; export function tsAsExpression(expression: Expression, typeAnnotation: TSType): TSAsExpression; export function tsTypeAssertion(typeAnnotation: TSType, expression: Expression): TSTypeAssertion; export function tsEnumDeclaration(id: Identifier, members: Array): TSEnumDeclaration; export function tsEnumMember( id: Identifier | StringLiteral, initializer?: Expression | null ): TSEnumMember; export function tsModuleDeclaration( id: Identifier | StringLiteral, body: TSModuleBlock | TSModuleDeclaration ): TSModuleDeclaration; export function tsModuleBlock(body: Array): TSModuleBlock; export function tsImportType( argument: StringLiteral, qualifier?: TSEntityName | null, typeParameters?: TSTypeParameterInstantiation | null ): TSImportType; export function tsImportEqualsDeclaration( id: Identifier, moduleReference: TSEntityName | TSExternalModuleReference ): TSImportEqualsDeclaration; export function tsExternalModuleReference(expression: StringLiteral): TSExternalModuleReference; export function tsNonNullExpression(expression: Expression): TSNonNullExpression; export function tsExportAssignment(expression: Expression): TSExportAssignment; export function tsNamespaceExportDeclaration(id: Identifier): TSNamespaceExportDeclaration; export function tsTypeAnnotation(typeAnnotation: TSType): TSTypeAnnotation; export function tsTypeParameterInstantiation(params: Array): TSTypeParameterInstantiation; export function tsTypeParameterDeclaration( params: Array ): TSTypeParameterDeclaration; export function tsTypeParameter( constraint: TSType | null | undefined, _default: TSType | null | undefined, name: string ): TSTypeParameter; export function isAccessor(node: object | null | undefined, opts?: object | null): node is Accessor; export function assertAccessor(node: object | null | undefined, opts?: object | null): void; export function isAnyTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is AnyTypeAnnotation; export function assertAnyTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isArgumentPlaceholder( node: object | null | undefined, opts?: object | null ): node is ArgumentPlaceholder; export function assertArgumentPlaceholder( node: object | null | undefined, opts?: object | null ): void; export function isArrayExpression( node: object | null | undefined, opts?: object | null ): node is ArrayExpression; export function assertArrayExpression(node: object | null | undefined, opts?: object | null): void; export function isArrayPattern( node: object | null | undefined, opts?: object | null ): node is ArrayPattern; export function assertArrayPattern(node: object | null | undefined, opts?: object | null): void; export function isArrayTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is ArrayTypeAnnotation; export function assertArrayTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isArrowFunctionExpression( node: object | null | undefined, opts?: object | null ): node is ArrowFunctionExpression; export function assertArrowFunctionExpression( node: object | null | undefined, opts?: object | null ): void; export function isAssignmentExpression( node: object | null | undefined, opts?: object | null ): node is AssignmentExpression; export function assertAssignmentExpression( node: object | null | undefined, opts?: object | null ): void; export function isAssignmentPattern( node: object | null | undefined, opts?: object | null ): node is AssignmentPattern; export function assertAssignmentPattern( node: object | null | undefined, opts?: object | null ): void; export function isAwaitExpression( node: object | null | undefined, opts?: object | null ): node is AwaitExpression; export function assertAwaitExpression(node: object | null | undefined, opts?: object | null): void; export function isBigIntLiteral( node: object | null | undefined, opts?: object | null ): node is BigIntLiteral; export function assertBigIntLiteral(node: object | null | undefined, opts?: object | null): void; export function isBinary(node: object | null | undefined, opts?: object | null): node is Binary; export function assertBinary(node: object | null | undefined, opts?: object | null): void; export function isBinaryExpression( node: object | null | undefined, opts?: object | null ): node is BinaryExpression; export function assertBinaryExpression(node: object | null | undefined, opts?: object | null): void; export function isBindExpression( node: object | null | undefined, opts?: object | null ): node is BindExpression; export function assertBindExpression(node: object | null | undefined, opts?: object | null): void; export function isBlock(node: object | null | undefined, opts?: object | null): node is Block; export function assertBlock(node: object | null | undefined, opts?: object | null): void; export function isBlockParent( node: object | null | undefined, opts?: object | null ): node is BlockParent; export function assertBlockParent(node: object | null | undefined, opts?: object | null): void; export function isBlockStatement( node: object | null | undefined, opts?: object | null ): node is BlockStatement; export function assertBlockStatement(node: object | null | undefined, opts?: object | null): void; export function isBooleanLiteral( node: object | null | undefined, opts?: object | null ): node is BooleanLiteral; export function assertBooleanLiteral(node: object | null | undefined, opts?: object | null): void; export function isBooleanLiteralTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is BooleanLiteralTypeAnnotation; export function assertBooleanLiteralTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isBooleanTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is BooleanTypeAnnotation; export function assertBooleanTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isBreakStatement( node: object | null | undefined, opts?: object | null ): node is BreakStatement; export function assertBreakStatement(node: object | null | undefined, opts?: object | null): void; export function isCallExpression( node: object | null | undefined, opts?: object | null ): node is CallExpression; export function assertCallExpression(node: object | null | undefined, opts?: object | null): void; export function isCatchClause( node: object | null | undefined, opts?: object | null ): node is CatchClause; export function assertCatchClause(node: object | null | undefined, opts?: object | null): void; export function isClass(node: object | null | undefined, opts?: object | null): node is Class; export function assertClass(node: object | null | undefined, opts?: object | null): void; export function isClassAccessorProperty( node: object | null | undefined, opts?: object | null ): node is ClassAccessorProperty; export function assertClassAccessorProperty( node: object | null | undefined, opts?: object | null ): void; export function isClassBody( node: object | null | undefined, opts?: object | null ): node is ClassBody; export function assertClassBody(node: object | null | undefined, opts?: object | null): void; export function isClassDeclaration( node: object | null | undefined, opts?: object | null ): node is ClassDeclaration; export function assertClassDeclaration(node: object | null | undefined, opts?: object | null): void; export function isClassExpression( node: object | null | undefined, opts?: object | null ): node is ClassExpression; export function assertClassExpression(node: object | null | undefined, opts?: object | null): void; export function isClassImplements( node: object | null | undefined, opts?: object | null ): node is ClassImplements; export function assertClassImplements(node: object | null | undefined, opts?: object | null): void; export function isClassMethod( node: object | null | undefined, opts?: object | null ): node is ClassMethod; export function assertClassMethod(node: object | null | undefined, opts?: object | null): void; export function isClassPrivateMethod( node: object | null | undefined, opts?: object | null ): node is ClassPrivateMethod; export function assertClassPrivateMethod( node: object | null | undefined, opts?: object | null ): void; export function isClassPrivateProperty( node: object | null | undefined, opts?: object | null ): node is ClassPrivateProperty; export function assertClassPrivateProperty( node: object | null | undefined, opts?: object | null ): void; export function isClassProperty( node: object | null | undefined, opts?: object | null ): node is ClassProperty; export function assertClassProperty(node: object | null | undefined, opts?: object | null): void; export function isCompletionStatement( node: object | null | undefined, opts?: object | null ): node is CompletionStatement; export function assertCompletionStatement( node: object | null | undefined, opts?: object | null ): void; export function isConditional( node: object | null | undefined, opts?: object | null ): node is Conditional; export function assertConditional(node: object | null | undefined, opts?: object | null): void; export function isConditionalExpression( node: object | null | undefined, opts?: object | null ): node is ConditionalExpression; export function assertConditionalExpression( node: object | null | undefined, opts?: object | null ): void; export function isContinueStatement( node: object | null | undefined, opts?: object | null ): node is ContinueStatement; export function assertContinueStatement( node: object | null | undefined, opts?: object | null ): void; export function isDebuggerStatement( node: object | null | undefined, opts?: object | null ): node is DebuggerStatement; export function assertDebuggerStatement( node: object | null | undefined, opts?: object | null ): void; export function isDecimalLiteral( node: object | null | undefined, opts?: object | null ): node is DecimalLiteral; export function assertDecimalLiteral(node: object | null | undefined, opts?: object | null): void; export function isDeclaration( node: object | null | undefined, opts?: object | null ): node is Declaration; export function assertDeclaration(node: object | null | undefined, opts?: object | null): void; export function isDeclareClass( node: object | null | undefined, opts?: object | null ): node is DeclareClass; export function assertDeclareClass(node: object | null | undefined, opts?: object | null): void; export function isDeclareExportAllDeclaration( node: object | null | undefined, opts?: object | null ): node is DeclareExportAllDeclaration; export function assertDeclareExportAllDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isDeclareExportDeclaration( node: object | null | undefined, opts?: object | null ): node is DeclareExportDeclaration; export function assertDeclareExportDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isDeclareFunction( node: object | null | undefined, opts?: object | null ): node is DeclareFunction; export function assertDeclareFunction(node: object | null | undefined, opts?: object | null): void; export function isDeclareInterface( node: object | null | undefined, opts?: object | null ): node is DeclareInterface; export function assertDeclareInterface(node: object | null | undefined, opts?: object | null): void; export function isDeclareModule( node: object | null | undefined, opts?: object | null ): node is DeclareModule; export function assertDeclareModule(node: object | null | undefined, opts?: object | null): void; export function isDeclareModuleExports( node: object | null | undefined, opts?: object | null ): node is DeclareModuleExports; export function assertDeclareModuleExports( node: object | null | undefined, opts?: object | null ): void; export function isDeclareOpaqueType( node: object | null | undefined, opts?: object | null ): node is DeclareOpaqueType; export function assertDeclareOpaqueType( node: object | null | undefined, opts?: object | null ): void; export function isDeclareTypeAlias( node: object | null | undefined, opts?: object | null ): node is DeclareTypeAlias; export function assertDeclareTypeAlias(node: object | null | undefined, opts?: object | null): void; export function isDeclareVariable( node: object | null | undefined, opts?: object | null ): node is DeclareVariable; export function assertDeclareVariable(node: object | null | undefined, opts?: object | null): void; export function isDeclaredPredicate( node: object | null | undefined, opts?: object | null ): node is DeclaredPredicate; export function assertDeclaredPredicate( node: object | null | undefined, opts?: object | null ): void; export function isDecorator( node: object | null | undefined, opts?: object | null ): node is Decorator; export function assertDecorator(node: object | null | undefined, opts?: object | null): void; export function isDirective( node: object | null | undefined, opts?: object | null ): node is Directive; export function assertDirective(node: object | null | undefined, opts?: object | null): void; export function isDirectiveLiteral( node: object | null | undefined, opts?: object | null ): node is DirectiveLiteral; export function assertDirectiveLiteral(node: object | null | undefined, opts?: object | null): void; export function isDoExpression( node: object | null | undefined, opts?: object | null ): node is DoExpression; export function assertDoExpression(node: object | null | undefined, opts?: object | null): void; export function isDoWhileStatement( node: object | null | undefined, opts?: object | null ): node is DoWhileStatement; export function assertDoWhileStatement(node: object | null | undefined, opts?: object | null): void; export function isEmptyStatement( node: object | null | undefined, opts?: object | null ): node is EmptyStatement; export function assertEmptyStatement(node: object | null | undefined, opts?: object | null): void; export function isEmptyTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is EmptyTypeAnnotation; export function assertEmptyTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isEnumBody(node: object | null | undefined, opts?: object | null): node is EnumBody; export function assertEnumBody(node: object | null | undefined, opts?: object | null): void; export function isEnumBooleanBody( node: object | null | undefined, opts?: object | null ): node is EnumBooleanBody; export function assertEnumBooleanBody(node: object | null | undefined, opts?: object | null): void; export function isEnumBooleanMember( node: object | null | undefined, opts?: object | null ): node is EnumBooleanMember; export function assertEnumBooleanMember( node: object | null | undefined, opts?: object | null ): void; export function isEnumDeclaration( node: object | null | undefined, opts?: object | null ): node is EnumDeclaration; export function assertEnumDeclaration(node: object | null | undefined, opts?: object | null): void; export function isEnumDefaultedMember( node: object | null | undefined, opts?: object | null ): node is EnumDefaultedMember; export function assertEnumDefaultedMember( node: object | null | undefined, opts?: object | null ): void; export function isEnumMember( node: object | null | undefined, opts?: object | null ): node is EnumMember; export function assertEnumMember(node: object | null | undefined, opts?: object | null): void; export function isEnumNumberBody( node: object | null | undefined, opts?: object | null ): node is EnumNumberBody; export function assertEnumNumberBody(node: object | null | undefined, opts?: object | null): void; export function isEnumNumberMember( node: object | null | undefined, opts?: object | null ): node is EnumNumberMember; export function assertEnumNumberMember(node: object | null | undefined, opts?: object | null): void; export function isEnumStringBody( node: object | null | undefined, opts?: object | null ): node is EnumStringBody; export function assertEnumStringBody(node: object | null | undefined, opts?: object | null): void; export function isEnumStringMember( node: object | null | undefined, opts?: object | null ): node is EnumStringMember; export function assertEnumStringMember(node: object | null | undefined, opts?: object | null): void; export function isEnumSymbolBody( node: object | null | undefined, opts?: object | null ): node is EnumSymbolBody; export function assertEnumSymbolBody(node: object | null | undefined, opts?: object | null): void; export function isExistsTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is ExistsTypeAnnotation; export function assertExistsTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isExportAllDeclaration( node: object | null | undefined, opts?: object | null ): node is ExportAllDeclaration; export function assertExportAllDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isExportDeclaration( node: object | null | undefined, opts?: object | null ): node is ExportDeclaration; export function assertExportDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isExportDefaultDeclaration( node: object | null | undefined, opts?: object | null ): node is ExportDefaultDeclaration; export function assertExportDefaultDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isExportDefaultSpecifier( node: object | null | undefined, opts?: object | null ): node is ExportDefaultSpecifier; export function assertExportDefaultSpecifier( node: object | null | undefined, opts?: object | null ): void; export function isExportNamedDeclaration( node: object | null | undefined, opts?: object | null ): node is ExportNamedDeclaration; export function assertExportNamedDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isExportNamespaceSpecifier( node: object | null | undefined, opts?: object | null ): node is ExportNamespaceSpecifier; export function assertExportNamespaceSpecifier( node: object | null | undefined, opts?: object | null ): void; export function isExportSpecifier( node: object | null | undefined, opts?: object | null ): node is ExportSpecifier; export function assertExportSpecifier(node: object | null | undefined, opts?: object | null): void; export function isExpression( node: object | null | undefined, opts?: object | null ): node is Expression; export function assertExpression(node: object | null | undefined, opts?: object | null): void; export function isExpressionStatement( node: object | null | undefined, opts?: object | null ): node is ExpressionStatement; export function assertExpressionStatement( node: object | null | undefined, opts?: object | null ): void; export function isExpressionWrapper( node: object | null | undefined, opts?: object | null ): node is ExpressionWrapper; export function assertExpressionWrapper( node: object | null | undefined, opts?: object | null ): void; export function isFile(node: object | null | undefined, opts?: object | null): node is File; export function assertFile(node: object | null | undefined, opts?: object | null): void; export function isFlow(node: object | null | undefined, opts?: object | null): node is Flow; export function assertFlow(node: object | null | undefined, opts?: object | null): void; export function isFlowBaseAnnotation( node: object | null | undefined, opts?: object | null ): node is FlowBaseAnnotation; export function assertFlowBaseAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isFlowDeclaration( node: object | null | undefined, opts?: object | null ): node is FlowDeclaration; export function assertFlowDeclaration(node: object | null | undefined, opts?: object | null): void; export function isFlowPredicate( node: object | null | undefined, opts?: object | null ): node is FlowPredicate; export function assertFlowPredicate(node: object | null | undefined, opts?: object | null): void; export function isFlowType(node: object | null | undefined, opts?: object | null): node is FlowType; export function assertFlowType(node: object | null | undefined, opts?: object | null): void; export function isFor(node: object | null | undefined, opts?: object | null): node is For; export function assertFor(node: object | null | undefined, opts?: object | null): void; export function isForInStatement( node: object | null | undefined, opts?: object | null ): node is ForInStatement; export function assertForInStatement(node: object | null | undefined, opts?: object | null): void; export function isForOfStatement( node: object | null | undefined, opts?: object | null ): node is ForOfStatement; export function assertForOfStatement(node: object | null | undefined, opts?: object | null): void; export function isForStatement( node: object | null | undefined, opts?: object | null ): node is ForStatement; export function assertForStatement(node: object | null | undefined, opts?: object | null): void; export function isForXStatement( node: object | null | undefined, opts?: object | null ): node is ForXStatement; export function assertForXStatement(node: object | null | undefined, opts?: object | null): void; export function isFunction(node: object | null | undefined, opts?: object | null): node is Function; export function assertFunction(node: object | null | undefined, opts?: object | null): void; export function isFunctionDeclaration( node: object | null | undefined, opts?: object | null ): node is FunctionDeclaration; export function assertFunctionDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isFunctionExpression( node: object | null | undefined, opts?: object | null ): node is FunctionExpression; export function assertFunctionExpression( node: object | null | undefined, opts?: object | null ): void; export function isFunctionParent( node: object | null | undefined, opts?: object | null ): node is FunctionParent; export function assertFunctionParent(node: object | null | undefined, opts?: object | null): void; export function isFunctionTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is FunctionTypeAnnotation; export function assertFunctionTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isFunctionTypeParam( node: object | null | undefined, opts?: object | null ): node is FunctionTypeParam; export function assertFunctionTypeParam( node: object | null | undefined, opts?: object | null ): void; export function isGenericTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is GenericTypeAnnotation; export function assertGenericTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isIdentifier( node: object | null | undefined, opts?: object | null ): node is Identifier; export function assertIdentifier(node: object | null | undefined, opts?: object | null): void; export function isIfStatement( node: object | null | undefined, opts?: object | null ): node is IfStatement; export function assertIfStatement(node: object | null | undefined, opts?: object | null): void; export function isImmutable( node: object | null | undefined, opts?: object | null ): node is Immutable; export function assertImmutable(node: object | null | undefined, opts?: object | null): void; export function isImport(node: object | null | undefined, opts?: object | null): node is Import; export function assertImport(node: object | null | undefined, opts?: object | null): void; export function isImportAttribute( node: object | null | undefined, opts?: object | null ): node is ImportAttribute; export function assertImportAttribute(node: object | null | undefined, opts?: object | null): void; export function isImportDeclaration( node: object | null | undefined, opts?: object | null ): node is ImportDeclaration; export function assertImportDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isImportDefaultSpecifier( node: object | null | undefined, opts?: object | null ): node is ImportDefaultSpecifier; export function assertImportDefaultSpecifier( node: object | null | undefined, opts?: object | null ): void; export function isImportNamespaceSpecifier( node: object | null | undefined, opts?: object | null ): node is ImportNamespaceSpecifier; export function assertImportNamespaceSpecifier( node: object | null | undefined, opts?: object | null ): void; export function isImportSpecifier( node: object | null | undefined, opts?: object | null ): node is ImportSpecifier; export function assertImportSpecifier(node: object | null | undefined, opts?: object | null): void; export function isIndexedAccessType( node: object | null | undefined, opts?: object | null ): node is IndexedAccessType; export function assertIndexedAccessType( node: object | null | undefined, opts?: object | null ): void; export function isInferredPredicate( node: object | null | undefined, opts?: object | null ): node is InferredPredicate; export function assertInferredPredicate( node: object | null | undefined, opts?: object | null ): void; export function isInterfaceDeclaration( node: object | null | undefined, opts?: object | null ): node is InterfaceDeclaration; export function assertInterfaceDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isInterfaceExtends( node: object | null | undefined, opts?: object | null ): node is InterfaceExtends; export function assertInterfaceExtends(node: object | null | undefined, opts?: object | null): void; export function isInterfaceTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is InterfaceTypeAnnotation; export function assertInterfaceTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isInterpreterDirective( node: object | null | undefined, opts?: object | null ): node is InterpreterDirective; export function assertInterpreterDirective( node: object | null | undefined, opts?: object | null ): void; export function isIntersectionTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is IntersectionTypeAnnotation; export function assertIntersectionTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isJSX(node: object | null | undefined, opts?: object | null): node is JSX; export function assertJSX(node: object | null | undefined, opts?: object | null): void; export function isJSXAttribute( node: object | null | undefined, opts?: object | null ): node is JSXAttribute; export function assertJSXAttribute(node: object | null | undefined, opts?: object | null): void; export function isJSXClosingElement( node: object | null | undefined, opts?: object | null ): node is JSXClosingElement; export function assertJSXClosingElement( node: object | null | undefined, opts?: object | null ): void; export function isJSXClosingFragment( node: object | null | undefined, opts?: object | null ): node is JSXClosingFragment; export function assertJSXClosingFragment( node: object | null | undefined, opts?: object | null ): void; export function isJSXElement( node: object | null | undefined, opts?: object | null ): node is JSXElement; export function assertJSXElement(node: object | null | undefined, opts?: object | null): void; export function isJSXEmptyExpression( node: object | null | undefined, opts?: object | null ): node is JSXEmptyExpression; export function assertJSXEmptyExpression( node: object | null | undefined, opts?: object | null ): void; export function isJSXExpressionContainer( node: object | null | undefined, opts?: object | null ): node is JSXExpressionContainer; export function assertJSXExpressionContainer( node: object | null | undefined, opts?: object | null ): void; export function isJSXFragment( node: object | null | undefined, opts?: object | null ): node is JSXFragment; export function assertJSXFragment(node: object | null | undefined, opts?: object | null): void; export function isJSXIdentifier( node: object | null | undefined, opts?: object | null ): node is JSXIdentifier; export function assertJSXIdentifier(node: object | null | undefined, opts?: object | null): void; export function isJSXMemberExpression( node: object | null | undefined, opts?: object | null ): node is JSXMemberExpression; export function assertJSXMemberExpression( node: object | null | undefined, opts?: object | null ): void; export function isJSXNamespacedName( node: object | null | undefined, opts?: object | null ): node is JSXNamespacedName; export function assertJSXNamespacedName( node: object | null | undefined, opts?: object | null ): void; export function isJSXOpeningElement( node: object | null | undefined, opts?: object | null ): node is JSXOpeningElement; export function assertJSXOpeningElement( node: object | null | undefined, opts?: object | null ): void; export function isJSXOpeningFragment( node: object | null | undefined, opts?: object | null ): node is JSXOpeningFragment; export function assertJSXOpeningFragment( node: object | null | undefined, opts?: object | null ): void; export function isJSXSpreadAttribute( node: object | null | undefined, opts?: object | null ): node is JSXSpreadAttribute; export function assertJSXSpreadAttribute( node: object | null | undefined, opts?: object | null ): void; export function isJSXSpreadChild( node: object | null | undefined, opts?: object | null ): node is JSXSpreadChild; export function assertJSXSpreadChild(node: object | null | undefined, opts?: object | null): void; export function isJSXText(node: object | null | undefined, opts?: object | null): node is JSXText; export function assertJSXText(node: object | null | undefined, opts?: object | null): void; export function isLVal(node: object | null | undefined, opts?: object | null): node is LVal; export function assertLVal(node: object | null | undefined, opts?: object | null): void; export function isLabeledStatement( node: object | null | undefined, opts?: object | null ): node is LabeledStatement; export function assertLabeledStatement(node: object | null | undefined, opts?: object | null): void; export function isLiteral(node: object | null | undefined, opts?: object | null): node is Literal; export function assertLiteral(node: object | null | undefined, opts?: object | null): void; export function isLogicalExpression( node: object | null | undefined, opts?: object | null ): node is LogicalExpression; export function assertLogicalExpression( node: object | null | undefined, opts?: object | null ): void; export function isLoop(node: object | null | undefined, opts?: object | null): node is Loop; export function assertLoop(node: object | null | undefined, opts?: object | null): void; export function isMemberExpression( node: object | null | undefined, opts?: object | null ): node is MemberExpression; export function assertMemberExpression(node: object | null | undefined, opts?: object | null): void; export function isMetaProperty( node: object | null | undefined, opts?: object | null ): node is MetaProperty; export function assertMetaProperty(node: object | null | undefined, opts?: object | null): void; export function isMethod(node: object | null | undefined, opts?: object | null): node is Method; export function assertMethod(node: object | null | undefined, opts?: object | null): void; export function isMiscellaneous( node: object | null | undefined, opts?: object | null ): node is Miscellaneous; export function assertMiscellaneous(node: object | null | undefined, opts?: object | null): void; export function isMixedTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is MixedTypeAnnotation; export function assertMixedTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isModuleDeclaration( node: object | null | undefined, opts?: object | null ): node is ModuleDeclaration; export function assertModuleDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isModuleExpression( node: object | null | undefined, opts?: object | null ): node is ModuleExpression; export function assertModuleExpression(node: object | null | undefined, opts?: object | null): void; export function isModuleSpecifier( node: object | null | undefined, opts?: object | null ): node is ModuleSpecifier; export function assertModuleSpecifier(node: object | null | undefined, opts?: object | null): void; export function isNewExpression( node: object | null | undefined, opts?: object | null ): node is NewExpression; export function assertNewExpression(node: object | null | undefined, opts?: object | null): void; export function isNoop(node: object | null | undefined, opts?: object | null): node is Noop; export function assertNoop(node: object | null | undefined, opts?: object | null): void; export function isNullLiteral( node: object | null | undefined, opts?: object | null ): node is NullLiteral; export function assertNullLiteral(node: object | null | undefined, opts?: object | null): void; export function isNullLiteralTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is NullLiteralTypeAnnotation; export function assertNullLiteralTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isNullableTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is NullableTypeAnnotation; export function assertNullableTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; /** @deprecated Use `isNumericLiteral` */ export function isNumberLiteral( node: object | null | undefined, opts?: object | null ): node is NumericLiteral; /** @deprecated Use `assertNumericLiteral` */ export function assertNumberLiteral(node: object | null | undefined, opts?: object | null): void; export function isNumberLiteralTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is NumberLiteralTypeAnnotation; export function assertNumberLiteralTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isNumberTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is NumberTypeAnnotation; export function assertNumberTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isNumericLiteral( node: object | null | undefined, opts?: object | null ): node is NumericLiteral; export function assertNumericLiteral(node: object | null | undefined, opts?: object | null): void; export function isObjectExpression( node: object | null | undefined, opts?: object | null ): node is ObjectExpression; export function assertObjectExpression(node: object | null | undefined, opts?: object | null): void; export function isObjectMember( node: object | null | undefined, opts?: object | null ): node is ObjectMember; export function assertObjectMember(node: object | null | undefined, opts?: object | null): void; export function isObjectMethod( node: object | null | undefined, opts?: object | null ): node is ObjectMethod; export function assertObjectMethod(node: object | null | undefined, opts?: object | null): void; export function isObjectPattern( node: object | null | undefined, opts?: object | null ): node is ObjectPattern; export function assertObjectPattern(node: object | null | undefined, opts?: object | null): void; export function isObjectProperty( node: object | null | undefined, opts?: object | null ): node is ObjectProperty; export function assertObjectProperty(node: object | null | undefined, opts?: object | null): void; export function isObjectTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is ObjectTypeAnnotation; export function assertObjectTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isObjectTypeCallProperty( node: object | null | undefined, opts?: object | null ): node is ObjectTypeCallProperty; export function assertObjectTypeCallProperty( node: object | null | undefined, opts?: object | null ): void; export function isObjectTypeIndexer( node: object | null | undefined, opts?: object | null ): node is ObjectTypeIndexer; export function assertObjectTypeIndexer( node: object | null | undefined, opts?: object | null ): void; export function isObjectTypeInternalSlot( node: object | null | undefined, opts?: object | null ): node is ObjectTypeInternalSlot; export function assertObjectTypeInternalSlot( node: object | null | undefined, opts?: object | null ): void; export function isObjectTypeProperty( node: object | null | undefined, opts?: object | null ): node is ObjectTypeProperty; export function assertObjectTypeProperty( node: object | null | undefined, opts?: object | null ): void; export function isObjectTypeSpreadProperty( node: object | null | undefined, opts?: object | null ): node is ObjectTypeSpreadProperty; export function assertObjectTypeSpreadProperty( node: object | null | undefined, opts?: object | null ): void; export function isOpaqueType( node: object | null | undefined, opts?: object | null ): node is OpaqueType; export function assertOpaqueType(node: object | null | undefined, opts?: object | null): void; export function isOptionalCallExpression( node: object | null | undefined, opts?: object | null ): node is OptionalCallExpression; export function assertOptionalCallExpression( node: object | null | undefined, opts?: object | null ): void; export function isOptionalIndexedAccessType( node: object | null | undefined, opts?: object | null ): node is OptionalIndexedAccessType; export function assertOptionalIndexedAccessType( node: object | null | undefined, opts?: object | null ): void; export function isOptionalMemberExpression( node: object | null | undefined, opts?: object | null ): node is OptionalMemberExpression; export function assertOptionalMemberExpression( node: object | null | undefined, opts?: object | null ): void; export function isParenthesizedExpression( node: object | null | undefined, opts?: object | null ): node is ParenthesizedExpression; export function assertParenthesizedExpression( node: object | null | undefined, opts?: object | null ): void; export function isPattern(node: object | null | undefined, opts?: object | null): node is Pattern; export function assertPattern(node: object | null | undefined, opts?: object | null): void; export function isPatternLike( node: object | null | undefined, opts?: object | null ): node is PatternLike; export function assertPatternLike(node: object | null | undefined, opts?: object | null): void; export function isPipelineBareFunction( node: object | null | undefined, opts?: object | null ): node is PipelineBareFunction; export function assertPipelineBareFunction( node: object | null | undefined, opts?: object | null ): void; export function isPipelinePrimaryTopicReference( node: object | null | undefined, opts?: object | null ): node is PipelinePrimaryTopicReference; export function assertPipelinePrimaryTopicReference( node: object | null | undefined, opts?: object | null ): void; export function isPipelineTopicExpression( node: object | null | undefined, opts?: object | null ): node is PipelineTopicExpression; export function assertPipelineTopicExpression( node: object | null | undefined, opts?: object | null ): void; export function isPlaceholder( node: object | null | undefined, opts?: object | null ): node is Placeholder; export function assertPlaceholder(node: object | null | undefined, opts?: object | null): void; export function isPrivate(node: object | null | undefined, opts?: object | null): node is Private; export function assertPrivate(node: object | null | undefined, opts?: object | null): void; export function isPrivateName( node: object | null | undefined, opts?: object | null ): node is PrivateName; export function assertPrivateName(node: object | null | undefined, opts?: object | null): void; export function isProgram(node: object | null | undefined, opts?: object | null): node is Program; export function assertProgram(node: object | null | undefined, opts?: object | null): void; export function isProperty(node: object | null | undefined, opts?: object | null): node is Property; export function assertProperty(node: object | null | undefined, opts?: object | null): void; export function isPureish(node: object | null | undefined, opts?: object | null): node is Pureish; export function assertPureish(node: object | null | undefined, opts?: object | null): void; export function isQualifiedTypeIdentifier( node: object | null | undefined, opts?: object | null ): node is QualifiedTypeIdentifier; export function assertQualifiedTypeIdentifier( node: object | null | undefined, opts?: object | null ): void; export function isRecordExpression( node: object | null | undefined, opts?: object | null ): node is RecordExpression; export function assertRecordExpression(node: object | null | undefined, opts?: object | null): void; export function isRegExpLiteral( node: object | null | undefined, opts?: object | null ): node is RegExpLiteral; export function assertRegExpLiteral(node: object | null | undefined, opts?: object | null): void; /** @deprecated Use `isRegExpLiteral` */ export function isRegexLiteral( node: object | null | undefined, opts?: object | null ): node is RegExpLiteral; /** @deprecated Use `assertRegExpLiteral` */ export function assertRegexLiteral(node: object | null | undefined, opts?: object | null): void; export function isRestElement( node: object | null | undefined, opts?: object | null ): node is RestElement; export function assertRestElement(node: object | null | undefined, opts?: object | null): void; /** @deprecated Use `isRestElement` */ export function isRestProperty( node: object | null | undefined, opts?: object | null ): node is RestElement; /** @deprecated Use `assertRestElement` */ export function assertRestProperty(node: object | null | undefined, opts?: object | null): void; export function isReturnStatement( node: object | null | undefined, opts?: object | null ): node is ReturnStatement; export function assertReturnStatement(node: object | null | undefined, opts?: object | null): void; export function isScopable(node: object | null | undefined, opts?: object | null): node is Scopable; export function assertScopable(node: object | null | undefined, opts?: object | null): void; export function isSequenceExpression( node: object | null | undefined, opts?: object | null ): node is SequenceExpression; export function assertSequenceExpression( node: object | null | undefined, opts?: object | null ): void; export function isSpreadElement( node: object | null | undefined, opts?: object | null ): node is SpreadElement; export function assertSpreadElement(node: object | null | undefined, opts?: object | null): void; /** @deprecated Use `isSpreadElement` */ export function isSpreadProperty( node: object | null | undefined, opts?: object | null ): node is SpreadElement; /** @deprecated Use `assertSpreadElement` */ export function assertSpreadProperty(node: object | null | undefined, opts?: object | null): void; export function isStandardized( node: object | null | undefined, opts?: object | null ): node is Standardized; export function assertStandardized(node: object | null | undefined, opts?: object | null): void; export function isStatement( node: object | null | undefined, opts?: object | null ): node is Statement; export function assertStatement(node: object | null | undefined, opts?: object | null): void; export function isStaticBlock( node: object | null | undefined, opts?: object | null ): node is StaticBlock; export function assertStaticBlock(node: object | null | undefined, opts?: object | null): void; export function isStringLiteral( node: object | null | undefined, opts?: object | null ): node is StringLiteral; export function assertStringLiteral(node: object | null | undefined, opts?: object | null): void; export function isStringLiteralTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is StringLiteralTypeAnnotation; export function assertStringLiteralTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isStringTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is StringTypeAnnotation; export function assertStringTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isSuper(node: object | null | undefined, opts?: object | null): node is Super; export function assertSuper(node: object | null | undefined, opts?: object | null): void; export function isSwitchCase( node: object | null | undefined, opts?: object | null ): node is SwitchCase; export function assertSwitchCase(node: object | null | undefined, opts?: object | null): void; export function isSwitchStatement( node: object | null | undefined, opts?: object | null ): node is SwitchStatement; export function assertSwitchStatement(node: object | null | undefined, opts?: object | null): void; export function isSymbolTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is SymbolTypeAnnotation; export function assertSymbolTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isTSAnyKeyword( node: object | null | undefined, opts?: object | null ): node is TSAnyKeyword; export function assertTSAnyKeyword(node: object | null | undefined, opts?: object | null): void; export function isTSArrayType( node: object | null | undefined, opts?: object | null ): node is TSArrayType; export function assertTSArrayType(node: object | null | undefined, opts?: object | null): void; export function isTSAsExpression( node: object | null | undefined, opts?: object | null ): node is TSAsExpression; export function assertTSAsExpression(node: object | null | undefined, opts?: object | null): void; export function isTSBaseType( node: object | null | undefined, opts?: object | null ): node is TSBaseType; export function assertTSBaseType(node: object | null | undefined, opts?: object | null): void; export function isTSBigIntKeyword( node: object | null | undefined, opts?: object | null ): node is TSBigIntKeyword; export function assertTSBigIntKeyword(node: object | null | undefined, opts?: object | null): void; export function isTSBooleanKeyword( node: object | null | undefined, opts?: object | null ): node is TSBooleanKeyword; export function assertTSBooleanKeyword(node: object | null | undefined, opts?: object | null): void; export function isTSCallSignatureDeclaration( node: object | null | undefined, opts?: object | null ): node is TSCallSignatureDeclaration; export function assertTSCallSignatureDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isTSConditionalType( node: object | null | undefined, opts?: object | null ): node is TSConditionalType; export function assertTSConditionalType( node: object | null | undefined, opts?: object | null ): void; export function isTSConstructSignatureDeclaration( node: object | null | undefined, opts?: object | null ): node is TSConstructSignatureDeclaration; export function assertTSConstructSignatureDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isTSConstructorType( node: object | null | undefined, opts?: object | null ): node is TSConstructorType; export function assertTSConstructorType( node: object | null | undefined, opts?: object | null ): void; export function isTSDeclareFunction( node: object | null | undefined, opts?: object | null ): node is TSDeclareFunction; export function assertTSDeclareFunction( node: object | null | undefined, opts?: object | null ): void; export function isTSDeclareMethod( node: object | null | undefined, opts?: object | null ): node is TSDeclareMethod; export function assertTSDeclareMethod(node: object | null | undefined, opts?: object | null): void; export function isTSEntityName( node: object | null | undefined, opts?: object | null ): node is TSEntityName; export function assertTSEntityName(node: object | null | undefined, opts?: object | null): void; export function isTSEnumDeclaration( node: object | null | undefined, opts?: object | null ): node is TSEnumDeclaration; export function assertTSEnumDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isTSEnumMember( node: object | null | undefined, opts?: object | null ): node is TSEnumMember; export function assertTSEnumMember(node: object | null | undefined, opts?: object | null): void; export function isTSExportAssignment( node: object | null | undefined, opts?: object | null ): node is TSExportAssignment; export function assertTSExportAssignment( node: object | null | undefined, opts?: object | null ): void; export function isTSExpressionWithTypeArguments( node: object | null | undefined, opts?: object | null ): node is TSExpressionWithTypeArguments; export function assertTSExpressionWithTypeArguments( node: object | null | undefined, opts?: object | null ): void; export function isTSExternalModuleReference( node: object | null | undefined, opts?: object | null ): node is TSExternalModuleReference; export function assertTSExternalModuleReference( node: object | null | undefined, opts?: object | null ): void; export function isTSFunctionType( node: object | null | undefined, opts?: object | null ): node is TSFunctionType; export function assertTSFunctionType(node: object | null | undefined, opts?: object | null): void; export function isTSImportEqualsDeclaration( node: object | null | undefined, opts?: object | null ): node is TSImportEqualsDeclaration; export function assertTSImportEqualsDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isTSImportType( node: object | null | undefined, opts?: object | null ): node is TSImportType; export function assertTSImportType(node: object | null | undefined, opts?: object | null): void; export function isTSIndexSignature( node: object | null | undefined, opts?: object | null ): node is TSIndexSignature; export function assertTSIndexSignature(node: object | null | undefined, opts?: object | null): void; export function isTSIndexedAccessType( node: object | null | undefined, opts?: object | null ): node is TSIndexedAccessType; export function assertTSIndexedAccessType( node: object | null | undefined, opts?: object | null ): void; export function isTSInferType( node: object | null | undefined, opts?: object | null ): node is TSInferType; export function assertTSInferType(node: object | null | undefined, opts?: object | null): void; export function isTSInstantiationExpression( node: object | null | undefined, opts?: object | null ): node is TSInstantiationExpression; export function assertTSInstantiationExpression( node: object | null | undefined, opts?: object | null ): void; export function isTSInterfaceBody( node: object | null | undefined, opts?: object | null ): node is TSInterfaceBody; export function assertTSInterfaceBody(node: object | null | undefined, opts?: object | null): void; export function isTSInterfaceDeclaration( node: object | null | undefined, opts?: object | null ): node is TSInterfaceDeclaration; export function assertTSInterfaceDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isTSIntersectionType( node: object | null | undefined, opts?: object | null ): node is TSIntersectionType; export function assertTSIntersectionType( node: object | null | undefined, opts?: object | null ): void; export function isTSIntrinsicKeyword( node: object | null | undefined, opts?: object | null ): node is TSIntrinsicKeyword; export function assertTSIntrinsicKeyword( node: object | null | undefined, opts?: object | null ): void; export function isTSLiteralType( node: object | null | undefined, opts?: object | null ): node is TSLiteralType; export function assertTSLiteralType(node: object | null | undefined, opts?: object | null): void; export function isTSMappedType( node: object | null | undefined, opts?: object | null ): node is TSMappedType; export function assertTSMappedType(node: object | null | undefined, opts?: object | null): void; export function isTSMethodSignature( node: object | null | undefined, opts?: object | null ): node is TSMethodSignature; export function assertTSMethodSignature( node: object | null | undefined, opts?: object | null ): void; export function isTSModuleBlock( node: object | null | undefined, opts?: object | null ): node is TSModuleBlock; export function assertTSModuleBlock(node: object | null | undefined, opts?: object | null): void; export function isTSModuleDeclaration( node: object | null | undefined, opts?: object | null ): node is TSModuleDeclaration; export function assertTSModuleDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isTSNamedTupleMember( node: object | null | undefined, opts?: object | null ): node is TSNamedTupleMember; export function assertTSNamedTupleMember( node: object | null | undefined, opts?: object | null ): void; export function isTSNamespaceExportDeclaration( node: object | null | undefined, opts?: object | null ): node is TSNamespaceExportDeclaration; export function assertTSNamespaceExportDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isTSNeverKeyword( node: object | null | undefined, opts?: object | null ): node is TSNeverKeyword; export function assertTSNeverKeyword(node: object | null | undefined, opts?: object | null): void; export function isTSNonNullExpression( node: object | null | undefined, opts?: object | null ): node is TSNonNullExpression; export function assertTSNonNullExpression( node: object | null | undefined, opts?: object | null ): void; export function isTSNullKeyword( node: object | null | undefined, opts?: object | null ): node is TSNullKeyword; export function assertTSNullKeyword(node: object | null | undefined, opts?: object | null): void; export function isTSNumberKeyword( node: object | null | undefined, opts?: object | null ): node is TSNumberKeyword; export function assertTSNumberKeyword(node: object | null | undefined, opts?: object | null): void; export function isTSObjectKeyword( node: object | null | undefined, opts?: object | null ): node is TSObjectKeyword; export function assertTSObjectKeyword(node: object | null | undefined, opts?: object | null): void; export function isTSOptionalType( node: object | null | undefined, opts?: object | null ): node is TSOptionalType; export function assertTSOptionalType(node: object | null | undefined, opts?: object | null): void; export function isTSParameterProperty( node: object | null | undefined, opts?: object | null ): node is TSParameterProperty; export function assertTSParameterProperty( node: object | null | undefined, opts?: object | null ): void; export function isTSParenthesizedType( node: object | null | undefined, opts?: object | null ): node is TSParenthesizedType; export function assertTSParenthesizedType( node: object | null | undefined, opts?: object | null ): void; export function isTSPropertySignature( node: object | null | undefined, opts?: object | null ): node is TSPropertySignature; export function assertTSPropertySignature( node: object | null | undefined, opts?: object | null ): void; export function isTSQualifiedName( node: object | null | undefined, opts?: object | null ): node is TSQualifiedName; export function assertTSQualifiedName(node: object | null | undefined, opts?: object | null): void; export function isTSRestType( node: object | null | undefined, opts?: object | null ): node is TSRestType; export function assertTSRestType(node: object | null | undefined, opts?: object | null): void; export function isTSStringKeyword( node: object | null | undefined, opts?: object | null ): node is TSStringKeyword; export function assertTSStringKeyword(node: object | null | undefined, opts?: object | null): void; export function isTSSymbolKeyword( node: object | null | undefined, opts?: object | null ): node is TSSymbolKeyword; export function assertTSSymbolKeyword(node: object | null | undefined, opts?: object | null): void; export function isTSThisType( node: object | null | undefined, opts?: object | null ): node is TSThisType; export function assertTSThisType(node: object | null | undefined, opts?: object | null): void; export function isTSTupleType( node: object | null | undefined, opts?: object | null ): node is TSTupleType; export function assertTSTupleType(node: object | null | undefined, opts?: object | null): void; export function isTSType(node: object | null | undefined, opts?: object | null): node is TSType; export function assertTSType(node: object | null | undefined, opts?: object | null): void; export function isTSTypeAliasDeclaration( node: object | null | undefined, opts?: object | null ): node is TSTypeAliasDeclaration; export function assertTSTypeAliasDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isTSTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is TSTypeAnnotation; export function assertTSTypeAnnotation(node: object | null | undefined, opts?: object | null): void; export function isTSTypeAssertion( node: object | null | undefined, opts?: object | null ): node is TSTypeAssertion; export function assertTSTypeAssertion(node: object | null | undefined, opts?: object | null): void; export function isTSTypeElement( node: object | null | undefined, opts?: object | null ): node is TSTypeElement; export function assertTSTypeElement(node: object | null | undefined, opts?: object | null): void; export function isTSTypeLiteral( node: object | null | undefined, opts?: object | null ): node is TSTypeLiteral; export function assertTSTypeLiteral(node: object | null | undefined, opts?: object | null): void; export function isTSTypeOperator( node: object | null | undefined, opts?: object | null ): node is TSTypeOperator; export function assertTSTypeOperator(node: object | null | undefined, opts?: object | null): void; export function isTSTypeParameter( node: object | null | undefined, opts?: object | null ): node is TSTypeParameter; export function assertTSTypeParameter(node: object | null | undefined, opts?: object | null): void; export function isTSTypeParameterDeclaration( node: object | null | undefined, opts?: object | null ): node is TSTypeParameterDeclaration; export function assertTSTypeParameterDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isTSTypeParameterInstantiation( node: object | null | undefined, opts?: object | null ): node is TSTypeParameterInstantiation; export function assertTSTypeParameterInstantiation( node: object | null | undefined, opts?: object | null ): void; export function isTSTypePredicate( node: object | null | undefined, opts?: object | null ): node is TSTypePredicate; export function assertTSTypePredicate(node: object | null | undefined, opts?: object | null): void; export function isTSTypeQuery( node: object | null | undefined, opts?: object | null ): node is TSTypeQuery; export function assertTSTypeQuery(node: object | null | undefined, opts?: object | null): void; export function isTSTypeReference( node: object | null | undefined, opts?: object | null ): node is TSTypeReference; export function assertTSTypeReference(node: object | null | undefined, opts?: object | null): void; export function isTSUndefinedKeyword( node: object | null | undefined, opts?: object | null ): node is TSUndefinedKeyword; export function assertTSUndefinedKeyword( node: object | null | undefined, opts?: object | null ): void; export function isTSUnionType( node: object | null | undefined, opts?: object | null ): node is TSUnionType; export function assertTSUnionType(node: object | null | undefined, opts?: object | null): void; export function isTSUnknownKeyword( node: object | null | undefined, opts?: object | null ): node is TSUnknownKeyword; export function assertTSUnknownKeyword(node: object | null | undefined, opts?: object | null): void; export function isTSVoidKeyword( node: object | null | undefined, opts?: object | null ): node is TSVoidKeyword; export function assertTSVoidKeyword(node: object | null | undefined, opts?: object | null): void; export function isTaggedTemplateExpression( node: object | null | undefined, opts?: object | null ): node is TaggedTemplateExpression; export function assertTaggedTemplateExpression( node: object | null | undefined, opts?: object | null ): void; export function isTemplateElement( node: object | null | undefined, opts?: object | null ): node is TemplateElement; export function assertTemplateElement(node: object | null | undefined, opts?: object | null): void; export function isTemplateLiteral( node: object | null | undefined, opts?: object | null ): node is TemplateLiteral; export function assertTemplateLiteral(node: object | null | undefined, opts?: object | null): void; export function isTerminatorless( node: object | null | undefined, opts?: object | null ): node is Terminatorless; export function assertTerminatorless(node: object | null | undefined, opts?: object | null): void; export function isThisExpression( node: object | null | undefined, opts?: object | null ): node is ThisExpression; export function assertThisExpression(node: object | null | undefined, opts?: object | null): void; export function isThisTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is ThisTypeAnnotation; export function assertThisTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isThrowStatement( node: object | null | undefined, opts?: object | null ): node is ThrowStatement; export function assertThrowStatement(node: object | null | undefined, opts?: object | null): void; export function isTopicReference( node: object | null | undefined, opts?: object | null ): node is TopicReference; export function assertTopicReference(node: object | null | undefined, opts?: object | null): void; export function isTryStatement( node: object | null | undefined, opts?: object | null ): node is TryStatement; export function assertTryStatement(node: object | null | undefined, opts?: object | null): void; export function isTupleExpression( node: object | null | undefined, opts?: object | null ): node is TupleExpression; export function assertTupleExpression(node: object | null | undefined, opts?: object | null): void; export function isTupleTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is TupleTypeAnnotation; export function assertTupleTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isTypeAlias( node: object | null | undefined, opts?: object | null ): node is TypeAlias; export function assertTypeAlias(node: object | null | undefined, opts?: object | null): void; export function isTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is TypeAnnotation; export function assertTypeAnnotation(node: object | null | undefined, opts?: object | null): void; export function isTypeCastExpression( node: object | null | undefined, opts?: object | null ): node is TypeCastExpression; export function assertTypeCastExpression( node: object | null | undefined, opts?: object | null ): void; export function isTypeParameter( node: object | null | undefined, opts?: object | null ): node is TypeParameter; export function assertTypeParameter(node: object | null | undefined, opts?: object | null): void; export function isTypeParameterDeclaration( node: object | null | undefined, opts?: object | null ): node is TypeParameterDeclaration; export function assertTypeParameterDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isTypeParameterInstantiation( node: object | null | undefined, opts?: object | null ): node is TypeParameterInstantiation; export function assertTypeParameterInstantiation( node: object | null | undefined, opts?: object | null ): void; export function isTypeScript( node: object | null | undefined, opts?: object | null ): node is TypeScript; export function assertTypeScript(node: object | null | undefined, opts?: object | null): void; export function isTypeofTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is TypeofTypeAnnotation; export function assertTypeofTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isUnaryExpression( node: object | null | undefined, opts?: object | null ): node is UnaryExpression; export function assertUnaryExpression(node: object | null | undefined, opts?: object | null): void; export function isUnaryLike( node: object | null | undefined, opts?: object | null ): node is UnaryLike; export function assertUnaryLike(node: object | null | undefined, opts?: object | null): void; export function isUnionTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is UnionTypeAnnotation; export function assertUnionTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isUpdateExpression( node: object | null | undefined, opts?: object | null ): node is UpdateExpression; export function assertUpdateExpression(node: object | null | undefined, opts?: object | null): void; export function isUserWhitespacable( node: object | null | undefined, opts?: object | null ): node is UserWhitespacable; export function assertUserWhitespacable( node: object | null | undefined, opts?: object | null ): void; export function isV8IntrinsicIdentifier( node: object | null | undefined, opts?: object | null ): node is V8IntrinsicIdentifier; export function assertV8IntrinsicIdentifier( node: object | null | undefined, opts?: object | null ): void; export function isVariableDeclaration( node: object | null | undefined, opts?: object | null ): node is VariableDeclaration; export function assertVariableDeclaration( node: object | null | undefined, opts?: object | null ): void; export function isVariableDeclarator( node: object | null | undefined, opts?: object | null ): node is VariableDeclarator; export function assertVariableDeclarator( node: object | null | undefined, opts?: object | null ): void; export function isVariance(node: object | null | undefined, opts?: object | null): node is Variance; export function assertVariance(node: object | null | undefined, opts?: object | null): void; export function isVoidTypeAnnotation( node: object | null | undefined, opts?: object | null ): node is VoidTypeAnnotation; export function assertVoidTypeAnnotation( node: object | null | undefined, opts?: object | null ): void; export function isWhile(node: object | null | undefined, opts?: object | null): node is While; export function assertWhile(node: object | null | undefined, opts?: object | null): void; export function isWhileStatement( node: object | null | undefined, opts?: object | null ): node is WhileStatement; export function assertWhileStatement(node: object | null | undefined, opts?: object | null): void; export function isWithStatement( node: object | null | undefined, opts?: object | null ): node is WithStatement; export function assertWithStatement(node: object | null | undefined, opts?: object | null): void; export function isYieldExpression( node: object | null | undefined, opts?: object | null ): node is YieldExpression; export function assertYieldExpression(node: object | null | undefined, opts?: object | null): void; export function assertNode(obj: any): void; export function createTypeAnnotationBasedOnTypeof( type: 'string' | 'number' | 'undefined' | 'boolean' | 'function' | 'object' | 'symbol' ): | StringTypeAnnotation | VoidTypeAnnotation | NumberTypeAnnotation | BooleanTypeAnnotation | GenericTypeAnnotation; export function createUnionTypeAnnotation(types: [T]): T; export function createFlowUnionType(types: [T]): T; export function createUnionTypeAnnotation(types: ReadonlyArray): UnionTypeAnnotation; export function createFlowUnionType(types: ReadonlyArray): UnionTypeAnnotation; export function buildChildren(node: { children: ReadonlyArray< | JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment | JSXEmptyExpression >; }): JSXElement['children']; export function clone(n: T): T; export function cloneDeep(n: T): T; export function cloneDeepWithoutLoc(n: T): T; export function cloneNode(n: T, deep?: boolean, withoutLoc?: boolean): T; export function cloneWithoutLoc(n: T): T; export type CommentTypeShorthand = 'leading' | 'inner' | 'trailing'; export function addComment( node: T, type: CommentTypeShorthand, content: string, line?: boolean ): T; export function addComments( node: T, type: CommentTypeShorthand, comments: ReadonlyArray ): T; export function inheritInnerComments(node: Node, parent: Node): void; export function inheritLeadingComments(node: Node, parent: Node): void; export function inheritsComments(node: T, parent: Node): void; export function inheritTrailingComments(node: Node, parent: Node): void; export function removeComments(node: T): T; export function ensureBlock( node: Extract ): BlockStatement; export function ensureBlock< K extends keyof Extract = 'body' >(node: Extract>, key: K): BlockStatement; export function toBindingIdentifierName(name: { toString(): string } | null | undefined): string; export function toBlock(node: Statement | Expression, parent?: Function | null): BlockStatement; export function toComputedKey>( node: T, key?: Expression | Identifier ): Expression; export function toExpression(node: Function): FunctionExpression; export function toExpression(node: Class): ClassExpression; export function toExpression(node: ExpressionStatement | Expression | Class | Function): Expression; export function toIdentifier(name: { toString(): string } | null | undefined): string; export function toKeyAlias(node: Method | Property, key?: Node): string; export function toSequenceExpression( nodes: ReadonlyArray, scope: { push(value: { id: LVal; kind: 'var'; init?: Expression }): void; buildUndefinedNode(): Node; } ): SequenceExpression | undefined; export function toStatement(node: AssignmentExpression, ignore?: boolean): ExpressionStatement; export function toStatement(node: Statement | AssignmentExpression, ignore?: boolean): Statement; export function toStatement(node: Class, ignore: true): ClassDeclaration | undefined; export function toStatement(node: Class, ignore?: boolean): ClassDeclaration; export function toStatement(node: Function, ignore: true): FunctionDeclaration | undefined; export function toStatement(node: Function, ignore?: boolean): FunctionDeclaration; export function toStatement( node: Statement | Class | Function | AssignmentExpression, ignore: true ): Statement | undefined; export function toStatement( node: Statement | Class | Function | AssignmentExpression, ignore?: boolean ): Statement; export function valueToNode(value: undefined): Identifier; export function valueToNode(value: boolean): BooleanLiteral; export function valueToNode(value: null): NullLiteral; export function valueToNode(value: string): StringLiteral; export function valueToNode(value: number): NumericLiteral | BinaryExpression | UnaryExpression; export function valueToNode(value: RegExp): RegExpLiteral; export function valueToNode( value: ReadonlyArray ): ArrayExpression; export function valueToNode(value: object): ObjectExpression; export function valueToNode( value: undefined | boolean | null | string | number | RegExp | object ): Expression; export function removeTypeDuplicates( types: ReadonlyArray ): FlowType[]; export function appendToMemberExpression>( member: T, append: MemberExpression['property'], computed?: boolean ): T; export function inherits( child: T, parent: Node | null | undefined ): T; export function prependToMemberExpression>( member: T, prepend: MemberExpression['object'] ): T; export function removeProperties(n: Node, opts?: { preserveComments: boolean } | null): void; export function removePropertiesDeep( n: T, opts?: { preserveComments: boolean } | null ): T; export function getBindingIdentifiers( node: Node, duplicates: true, outerOnly?: boolean ): Record>; export function getBindingIdentifiers( node: Node, duplicates?: false, outerOnly?: boolean ): Record; export function getBindingIdentifiers( node: Node, duplicates: boolean, outerOnly?: boolean ): Record>; export function getOuterBindingIdentifiers( node: Node, duplicates: true ): Record>; export function getOuterBindingIdentifiers( node: Node, duplicates?: false ): Record; export function getOuterBindingIdentifiers( node: Node, duplicates: boolean ): Record>; export type TraversalAncestors = ReadonlyArray<{ node: Node; key: string; index?: number; }>; export type TraversalHandler = ( this: undefined, node: Node, parent: TraversalAncestors, type: T ) => void; export type TraversalHandlers = { enter?: TraversalHandler; exit?: TraversalHandler; }; export function traverse( n: Node, h: TraversalHandler | TraversalHandlers, state?: T ): void; export function traverseFast(n: Node, h: TraversalHandler, state?: T): void; export function shallowEqual(actual: object, expected: T): actual is T; export function buildMatchMemberExpression( match: string, allowPartial?: boolean ): (node: Node | null | undefined) => node is MemberExpression; export function is( type: T, n: Node | null | undefined, required?: undefined ): n is Extract; export function is>( type: T, n: Node | null | undefined, required: Partial

): n is P; export function is

( type: string, n: Node | null | undefined, required: Partial

): n is P; export function is(type: string, n: Node | null | undefined, required?: Partial): n is Node; export function isBinding(node: Node, parent: Node, grandparent?: Node): boolean; export function isBlockScoped( node: Node ): node is FunctionDeclaration | ClassDeclaration | VariableDeclaration; export function isImmutable(node: Node): node is Immutable; export function isLet(node: Node): node is VariableDeclaration; export function isNode(node: object | null | undefined): node is Node; export function isNodesEquivalent>(a: T, b: any): b is T; export function isNodesEquivalent(a: any, b: any): boolean; export function isPlaceholderType(placeholderType: Node['type'], targetType: Node['type']): boolean; export function isReferenced(node: Node, parent: Node, grandparent?: Node): boolean; export function isScope(node: Node, parent: Node): node is Scopable; export function isSpecifierDefault(specifier: ModuleSpecifier): boolean; export function isType(nodetype: string, targetType: T): nodetype is T; export function isType(nodetype: string | null | undefined, targetType: string): boolean; export function isValidES3Identifier(name: string): boolean; export function isValidIdentifier(name: string): boolean; export function isVar(node: Node): node is VariableDeclaration; export function matchesPattern( node: Node | null | undefined, match: string | ReadonlyArray, allowPartial?: boolean ): node is MemberExpression; export function validate( n: Node | null | undefined, key: K, value: T[K] ): void; export function validate(n: Node, key: string, value: any): void;