1// NOTE: This file is autogenerated. Do not modify. 2// See packages/babel-types/scripts/generators/typescript.js for script used. 3 4interface BaseComment { 5 value: string; 6 start: number; 7 end: number; 8 loc: SourceLocation; 9 type: "CommentBlock" | "CommentLine"; 10} 11 12export interface CommentBlock extends BaseComment { 13 type: "CommentBlock"; 14} 15 16export interface CommentLine extends BaseComment { 17 type: "CommentLine"; 18} 19 20export type Comment = CommentBlock | CommentLine; 21 22export interface SourceLocation { 23 start: { 24 line: number; 25 column: number; 26 }; 27 28 end: { 29 line: number; 30 column: number; 31 }; 32} 33 34interface BaseNode { 35 leadingComments: ReadonlyArray<Comment> | null; 36 innerComments: ReadonlyArray<Comment> | null; 37 trailingComments: ReadonlyArray<Comment> | null; 38 start: number | null; 39 end: number | null; 40 loc: SourceLocation | null; 41 type: Node["type"]; 42} 43 44export type Node = AnyTypeAnnotation | ArgumentPlaceholder | ArrayExpression | ArrayPattern | ArrayTypeAnnotation | ArrowFunctionExpression | AssignmentExpression | AssignmentPattern | AwaitExpression | BigIntLiteral | Binary | BinaryExpression | BindExpression | Block | BlockParent | BlockStatement | BooleanLiteral | BooleanLiteralTypeAnnotation | BooleanTypeAnnotation | BreakStatement | CallExpression | CatchClause | Class | ClassBody | ClassDeclaration | ClassExpression | ClassImplements | ClassMethod | ClassPrivateMethod | ClassPrivateProperty | ClassProperty | CompletionStatement | Conditional | ConditionalExpression | ContinueStatement | DebuggerStatement | 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 | ImportDeclaration | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier | 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 | MixedTypeAnnotation | ModuleDeclaration | ModuleSpecifier | NewExpression | Noop | NullLiteral | NullLiteralTypeAnnotation | NullableTypeAnnotation | NumberLiteral | NumberLiteralTypeAnnotation | NumberTypeAnnotation | NumericLiteral | ObjectExpression | ObjectMember | ObjectMethod | ObjectPattern | ObjectProperty | ObjectTypeAnnotation | ObjectTypeCallProperty | ObjectTypeIndexer | ObjectTypeInternalSlot | ObjectTypeProperty | ObjectTypeSpreadProperty | OpaqueType | OptionalCallExpression | OptionalMemberExpression | ParenthesizedExpression | Pattern | PatternLike | PipelineBareFunction | PipelinePrimaryTopicReference | PipelineTopicExpression | Placeholder | Private | PrivateName | Program | Property | Pureish | QualifiedTypeIdentifier | RecordExpression | RegExpLiteral | RegexLiteral | RestElement | RestProperty | ReturnStatement | Scopable | SequenceExpression | SpreadElement | SpreadProperty | Statement | StringLiteral | StringLiteralTypeAnnotation | StringTypeAnnotation | Super | SwitchCase | SwitchStatement | SymbolTypeAnnotation | TSAnyKeyword | TSArrayType | TSAsExpression | TSBigIntKeyword | TSBooleanKeyword | TSCallSignatureDeclaration | TSConditionalType | TSConstructSignatureDeclaration | TSConstructorType | TSDeclareFunction | TSDeclareMethod | TSEntityName | TSEnumDeclaration | TSEnumMember | TSExportAssignment | TSExpressionWithTypeArguments | TSExternalModuleReference | TSFunctionType | TSImportEqualsDeclaration | TSImportType | TSIndexSignature | TSIndexedAccessType | TSInferType | TSInterfaceBody | TSInterfaceDeclaration | TSIntersectionType | TSLiteralType | TSMappedType | TSMethodSignature | TSModuleBlock | TSModuleDeclaration | 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 | TryStatement | TupleExpression | TupleTypeAnnotation | TypeAlias | TypeAnnotation | TypeCastExpression | TypeParameter | TypeParameterDeclaration | TypeParameterInstantiation | TypeofTypeAnnotation | UnaryExpression | UnaryLike | UnionTypeAnnotation | UpdateExpression | UserWhitespacable | V8IntrinsicIdentifier | VariableDeclaration | VariableDeclarator | Variance | VoidTypeAnnotation | While | WhileStatement | WithStatement | YieldExpression; 45 46export interface ArrayExpression extends BaseNode { 47 type: "ArrayExpression"; 48 elements: Array<null | Expression | SpreadElement>; 49} 50 51export interface AssignmentExpression extends BaseNode { 52 type: "AssignmentExpression"; 53 operator: string; 54 left: LVal; 55 right: Expression; 56} 57 58export interface BinaryExpression extends BaseNode { 59 type: "BinaryExpression"; 60 operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<="; 61 left: Expression; 62 right: Expression; 63} 64 65export interface InterpreterDirective extends BaseNode { 66 type: "InterpreterDirective"; 67 value: string; 68} 69 70export interface Directive extends BaseNode { 71 type: "Directive"; 72 value: DirectiveLiteral; 73} 74 75export interface DirectiveLiteral extends BaseNode { 76 type: "DirectiveLiteral"; 77 value: string; 78} 79 80export interface BlockStatement extends BaseNode { 81 type: "BlockStatement"; 82 body: Array<Statement>; 83 directives: Array<Directive>; 84} 85 86export interface BreakStatement extends BaseNode { 87 type: "BreakStatement"; 88 label: Identifier | null; 89} 90 91export interface CallExpression extends BaseNode { 92 type: "CallExpression"; 93 callee: Expression | V8IntrinsicIdentifier; 94 arguments: Array<Expression | SpreadElement | JSXNamespacedName | ArgumentPlaceholder>; 95 optional: true | false | null; 96 typeArguments: TypeParameterInstantiation | null; 97 typeParameters: TSTypeParameterInstantiation | null; 98} 99 100export interface CatchClause extends BaseNode { 101 type: "CatchClause"; 102 param: Identifier | ArrayPattern | ObjectPattern | null; 103 body: BlockStatement; 104} 105 106export interface ConditionalExpression extends BaseNode { 107 type: "ConditionalExpression"; 108 test: Expression; 109 consequent: Expression; 110 alternate: Expression; 111} 112 113export interface ContinueStatement extends BaseNode { 114 type: "ContinueStatement"; 115 label: Identifier | null; 116} 117 118export interface DebuggerStatement extends BaseNode { 119 type: "DebuggerStatement"; 120} 121 122export interface DoWhileStatement extends BaseNode { 123 type: "DoWhileStatement"; 124 test: Expression; 125 body: Statement; 126} 127 128export interface EmptyStatement extends BaseNode { 129 type: "EmptyStatement"; 130} 131 132export interface ExpressionStatement extends BaseNode { 133 type: "ExpressionStatement"; 134 expression: Expression; 135} 136 137export interface File extends BaseNode { 138 type: "File"; 139 program: Program; 140 comments: any; 141 tokens: any; 142} 143 144export interface ForInStatement extends BaseNode { 145 type: "ForInStatement"; 146 left: VariableDeclaration | LVal; 147 right: Expression; 148 body: Statement; 149} 150 151export interface ForStatement extends BaseNode { 152 type: "ForStatement"; 153 init: VariableDeclaration | Expression | null; 154 test: Expression | null; 155 update: Expression | null; 156 body: Statement; 157} 158 159export interface FunctionDeclaration extends BaseNode { 160 type: "FunctionDeclaration"; 161 id: Identifier | null; 162 params: Array<Identifier | Pattern | RestElement | TSParameterProperty>; 163 body: BlockStatement; 164 generator: boolean; 165 async: boolean; 166 declare: boolean | null; 167 returnType: TypeAnnotation | TSTypeAnnotation | Noop | null; 168 typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; 169} 170 171export interface FunctionExpression extends BaseNode { 172 type: "FunctionExpression"; 173 id: Identifier | null; 174 params: Array<Identifier | Pattern | RestElement | TSParameterProperty>; 175 body: BlockStatement; 176 generator: boolean; 177 async: boolean; 178 returnType: TypeAnnotation | TSTypeAnnotation | Noop | null; 179 typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; 180} 181 182export interface Identifier extends BaseNode { 183 type: "Identifier"; 184 name: any; 185 decorators: Array<Decorator> | null; 186 optional: boolean | null; 187 typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null; 188} 189 190export interface IfStatement extends BaseNode { 191 type: "IfStatement"; 192 test: Expression; 193 consequent: Statement; 194 alternate: Statement | null; 195} 196 197export interface LabeledStatement extends BaseNode { 198 type: "LabeledStatement"; 199 label: Identifier; 200 body: Statement; 201} 202 203export interface StringLiteral extends BaseNode { 204 type: "StringLiteral"; 205 value: string; 206} 207 208export interface NumericLiteral extends BaseNode { 209 type: "NumericLiteral"; 210 value: number; 211} 212 213export interface NullLiteral extends BaseNode { 214 type: "NullLiteral"; 215} 216 217export interface BooleanLiteral extends BaseNode { 218 type: "BooleanLiteral"; 219 value: boolean; 220} 221 222export interface RegExpLiteral extends BaseNode { 223 type: "RegExpLiteral"; 224 pattern: string; 225 flags: any; 226} 227 228export interface LogicalExpression extends BaseNode { 229 type: "LogicalExpression"; 230 operator: "||" | "&&" | "??"; 231 left: Expression; 232 right: Expression; 233} 234 235export interface MemberExpression extends BaseNode { 236 type: "MemberExpression"; 237 object: Expression; 238 property: any; 239 computed: boolean; 240 optional: true | false | null; 241} 242 243export interface NewExpression extends BaseNode { 244 type: "NewExpression"; 245 callee: Expression | V8IntrinsicIdentifier; 246 arguments: Array<Expression | SpreadElement | JSXNamespacedName | ArgumentPlaceholder>; 247 optional: true | false | null; 248 typeArguments: TypeParameterInstantiation | null; 249 typeParameters: TSTypeParameterInstantiation | null; 250} 251 252export interface Program extends BaseNode { 253 type: "Program"; 254 body: Array<Statement>; 255 directives: Array<Directive>; 256 sourceType: "script" | "module"; 257 interpreter: InterpreterDirective | null; 258 sourceFile: string; 259} 260 261export interface ObjectExpression extends BaseNode { 262 type: "ObjectExpression"; 263 properties: Array<ObjectMethod | ObjectProperty | SpreadElement>; 264} 265 266export interface ObjectMethod extends BaseNode { 267 type: "ObjectMethod"; 268 kind: "method" | "get" | "set"; 269 key: any; 270 params: Array<Identifier | Pattern | RestElement | TSParameterProperty>; 271 body: BlockStatement; 272 computed: boolean; 273 generator: boolean; 274 async: boolean; 275 decorators: Array<Decorator> | null; 276 returnType: TypeAnnotation | TSTypeAnnotation | Noop | null; 277 typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; 278} 279 280export interface ObjectProperty extends BaseNode { 281 type: "ObjectProperty"; 282 key: any; 283 value: Expression | PatternLike; 284 computed: boolean; 285 shorthand: any; 286 decorators: Array<Decorator> | null; 287} 288 289export interface RestElement extends BaseNode { 290 type: "RestElement"; 291 argument: LVal; 292 decorators: Array<Decorator> | null; 293 typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null; 294} 295 296export interface ReturnStatement extends BaseNode { 297 type: "ReturnStatement"; 298 argument: Expression | null; 299} 300 301export interface SequenceExpression extends BaseNode { 302 type: "SequenceExpression"; 303 expressions: Array<Expression>; 304} 305 306export interface ParenthesizedExpression extends BaseNode { 307 type: "ParenthesizedExpression"; 308 expression: Expression; 309} 310 311export interface SwitchCase extends BaseNode { 312 type: "SwitchCase"; 313 test: Expression | null; 314 consequent: Array<Statement>; 315} 316 317export interface SwitchStatement extends BaseNode { 318 type: "SwitchStatement"; 319 discriminant: Expression; 320 cases: Array<SwitchCase>; 321} 322 323export interface ThisExpression extends BaseNode { 324 type: "ThisExpression"; 325} 326 327export interface ThrowStatement extends BaseNode { 328 type: "ThrowStatement"; 329 argument: Expression; 330} 331 332export interface TryStatement extends BaseNode { 333 type: "TryStatement"; 334 block: any; 335 handler: CatchClause | null; 336 finalizer: BlockStatement | null; 337} 338 339export interface UnaryExpression extends BaseNode { 340 type: "UnaryExpression"; 341 operator: "void" | "throw" | "delete" | "!" | "+" | "-" | "~" | "typeof"; 342 argument: Expression; 343 prefix: boolean; 344} 345 346export interface UpdateExpression extends BaseNode { 347 type: "UpdateExpression"; 348 operator: "++" | "--"; 349 argument: Expression; 350 prefix: boolean; 351} 352 353export interface VariableDeclaration extends BaseNode { 354 type: "VariableDeclaration"; 355 kind: "var" | "let" | "const"; 356 declarations: Array<VariableDeclarator>; 357 declare: boolean | null; 358} 359 360export interface VariableDeclarator extends BaseNode { 361 type: "VariableDeclarator"; 362 id: LVal; 363 init: Expression | null; 364 definite: boolean | null; 365} 366 367export interface WhileStatement extends BaseNode { 368 type: "WhileStatement"; 369 test: Expression; 370 body: Statement; 371} 372 373export interface WithStatement extends BaseNode { 374 type: "WithStatement"; 375 object: Expression; 376 body: Statement; 377} 378 379export interface AssignmentPattern extends BaseNode { 380 type: "AssignmentPattern"; 381 left: Identifier | ObjectPattern | ArrayPattern | MemberExpression; 382 right: Expression; 383 decorators: Array<Decorator> | null; 384 typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null; 385} 386 387export interface ArrayPattern extends BaseNode { 388 type: "ArrayPattern"; 389 elements: Array<null | PatternLike>; 390 decorators: Array<Decorator> | null; 391 typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null; 392} 393 394export interface ArrowFunctionExpression extends BaseNode { 395 type: "ArrowFunctionExpression"; 396 params: Array<Identifier | Pattern | RestElement | TSParameterProperty>; 397 body: BlockStatement | Expression; 398 async: boolean; 399 expression: boolean; 400 generator: boolean; 401 returnType: TypeAnnotation | TSTypeAnnotation | Noop | null; 402 typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; 403} 404 405export interface ClassBody extends BaseNode { 406 type: "ClassBody"; 407 body: Array<ClassMethod | ClassPrivateMethod | ClassProperty | ClassPrivateProperty | TSDeclareMethod | TSIndexSignature>; 408} 409 410export interface ClassExpression extends BaseNode { 411 type: "ClassExpression"; 412 id: Identifier | null; 413 superClass: Expression | null; 414 body: ClassBody; 415 decorators: Array<Decorator> | null; 416 implements: Array<TSExpressionWithTypeArguments | ClassImplements> | null; 417 mixins: any; 418 superTypeParameters: TypeParameterInstantiation | TSTypeParameterInstantiation | null; 419 typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; 420} 421 422export interface ClassDeclaration extends BaseNode { 423 type: "ClassDeclaration"; 424 id: any; 425 superClass: any; 426 body: any; 427 decorators: any; 428 abstract: boolean | null; 429 declare: boolean | null; 430 implements: any; 431 mixins: any; 432 superTypeParameters: any; 433 typeParameters: any; 434} 435 436export interface ExportAllDeclaration extends BaseNode { 437 type: "ExportAllDeclaration"; 438 source: StringLiteral; 439} 440 441export interface ExportDefaultDeclaration extends BaseNode { 442 type: "ExportDefaultDeclaration"; 443 declaration: FunctionDeclaration | TSDeclareFunction | ClassDeclaration | Expression; 444} 445 446export interface ExportNamedDeclaration extends BaseNode { 447 type: "ExportNamedDeclaration"; 448 declaration: any | null; 449 specifiers: Array<ExportSpecifier | ExportDefaultSpecifier | ExportNamespaceSpecifier>; 450 source: StringLiteral | null; 451 exportKind: "type" | "value" | null; 452} 453 454export interface ExportSpecifier extends BaseNode { 455 type: "ExportSpecifier"; 456 local: Identifier; 457 exported: Identifier; 458} 459 460export interface ForOfStatement extends BaseNode { 461 type: "ForOfStatement"; 462 left: VariableDeclaration | LVal; 463 right: Expression; 464 body: Statement; 465 await: boolean; 466} 467 468export interface ImportDeclaration extends BaseNode { 469 type: "ImportDeclaration"; 470 specifiers: Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>; 471 source: StringLiteral; 472 importKind: "type" | "typeof" | "value" | null; 473} 474 475export interface ImportDefaultSpecifier extends BaseNode { 476 type: "ImportDefaultSpecifier"; 477 local: Identifier; 478} 479 480export interface ImportNamespaceSpecifier extends BaseNode { 481 type: "ImportNamespaceSpecifier"; 482 local: Identifier; 483} 484 485export interface ImportSpecifier extends BaseNode { 486 type: "ImportSpecifier"; 487 local: Identifier; 488 imported: Identifier; 489 importKind: "type" | "typeof" | null; 490} 491 492export interface MetaProperty extends BaseNode { 493 type: "MetaProperty"; 494 meta: any; 495 property: Identifier; 496} 497 498export interface ClassMethod extends BaseNode { 499 type: "ClassMethod"; 500 kind: "get" | "set" | "method" | "constructor"; 501 key: Identifier | StringLiteral | NumericLiteral | Expression; 502 params: Array<Identifier | Pattern | RestElement | TSParameterProperty>; 503 body: BlockStatement; 504 computed: boolean; 505 static: boolean; 506 generator: boolean; 507 async: boolean; 508 abstract: boolean | null; 509 access: "public" | "private" | "protected" | null; 510 accessibility: "public" | "private" | "protected" | null; 511 decorators: Array<Decorator> | null; 512 optional: boolean | null; 513 returnType: TypeAnnotation | TSTypeAnnotation | Noop | null; 514 typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null; 515} 516 517export interface ObjectPattern extends BaseNode { 518 type: "ObjectPattern"; 519 properties: Array<RestElement | ObjectProperty>; 520 decorators: Array<Decorator> | null; 521 typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null; 522} 523 524export interface SpreadElement extends BaseNode { 525 type: "SpreadElement"; 526 argument: Expression; 527} 528 529export interface Super extends BaseNode { 530 type: "Super"; 531} 532 533export interface TaggedTemplateExpression extends BaseNode { 534 type: "TaggedTemplateExpression"; 535 tag: Expression; 536 quasi: TemplateLiteral; 537 typeParameters: TypeParameterInstantiation | TSTypeParameterInstantiation | null; 538} 539 540export interface TemplateElement extends BaseNode { 541 type: "TemplateElement"; 542 value: { raw: string, cooked?: string }; 543 tail: boolean; 544} 545 546export interface TemplateLiteral extends BaseNode { 547 type: "TemplateLiteral"; 548 quasis: Array<TemplateElement>; 549 expressions: Array<Expression>; 550} 551 552export interface YieldExpression extends BaseNode { 553 type: "YieldExpression"; 554 argument: Expression | null; 555 delegate: any; 556} 557 558export interface AnyTypeAnnotation extends BaseNode { 559 type: "AnyTypeAnnotation"; 560} 561 562export interface ArrayTypeAnnotation extends BaseNode { 563 type: "ArrayTypeAnnotation"; 564 elementType: FlowType; 565} 566 567export interface BooleanTypeAnnotation extends BaseNode { 568 type: "BooleanTypeAnnotation"; 569} 570 571export interface BooleanLiteralTypeAnnotation extends BaseNode { 572 type: "BooleanLiteralTypeAnnotation"; 573 value: boolean; 574} 575 576export interface NullLiteralTypeAnnotation extends BaseNode { 577 type: "NullLiteralTypeAnnotation"; 578} 579 580export interface ClassImplements extends BaseNode { 581 type: "ClassImplements"; 582 id: Identifier; 583 typeParameters: TypeParameterInstantiation | null; 584} 585 586export interface DeclareClass extends BaseNode { 587 type: "DeclareClass"; 588 id: Identifier; 589 typeParameters: TypeParameterDeclaration | null; 590 extends: Array<InterfaceExtends> | null; 591 body: ObjectTypeAnnotation; 592 implements: Array<ClassImplements> | null; 593 mixins: Array<InterfaceExtends> | null; 594} 595 596export interface DeclareFunction extends BaseNode { 597 type: "DeclareFunction"; 598 id: Identifier; 599 predicate: DeclaredPredicate | null; 600} 601 602export interface DeclareInterface extends BaseNode { 603 type: "DeclareInterface"; 604 id: Identifier; 605 typeParameters: TypeParameterDeclaration | null; 606 extends: Array<InterfaceExtends> | null; 607 body: ObjectTypeAnnotation; 608 implements: Array<ClassImplements> | null; 609 mixins: Array<InterfaceExtends> | null; 610} 611 612export interface DeclareModule extends BaseNode { 613 type: "DeclareModule"; 614 id: Identifier | StringLiteral; 615 body: BlockStatement; 616 kind: "CommonJS" | "ES" | null; 617} 618 619export interface DeclareModuleExports extends BaseNode { 620 type: "DeclareModuleExports"; 621 typeAnnotation: TypeAnnotation; 622} 623 624export interface DeclareTypeAlias extends BaseNode { 625 type: "DeclareTypeAlias"; 626 id: Identifier; 627 typeParameters: TypeParameterDeclaration | null; 628 right: FlowType; 629} 630 631export interface DeclareOpaqueType extends BaseNode { 632 type: "DeclareOpaqueType"; 633 id: Identifier; 634 typeParameters: TypeParameterDeclaration | null; 635 supertype: FlowType | null; 636} 637 638export interface DeclareVariable extends BaseNode { 639 type: "DeclareVariable"; 640 id: Identifier; 641} 642 643export interface DeclareExportDeclaration extends BaseNode { 644 type: "DeclareExportDeclaration"; 645 declaration: Flow | null; 646 specifiers: Array<ExportSpecifier | ExportNamespaceSpecifier> | null; 647 source: StringLiteral | null; 648 default: boolean | null; 649} 650 651export interface DeclareExportAllDeclaration extends BaseNode { 652 type: "DeclareExportAllDeclaration"; 653 source: StringLiteral; 654 exportKind: "type" | "value" | null; 655} 656 657export interface DeclaredPredicate extends BaseNode { 658 type: "DeclaredPredicate"; 659 value: Flow; 660} 661 662export interface ExistsTypeAnnotation extends BaseNode { 663 type: "ExistsTypeAnnotation"; 664} 665 666export interface FunctionTypeAnnotation extends BaseNode { 667 type: "FunctionTypeAnnotation"; 668 typeParameters: TypeParameterDeclaration | null; 669 params: Array<FunctionTypeParam>; 670 rest: FunctionTypeParam | null; 671 returnType: FlowType; 672} 673 674export interface FunctionTypeParam extends BaseNode { 675 type: "FunctionTypeParam"; 676 name: Identifier | null; 677 typeAnnotation: FlowType; 678 optional: boolean | null; 679} 680 681export interface GenericTypeAnnotation extends BaseNode { 682 type: "GenericTypeAnnotation"; 683 id: Identifier | QualifiedTypeIdentifier; 684 typeParameters: TypeParameterInstantiation | null; 685} 686 687export interface InferredPredicate extends BaseNode { 688 type: "InferredPredicate"; 689} 690 691export interface InterfaceExtends extends BaseNode { 692 type: "InterfaceExtends"; 693 id: Identifier | QualifiedTypeIdentifier; 694 typeParameters: TypeParameterInstantiation | null; 695} 696 697export interface InterfaceDeclaration extends BaseNode { 698 type: "InterfaceDeclaration"; 699 id: Identifier; 700 typeParameters: TypeParameterDeclaration | null; 701 extends: Array<InterfaceExtends> | null; 702 body: ObjectTypeAnnotation; 703 implements: Array<ClassImplements> | null; 704 mixins: Array<InterfaceExtends> | null; 705} 706 707export interface InterfaceTypeAnnotation extends BaseNode { 708 type: "InterfaceTypeAnnotation"; 709 extends: Array<InterfaceExtends> | null; 710 body: ObjectTypeAnnotation; 711} 712 713export interface IntersectionTypeAnnotation extends BaseNode { 714 type: "IntersectionTypeAnnotation"; 715 types: Array<FlowType>; 716} 717 718export interface MixedTypeAnnotation extends BaseNode { 719 type: "MixedTypeAnnotation"; 720} 721 722export interface EmptyTypeAnnotation extends BaseNode { 723 type: "EmptyTypeAnnotation"; 724} 725 726export interface NullableTypeAnnotation extends BaseNode { 727 type: "NullableTypeAnnotation"; 728 typeAnnotation: FlowType; 729} 730 731export interface NumberLiteralTypeAnnotation extends BaseNode { 732 type: "NumberLiteralTypeAnnotation"; 733 value: number; 734} 735 736export interface NumberTypeAnnotation extends BaseNode { 737 type: "NumberTypeAnnotation"; 738} 739 740export interface ObjectTypeAnnotation extends BaseNode { 741 type: "ObjectTypeAnnotation"; 742 properties: Array<ObjectTypeProperty | ObjectTypeSpreadProperty>; 743 indexers: Array<ObjectTypeIndexer> | null; 744 callProperties: Array<ObjectTypeCallProperty> | null; 745 internalSlots: Array<ObjectTypeInternalSlot> | null; 746 exact: boolean; 747 inexact: boolean | null; 748} 749 750export interface ObjectTypeInternalSlot extends BaseNode { 751 type: "ObjectTypeInternalSlot"; 752 id: Identifier; 753 value: FlowType; 754 optional: boolean; 755 static: boolean; 756 method: boolean; 757} 758 759export interface ObjectTypeCallProperty extends BaseNode { 760 type: "ObjectTypeCallProperty"; 761 value: FlowType; 762 static: boolean; 763} 764 765export interface ObjectTypeIndexer extends BaseNode { 766 type: "ObjectTypeIndexer"; 767 id: Identifier | null; 768 key: FlowType; 769 value: FlowType; 770 variance: Variance | null; 771 static: boolean; 772} 773 774export interface ObjectTypeProperty extends BaseNode { 775 type: "ObjectTypeProperty"; 776 key: Identifier | StringLiteral; 777 value: FlowType; 778 variance: Variance | null; 779 kind: "init" | "get" | "set"; 780 optional: boolean; 781 proto: boolean; 782 static: boolean; 783} 784 785export interface ObjectTypeSpreadProperty extends BaseNode { 786 type: "ObjectTypeSpreadProperty"; 787 argument: FlowType; 788} 789 790export interface OpaqueType extends BaseNode { 791 type: "OpaqueType"; 792 id: Identifier; 793 typeParameters: TypeParameterDeclaration | null; 794 supertype: FlowType | null; 795 impltype: FlowType; 796} 797 798export interface QualifiedTypeIdentifier extends BaseNode { 799 type: "QualifiedTypeIdentifier"; 800 id: Identifier; 801 qualification: Identifier | QualifiedTypeIdentifier; 802} 803 804export interface StringLiteralTypeAnnotation extends BaseNode { 805 type: "StringLiteralTypeAnnotation"; 806 value: string; 807} 808 809export interface StringTypeAnnotation extends BaseNode { 810 type: "StringTypeAnnotation"; 811} 812 813export interface SymbolTypeAnnotation extends BaseNode { 814 type: "SymbolTypeAnnotation"; 815} 816 817export interface ThisTypeAnnotation extends BaseNode { 818 type: "ThisTypeAnnotation"; 819} 820 821export interface TupleTypeAnnotation extends BaseNode { 822 type: "TupleTypeAnnotation"; 823 types: Array<FlowType>; 824} 825 826export interface TypeofTypeAnnotation extends BaseNode { 827 type: "TypeofTypeAnnotation"; 828 argument: FlowType; 829} 830 831export interface TypeAlias extends BaseNode { 832 type: "TypeAlias"; 833 id: Identifier; 834 typeParameters: TypeParameterDeclaration | null; 835 right: FlowType; 836} 837 838export interface TypeAnnotation extends BaseNode { 839 type: "TypeAnnotation"; 840 typeAnnotation: FlowType; 841} 842 843export interface TypeCastExpression extends BaseNode { 844 type: "TypeCastExpression"; 845 expression: Expression; 846 typeAnnotation: TypeAnnotation; 847} 848 849export interface TypeParameter extends BaseNode { 850 type: "TypeParameter"; 851 bound: TypeAnnotation | null; 852 default: FlowType | null; 853 variance: Variance | null; 854 name: string; 855} 856 857export interface TypeParameterDeclaration extends BaseNode { 858 type: "TypeParameterDeclaration"; 859 params: Array<TypeParameter>; 860} 861 862export interface TypeParameterInstantiation extends BaseNode { 863 type: "TypeParameterInstantiation"; 864 params: Array<FlowType>; 865} 866 867export interface UnionTypeAnnotation extends BaseNode { 868 type: "UnionTypeAnnotation"; 869 types: Array<FlowType>; 870} 871 872export interface Variance extends BaseNode { 873 type: "Variance"; 874 kind: "minus" | "plus"; 875} 876 877export interface VoidTypeAnnotation extends BaseNode { 878 type: "VoidTypeAnnotation"; 879} 880 881export interface EnumDeclaration extends BaseNode { 882 type: "EnumDeclaration"; 883 id: Identifier; 884 body: EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody; 885} 886 887export interface EnumBooleanBody extends BaseNode { 888 type: "EnumBooleanBody"; 889 members: Array<EnumBooleanMember>; 890 explicit: boolean; 891} 892 893export interface EnumNumberBody extends BaseNode { 894 type: "EnumNumberBody"; 895 members: Array<EnumNumberMember>; 896 explicit: boolean; 897} 898 899export interface EnumStringBody extends BaseNode { 900 type: "EnumStringBody"; 901 members: Array<EnumStringMember | EnumDefaultedMember>; 902 explicit: boolean; 903} 904 905export interface EnumSymbolBody extends BaseNode { 906 type: "EnumSymbolBody"; 907 members: Array<EnumDefaultedMember>; 908} 909 910export interface EnumBooleanMember extends BaseNode { 911 type: "EnumBooleanMember"; 912 id: Identifier; 913 init: BooleanLiteral; 914} 915 916export interface EnumNumberMember extends BaseNode { 917 type: "EnumNumberMember"; 918 id: Identifier; 919 init: NumericLiteral; 920} 921 922export interface EnumStringMember extends BaseNode { 923 type: "EnumStringMember"; 924 id: Identifier; 925 init: StringLiteral; 926} 927 928export interface EnumDefaultedMember extends BaseNode { 929 type: "EnumDefaultedMember"; 930 id: Identifier; 931} 932 933export interface JSXAttribute extends BaseNode { 934 type: "JSXAttribute"; 935 name: JSXIdentifier | JSXNamespacedName; 936 value: JSXElement | JSXFragment | StringLiteral | JSXExpressionContainer | null; 937} 938 939export interface JSXClosingElement extends BaseNode { 940 type: "JSXClosingElement"; 941 name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName; 942} 943 944export interface JSXElement extends BaseNode { 945 type: "JSXElement"; 946 openingElement: JSXOpeningElement; 947 closingElement: JSXClosingElement | null; 948 children: Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment>; 949 selfClosing: any; 950} 951 952export interface JSXEmptyExpression extends BaseNode { 953 type: "JSXEmptyExpression"; 954} 955 956export interface JSXExpressionContainer extends BaseNode { 957 type: "JSXExpressionContainer"; 958 expression: Expression | JSXEmptyExpression; 959} 960 961export interface JSXSpreadChild extends BaseNode { 962 type: "JSXSpreadChild"; 963 expression: Expression; 964} 965 966export interface JSXIdentifier extends BaseNode { 967 type: "JSXIdentifier"; 968 name: string; 969} 970 971export interface JSXMemberExpression extends BaseNode { 972 type: "JSXMemberExpression"; 973 object: JSXMemberExpression | JSXIdentifier; 974 property: JSXIdentifier; 975} 976 977export interface JSXNamespacedName extends BaseNode { 978 type: "JSXNamespacedName"; 979 namespace: JSXIdentifier; 980 name: JSXIdentifier; 981} 982 983export interface JSXOpeningElement extends BaseNode { 984 type: "JSXOpeningElement"; 985 name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName; 986 attributes: Array<JSXAttribute | JSXSpreadAttribute>; 987 selfClosing: boolean; 988 typeParameters: TypeParameterInstantiation | TSTypeParameterInstantiation | null; 989} 990 991export interface JSXSpreadAttribute extends BaseNode { 992 type: "JSXSpreadAttribute"; 993 argument: Expression; 994} 995 996export interface JSXText extends BaseNode { 997 type: "JSXText"; 998 value: string; 999} 1000 1001export interface JSXFragment extends BaseNode { 1002 type: "JSXFragment"; 1003 openingFragment: JSXOpeningFragment; 1004 closingFragment: JSXClosingFragment; 1005 children: Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment>; 1006} 1007 1008export interface JSXOpeningFragment extends BaseNode { 1009 type: "JSXOpeningFragment"; 1010} 1011 1012export interface JSXClosingFragment extends BaseNode { 1013 type: "JSXClosingFragment"; 1014} 1015 1016export interface Noop extends BaseNode { 1017 type: "Noop"; 1018} 1019 1020export interface Placeholder extends BaseNode { 1021 type: "Placeholder"; 1022 expectedNode: "Identifier" | "StringLiteral" | "Expression" | "Statement" | "Declaration" | "BlockStatement" | "ClassBody" | "Pattern"; 1023 name: Identifier; 1024} 1025 1026export interface V8IntrinsicIdentifier extends BaseNode { 1027 type: "V8IntrinsicIdentifier"; 1028 name: string; 1029} 1030 1031export interface ArgumentPlaceholder extends BaseNode { 1032 type: "ArgumentPlaceholder"; 1033} 1034 1035export interface AwaitExpression extends BaseNode { 1036 type: "AwaitExpression"; 1037 argument: Expression; 1038} 1039 1040export interface BindExpression extends BaseNode { 1041 type: "BindExpression"; 1042 object: any; 1043 callee: any; 1044} 1045 1046export interface ClassProperty extends BaseNode { 1047 type: "ClassProperty"; 1048 key: Identifier | StringLiteral | NumericLiteral | Expression; 1049 value: Expression | null; 1050 typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null; 1051 decorators: Array<Decorator> | null; 1052 computed: boolean; 1053 static: boolean; 1054 abstract: boolean | null; 1055 accessibility: "public" | "private" | "protected" | null; 1056 declare: boolean | null; 1057 definite: boolean | null; 1058 optional: boolean | null; 1059 readonly: boolean | null; 1060} 1061 1062export interface OptionalMemberExpression extends BaseNode { 1063 type: "OptionalMemberExpression"; 1064 object: Expression; 1065 property: any; 1066 computed: boolean; 1067 optional: boolean; 1068} 1069 1070export interface PipelineTopicExpression extends BaseNode { 1071 type: "PipelineTopicExpression"; 1072 expression: Expression; 1073} 1074 1075export interface PipelineBareFunction extends BaseNode { 1076 type: "PipelineBareFunction"; 1077 callee: Expression; 1078} 1079 1080export interface PipelinePrimaryTopicReference extends BaseNode { 1081 type: "PipelinePrimaryTopicReference"; 1082} 1083 1084export interface OptionalCallExpression extends BaseNode { 1085 type: "OptionalCallExpression"; 1086 callee: Expression; 1087 arguments: Array<Expression | SpreadElement | JSXNamespacedName>; 1088 optional: boolean; 1089 typeArguments: TypeParameterInstantiation | null; 1090 typeParameters: TSTypeParameterInstantiation | null; 1091} 1092 1093export interface ClassPrivateProperty extends BaseNode { 1094 type: "ClassPrivateProperty"; 1095 key: PrivateName; 1096 value: Expression | null; 1097 decorators: Array<Decorator> | null; 1098} 1099 1100export interface ClassPrivateMethod extends BaseNode { 1101 type: "ClassPrivateMethod"; 1102 kind: "get" | "set" | "method" | "constructor"; 1103 key: PrivateName; 1104 params: Array<Identifier | Pattern | RestElement | TSParameterProperty>; 1105 body: BlockStatement; 1106 static: boolean; 1107 abstract: boolean | null; 1108 access: "public" | "private" | "protected" | null; 1109 accessibility: "public" | "private" | "protected" | null; 1110 async: boolean; 1111 computed: boolean; 1112 decorators: Array<Decorator> | null; 1113 generator: boolean; 1114 optional: boolean | null; 1115 returnType: any; 1116 typeParameters: any; 1117} 1118 1119export interface Import extends BaseNode { 1120 type: "Import"; 1121} 1122 1123export interface Decorator extends BaseNode { 1124 type: "Decorator"; 1125 expression: Expression; 1126} 1127 1128export interface DoExpression extends BaseNode { 1129 type: "DoExpression"; 1130 body: BlockStatement; 1131} 1132 1133export interface ExportDefaultSpecifier extends BaseNode { 1134 type: "ExportDefaultSpecifier"; 1135 exported: Identifier; 1136} 1137 1138export interface ExportNamespaceSpecifier extends BaseNode { 1139 type: "ExportNamespaceSpecifier"; 1140 exported: Identifier; 1141} 1142 1143export interface PrivateName extends BaseNode { 1144 type: "PrivateName"; 1145 id: Identifier; 1146} 1147 1148export interface BigIntLiteral extends BaseNode { 1149 type: "BigIntLiteral"; 1150 value: string; 1151} 1152 1153export interface RecordExpression extends BaseNode { 1154 type: "RecordExpression"; 1155 properties: Array<ObjectProperty | ObjectMethod | SpreadElement>; 1156} 1157 1158export interface TupleExpression extends BaseNode { 1159 type: "TupleExpression"; 1160 elements: Array<null | Expression | SpreadElement>; 1161} 1162 1163export interface TSParameterProperty extends BaseNode { 1164 type: "TSParameterProperty"; 1165 parameter: Identifier | AssignmentPattern; 1166 accessibility: "public" | "private" | "protected" | null; 1167 readonly: boolean | null; 1168} 1169 1170export interface TSDeclareFunction extends BaseNode { 1171 type: "TSDeclareFunction"; 1172 id: Identifier | null; 1173 typeParameters: TSTypeParameterDeclaration | Noop | null; 1174 params: Array<Identifier | Pattern | RestElement | TSParameterProperty>; 1175 returnType: TSTypeAnnotation | Noop | null; 1176 async: boolean; 1177 declare: boolean | null; 1178 generator: boolean; 1179} 1180 1181export interface TSDeclareMethod extends BaseNode { 1182 type: "TSDeclareMethod"; 1183 decorators: Array<Decorator> | null; 1184 key: Identifier | StringLiteral | NumericLiteral | Expression; 1185 typeParameters: TSTypeParameterDeclaration | Noop | null; 1186 params: Array<Identifier | Pattern | RestElement | TSParameterProperty>; 1187 returnType: TSTypeAnnotation | Noop | null; 1188 abstract: boolean | null; 1189 access: "public" | "private" | "protected" | null; 1190 accessibility: "public" | "private" | "protected" | null; 1191 async: boolean; 1192 computed: boolean; 1193 generator: boolean; 1194 kind: "get" | "set" | "method" | "constructor"; 1195 optional: boolean | null; 1196 static: boolean; 1197} 1198 1199export interface TSQualifiedName extends BaseNode { 1200 type: "TSQualifiedName"; 1201 left: TSEntityName; 1202 right: Identifier; 1203} 1204 1205export interface TSCallSignatureDeclaration extends BaseNode { 1206 type: "TSCallSignatureDeclaration"; 1207 typeParameters: TSTypeParameterDeclaration | null; 1208 parameters: Array<Identifier | RestElement>; 1209 typeAnnotation: TSTypeAnnotation | null; 1210} 1211 1212export interface TSConstructSignatureDeclaration extends BaseNode { 1213 type: "TSConstructSignatureDeclaration"; 1214 typeParameters: TSTypeParameterDeclaration | null; 1215 parameters: Array<Identifier | RestElement>; 1216 typeAnnotation: TSTypeAnnotation | null; 1217} 1218 1219export interface TSPropertySignature extends BaseNode { 1220 type: "TSPropertySignature"; 1221 key: Expression; 1222 typeAnnotation: TSTypeAnnotation | null; 1223 initializer: Expression | null; 1224 computed: boolean | null; 1225 optional: boolean | null; 1226 readonly: boolean | null; 1227} 1228 1229export interface TSMethodSignature extends BaseNode { 1230 type: "TSMethodSignature"; 1231 key: Expression; 1232 typeParameters: TSTypeParameterDeclaration | null; 1233 parameters: Array<Identifier | RestElement>; 1234 typeAnnotation: TSTypeAnnotation | null; 1235 computed: boolean | null; 1236 optional: boolean | null; 1237} 1238 1239export interface TSIndexSignature extends BaseNode { 1240 type: "TSIndexSignature"; 1241 parameters: Array<Identifier>; 1242 typeAnnotation: TSTypeAnnotation | null; 1243 readonly: boolean | null; 1244} 1245 1246export interface TSAnyKeyword extends BaseNode { 1247 type: "TSAnyKeyword"; 1248} 1249 1250export interface TSBooleanKeyword extends BaseNode { 1251 type: "TSBooleanKeyword"; 1252} 1253 1254export interface TSBigIntKeyword extends BaseNode { 1255 type: "TSBigIntKeyword"; 1256} 1257 1258export interface TSNeverKeyword extends BaseNode { 1259 type: "TSNeverKeyword"; 1260} 1261 1262export interface TSNullKeyword extends BaseNode { 1263 type: "TSNullKeyword"; 1264} 1265 1266export interface TSNumberKeyword extends BaseNode { 1267 type: "TSNumberKeyword"; 1268} 1269 1270export interface TSObjectKeyword extends BaseNode { 1271 type: "TSObjectKeyword"; 1272} 1273 1274export interface TSStringKeyword extends BaseNode { 1275 type: "TSStringKeyword"; 1276} 1277 1278export interface TSSymbolKeyword extends BaseNode { 1279 type: "TSSymbolKeyword"; 1280} 1281 1282export interface TSUndefinedKeyword extends BaseNode { 1283 type: "TSUndefinedKeyword"; 1284} 1285 1286export interface TSUnknownKeyword extends BaseNode { 1287 type: "TSUnknownKeyword"; 1288} 1289 1290export interface TSVoidKeyword extends BaseNode { 1291 type: "TSVoidKeyword"; 1292} 1293 1294export interface TSThisType extends BaseNode { 1295 type: "TSThisType"; 1296} 1297 1298export interface TSFunctionType extends BaseNode { 1299 type: "TSFunctionType"; 1300 typeParameters: TSTypeParameterDeclaration | null; 1301 parameters: Array<Identifier | RestElement>; 1302 typeAnnotation: TSTypeAnnotation | null; 1303} 1304 1305export interface TSConstructorType extends BaseNode { 1306 type: "TSConstructorType"; 1307 typeParameters: TSTypeParameterDeclaration | null; 1308 parameters: Array<Identifier | RestElement>; 1309 typeAnnotation: TSTypeAnnotation | null; 1310} 1311 1312export interface TSTypeReference extends BaseNode { 1313 type: "TSTypeReference"; 1314 typeName: TSEntityName; 1315 typeParameters: TSTypeParameterInstantiation | null; 1316} 1317 1318export interface TSTypePredicate extends BaseNode { 1319 type: "TSTypePredicate"; 1320 parameterName: Identifier | TSThisType; 1321 typeAnnotation: TSTypeAnnotation | null; 1322 asserts: boolean | null; 1323} 1324 1325export interface TSTypeQuery extends BaseNode { 1326 type: "TSTypeQuery"; 1327 exprName: TSEntityName | TSImportType; 1328} 1329 1330export interface TSTypeLiteral extends BaseNode { 1331 type: "TSTypeLiteral"; 1332 members: Array<TSTypeElement>; 1333} 1334 1335export interface TSArrayType extends BaseNode { 1336 type: "TSArrayType"; 1337 elementType: TSType; 1338} 1339 1340export interface TSTupleType extends BaseNode { 1341 type: "TSTupleType"; 1342 elementTypes: Array<TSType>; 1343} 1344 1345export interface TSOptionalType extends BaseNode { 1346 type: "TSOptionalType"; 1347 typeAnnotation: TSType; 1348} 1349 1350export interface TSRestType extends BaseNode { 1351 type: "TSRestType"; 1352 typeAnnotation: TSType; 1353} 1354 1355export interface TSUnionType extends BaseNode { 1356 type: "TSUnionType"; 1357 types: Array<TSType>; 1358} 1359 1360export interface TSIntersectionType extends BaseNode { 1361 type: "TSIntersectionType"; 1362 types: Array<TSType>; 1363} 1364 1365export interface TSConditionalType extends BaseNode { 1366 type: "TSConditionalType"; 1367 checkType: TSType; 1368 extendsType: TSType; 1369 trueType: TSType; 1370 falseType: TSType; 1371} 1372 1373export interface TSInferType extends BaseNode { 1374 type: "TSInferType"; 1375 typeParameter: TSTypeParameter; 1376} 1377 1378export interface TSParenthesizedType extends BaseNode { 1379 type: "TSParenthesizedType"; 1380 typeAnnotation: TSType; 1381} 1382 1383export interface TSTypeOperator extends BaseNode { 1384 type: "TSTypeOperator"; 1385 typeAnnotation: TSType; 1386 operator: string; 1387} 1388 1389export interface TSIndexedAccessType extends BaseNode { 1390 type: "TSIndexedAccessType"; 1391 objectType: TSType; 1392 indexType: TSType; 1393} 1394 1395export interface TSMappedType extends BaseNode { 1396 type: "TSMappedType"; 1397 typeParameter: TSTypeParameter; 1398 typeAnnotation: TSType | null; 1399 optional: boolean | null; 1400 readonly: boolean | null; 1401} 1402 1403export interface TSLiteralType extends BaseNode { 1404 type: "TSLiteralType"; 1405 literal: NumericLiteral | StringLiteral | BooleanLiteral; 1406} 1407 1408export interface TSExpressionWithTypeArguments extends BaseNode { 1409 type: "TSExpressionWithTypeArguments"; 1410 expression: TSEntityName; 1411 typeParameters: TSTypeParameterInstantiation | null; 1412} 1413 1414export interface TSInterfaceDeclaration extends BaseNode { 1415 type: "TSInterfaceDeclaration"; 1416 id: Identifier; 1417 typeParameters: TSTypeParameterDeclaration | null; 1418 extends: Array<TSExpressionWithTypeArguments> | null; 1419 body: TSInterfaceBody; 1420 declare: boolean | null; 1421} 1422 1423export interface TSInterfaceBody extends BaseNode { 1424 type: "TSInterfaceBody"; 1425 body: Array<TSTypeElement>; 1426} 1427 1428export interface TSTypeAliasDeclaration extends BaseNode { 1429 type: "TSTypeAliasDeclaration"; 1430 id: Identifier; 1431 typeParameters: TSTypeParameterDeclaration | null; 1432 typeAnnotation: TSType; 1433 declare: boolean | null; 1434} 1435 1436export interface TSAsExpression extends BaseNode { 1437 type: "TSAsExpression"; 1438 expression: Expression; 1439 typeAnnotation: TSType; 1440} 1441 1442export interface TSTypeAssertion extends BaseNode { 1443 type: "TSTypeAssertion"; 1444 typeAnnotation: TSType; 1445 expression: Expression; 1446} 1447 1448export interface TSEnumDeclaration extends BaseNode { 1449 type: "TSEnumDeclaration"; 1450 id: Identifier; 1451 members: Array<TSEnumMember>; 1452 const: boolean | null; 1453 declare: boolean | null; 1454 initializer: Expression | null; 1455} 1456 1457export interface TSEnumMember extends BaseNode { 1458 type: "TSEnumMember"; 1459 id: Identifier | StringLiteral; 1460 initializer: Expression | null; 1461} 1462 1463export interface TSModuleDeclaration extends BaseNode { 1464 type: "TSModuleDeclaration"; 1465 id: Identifier | StringLiteral; 1466 body: TSModuleBlock | TSModuleDeclaration; 1467 declare: boolean | null; 1468 global: boolean | null; 1469} 1470 1471export interface TSModuleBlock extends BaseNode { 1472 type: "TSModuleBlock"; 1473 body: Array<Statement>; 1474} 1475 1476export interface TSImportType extends BaseNode { 1477 type: "TSImportType"; 1478 argument: StringLiteral; 1479 qualifier: TSEntityName | null; 1480 typeParameters: TSTypeParameterInstantiation | null; 1481} 1482 1483export interface TSImportEqualsDeclaration extends BaseNode { 1484 type: "TSImportEqualsDeclaration"; 1485 id: Identifier; 1486 moduleReference: TSEntityName | TSExternalModuleReference; 1487 isExport: boolean; 1488} 1489 1490export interface TSExternalModuleReference extends BaseNode { 1491 type: "TSExternalModuleReference"; 1492 expression: StringLiteral; 1493} 1494 1495export interface TSNonNullExpression extends BaseNode { 1496 type: "TSNonNullExpression"; 1497 expression: Expression; 1498} 1499 1500export interface TSExportAssignment extends BaseNode { 1501 type: "TSExportAssignment"; 1502 expression: Expression; 1503} 1504 1505export interface TSNamespaceExportDeclaration extends BaseNode { 1506 type: "TSNamespaceExportDeclaration"; 1507 id: Identifier; 1508} 1509 1510export interface TSTypeAnnotation extends BaseNode { 1511 type: "TSTypeAnnotation"; 1512 typeAnnotation: TSType; 1513} 1514 1515export interface TSTypeParameterInstantiation extends BaseNode { 1516 type: "TSTypeParameterInstantiation"; 1517 params: Array<TSType>; 1518} 1519 1520export interface TSTypeParameterDeclaration extends BaseNode { 1521 type: "TSTypeParameterDeclaration"; 1522 params: Array<TSTypeParameter>; 1523} 1524 1525export interface TSTypeParameter extends BaseNode { 1526 type: "TSTypeParameter"; 1527 constraint: TSType | null; 1528 default: TSType | null; 1529 name: string; 1530} 1531 1532/** 1533 * @deprecated Use `NumericLiteral` 1534 */ 1535export type NumberLiteral = NumericLiteral; 1536 1537/** 1538 * @deprecated Use `RegExpLiteral` 1539 */ 1540export type RegexLiteral = RegExpLiteral; 1541 1542/** 1543 * @deprecated Use `RestElement` 1544 */ 1545export type RestProperty = RestElement; 1546 1547/** 1548 * @deprecated Use `SpreadElement` 1549 */ 1550export type SpreadProperty = SpreadElement; 1551 1552export 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 | TypeCastExpression | JSXElement | JSXFragment | AwaitExpression | BindExpression | OptionalMemberExpression | PipelinePrimaryTopicReference | OptionalCallExpression | Import | DoExpression | BigIntLiteral | RecordExpression | TupleExpression | TSAsExpression | TSTypeAssertion | TSNonNullExpression; 1553export type Binary = BinaryExpression | LogicalExpression; 1554export type Scopable = BlockStatement | CatchClause | DoWhileStatement | ForInStatement | ForStatement | FunctionDeclaration | FunctionExpression | Program | ObjectMethod | SwitchStatement | WhileStatement | ArrowFunctionExpression | ClassExpression | ClassDeclaration | ForOfStatement | ClassMethod | ClassPrivateMethod | TSModuleBlock; 1555export type BlockParent = BlockStatement | CatchClause | DoWhileStatement | ForInStatement | ForStatement | FunctionDeclaration | FunctionExpression | Program | ObjectMethod | SwitchStatement | WhileStatement | ArrowFunctionExpression | ForOfStatement | ClassMethod | ClassPrivateMethod | TSModuleBlock; 1556export type Block = BlockStatement | Program | TSModuleBlock; 1557export 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; 1558export type Terminatorless = BreakStatement | ContinueStatement | ReturnStatement | ThrowStatement | YieldExpression | AwaitExpression; 1559export type CompletionStatement = BreakStatement | ContinueStatement | ReturnStatement | ThrowStatement; 1560export type Conditional = ConditionalExpression | IfStatement; 1561export type Loop = DoWhileStatement | ForInStatement | ForStatement | WhileStatement | ForOfStatement; 1562export type While = DoWhileStatement | WhileStatement; 1563export type ExpressionWrapper = ExpressionStatement | ParenthesizedExpression | TypeCastExpression; 1564export type For = ForInStatement | ForStatement | ForOfStatement; 1565export type ForXStatement = ForInStatement | ForOfStatement; 1566export type Function = FunctionDeclaration | FunctionExpression | ObjectMethod | ArrowFunctionExpression | ClassMethod | ClassPrivateMethod; 1567export type FunctionParent = FunctionDeclaration | FunctionExpression | ObjectMethod | ArrowFunctionExpression | ClassMethod | ClassPrivateMethod; 1568export type Pureish = FunctionDeclaration | FunctionExpression | StringLiteral | NumericLiteral | NullLiteral | BooleanLiteral | RegExpLiteral | ArrowFunctionExpression | BigIntLiteral; 1569export 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; 1570export type PatternLike = Identifier | RestElement | AssignmentPattern | ArrayPattern | ObjectPattern; 1571export type LVal = Identifier | MemberExpression | RestElement | AssignmentPattern | ArrayPattern | ObjectPattern | TSParameterProperty; 1572export type TSEntityName = Identifier | TSQualifiedName; 1573export type Literal = StringLiteral | NumericLiteral | NullLiteral | BooleanLiteral | RegExpLiteral | TemplateLiteral | BigIntLiteral; 1574export type Immutable = StringLiteral | NumericLiteral | NullLiteral | BooleanLiteral | JSXAttribute | JSXClosingElement | JSXElement | JSXExpressionContainer | JSXSpreadChild | JSXOpeningElement | JSXText | JSXFragment | JSXOpeningFragment | JSXClosingFragment | BigIntLiteral; 1575export type UserWhitespacable = ObjectMethod | ObjectProperty | ObjectTypeInternalSlot | ObjectTypeCallProperty | ObjectTypeIndexer | ObjectTypeProperty | ObjectTypeSpreadProperty; 1576export type Method = ObjectMethod | ClassMethod | ClassPrivateMethod; 1577export type ObjectMember = ObjectMethod | ObjectProperty; 1578export type Property = ObjectProperty | ClassProperty | ClassPrivateProperty; 1579export type UnaryLike = UnaryExpression | SpreadElement; 1580export type Pattern = AssignmentPattern | ArrayPattern | ObjectPattern; 1581export type Class = ClassExpression | ClassDeclaration; 1582export type ModuleDeclaration = ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ImportDeclaration; 1583export type ExportDeclaration = ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration; 1584export type ModuleSpecifier = ExportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier | ExportDefaultSpecifier | ExportNamespaceSpecifier; 1585export 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; 1586export 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; 1587export type FlowBaseAnnotation = AnyTypeAnnotation | BooleanTypeAnnotation | NullLiteralTypeAnnotation | MixedTypeAnnotation | EmptyTypeAnnotation | NumberTypeAnnotation | StringTypeAnnotation | SymbolTypeAnnotation | ThisTypeAnnotation | VoidTypeAnnotation; 1588export type FlowDeclaration = DeclareClass | DeclareFunction | DeclareInterface | DeclareModule | DeclareModuleExports | DeclareTypeAlias | DeclareOpaqueType | DeclareVariable | DeclareExportDeclaration | DeclareExportAllDeclaration | InterfaceDeclaration | OpaqueType | TypeAlias; 1589export type FlowPredicate = DeclaredPredicate | InferredPredicate; 1590export type EnumBody = EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody; 1591export type EnumMember = EnumBooleanMember | EnumNumberMember | EnumStringMember | EnumDefaultedMember; 1592export type JSX = JSXAttribute | JSXClosingElement | JSXElement | JSXEmptyExpression | JSXExpressionContainer | JSXSpreadChild | JSXIdentifier | JSXMemberExpression | JSXNamespacedName | JSXOpeningElement | JSXSpreadAttribute | JSXText | JSXFragment | JSXOpeningFragment | JSXClosingFragment; 1593export type Private = ClassPrivateProperty | ClassPrivateMethod | PrivateName; 1594export type TSTypeElement = TSCallSignatureDeclaration | TSConstructSignatureDeclaration | TSPropertySignature | TSMethodSignature | TSIndexSignature; 1595export type TSType = TSAnyKeyword | TSBooleanKeyword | TSBigIntKeyword | 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; 1596 1597export interface Aliases { 1598 Expression: Expression; 1599 Binary: Binary; 1600 Scopable: Scopable; 1601 BlockParent: BlockParent; 1602 Block: Block; 1603 Statement: Statement; 1604 Terminatorless: Terminatorless; 1605 CompletionStatement: CompletionStatement; 1606 Conditional: Conditional; 1607 Loop: Loop; 1608 While: While; 1609 ExpressionWrapper: ExpressionWrapper; 1610 For: For; 1611 ForXStatement: ForXStatement; 1612 Function: Function; 1613 FunctionParent: FunctionParent; 1614 Pureish: Pureish; 1615 Declaration: Declaration; 1616 PatternLike: PatternLike; 1617 LVal: LVal; 1618 TSEntityName: TSEntityName; 1619 Literal: Literal; 1620 Immutable: Immutable; 1621 UserWhitespacable: UserWhitespacable; 1622 Method: Method; 1623 ObjectMember: ObjectMember; 1624 Property: Property; 1625 UnaryLike: UnaryLike; 1626 Pattern: Pattern; 1627 Class: Class; 1628 ModuleDeclaration: ModuleDeclaration; 1629 ExportDeclaration: ExportDeclaration; 1630 ModuleSpecifier: ModuleSpecifier; 1631 Flow: Flow; 1632 FlowType: FlowType; 1633 FlowBaseAnnotation: FlowBaseAnnotation; 1634 FlowDeclaration: FlowDeclaration; 1635 FlowPredicate: FlowPredicate; 1636 EnumBody: EnumBody; 1637 EnumMember: EnumMember; 1638 JSX: JSX; 1639 Private: Private; 1640 TSTypeElement: TSTypeElement; 1641 TSType: TSType; 1642} 1643 1644export function arrayExpression(elements?: Array<null | Expression | SpreadElement>): ArrayExpression; 1645export function assignmentExpression(operator: string, left: LVal, right: Expression): AssignmentExpression; 1646export function binaryExpression(operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=", left: Expression, right: Expression): BinaryExpression; 1647export function interpreterDirective(value: string): InterpreterDirective; 1648export function directive(value: DirectiveLiteral): Directive; 1649export function directiveLiteral(value: string): DirectiveLiteral; 1650export function blockStatement(body: Array<Statement>, directives?: Array<Directive>): BlockStatement; 1651export function breakStatement(label?: Identifier | null): BreakStatement; 1652export function callExpression(callee: Expression | V8IntrinsicIdentifier, _arguments: Array<Expression | SpreadElement | JSXNamespacedName | ArgumentPlaceholder>): CallExpression; 1653export function catchClause(param: Identifier | ArrayPattern | ObjectPattern | null | undefined, body: BlockStatement): CatchClause; 1654export function conditionalExpression(test: Expression, consequent: Expression, alternate: Expression): ConditionalExpression; 1655export function continueStatement(label?: Identifier | null): ContinueStatement; 1656export function debuggerStatement(): DebuggerStatement; 1657export function doWhileStatement(test: Expression, body: Statement): DoWhileStatement; 1658export function emptyStatement(): EmptyStatement; 1659export function expressionStatement(expression: Expression): ExpressionStatement; 1660export function file(program: Program, comments: any, tokens: any): File; 1661export function forInStatement(left: VariableDeclaration | LVal, right: Expression, body: Statement): ForInStatement; 1662export function forStatement(init: VariableDeclaration | Expression | null | undefined, test: Expression | null | undefined, update: Expression | null | undefined, body: Statement): ForStatement; 1663export function functionDeclaration(id: Identifier | null | undefined, params: Array<Identifier | Pattern | RestElement | TSParameterProperty>, body: BlockStatement, generator?: boolean, async?: boolean): FunctionDeclaration; 1664export function functionExpression(id: Identifier | null | undefined, params: Array<Identifier | Pattern | RestElement | TSParameterProperty>, body: BlockStatement, generator?: boolean, async?: boolean): FunctionExpression; 1665export function identifier(name: any): Identifier; 1666export function ifStatement(test: Expression, consequent: Statement, alternate?: Statement | null): IfStatement; 1667export function labeledStatement(label: Identifier, body: Statement): LabeledStatement; 1668export function stringLiteral(value: string): StringLiteral; 1669export function numericLiteral(value: number): NumericLiteral; 1670export function nullLiteral(): NullLiteral; 1671export function booleanLiteral(value: boolean): BooleanLiteral; 1672export function regExpLiteral(pattern: string, flags?: any): RegExpLiteral; 1673export function logicalExpression(operator: "||" | "&&" | "??", left: Expression, right: Expression): LogicalExpression; 1674export function memberExpression(object: Expression, property: any, computed?: boolean, optional?: true | false | null): MemberExpression; 1675export function newExpression(callee: Expression | V8IntrinsicIdentifier, _arguments: Array<Expression | SpreadElement | JSXNamespacedName | ArgumentPlaceholder>): NewExpression; 1676export function program(body: Array<Statement>, directives?: Array<Directive>, sourceType?: "script" | "module", interpreter?: InterpreterDirective | null): Program; 1677export function objectExpression(properties: Array<ObjectMethod | ObjectProperty | SpreadElement>): ObjectExpression; 1678export function objectMethod(kind: "method" | "get" | "set" | undefined, key: any, params: Array<Identifier | Pattern | RestElement | TSParameterProperty>, body: BlockStatement, computed?: boolean, generator?: boolean, async?: boolean): ObjectMethod; 1679export function objectProperty(key: any, value: Expression | PatternLike, computed?: boolean, shorthand?: any, decorators?: Array<Decorator> | null): ObjectProperty; 1680export function restElement(argument: LVal): RestElement; 1681export function returnStatement(argument?: Expression | null): ReturnStatement; 1682export function sequenceExpression(expressions: Array<Expression>): SequenceExpression; 1683export function parenthesizedExpression(expression: Expression): ParenthesizedExpression; 1684export function switchCase(test: Expression | null | undefined, consequent: Array<Statement>): SwitchCase; 1685export function switchStatement(discriminant: Expression, cases: Array<SwitchCase>): SwitchStatement; 1686export function thisExpression(): ThisExpression; 1687export function throwStatement(argument: Expression): ThrowStatement; 1688export function tryStatement(block: any, handler?: CatchClause | null, finalizer?: BlockStatement | null): TryStatement; 1689export function unaryExpression(operator: "void" | "throw" | "delete" | "!" | "+" | "-" | "~" | "typeof", argument: Expression, prefix?: boolean): UnaryExpression; 1690export function updateExpression(operator: "++" | "--", argument: Expression, prefix?: boolean): UpdateExpression; 1691export function variableDeclaration(kind: "var" | "let" | "const", declarations: Array<VariableDeclarator>): VariableDeclaration; 1692export function variableDeclarator(id: LVal, init?: Expression | null): VariableDeclarator; 1693export function whileStatement(test: Expression, body: Statement): WhileStatement; 1694export function withStatement(object: Expression, body: Statement): WithStatement; 1695export function assignmentPattern(left: Identifier | ObjectPattern | ArrayPattern | MemberExpression, right: Expression): AssignmentPattern; 1696export function arrayPattern(elements: Array<null | PatternLike>): ArrayPattern; 1697export function arrowFunctionExpression(params: Array<Identifier | Pattern | RestElement | TSParameterProperty>, body: BlockStatement | Expression, async?: boolean): ArrowFunctionExpression; 1698export function classBody(body: Array<ClassMethod | ClassPrivateMethod | ClassProperty | ClassPrivateProperty | TSDeclareMethod | TSIndexSignature>): ClassBody; 1699export function classExpression(id: Identifier | null | undefined, superClass: Expression | null | undefined, body: ClassBody, decorators?: Array<Decorator> | null): ClassExpression; 1700export function classDeclaration(id: any, superClass: any, body: any, decorators: any): ClassDeclaration; 1701export function exportAllDeclaration(source: StringLiteral): ExportAllDeclaration; 1702export function exportDefaultDeclaration(declaration: FunctionDeclaration | TSDeclareFunction | ClassDeclaration | Expression): ExportDefaultDeclaration; 1703export function exportNamedDeclaration(declaration?: any | null, specifiers?: Array<ExportSpecifier | ExportDefaultSpecifier | ExportNamespaceSpecifier>, source?: StringLiteral | null): ExportNamedDeclaration; 1704export function exportSpecifier(local: Identifier, exported: Identifier): ExportSpecifier; 1705export function forOfStatement(left: VariableDeclaration | LVal, right: Expression, body: Statement, _await?: boolean): ForOfStatement; 1706export function importDeclaration(specifiers: Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>, source: StringLiteral): ImportDeclaration; 1707export function importDefaultSpecifier(local: Identifier): ImportDefaultSpecifier; 1708export function importNamespaceSpecifier(local: Identifier): ImportNamespaceSpecifier; 1709export function importSpecifier(local: Identifier, imported: Identifier): ImportSpecifier; 1710export function metaProperty(meta: any, property: Identifier): MetaProperty; 1711export function classMethod(kind: "get" | "set" | "method" | "constructor" | undefined, key: Identifier | StringLiteral | NumericLiteral | Expression, params: Array<Identifier | Pattern | RestElement | TSParameterProperty>, body: BlockStatement, computed?: boolean, _static?: boolean, generator?: boolean, async?: boolean): ClassMethod; 1712export function objectPattern(properties: Array<RestElement | ObjectProperty>): ObjectPattern; 1713export function spreadElement(argument: Expression): SpreadElement; 1714declare function _super(): Super; 1715export { _super as super} 1716export function taggedTemplateExpression(tag: Expression, quasi: TemplateLiteral): TaggedTemplateExpression; 1717export function templateElement(value: { raw: string, cooked?: string }, tail?: boolean): TemplateElement; 1718export function templateLiteral(quasis: Array<TemplateElement>, expressions: Array<Expression>): TemplateLiteral; 1719export function yieldExpression(argument?: Expression | null, delegate?: any): YieldExpression; 1720export function anyTypeAnnotation(): AnyTypeAnnotation; 1721export function arrayTypeAnnotation(elementType: FlowType): ArrayTypeAnnotation; 1722export function booleanTypeAnnotation(): BooleanTypeAnnotation; 1723export function booleanLiteralTypeAnnotation(value: boolean): BooleanLiteralTypeAnnotation; 1724export function nullLiteralTypeAnnotation(): NullLiteralTypeAnnotation; 1725export function classImplements(id: Identifier, typeParameters?: TypeParameterInstantiation | null): ClassImplements; 1726export function declareClass(id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, _extends: Array<InterfaceExtends> | null | undefined, body: ObjectTypeAnnotation): DeclareClass; 1727export function declareFunction(id: Identifier): DeclareFunction; 1728export function declareInterface(id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, _extends: Array<InterfaceExtends> | null | undefined, body: ObjectTypeAnnotation): DeclareInterface; 1729export function declareModule(id: Identifier | StringLiteral, body: BlockStatement, kind?: "CommonJS" | "ES" | null): DeclareModule; 1730export function declareModuleExports(typeAnnotation: TypeAnnotation): DeclareModuleExports; 1731export function declareTypeAlias(id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, right: FlowType): DeclareTypeAlias; 1732export function declareOpaqueType(id: Identifier, typeParameters?: TypeParameterDeclaration | null, supertype?: FlowType | null): DeclareOpaqueType; 1733export function declareVariable(id: Identifier): DeclareVariable; 1734export function declareExportDeclaration(declaration?: Flow | null, specifiers?: Array<ExportSpecifier | ExportNamespaceSpecifier> | null, source?: StringLiteral | null): DeclareExportDeclaration; 1735export function declareExportAllDeclaration(source: StringLiteral): DeclareExportAllDeclaration; 1736export function declaredPredicate(value: Flow): DeclaredPredicate; 1737export function existsTypeAnnotation(): ExistsTypeAnnotation; 1738export function functionTypeAnnotation(typeParameters: TypeParameterDeclaration | null | undefined, params: Array<FunctionTypeParam>, rest: FunctionTypeParam | null | undefined, returnType: FlowType): FunctionTypeAnnotation; 1739export function functionTypeParam(name: Identifier | null | undefined, typeAnnotation: FlowType): FunctionTypeParam; 1740export function genericTypeAnnotation(id: Identifier | QualifiedTypeIdentifier, typeParameters?: TypeParameterInstantiation | null): GenericTypeAnnotation; 1741export function inferredPredicate(): InferredPredicate; 1742export function interfaceExtends(id: Identifier | QualifiedTypeIdentifier, typeParameters?: TypeParameterInstantiation | null): InterfaceExtends; 1743export function interfaceDeclaration(id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, _extends: Array<InterfaceExtends> | null | undefined, body: ObjectTypeAnnotation): InterfaceDeclaration; 1744export function interfaceTypeAnnotation(_extends: Array<InterfaceExtends> | null | undefined, body: ObjectTypeAnnotation): InterfaceTypeAnnotation; 1745export function intersectionTypeAnnotation(types: Array<FlowType>): IntersectionTypeAnnotation; 1746export function mixedTypeAnnotation(): MixedTypeAnnotation; 1747export function emptyTypeAnnotation(): EmptyTypeAnnotation; 1748export function nullableTypeAnnotation(typeAnnotation: FlowType): NullableTypeAnnotation; 1749export function numberLiteralTypeAnnotation(value: number): NumberLiteralTypeAnnotation; 1750export function numberTypeAnnotation(): NumberTypeAnnotation; 1751export function objectTypeAnnotation(properties: Array<ObjectTypeProperty | ObjectTypeSpreadProperty>, indexers?: Array<ObjectTypeIndexer> | null, callProperties?: Array<ObjectTypeCallProperty> | null, internalSlots?: Array<ObjectTypeInternalSlot> | null, exact?: boolean): ObjectTypeAnnotation; 1752export function objectTypeInternalSlot(id: Identifier, value: FlowType, optional: boolean, _static: boolean, method: boolean): ObjectTypeInternalSlot; 1753export function objectTypeCallProperty(value: FlowType): ObjectTypeCallProperty; 1754export function objectTypeIndexer(id: Identifier | null | undefined, key: FlowType, value: FlowType, variance?: Variance | null): ObjectTypeIndexer; 1755export function objectTypeProperty(key: Identifier | StringLiteral, value: FlowType, variance?: Variance | null): ObjectTypeProperty; 1756export function objectTypeSpreadProperty(argument: FlowType): ObjectTypeSpreadProperty; 1757export function opaqueType(id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, supertype: FlowType | null | undefined, impltype: FlowType): OpaqueType; 1758export function qualifiedTypeIdentifier(id: Identifier, qualification: Identifier | QualifiedTypeIdentifier): QualifiedTypeIdentifier; 1759export function stringLiteralTypeAnnotation(value: string): StringLiteralTypeAnnotation; 1760export function stringTypeAnnotation(): StringTypeAnnotation; 1761export function symbolTypeAnnotation(): SymbolTypeAnnotation; 1762export function thisTypeAnnotation(): ThisTypeAnnotation; 1763export function tupleTypeAnnotation(types: Array<FlowType>): TupleTypeAnnotation; 1764export function typeofTypeAnnotation(argument: FlowType): TypeofTypeAnnotation; 1765export function typeAlias(id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, right: FlowType): TypeAlias; 1766export function typeAnnotation(typeAnnotation: FlowType): TypeAnnotation; 1767export function typeCastExpression(expression: Expression, typeAnnotation: TypeAnnotation): TypeCastExpression; 1768export function typeParameter(bound?: TypeAnnotation | null, _default?: FlowType | null, variance?: Variance | null): TypeParameter; 1769export function typeParameterDeclaration(params: Array<TypeParameter>): TypeParameterDeclaration; 1770export function typeParameterInstantiation(params: Array<FlowType>): TypeParameterInstantiation; 1771export function unionTypeAnnotation(types: Array<FlowType>): UnionTypeAnnotation; 1772export function variance(kind: "minus" | "plus"): Variance; 1773export function voidTypeAnnotation(): VoidTypeAnnotation; 1774export function enumDeclaration(id: Identifier, body: EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody): EnumDeclaration; 1775export function enumBooleanBody(members: Array<EnumBooleanMember>): EnumBooleanBody; 1776export function enumNumberBody(members: Array<EnumNumberMember>): EnumNumberBody; 1777export function enumStringBody(members: Array<EnumStringMember | EnumDefaultedMember>): EnumStringBody; 1778export function enumSymbolBody(members: Array<EnumDefaultedMember>): EnumSymbolBody; 1779export function enumBooleanMember(id: Identifier): EnumBooleanMember; 1780export function enumNumberMember(id: Identifier, init: NumericLiteral): EnumNumberMember; 1781export function enumStringMember(id: Identifier, init: StringLiteral): EnumStringMember; 1782export function enumDefaultedMember(id: Identifier): EnumDefaultedMember; 1783export function jsxAttribute(name: JSXIdentifier | JSXNamespacedName, value?: JSXElement | JSXFragment | StringLiteral | JSXExpressionContainer | null): JSXAttribute; 1784export function jsxClosingElement(name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName): JSXClosingElement; 1785export function jsxElement(openingElement: JSXOpeningElement, closingElement: JSXClosingElement | null | undefined, children: Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment>, selfClosing: any): JSXElement; 1786export function jsxEmptyExpression(): JSXEmptyExpression; 1787export function jsxExpressionContainer(expression: Expression | JSXEmptyExpression): JSXExpressionContainer; 1788export function jsxSpreadChild(expression: Expression): JSXSpreadChild; 1789export function jsxIdentifier(name: string): JSXIdentifier; 1790export function jsxMemberExpression(object: JSXMemberExpression | JSXIdentifier, property: JSXIdentifier): JSXMemberExpression; 1791export function jsxNamespacedName(namespace: JSXIdentifier, name: JSXIdentifier): JSXNamespacedName; 1792export function jsxOpeningElement(name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName, attributes: Array<JSXAttribute | JSXSpreadAttribute>, selfClosing?: boolean): JSXOpeningElement; 1793export function jsxSpreadAttribute(argument: Expression): JSXSpreadAttribute; 1794export function jsxText(value: string): JSXText; 1795export function jsxFragment(openingFragment: JSXOpeningFragment, closingFragment: JSXClosingFragment, children: Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment>): JSXFragment; 1796export function jsxOpeningFragment(): JSXOpeningFragment; 1797export function jsxClosingFragment(): JSXClosingFragment; 1798export function noop(): Noop; 1799export function placeholder(expectedNode: "Identifier" | "StringLiteral" | "Expression" | "Statement" | "Declaration" | "BlockStatement" | "ClassBody" | "Pattern", name: Identifier): Placeholder; 1800export function v8IntrinsicIdentifier(name: string): V8IntrinsicIdentifier; 1801export function argumentPlaceholder(): ArgumentPlaceholder; 1802export function awaitExpression(argument: Expression): AwaitExpression; 1803export function bindExpression(object: any, callee: any): BindExpression; 1804export function classProperty(key: Identifier | StringLiteral | NumericLiteral | Expression, value?: Expression | null, typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null, decorators?: Array<Decorator> | null, computed?: boolean, _static?: boolean): ClassProperty; 1805export function optionalMemberExpression(object: Expression, property: any, computed: boolean | undefined, optional: boolean): OptionalMemberExpression; 1806export function pipelineTopicExpression(expression: Expression): PipelineTopicExpression; 1807export function pipelineBareFunction(callee: Expression): PipelineBareFunction; 1808export function pipelinePrimaryTopicReference(): PipelinePrimaryTopicReference; 1809export function optionalCallExpression(callee: Expression, _arguments: Array<Expression | SpreadElement | JSXNamespacedName>, optional: boolean): OptionalCallExpression; 1810export function classPrivateProperty(key: PrivateName, value?: Expression | null, decorators?: Array<Decorator> | null): ClassPrivateProperty; 1811export function classPrivateMethod(kind: "get" | "set" | "method" | "constructor" | undefined, key: PrivateName, params: Array<Identifier | Pattern | RestElement | TSParameterProperty>, body: BlockStatement, _static?: boolean): ClassPrivateMethod; 1812declare function _import(): Import; 1813export { _import as import} 1814export function decorator(expression: Expression): Decorator; 1815export function doExpression(body: BlockStatement): DoExpression; 1816export function exportDefaultSpecifier(exported: Identifier): ExportDefaultSpecifier; 1817export function exportNamespaceSpecifier(exported: Identifier): ExportNamespaceSpecifier; 1818export function privateName(id: Identifier): PrivateName; 1819export function bigIntLiteral(value: string): BigIntLiteral; 1820export function recordExpression(properties: Array<ObjectProperty | ObjectMethod | SpreadElement>): RecordExpression; 1821export function tupleExpression(elements?: Array<null | Expression | SpreadElement>): TupleExpression; 1822export function tsParameterProperty(parameter: Identifier | AssignmentPattern): TSParameterProperty; 1823export function tsDeclareFunction(id: Identifier | null | undefined, typeParameters: TSTypeParameterDeclaration | Noop | null | undefined, params: Array<Identifier | Pattern | RestElement | TSParameterProperty>, returnType?: TSTypeAnnotation | Noop | null): TSDeclareFunction; 1824export function tsDeclareMethod(decorators: Array<Decorator> | null | undefined, key: Identifier | StringLiteral | NumericLiteral | Expression, typeParameters: TSTypeParameterDeclaration | Noop | null | undefined, params: Array<Identifier | Pattern | RestElement | TSParameterProperty>, returnType?: TSTypeAnnotation | Noop | null): TSDeclareMethod; 1825export function tsQualifiedName(left: TSEntityName, right: Identifier): TSQualifiedName; 1826export function tsCallSignatureDeclaration(typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array<Identifier | RestElement>, typeAnnotation?: TSTypeAnnotation | null): TSCallSignatureDeclaration; 1827export function tsConstructSignatureDeclaration(typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array<Identifier | RestElement>, typeAnnotation?: TSTypeAnnotation | null): TSConstructSignatureDeclaration; 1828export function tsPropertySignature(key: Expression, typeAnnotation?: TSTypeAnnotation | null, initializer?: Expression | null): TSPropertySignature; 1829export function tsMethodSignature(key: Expression, typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array<Identifier | RestElement>, typeAnnotation?: TSTypeAnnotation | null): TSMethodSignature; 1830export function tsIndexSignature(parameters: Array<Identifier>, typeAnnotation?: TSTypeAnnotation | null): TSIndexSignature; 1831export function tsAnyKeyword(): TSAnyKeyword; 1832export function tsBooleanKeyword(): TSBooleanKeyword; 1833export function tsBigIntKeyword(): TSBigIntKeyword; 1834export function tsNeverKeyword(): TSNeverKeyword; 1835export function tsNullKeyword(): TSNullKeyword; 1836export function tsNumberKeyword(): TSNumberKeyword; 1837export function tsObjectKeyword(): TSObjectKeyword; 1838export function tsStringKeyword(): TSStringKeyword; 1839export function tsSymbolKeyword(): TSSymbolKeyword; 1840export function tsUndefinedKeyword(): TSUndefinedKeyword; 1841export function tsUnknownKeyword(): TSUnknownKeyword; 1842export function tsVoidKeyword(): TSVoidKeyword; 1843export function tsThisType(): TSThisType; 1844export function tsFunctionType(typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array<Identifier | RestElement>, typeAnnotation?: TSTypeAnnotation | null): TSFunctionType; 1845export function tsConstructorType(typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array<Identifier | RestElement>, typeAnnotation?: TSTypeAnnotation | null): TSConstructorType; 1846export function tsTypeReference(typeName: TSEntityName, typeParameters?: TSTypeParameterInstantiation | null): TSTypeReference; 1847export function tsTypePredicate(parameterName: Identifier | TSThisType, typeAnnotation?: TSTypeAnnotation | null, asserts?: boolean | null): TSTypePredicate; 1848export function tsTypeQuery(exprName: TSEntityName | TSImportType): TSTypeQuery; 1849export function tsTypeLiteral(members: Array<TSTypeElement>): TSTypeLiteral; 1850export function tsArrayType(elementType: TSType): TSArrayType; 1851export function tsTupleType(elementTypes: Array<TSType>): TSTupleType; 1852export function tsOptionalType(typeAnnotation: TSType): TSOptionalType; 1853export function tsRestType(typeAnnotation: TSType): TSRestType; 1854export function tsUnionType(types: Array<TSType>): TSUnionType; 1855export function tsIntersectionType(types: Array<TSType>): TSIntersectionType; 1856export function tsConditionalType(checkType: TSType, extendsType: TSType, trueType: TSType, falseType: TSType): TSConditionalType; 1857export function tsInferType(typeParameter: TSTypeParameter): TSInferType; 1858export function tsParenthesizedType(typeAnnotation: TSType): TSParenthesizedType; 1859export function tsTypeOperator(typeAnnotation: TSType): TSTypeOperator; 1860export function tsIndexedAccessType(objectType: TSType, indexType: TSType): TSIndexedAccessType; 1861export function tsMappedType(typeParameter: TSTypeParameter, typeAnnotation?: TSType | null): TSMappedType; 1862export function tsLiteralType(literal: NumericLiteral | StringLiteral | BooleanLiteral): TSLiteralType; 1863export function tsExpressionWithTypeArguments(expression: TSEntityName, typeParameters?: TSTypeParameterInstantiation | null): TSExpressionWithTypeArguments; 1864export function tsInterfaceDeclaration(id: Identifier, typeParameters: TSTypeParameterDeclaration | null | undefined, _extends: Array<TSExpressionWithTypeArguments> | null | undefined, body: TSInterfaceBody): TSInterfaceDeclaration; 1865export function tsInterfaceBody(body: Array<TSTypeElement>): TSInterfaceBody; 1866export function tsTypeAliasDeclaration(id: Identifier, typeParameters: TSTypeParameterDeclaration | null | undefined, typeAnnotation: TSType): TSTypeAliasDeclaration; 1867export function tsAsExpression(expression: Expression, typeAnnotation: TSType): TSAsExpression; 1868export function tsTypeAssertion(typeAnnotation: TSType, expression: Expression): TSTypeAssertion; 1869export function tsEnumDeclaration(id: Identifier, members: Array<TSEnumMember>): TSEnumDeclaration; 1870export function tsEnumMember(id: Identifier | StringLiteral, initializer?: Expression | null): TSEnumMember; 1871export function tsModuleDeclaration(id: Identifier | StringLiteral, body: TSModuleBlock | TSModuleDeclaration): TSModuleDeclaration; 1872export function tsModuleBlock(body: Array<Statement>): TSModuleBlock; 1873export function tsImportType(argument: StringLiteral, qualifier?: TSEntityName | null, typeParameters?: TSTypeParameterInstantiation | null): TSImportType; 1874export function tsImportEqualsDeclaration(id: Identifier, moduleReference: TSEntityName | TSExternalModuleReference): TSImportEqualsDeclaration; 1875export function tsExternalModuleReference(expression: StringLiteral): TSExternalModuleReference; 1876export function tsNonNullExpression(expression: Expression): TSNonNullExpression; 1877export function tsExportAssignment(expression: Expression): TSExportAssignment; 1878export function tsNamespaceExportDeclaration(id: Identifier): TSNamespaceExportDeclaration; 1879export function tsTypeAnnotation(typeAnnotation: TSType): TSTypeAnnotation; 1880export function tsTypeParameterInstantiation(params: Array<TSType>): TSTypeParameterInstantiation; 1881export function tsTypeParameterDeclaration(params: Array<TSTypeParameter>): TSTypeParameterDeclaration; 1882export function tsTypeParameter(constraint: TSType | null | undefined, _default: TSType | null | undefined, name: string): TSTypeParameter; 1883export function isAnyTypeAnnotation(node: object | null | undefined, opts?: object | null): node is AnyTypeAnnotation; 1884// export function assertAnyTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is AnyTypeAnnotation; 1885export function isArgumentPlaceholder(node: object | null | undefined, opts?: object | null): node is ArgumentPlaceholder; 1886// export function assertArgumentPlaceholder(node: object | null | undefined, opts?: object | null): asserts node is ArgumentPlaceholder; 1887export function isArrayExpression(node: object | null | undefined, opts?: object | null): node is ArrayExpression; 1888// export function assertArrayExpression(node: object | null | undefined, opts?: object | null): asserts node is ArrayExpression; 1889export function isArrayPattern(node: object | null | undefined, opts?: object | null): node is ArrayPattern; 1890// export function assertArrayPattern(node: object | null | undefined, opts?: object | null): asserts node is ArrayPattern; 1891export function isArrayTypeAnnotation(node: object | null | undefined, opts?: object | null): node is ArrayTypeAnnotation; 1892// export function assertArrayTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is ArrayTypeAnnotation; 1893export function isArrowFunctionExpression(node: object | null | undefined, opts?: object | null): node is ArrowFunctionExpression; 1894// export function assertArrowFunctionExpression(node: object | null | undefined, opts?: object | null): asserts node is ArrowFunctionExpression; 1895export function isAssignmentExpression(node: object | null | undefined, opts?: object | null): node is AssignmentExpression; 1896// export function assertAssignmentExpression(node: object | null | undefined, opts?: object | null): asserts node is AssignmentExpression; 1897export function isAssignmentPattern(node: object | null | undefined, opts?: object | null): node is AssignmentPattern; 1898// export function assertAssignmentPattern(node: object | null | undefined, opts?: object | null): asserts node is AssignmentPattern; 1899export function isAwaitExpression(node: object | null | undefined, opts?: object | null): node is AwaitExpression; 1900// export function assertAwaitExpression(node: object | null | undefined, opts?: object | null): asserts node is AwaitExpression; 1901export function isBigIntLiteral(node: object | null | undefined, opts?: object | null): node is BigIntLiteral; 1902// export function assertBigIntLiteral(node: object | null | undefined, opts?: object | null): asserts node is BigIntLiteral; 1903export function isBinary(node: object | null | undefined, opts?: object | null): node is Binary; 1904// export function assertBinary(node: object | null | undefined, opts?: object | null): asserts node is Binary; 1905export function isBinaryExpression(node: object | null | undefined, opts?: object | null): node is BinaryExpression; 1906// export function assertBinaryExpression(node: object | null | undefined, opts?: object | null): asserts node is BinaryExpression; 1907export function isBindExpression(node: object | null | undefined, opts?: object | null): node is BindExpression; 1908// export function assertBindExpression(node: object | null | undefined, opts?: object | null): asserts node is BindExpression; 1909export function isBlock(node: object | null | undefined, opts?: object | null): node is Block; 1910// export function assertBlock(node: object | null | undefined, opts?: object | null): asserts node is Block; 1911export function isBlockParent(node: object | null | undefined, opts?: object | null): node is BlockParent; 1912// export function assertBlockParent(node: object | null | undefined, opts?: object | null): asserts node is BlockParent; 1913export function isBlockStatement(node: object | null | undefined, opts?: object | null): node is BlockStatement; 1914// export function assertBlockStatement(node: object | null | undefined, opts?: object | null): asserts node is BlockStatement; 1915export function isBooleanLiteral(node: object | null | undefined, opts?: object | null): node is BooleanLiteral; 1916// export function assertBooleanLiteral(node: object | null | undefined, opts?: object | null): asserts node is BooleanLiteral; 1917export function isBooleanLiteralTypeAnnotation(node: object | null | undefined, opts?: object | null): node is BooleanLiteralTypeAnnotation; 1918// export function assertBooleanLiteralTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is BooleanLiteralTypeAnnotation; 1919export function isBooleanTypeAnnotation(node: object | null | undefined, opts?: object | null): node is BooleanTypeAnnotation; 1920// export function assertBooleanTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is BooleanTypeAnnotation; 1921export function isBreakStatement(node: object | null | undefined, opts?: object | null): node is BreakStatement; 1922// export function assertBreakStatement(node: object | null | undefined, opts?: object | null): asserts node is BreakStatement; 1923export function isCallExpression(node: object | null | undefined, opts?: object | null): node is CallExpression; 1924// export function assertCallExpression(node: object | null | undefined, opts?: object | null): asserts node is CallExpression; 1925export function isCatchClause(node: object | null | undefined, opts?: object | null): node is CatchClause; 1926// export function assertCatchClause(node: object | null | undefined, opts?: object | null): asserts node is CatchClause; 1927export function isClass(node: object | null | undefined, opts?: object | null): node is Class; 1928// export function assertClass(node: object | null | undefined, opts?: object | null): asserts node is Class; 1929export function isClassBody(node: object | null | undefined, opts?: object | null): node is ClassBody; 1930// export function assertClassBody(node: object | null | undefined, opts?: object | null): asserts node is ClassBody; 1931export function isClassDeclaration(node: object | null | undefined, opts?: object | null): node is ClassDeclaration; 1932// export function assertClassDeclaration(node: object | null | undefined, opts?: object | null): asserts node is ClassDeclaration; 1933export function isClassExpression(node: object | null | undefined, opts?: object | null): node is ClassExpression; 1934// export function assertClassExpression(node: object | null | undefined, opts?: object | null): asserts node is ClassExpression; 1935export function isClassImplements(node: object | null | undefined, opts?: object | null): node is ClassImplements; 1936// export function assertClassImplements(node: object | null | undefined, opts?: object | null): asserts node is ClassImplements; 1937export function isClassMethod(node: object | null | undefined, opts?: object | null): node is ClassMethod; 1938// export function assertClassMethod(node: object | null | undefined, opts?: object | null): asserts node is ClassMethod; 1939export function isClassPrivateMethod(node: object | null | undefined, opts?: object | null): node is ClassPrivateMethod; 1940// export function assertClassPrivateMethod(node: object | null | undefined, opts?: object | null): asserts node is ClassPrivateMethod; 1941export function isClassPrivateProperty(node: object | null | undefined, opts?: object | null): node is ClassPrivateProperty; 1942// export function assertClassPrivateProperty(node: object | null | undefined, opts?: object | null): asserts node is ClassPrivateProperty; 1943export function isClassProperty(node: object | null | undefined, opts?: object | null): node is ClassProperty; 1944// export function assertClassProperty(node: object | null | undefined, opts?: object | null): asserts node is ClassProperty; 1945export function isCompletionStatement(node: object | null | undefined, opts?: object | null): node is CompletionStatement; 1946// export function assertCompletionStatement(node: object | null | undefined, opts?: object | null): asserts node is CompletionStatement; 1947export function isConditional(node: object | null | undefined, opts?: object | null): node is Conditional; 1948// export function assertConditional(node: object | null | undefined, opts?: object | null): asserts node is Conditional; 1949export function isConditionalExpression(node: object | null | undefined, opts?: object | null): node is ConditionalExpression; 1950// export function assertConditionalExpression(node: object | null | undefined, opts?: object | null): asserts node is ConditionalExpression; 1951export function isContinueStatement(node: object | null | undefined, opts?: object | null): node is ContinueStatement; 1952// export function assertContinueStatement(node: object | null | undefined, opts?: object | null): asserts node is ContinueStatement; 1953export function isDebuggerStatement(node: object | null | undefined, opts?: object | null): node is DebuggerStatement; 1954// export function assertDebuggerStatement(node: object | null | undefined, opts?: object | null): asserts node is DebuggerStatement; 1955export function isDeclaration(node: object | null | undefined, opts?: object | null): node is Declaration; 1956// export function assertDeclaration(node: object | null | undefined, opts?: object | null): asserts node is Declaration; 1957export function isDeclareClass(node: object | null | undefined, opts?: object | null): node is DeclareClass; 1958// export function assertDeclareClass(node: object | null | undefined, opts?: object | null): asserts node is DeclareClass; 1959export function isDeclareExportAllDeclaration(node: object | null | undefined, opts?: object | null): node is DeclareExportAllDeclaration; 1960// export function assertDeclareExportAllDeclaration(node: object | null | undefined, opts?: object | null): asserts node is DeclareExportAllDeclaration; 1961export function isDeclareExportDeclaration(node: object | null | undefined, opts?: object | null): node is DeclareExportDeclaration; 1962// export function assertDeclareExportDeclaration(node: object | null | undefined, opts?: object | null): asserts node is DeclareExportDeclaration; 1963export function isDeclareFunction(node: object | null | undefined, opts?: object | null): node is DeclareFunction; 1964// export function assertDeclareFunction(node: object | null | undefined, opts?: object | null): asserts node is DeclareFunction; 1965export function isDeclareInterface(node: object | null | undefined, opts?: object | null): node is DeclareInterface; 1966// export function assertDeclareInterface(node: object | null | undefined, opts?: object | null): asserts node is DeclareInterface; 1967export function isDeclareModule(node: object | null | undefined, opts?: object | null): node is DeclareModule; 1968// export function assertDeclareModule(node: object | null | undefined, opts?: object | null): asserts node is DeclareModule; 1969export function isDeclareModuleExports(node: object | null | undefined, opts?: object | null): node is DeclareModuleExports; 1970// export function assertDeclareModuleExports(node: object | null | undefined, opts?: object | null): asserts node is DeclareModuleExports; 1971export function isDeclareOpaqueType(node: object | null | undefined, opts?: object | null): node is DeclareOpaqueType; 1972// export function assertDeclareOpaqueType(node: object | null | undefined, opts?: object | null): asserts node is DeclareOpaqueType; 1973export function isDeclareTypeAlias(node: object | null | undefined, opts?: object | null): node is DeclareTypeAlias; 1974// export function assertDeclareTypeAlias(node: object | null | undefined, opts?: object | null): asserts node is DeclareTypeAlias; 1975export function isDeclareVariable(node: object | null | undefined, opts?: object | null): node is DeclareVariable; 1976// export function assertDeclareVariable(node: object | null | undefined, opts?: object | null): asserts node is DeclareVariable; 1977export function isDeclaredPredicate(node: object | null | undefined, opts?: object | null): node is DeclaredPredicate; 1978// export function assertDeclaredPredicate(node: object | null | undefined, opts?: object | null): asserts node is DeclaredPredicate; 1979export function isDecorator(node: object | null | undefined, opts?: object | null): node is Decorator; 1980// export function assertDecorator(node: object | null | undefined, opts?: object | null): asserts node is Decorator; 1981export function isDirective(node: object | null | undefined, opts?: object | null): node is Directive; 1982// export function assertDirective(node: object | null | undefined, opts?: object | null): asserts node is Directive; 1983export function isDirectiveLiteral(node: object | null | undefined, opts?: object | null): node is DirectiveLiteral; 1984// export function assertDirectiveLiteral(node: object | null | undefined, opts?: object | null): asserts node is DirectiveLiteral; 1985export function isDoExpression(node: object | null | undefined, opts?: object | null): node is DoExpression; 1986// export function assertDoExpression(node: object | null | undefined, opts?: object | null): asserts node is DoExpression; 1987export function isDoWhileStatement(node: object | null | undefined, opts?: object | null): node is DoWhileStatement; 1988// export function assertDoWhileStatement(node: object | null | undefined, opts?: object | null): asserts node is DoWhileStatement; 1989export function isEmptyStatement(node: object | null | undefined, opts?: object | null): node is EmptyStatement; 1990// export function assertEmptyStatement(node: object | null | undefined, opts?: object | null): asserts node is EmptyStatement; 1991export function isEmptyTypeAnnotation(node: object | null | undefined, opts?: object | null): node is EmptyTypeAnnotation; 1992// export function assertEmptyTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is EmptyTypeAnnotation; 1993export function isEnumBody(node: object | null | undefined, opts?: object | null): node is EnumBody; 1994// export function assertEnumBody(node: object | null | undefined, opts?: object | null): asserts node is EnumBody; 1995export function isEnumBooleanBody(node: object | null | undefined, opts?: object | null): node is EnumBooleanBody; 1996// export function assertEnumBooleanBody(node: object | null | undefined, opts?: object | null): asserts node is EnumBooleanBody; 1997export function isEnumBooleanMember(node: object | null | undefined, opts?: object | null): node is EnumBooleanMember; 1998// export function assertEnumBooleanMember(node: object | null | undefined, opts?: object | null): asserts node is EnumBooleanMember; 1999export function isEnumDeclaration(node: object | null | undefined, opts?: object | null): node is EnumDeclaration; 2000// export function assertEnumDeclaration(node: object | null | undefined, opts?: object | null): asserts node is EnumDeclaration; 2001export function isEnumDefaultedMember(node: object | null | undefined, opts?: object | null): node is EnumDefaultedMember; 2002// export function assertEnumDefaultedMember(node: object | null | undefined, opts?: object | null): asserts node is EnumDefaultedMember; 2003export function isEnumMember(node: object | null | undefined, opts?: object | null): node is EnumMember; 2004// export function assertEnumMember(node: object | null | undefined, opts?: object | null): asserts node is EnumMember; 2005export function isEnumNumberBody(node: object | null | undefined, opts?: object | null): node is EnumNumberBody; 2006// export function assertEnumNumberBody(node: object | null | undefined, opts?: object | null): asserts node is EnumNumberBody; 2007export function isEnumNumberMember(node: object | null | undefined, opts?: object | null): node is EnumNumberMember; 2008// export function assertEnumNumberMember(node: object | null | undefined, opts?: object | null): asserts node is EnumNumberMember; 2009export function isEnumStringBody(node: object | null | undefined, opts?: object | null): node is EnumStringBody; 2010// export function assertEnumStringBody(node: object | null | undefined, opts?: object | null): asserts node is EnumStringBody; 2011export function isEnumStringMember(node: object | null | undefined, opts?: object | null): node is EnumStringMember; 2012// export function assertEnumStringMember(node: object | null | undefined, opts?: object | null): asserts node is EnumStringMember; 2013export function isEnumSymbolBody(node: object | null | undefined, opts?: object | null): node is EnumSymbolBody; 2014// export function assertEnumSymbolBody(node: object | null | undefined, opts?: object | null): asserts node is EnumSymbolBody; 2015export function isExistsTypeAnnotation(node: object | null | undefined, opts?: object | null): node is ExistsTypeAnnotation; 2016// export function assertExistsTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is ExistsTypeAnnotation; 2017export function isExportAllDeclaration(node: object | null | undefined, opts?: object | null): node is ExportAllDeclaration; 2018// export function assertExportAllDeclaration(node: object | null | undefined, opts?: object | null): asserts node is ExportAllDeclaration; 2019export function isExportDeclaration(node: object | null | undefined, opts?: object | null): node is ExportDeclaration; 2020// export function assertExportDeclaration(node: object | null | undefined, opts?: object | null): asserts node is ExportDeclaration; 2021export function isExportDefaultDeclaration(node: object | null | undefined, opts?: object | null): node is ExportDefaultDeclaration; 2022// export function assertExportDefaultDeclaration(node: object | null | undefined, opts?: object | null): asserts node is ExportDefaultDeclaration; 2023export function isExportDefaultSpecifier(node: object | null | undefined, opts?: object | null): node is ExportDefaultSpecifier; 2024// export function assertExportDefaultSpecifier(node: object | null | undefined, opts?: object | null): asserts node is ExportDefaultSpecifier; 2025export function isExportNamedDeclaration(node: object | null | undefined, opts?: object | null): node is ExportNamedDeclaration; 2026// export function assertExportNamedDeclaration(node: object | null | undefined, opts?: object | null): asserts node is ExportNamedDeclaration; 2027export function isExportNamespaceSpecifier(node: object | null | undefined, opts?: object | null): node is ExportNamespaceSpecifier; 2028// export function assertExportNamespaceSpecifier(node: object | null | undefined, opts?: object | null): asserts node is ExportNamespaceSpecifier; 2029export function isExportSpecifier(node: object | null | undefined, opts?: object | null): node is ExportSpecifier; 2030// export function assertExportSpecifier(node: object | null | undefined, opts?: object | null): asserts node is ExportSpecifier; 2031export function isExpression(node: object | null | undefined, opts?: object | null): node is Expression; 2032// export function assertExpression(node: object | null | undefined, opts?: object | null): asserts node is Expression; 2033export function isExpressionStatement(node: object | null | undefined, opts?: object | null): node is ExpressionStatement; 2034// export function assertExpressionStatement(node: object | null | undefined, opts?: object | null): asserts node is ExpressionStatement; 2035export function isExpressionWrapper(node: object | null | undefined, opts?: object | null): node is ExpressionWrapper; 2036// export function assertExpressionWrapper(node: object | null | undefined, opts?: object | null): asserts node is ExpressionWrapper; 2037export function isFile(node: object | null | undefined, opts?: object | null): node is File; 2038// export function assertFile(node: object | null | undefined, opts?: object | null): asserts node is File; 2039export function isFlow(node: object | null | undefined, opts?: object | null): node is Flow; 2040// export function assertFlow(node: object | null | undefined, opts?: object | null): asserts node is Flow; 2041export function isFlowBaseAnnotation(node: object | null | undefined, opts?: object | null): node is FlowBaseAnnotation; 2042// export function assertFlowBaseAnnotation(node: object | null | undefined, opts?: object | null): asserts node is FlowBaseAnnotation; 2043export function isFlowDeclaration(node: object | null | undefined, opts?: object | null): node is FlowDeclaration; 2044// export function assertFlowDeclaration(node: object | null | undefined, opts?: object | null): asserts node is FlowDeclaration; 2045export function isFlowPredicate(node: object | null | undefined, opts?: object | null): node is FlowPredicate; 2046// export function assertFlowPredicate(node: object | null | undefined, opts?: object | null): asserts node is FlowPredicate; 2047export function isFlowType(node: object | null | undefined, opts?: object | null): node is FlowType; 2048// export function assertFlowType(node: object | null | undefined, opts?: object | null): asserts node is FlowType; 2049export function isFor(node: object | null | undefined, opts?: object | null): node is For; 2050// export function assertFor(node: object | null | undefined, opts?: object | null): asserts node is For; 2051export function isForInStatement(node: object | null | undefined, opts?: object | null): node is ForInStatement; 2052// export function assertForInStatement(node: object | null | undefined, opts?: object | null): asserts node is ForInStatement; 2053export function isForOfStatement(node: object | null | undefined, opts?: object | null): node is ForOfStatement; 2054// export function assertForOfStatement(node: object | null | undefined, opts?: object | null): asserts node is ForOfStatement; 2055export function isForStatement(node: object | null | undefined, opts?: object | null): node is ForStatement; 2056// export function assertForStatement(node: object | null | undefined, opts?: object | null): asserts node is ForStatement; 2057export function isForXStatement(node: object | null | undefined, opts?: object | null): node is ForXStatement; 2058// export function assertForXStatement(node: object | null | undefined, opts?: object | null): asserts node is ForXStatement; 2059export function isFunction(node: object | null | undefined, opts?: object | null): node is Function; 2060// export function assertFunction(node: object | null | undefined, opts?: object | null): asserts node is Function; 2061export function isFunctionDeclaration(node: object | null | undefined, opts?: object | null): node is FunctionDeclaration; 2062// export function assertFunctionDeclaration(node: object | null | undefined, opts?: object | null): asserts node is FunctionDeclaration; 2063export function isFunctionExpression(node: object | null | undefined, opts?: object | null): node is FunctionExpression; 2064// export function assertFunctionExpression(node: object | null | undefined, opts?: object | null): asserts node is FunctionExpression; 2065export function isFunctionParent(node: object | null | undefined, opts?: object | null): node is FunctionParent; 2066// export function assertFunctionParent(node: object | null | undefined, opts?: object | null): asserts node is FunctionParent; 2067export function isFunctionTypeAnnotation(node: object | null | undefined, opts?: object | null): node is FunctionTypeAnnotation; 2068// export function assertFunctionTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is FunctionTypeAnnotation; 2069export function isFunctionTypeParam(node: object | null | undefined, opts?: object | null): node is FunctionTypeParam; 2070// export function assertFunctionTypeParam(node: object | null | undefined, opts?: object | null): asserts node is FunctionTypeParam; 2071export function isGenericTypeAnnotation(node: object | null | undefined, opts?: object | null): node is GenericTypeAnnotation; 2072// export function assertGenericTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is GenericTypeAnnotation; 2073export function isIdentifier(node: object | null | undefined, opts?: object | null): node is Identifier; 2074// export function assertIdentifier(node: object | null | undefined, opts?: object | null): asserts node is Identifier; 2075export function isIfStatement(node: object | null | undefined, opts?: object | null): node is IfStatement; 2076// export function assertIfStatement(node: object | null | undefined, opts?: object | null): asserts node is IfStatement; 2077export function isImmutable(node: object | null | undefined, opts?: object | null): node is Immutable; 2078// export function assertImmutable(node: object | null | undefined, opts?: object | null): asserts node is Immutable; 2079export function isImport(node: object | null | undefined, opts?: object | null): node is Import; 2080// export function assertImport(node: object | null | undefined, opts?: object | null): asserts node is Import; 2081export function isImportDeclaration(node: object | null | undefined, opts?: object | null): node is ImportDeclaration; 2082// export function assertImportDeclaration(node: object | null | undefined, opts?: object | null): asserts node is ImportDeclaration; 2083export function isImportDefaultSpecifier(node: object | null | undefined, opts?: object | null): node is ImportDefaultSpecifier; 2084// export function assertImportDefaultSpecifier(node: object | null | undefined, opts?: object | null): asserts node is ImportDefaultSpecifier; 2085export function isImportNamespaceSpecifier(node: object | null | undefined, opts?: object | null): node is ImportNamespaceSpecifier; 2086// export function assertImportNamespaceSpecifier(node: object | null | undefined, opts?: object | null): asserts node is ImportNamespaceSpecifier; 2087export function isImportSpecifier(node: object | null | undefined, opts?: object | null): node is ImportSpecifier; 2088// export function assertImportSpecifier(node: object | null | undefined, opts?: object | null): asserts node is ImportSpecifier; 2089export function isInferredPredicate(node: object | null | undefined, opts?: object | null): node is InferredPredicate; 2090// export function assertInferredPredicate(node: object | null | undefined, opts?: object | null): asserts node is InferredPredicate; 2091export function isInterfaceDeclaration(node: object | null | undefined, opts?: object | null): node is InterfaceDeclaration; 2092// export function assertInterfaceDeclaration(node: object | null | undefined, opts?: object | null): asserts node is InterfaceDeclaration; 2093export function isInterfaceExtends(node: object | null | undefined, opts?: object | null): node is InterfaceExtends; 2094// export function assertInterfaceExtends(node: object | null | undefined, opts?: object | null): asserts node is InterfaceExtends; 2095export function isInterfaceTypeAnnotation(node: object | null | undefined, opts?: object | null): node is InterfaceTypeAnnotation; 2096// export function assertInterfaceTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is InterfaceTypeAnnotation; 2097export function isInterpreterDirective(node: object | null | undefined, opts?: object | null): node is InterpreterDirective; 2098// export function assertInterpreterDirective(node: object | null | undefined, opts?: object | null): asserts node is InterpreterDirective; 2099export function isIntersectionTypeAnnotation(node: object | null | undefined, opts?: object | null): node is IntersectionTypeAnnotation; 2100// export function assertIntersectionTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is IntersectionTypeAnnotation; 2101export function isJSX(node: object | null | undefined, opts?: object | null): node is JSX; 2102// export function assertJSX(node: object | null | undefined, opts?: object | null): asserts node is JSX; 2103export function isJSXAttribute(node: object | null | undefined, opts?: object | null): node is JSXAttribute; 2104// export function assertJSXAttribute(node: object | null | undefined, opts?: object | null): asserts node is JSXAttribute; 2105export function isJSXClosingElement(node: object | null | undefined, opts?: object | null): node is JSXClosingElement; 2106// export function assertJSXClosingElement(node: object | null | undefined, opts?: object | null): asserts node is JSXClosingElement; 2107export function isJSXClosingFragment(node: object | null | undefined, opts?: object | null): node is JSXClosingFragment; 2108// export function assertJSXClosingFragment(node: object | null | undefined, opts?: object | null): asserts node is JSXClosingFragment; 2109export function isJSXElement(node: object | null | undefined, opts?: object | null): node is JSXElement; 2110// export function assertJSXElement(node: object | null | undefined, opts?: object | null): asserts node is JSXElement; 2111export function isJSXEmptyExpression(node: object | null | undefined, opts?: object | null): node is JSXEmptyExpression; 2112// export function assertJSXEmptyExpression(node: object | null | undefined, opts?: object | null): asserts node is JSXEmptyExpression; 2113export function isJSXExpressionContainer(node: object | null | undefined, opts?: object | null): node is JSXExpressionContainer; 2114// export function assertJSXExpressionContainer(node: object | null | undefined, opts?: object | null): asserts node is JSXExpressionContainer; 2115export function isJSXFragment(node: object | null | undefined, opts?: object | null): node is JSXFragment; 2116// export function assertJSXFragment(node: object | null | undefined, opts?: object | null): asserts node is JSXFragment; 2117export function isJSXIdentifier(node: object | null | undefined, opts?: object | null): node is JSXIdentifier; 2118// export function assertJSXIdentifier(node: object | null | undefined, opts?: object | null): asserts node is JSXIdentifier; 2119export function isJSXMemberExpression(node: object | null | undefined, opts?: object | null): node is JSXMemberExpression; 2120// export function assertJSXMemberExpression(node: object | null | undefined, opts?: object | null): asserts node is JSXMemberExpression; 2121export function isJSXNamespacedName(node: object | null | undefined, opts?: object | null): node is JSXNamespacedName; 2122// export function assertJSXNamespacedName(node: object | null | undefined, opts?: object | null): asserts node is JSXNamespacedName; 2123export function isJSXOpeningElement(node: object | null | undefined, opts?: object | null): node is JSXOpeningElement; 2124// export function assertJSXOpeningElement(node: object | null | undefined, opts?: object | null): asserts node is JSXOpeningElement; 2125export function isJSXOpeningFragment(node: object | null | undefined, opts?: object | null): node is JSXOpeningFragment; 2126// export function assertJSXOpeningFragment(node: object | null | undefined, opts?: object | null): asserts node is JSXOpeningFragment; 2127export function isJSXSpreadAttribute(node: object | null | undefined, opts?: object | null): node is JSXSpreadAttribute; 2128// export function assertJSXSpreadAttribute(node: object | null | undefined, opts?: object | null): asserts node is JSXSpreadAttribute; 2129export function isJSXSpreadChild(node: object | null | undefined, opts?: object | null): node is JSXSpreadChild; 2130// export function assertJSXSpreadChild(node: object | null | undefined, opts?: object | null): asserts node is JSXSpreadChild; 2131export function isJSXText(node: object | null | undefined, opts?: object | null): node is JSXText; 2132// export function assertJSXText(node: object | null | undefined, opts?: object | null): asserts node is JSXText; 2133export function isLVal(node: object | null | undefined, opts?: object | null): node is LVal; 2134// export function assertLVal(node: object | null | undefined, opts?: object | null): asserts node is LVal; 2135export function isLabeledStatement(node: object | null | undefined, opts?: object | null): node is LabeledStatement; 2136// export function assertLabeledStatement(node: object | null | undefined, opts?: object | null): asserts node is LabeledStatement; 2137export function isLiteral(node: object | null | undefined, opts?: object | null): node is Literal; 2138// export function assertLiteral(node: object | null | undefined, opts?: object | null): asserts node is Literal; 2139export function isLogicalExpression(node: object | null | undefined, opts?: object | null): node is LogicalExpression; 2140// export function assertLogicalExpression(node: object | null | undefined, opts?: object | null): asserts node is LogicalExpression; 2141export function isLoop(node: object | null | undefined, opts?: object | null): node is Loop; 2142// export function assertLoop(node: object | null | undefined, opts?: object | null): asserts node is Loop; 2143export function isMemberExpression(node: object | null | undefined, opts?: object | null): node is MemberExpression; 2144// export function assertMemberExpression(node: object | null | undefined, opts?: object | null): asserts node is MemberExpression; 2145export function isMetaProperty(node: object | null | undefined, opts?: object | null): node is MetaProperty; 2146// export function assertMetaProperty(node: object | null | undefined, opts?: object | null): asserts node is MetaProperty; 2147export function isMethod(node: object | null | undefined, opts?: object | null): node is Method; 2148// export function assertMethod(node: object | null | undefined, opts?: object | null): asserts node is Method; 2149export function isMixedTypeAnnotation(node: object | null | undefined, opts?: object | null): node is MixedTypeAnnotation; 2150// export function assertMixedTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is MixedTypeAnnotation; 2151export function isModuleDeclaration(node: object | null | undefined, opts?: object | null): node is ModuleDeclaration; 2152// export function assertModuleDeclaration(node: object | null | undefined, opts?: object | null): asserts node is ModuleDeclaration; 2153export function isModuleSpecifier(node: object | null | undefined, opts?: object | null): node is ModuleSpecifier; 2154// export function assertModuleSpecifier(node: object | null | undefined, opts?: object | null): asserts node is ModuleSpecifier; 2155export function isNewExpression(node: object | null | undefined, opts?: object | null): node is NewExpression; 2156// export function assertNewExpression(node: object | null | undefined, opts?: object | null): asserts node is NewExpression; 2157export function isNoop(node: object | null | undefined, opts?: object | null): node is Noop; 2158// export function assertNoop(node: object | null | undefined, opts?: object | null): asserts node is Noop; 2159export function isNullLiteral(node: object | null | undefined, opts?: object | null): node is NullLiteral; 2160// export function assertNullLiteral(node: object | null | undefined, opts?: object | null): asserts node is NullLiteral; 2161export function isNullLiteralTypeAnnotation(node: object | null | undefined, opts?: object | null): node is NullLiteralTypeAnnotation; 2162// export function assertNullLiteralTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is NullLiteralTypeAnnotation; 2163export function isNullableTypeAnnotation(node: object | null | undefined, opts?: object | null): node is NullableTypeAnnotation; 2164// export function assertNullableTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is NullableTypeAnnotation; 2165export function isNumberLiteral(node: object | null | undefined, opts?: object | null): boolean; 2166// export function assertNumberLiteral(node: object | null | undefined, opts?: object | null): asserts node; 2167export function isNumberLiteralTypeAnnotation(node: object | null | undefined, opts?: object | null): node is NumberLiteralTypeAnnotation; 2168// export function assertNumberLiteralTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is NumberLiteralTypeAnnotation; 2169export function isNumberTypeAnnotation(node: object | null | undefined, opts?: object | null): node is NumberTypeAnnotation; 2170// export function assertNumberTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is NumberTypeAnnotation; 2171export function isNumericLiteral(node: object | null | undefined, opts?: object | null): node is NumericLiteral; 2172// export function assertNumericLiteral(node: object | null | undefined, opts?: object | null): asserts node is NumericLiteral; 2173export function isObjectExpression(node: object | null | undefined, opts?: object | null): node is ObjectExpression; 2174// export function assertObjectExpression(node: object | null | undefined, opts?: object | null): asserts node is ObjectExpression; 2175export function isObjectMember(node: object | null | undefined, opts?: object | null): node is ObjectMember; 2176// export function assertObjectMember(node: object | null | undefined, opts?: object | null): asserts node is ObjectMember; 2177export function isObjectMethod(node: object | null | undefined, opts?: object | null): node is ObjectMethod; 2178// export function assertObjectMethod(node: object | null | undefined, opts?: object | null): asserts node is ObjectMethod; 2179export function isObjectPattern(node: object | null | undefined, opts?: object | null): node is ObjectPattern; 2180// export function assertObjectPattern(node: object | null | undefined, opts?: object | null): asserts node is ObjectPattern; 2181export function isObjectProperty(node: object | null | undefined, opts?: object | null): node is ObjectProperty; 2182// export function assertObjectProperty(node: object | null | undefined, opts?: object | null): asserts node is ObjectProperty; 2183export function isObjectTypeAnnotation(node: object | null | undefined, opts?: object | null): node is ObjectTypeAnnotation; 2184// export function assertObjectTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is ObjectTypeAnnotation; 2185export function isObjectTypeCallProperty(node: object | null | undefined, opts?: object | null): node is ObjectTypeCallProperty; 2186// export function assertObjectTypeCallProperty(node: object | null | undefined, opts?: object | null): asserts node is ObjectTypeCallProperty; 2187export function isObjectTypeIndexer(node: object | null | undefined, opts?: object | null): node is ObjectTypeIndexer; 2188// export function assertObjectTypeIndexer(node: object | null | undefined, opts?: object | null): asserts node is ObjectTypeIndexer; 2189export function isObjectTypeInternalSlot(node: object | null | undefined, opts?: object | null): node is ObjectTypeInternalSlot; 2190// export function assertObjectTypeInternalSlot(node: object | null | undefined, opts?: object | null): asserts node is ObjectTypeInternalSlot; 2191export function isObjectTypeProperty(node: object | null | undefined, opts?: object | null): node is ObjectTypeProperty; 2192// export function assertObjectTypeProperty(node: object | null | undefined, opts?: object | null): asserts node is ObjectTypeProperty; 2193export function isObjectTypeSpreadProperty(node: object | null | undefined, opts?: object | null): node is ObjectTypeSpreadProperty; 2194// export function assertObjectTypeSpreadProperty(node: object | null | undefined, opts?: object | null): asserts node is ObjectTypeSpreadProperty; 2195export function isOpaqueType(node: object | null | undefined, opts?: object | null): node is OpaqueType; 2196// export function assertOpaqueType(node: object | null | undefined, opts?: object | null): asserts node is OpaqueType; 2197export function isOptionalCallExpression(node: object | null | undefined, opts?: object | null): node is OptionalCallExpression; 2198// export function assertOptionalCallExpression(node: object | null | undefined, opts?: object | null): asserts node is OptionalCallExpression; 2199export function isOptionalMemberExpression(node: object | null | undefined, opts?: object | null): node is OptionalMemberExpression; 2200// export function assertOptionalMemberExpression(node: object | null | undefined, opts?: object | null): asserts node is OptionalMemberExpression; 2201export function isParenthesizedExpression(node: object | null | undefined, opts?: object | null): node is ParenthesizedExpression; 2202// export function assertParenthesizedExpression(node: object | null | undefined, opts?: object | null): asserts node is ParenthesizedExpression; 2203export function isPattern(node: object | null | undefined, opts?: object | null): node is Pattern; 2204// export function assertPattern(node: object | null | undefined, opts?: object | null): asserts node is Pattern; 2205export function isPatternLike(node: object | null | undefined, opts?: object | null): node is PatternLike; 2206// export function assertPatternLike(node: object | null | undefined, opts?: object | null): asserts node is PatternLike; 2207export function isPipelineBareFunction(node: object | null | undefined, opts?: object | null): node is PipelineBareFunction; 2208// export function assertPipelineBareFunction(node: object | null | undefined, opts?: object | null): asserts node is PipelineBareFunction; 2209export function isPipelinePrimaryTopicReference(node: object | null | undefined, opts?: object | null): node is PipelinePrimaryTopicReference; 2210// export function assertPipelinePrimaryTopicReference(node: object | null | undefined, opts?: object | null): asserts node is PipelinePrimaryTopicReference; 2211export function isPipelineTopicExpression(node: object | null | undefined, opts?: object | null): node is PipelineTopicExpression; 2212// export function assertPipelineTopicExpression(node: object | null | undefined, opts?: object | null): asserts node is PipelineTopicExpression; 2213export function isPlaceholder(node: object | null | undefined, opts?: object | null): node is Placeholder; 2214// export function assertPlaceholder(node: object | null | undefined, opts?: object | null): asserts node is Placeholder; 2215export function isPrivate(node: object | null | undefined, opts?: object | null): node is Private; 2216// export function assertPrivate(node: object | null | undefined, opts?: object | null): asserts node is Private; 2217export function isPrivateName(node: object | null | undefined, opts?: object | null): node is PrivateName; 2218// export function assertPrivateName(node: object | null | undefined, opts?: object | null): asserts node is PrivateName; 2219export function isProgram(node: object | null | undefined, opts?: object | null): node is Program; 2220// export function assertProgram(node: object | null | undefined, opts?: object | null): asserts node is Program; 2221export function isProperty(node: object | null | undefined, opts?: object | null): node is Property; 2222// export function assertProperty(node: object | null | undefined, opts?: object | null): asserts node is Property; 2223export function isPureish(node: object | null | undefined, opts?: object | null): node is Pureish; 2224// export function assertPureish(node: object | null | undefined, opts?: object | null): asserts node is Pureish; 2225export function isQualifiedTypeIdentifier(node: object | null | undefined, opts?: object | null): node is QualifiedTypeIdentifier; 2226// export function assertQualifiedTypeIdentifier(node: object | null | undefined, opts?: object | null): asserts node is QualifiedTypeIdentifier; 2227export function isRecordExpression(node: object | null | undefined, opts?: object | null): node is RecordExpression; 2228// export function assertRecordExpression(node: object | null | undefined, opts?: object | null): asserts node is RecordExpression; 2229export function isRegExpLiteral(node: object | null | undefined, opts?: object | null): node is RegExpLiteral; 2230// export function assertRegExpLiteral(node: object | null | undefined, opts?: object | null): asserts node is RegExpLiteral; 2231export function isRegexLiteral(node: object | null | undefined, opts?: object | null): boolean; 2232// export function assertRegexLiteral(node: object | null | undefined, opts?: object | null): asserts node; 2233export function isRestElement(node: object | null | undefined, opts?: object | null): node is RestElement; 2234// export function assertRestElement(node: object | null | undefined, opts?: object | null): asserts node is RestElement; 2235export function isRestProperty(node: object | null | undefined, opts?: object | null): boolean; 2236// export function assertRestProperty(node: object | null | undefined, opts?: object | null): asserts node; 2237export function isReturnStatement(node: object | null | undefined, opts?: object | null): node is ReturnStatement; 2238// export function assertReturnStatement(node: object | null | undefined, opts?: object | null): asserts node is ReturnStatement; 2239export function isScopable(node: object | null | undefined, opts?: object | null): node is Scopable; 2240// export function assertScopable(node: object | null | undefined, opts?: object | null): asserts node is Scopable; 2241export function isSequenceExpression(node: object | null | undefined, opts?: object | null): node is SequenceExpression; 2242// export function assertSequenceExpression(node: object | null | undefined, opts?: object | null): asserts node is SequenceExpression; 2243export function isSpreadElement(node: object | null | undefined, opts?: object | null): node is SpreadElement; 2244// export function assertSpreadElement(node: object | null | undefined, opts?: object | null): asserts node is SpreadElement; 2245export function isSpreadProperty(node: object | null | undefined, opts?: object | null): boolean; 2246// export function assertSpreadProperty(node: object | null | undefined, opts?: object | null): asserts node; 2247export function isStatement(node: object | null | undefined, opts?: object | null): node is Statement; 2248// export function assertStatement(node: object | null | undefined, opts?: object | null): asserts node is Statement; 2249export function isStringLiteral(node: object | null | undefined, opts?: object | null): node is StringLiteral; 2250// export function assertStringLiteral(node: object | null | undefined, opts?: object | null): asserts node is StringLiteral; 2251export function isStringLiteralTypeAnnotation(node: object | null | undefined, opts?: object | null): node is StringLiteralTypeAnnotation; 2252// export function assertStringLiteralTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is StringLiteralTypeAnnotation; 2253export function isStringTypeAnnotation(node: object | null | undefined, opts?: object | null): node is StringTypeAnnotation; 2254// export function assertStringTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is StringTypeAnnotation; 2255export function isSuper(node: object | null | undefined, opts?: object | null): node is Super; 2256// export function assertSuper(node: object | null | undefined, opts?: object | null): asserts node is Super; 2257export function isSwitchCase(node: object | null | undefined, opts?: object | null): node is SwitchCase; 2258// export function assertSwitchCase(node: object | null | undefined, opts?: object | null): asserts node is SwitchCase; 2259export function isSwitchStatement(node: object | null | undefined, opts?: object | null): node is SwitchStatement; 2260// export function assertSwitchStatement(node: object | null | undefined, opts?: object | null): asserts node is SwitchStatement; 2261export function isSymbolTypeAnnotation(node: object | null | undefined, opts?: object | null): node is SymbolTypeAnnotation; 2262// export function assertSymbolTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is SymbolTypeAnnotation; 2263export function isTSAnyKeyword(node: object | null | undefined, opts?: object | null): node is TSAnyKeyword; 2264// export function assertTSAnyKeyword(node: object | null | undefined, opts?: object | null): asserts node is TSAnyKeyword; 2265export function isTSArrayType(node: object | null | undefined, opts?: object | null): node is TSArrayType; 2266// export function assertTSArrayType(node: object | null | undefined, opts?: object | null): asserts node is TSArrayType; 2267export function isTSAsExpression(node: object | null | undefined, opts?: object | null): node is TSAsExpression; 2268// export function assertTSAsExpression(node: object | null | undefined, opts?: object | null): asserts node is TSAsExpression; 2269export function isTSBigIntKeyword(node: object | null | undefined, opts?: object | null): node is TSBigIntKeyword; 2270// export function assertTSBigIntKeyword(node: object | null | undefined, opts?: object | null): asserts node is TSBigIntKeyword; 2271export function isTSBooleanKeyword(node: object | null | undefined, opts?: object | null): node is TSBooleanKeyword; 2272// export function assertTSBooleanKeyword(node: object | null | undefined, opts?: object | null): asserts node is TSBooleanKeyword; 2273export function isTSCallSignatureDeclaration(node: object | null | undefined, opts?: object | null): node is TSCallSignatureDeclaration; 2274// export function assertTSCallSignatureDeclaration(node: object | null | undefined, opts?: object | null): asserts node is TSCallSignatureDeclaration; 2275export function isTSConditionalType(node: object | null | undefined, opts?: object | null): node is TSConditionalType; 2276// export function assertTSConditionalType(node: object | null | undefined, opts?: object | null): asserts node is TSConditionalType; 2277export function isTSConstructSignatureDeclaration(node: object | null | undefined, opts?: object | null): node is TSConstructSignatureDeclaration; 2278// export function assertTSConstructSignatureDeclaration(node: object | null | undefined, opts?: object | null): asserts node is TSConstructSignatureDeclaration; 2279export function isTSConstructorType(node: object | null | undefined, opts?: object | null): node is TSConstructorType; 2280// export function assertTSConstructorType(node: object | null | undefined, opts?: object | null): asserts node is TSConstructorType; 2281export function isTSDeclareFunction(node: object | null | undefined, opts?: object | null): node is TSDeclareFunction; 2282// export function assertTSDeclareFunction(node: object | null | undefined, opts?: object | null): asserts node is TSDeclareFunction; 2283export function isTSDeclareMethod(node: object | null | undefined, opts?: object | null): node is TSDeclareMethod; 2284// export function assertTSDeclareMethod(node: object | null | undefined, opts?: object | null): asserts node is TSDeclareMethod; 2285export function isTSEntityName(node: object | null | undefined, opts?: object | null): node is TSEntityName; 2286// export function assertTSEntityName(node: object | null | undefined, opts?: object | null): asserts node is TSEntityName; 2287export function isTSEnumDeclaration(node: object | null | undefined, opts?: object | null): node is TSEnumDeclaration; 2288// export function assertTSEnumDeclaration(node: object | null | undefined, opts?: object | null): asserts node is TSEnumDeclaration; 2289export function isTSEnumMember(node: object | null | undefined, opts?: object | null): node is TSEnumMember; 2290// export function assertTSEnumMember(node: object | null | undefined, opts?: object | null): asserts node is TSEnumMember; 2291export function isTSExportAssignment(node: object | null | undefined, opts?: object | null): node is TSExportAssignment; 2292// export function assertTSExportAssignment(node: object | null | undefined, opts?: object | null): asserts node is TSExportAssignment; 2293export function isTSExpressionWithTypeArguments(node: object | null | undefined, opts?: object | null): node is TSExpressionWithTypeArguments; 2294// export function assertTSExpressionWithTypeArguments(node: object | null | undefined, opts?: object | null): asserts node is TSExpressionWithTypeArguments; 2295export function isTSExternalModuleReference(node: object | null | undefined, opts?: object | null): node is TSExternalModuleReference; 2296// export function assertTSExternalModuleReference(node: object | null | undefined, opts?: object | null): asserts node is TSExternalModuleReference; 2297export function isTSFunctionType(node: object | null | undefined, opts?: object | null): node is TSFunctionType; 2298// export function assertTSFunctionType(node: object | null | undefined, opts?: object | null): asserts node is TSFunctionType; 2299export function isTSImportEqualsDeclaration(node: object | null | undefined, opts?: object | null): node is TSImportEqualsDeclaration; 2300// export function assertTSImportEqualsDeclaration(node: object | null | undefined, opts?: object | null): asserts node is TSImportEqualsDeclaration; 2301export function isTSImportType(node: object | null | undefined, opts?: object | null): node is TSImportType; 2302// export function assertTSImportType(node: object | null | undefined, opts?: object | null): asserts node is TSImportType; 2303export function isTSIndexSignature(node: object | null | undefined, opts?: object | null): node is TSIndexSignature; 2304// export function assertTSIndexSignature(node: object | null | undefined, opts?: object | null): asserts node is TSIndexSignature; 2305export function isTSIndexedAccessType(node: object | null | undefined, opts?: object | null): node is TSIndexedAccessType; 2306// export function assertTSIndexedAccessType(node: object | null | undefined, opts?: object | null): asserts node is TSIndexedAccessType; 2307export function isTSInferType(node: object | null | undefined, opts?: object | null): node is TSInferType; 2308// export function assertTSInferType(node: object | null | undefined, opts?: object | null): asserts node is TSInferType; 2309export function isTSInterfaceBody(node: object | null | undefined, opts?: object | null): node is TSInterfaceBody; 2310// export function assertTSInterfaceBody(node: object | null | undefined, opts?: object | null): asserts node is TSInterfaceBody; 2311export function isTSInterfaceDeclaration(node: object | null | undefined, opts?: object | null): node is TSInterfaceDeclaration; 2312// export function assertTSInterfaceDeclaration(node: object | null | undefined, opts?: object | null): asserts node is TSInterfaceDeclaration; 2313export function isTSIntersectionType(node: object | null | undefined, opts?: object | null): node is TSIntersectionType; 2314// export function assertTSIntersectionType(node: object | null | undefined, opts?: object | null): asserts node is TSIntersectionType; 2315export function isTSLiteralType(node: object | null | undefined, opts?: object | null): node is TSLiteralType; 2316// export function assertTSLiteralType(node: object | null | undefined, opts?: object | null): asserts node is TSLiteralType; 2317export function isTSMappedType(node: object | null | undefined, opts?: object | null): node is TSMappedType; 2318// export function assertTSMappedType(node: object | null | undefined, opts?: object | null): asserts node is TSMappedType; 2319export function isTSMethodSignature(node: object | null | undefined, opts?: object | null): node is TSMethodSignature; 2320// export function assertTSMethodSignature(node: object | null | undefined, opts?: object | null): asserts node is TSMethodSignature; 2321export function isTSModuleBlock(node: object | null | undefined, opts?: object | null): node is TSModuleBlock; 2322// export function assertTSModuleBlock(node: object | null | undefined, opts?: object | null): asserts node is TSModuleBlock; 2323export function isTSModuleDeclaration(node: object | null | undefined, opts?: object | null): node is TSModuleDeclaration; 2324// export function assertTSModuleDeclaration(node: object | null | undefined, opts?: object | null): asserts node is TSModuleDeclaration; 2325export function isTSNamespaceExportDeclaration(node: object | null | undefined, opts?: object | null): node is TSNamespaceExportDeclaration; 2326// export function assertTSNamespaceExportDeclaration(node: object | null | undefined, opts?: object | null): asserts node is TSNamespaceExportDeclaration; 2327export function isTSNeverKeyword(node: object | null | undefined, opts?: object | null): node is TSNeverKeyword; 2328// export function assertTSNeverKeyword(node: object | null | undefined, opts?: object | null): asserts node is TSNeverKeyword; 2329export function isTSNonNullExpression(node: object | null | undefined, opts?: object | null): node is TSNonNullExpression; 2330// export function assertTSNonNullExpression(node: object | null | undefined, opts?: object | null): asserts node is TSNonNullExpression; 2331export function isTSNullKeyword(node: object | null | undefined, opts?: object | null): node is TSNullKeyword; 2332// export function assertTSNullKeyword(node: object | null | undefined, opts?: object | null): asserts node is TSNullKeyword; 2333export function isTSNumberKeyword(node: object | null | undefined, opts?: object | null): node is TSNumberKeyword; 2334// export function assertTSNumberKeyword(node: object | null | undefined, opts?: object | null): asserts node is TSNumberKeyword; 2335export function isTSObjectKeyword(node: object | null | undefined, opts?: object | null): node is TSObjectKeyword; 2336// export function assertTSObjectKeyword(node: object | null | undefined, opts?: object | null): asserts node is TSObjectKeyword; 2337export function isTSOptionalType(node: object | null | undefined, opts?: object | null): node is TSOptionalType; 2338// export function assertTSOptionalType(node: object | null | undefined, opts?: object | null): asserts node is TSOptionalType; 2339export function isTSParameterProperty(node: object | null | undefined, opts?: object | null): node is TSParameterProperty; 2340// export function assertTSParameterProperty(node: object | null | undefined, opts?: object | null): asserts node is TSParameterProperty; 2341export function isTSParenthesizedType(node: object | null | undefined, opts?: object | null): node is TSParenthesizedType; 2342// export function assertTSParenthesizedType(node: object | null | undefined, opts?: object | null): asserts node is TSParenthesizedType; 2343export function isTSPropertySignature(node: object | null | undefined, opts?: object | null): node is TSPropertySignature; 2344// export function assertTSPropertySignature(node: object | null | undefined, opts?: object | null): asserts node is TSPropertySignature; 2345export function isTSQualifiedName(node: object | null | undefined, opts?: object | null): node is TSQualifiedName; 2346// export function assertTSQualifiedName(node: object | null | undefined, opts?: object | null): asserts node is TSQualifiedName; 2347export function isTSRestType(node: object | null | undefined, opts?: object | null): node is TSRestType; 2348// export function assertTSRestType(node: object | null | undefined, opts?: object | null): asserts node is TSRestType; 2349export function isTSStringKeyword(node: object | null | undefined, opts?: object | null): node is TSStringKeyword; 2350// export function assertTSStringKeyword(node: object | null | undefined, opts?: object | null): asserts node is TSStringKeyword; 2351export function isTSSymbolKeyword(node: object | null | undefined, opts?: object | null): node is TSSymbolKeyword; 2352// export function assertTSSymbolKeyword(node: object | null | undefined, opts?: object | null): asserts node is TSSymbolKeyword; 2353export function isTSThisType(node: object | null | undefined, opts?: object | null): node is TSThisType; 2354// export function assertTSThisType(node: object | null | undefined, opts?: object | null): asserts node is TSThisType; 2355export function isTSTupleType(node: object | null | undefined, opts?: object | null): node is TSTupleType; 2356// export function assertTSTupleType(node: object | null | undefined, opts?: object | null): asserts node is TSTupleType; 2357export function isTSType(node: object | null | undefined, opts?: object | null): node is TSType; 2358// export function assertTSType(node: object | null | undefined, opts?: object | null): asserts node is TSType; 2359export function isTSTypeAliasDeclaration(node: object | null | undefined, opts?: object | null): node is TSTypeAliasDeclaration; 2360// export function assertTSTypeAliasDeclaration(node: object | null | undefined, opts?: object | null): asserts node is TSTypeAliasDeclaration; 2361export function isTSTypeAnnotation(node: object | null | undefined, opts?: object | null): node is TSTypeAnnotation; 2362// export function assertTSTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is TSTypeAnnotation; 2363export function isTSTypeAssertion(node: object | null | undefined, opts?: object | null): node is TSTypeAssertion; 2364// export function assertTSTypeAssertion(node: object | null | undefined, opts?: object | null): asserts node is TSTypeAssertion; 2365export function isTSTypeElement(node: object | null | undefined, opts?: object | null): node is TSTypeElement; 2366// export function assertTSTypeElement(node: object | null | undefined, opts?: object | null): asserts node is TSTypeElement; 2367export function isTSTypeLiteral(node: object | null | undefined, opts?: object | null): node is TSTypeLiteral; 2368// export function assertTSTypeLiteral(node: object | null | undefined, opts?: object | null): asserts node is TSTypeLiteral; 2369export function isTSTypeOperator(node: object | null | undefined, opts?: object | null): node is TSTypeOperator; 2370// export function assertTSTypeOperator(node: object | null | undefined, opts?: object | null): asserts node is TSTypeOperator; 2371export function isTSTypeParameter(node: object | null | undefined, opts?: object | null): node is TSTypeParameter; 2372// export function assertTSTypeParameter(node: object | null | undefined, opts?: object | null): asserts node is TSTypeParameter; 2373export function isTSTypeParameterDeclaration(node: object | null | undefined, opts?: object | null): node is TSTypeParameterDeclaration; 2374// export function assertTSTypeParameterDeclaration(node: object | null | undefined, opts?: object | null): asserts node is TSTypeParameterDeclaration; 2375export function isTSTypeParameterInstantiation(node: object | null | undefined, opts?: object | null): node is TSTypeParameterInstantiation; 2376// export function assertTSTypeParameterInstantiation(node: object | null | undefined, opts?: object | null): asserts node is TSTypeParameterInstantiation; 2377export function isTSTypePredicate(node: object | null | undefined, opts?: object | null): node is TSTypePredicate; 2378// export function assertTSTypePredicate(node: object | null | undefined, opts?: object | null): asserts node is TSTypePredicate; 2379export function isTSTypeQuery(node: object | null | undefined, opts?: object | null): node is TSTypeQuery; 2380// export function assertTSTypeQuery(node: object | null | undefined, opts?: object | null): asserts node is TSTypeQuery; 2381export function isTSTypeReference(node: object | null | undefined, opts?: object | null): node is TSTypeReference; 2382// export function assertTSTypeReference(node: object | null | undefined, opts?: object | null): asserts node is TSTypeReference; 2383export function isTSUndefinedKeyword(node: object | null | undefined, opts?: object | null): node is TSUndefinedKeyword; 2384// export function assertTSUndefinedKeyword(node: object | null | undefined, opts?: object | null): asserts node is TSUndefinedKeyword; 2385export function isTSUnionType(node: object | null | undefined, opts?: object | null): node is TSUnionType; 2386// export function assertTSUnionType(node: object | null | undefined, opts?: object | null): asserts node is TSUnionType; 2387export function isTSUnknownKeyword(node: object | null | undefined, opts?: object | null): node is TSUnknownKeyword; 2388// export function assertTSUnknownKeyword(node: object | null | undefined, opts?: object | null): asserts node is TSUnknownKeyword; 2389export function isTSVoidKeyword(node: object | null | undefined, opts?: object | null): node is TSVoidKeyword; 2390// export function assertTSVoidKeyword(node: object | null | undefined, opts?: object | null): asserts node is TSVoidKeyword; 2391export function isTaggedTemplateExpression(node: object | null | undefined, opts?: object | null): node is TaggedTemplateExpression; 2392// export function assertTaggedTemplateExpression(node: object | null | undefined, opts?: object | null): asserts node is TaggedTemplateExpression; 2393export function isTemplateElement(node: object | null | undefined, opts?: object | null): node is TemplateElement; 2394// export function assertTemplateElement(node: object | null | undefined, opts?: object | null): asserts node is TemplateElement; 2395export function isTemplateLiteral(node: object | null | undefined, opts?: object | null): node is TemplateLiteral; 2396// export function assertTemplateLiteral(node: object | null | undefined, opts?: object | null): asserts node is TemplateLiteral; 2397export function isTerminatorless(node: object | null | undefined, opts?: object | null): node is Terminatorless; 2398// export function assertTerminatorless(node: object | null | undefined, opts?: object | null): asserts node is Terminatorless; 2399export function isThisExpression(node: object | null | undefined, opts?: object | null): node is ThisExpression; 2400// export function assertThisExpression(node: object | null | undefined, opts?: object | null): asserts node is ThisExpression; 2401export function isThisTypeAnnotation(node: object | null | undefined, opts?: object | null): node is ThisTypeAnnotation; 2402// export function assertThisTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is ThisTypeAnnotation; 2403export function isThrowStatement(node: object | null | undefined, opts?: object | null): node is ThrowStatement; 2404// export function assertThrowStatement(node: object | null | undefined, opts?: object | null): asserts node is ThrowStatement; 2405export function isTryStatement(node: object | null | undefined, opts?: object | null): node is TryStatement; 2406// export function assertTryStatement(node: object | null | undefined, opts?: object | null): asserts node is TryStatement; 2407export function isTupleExpression(node: object | null | undefined, opts?: object | null): node is TupleExpression; 2408// export function assertTupleExpression(node: object | null | undefined, opts?: object | null): asserts node is TupleExpression; 2409export function isTupleTypeAnnotation(node: object | null | undefined, opts?: object | null): node is TupleTypeAnnotation; 2410// export function assertTupleTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is TupleTypeAnnotation; 2411export function isTypeAlias(node: object | null | undefined, opts?: object | null): node is TypeAlias; 2412// export function assertTypeAlias(node: object | null | undefined, opts?: object | null): asserts node is TypeAlias; 2413export function isTypeAnnotation(node: object | null | undefined, opts?: object | null): node is TypeAnnotation; 2414// export function assertTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is TypeAnnotation; 2415export function isTypeCastExpression(node: object | null | undefined, opts?: object | null): node is TypeCastExpression; 2416// export function assertTypeCastExpression(node: object | null | undefined, opts?: object | null): asserts node is TypeCastExpression; 2417export function isTypeParameter(node: object | null | undefined, opts?: object | null): node is TypeParameter; 2418// export function assertTypeParameter(node: object | null | undefined, opts?: object | null): asserts node is TypeParameter; 2419export function isTypeParameterDeclaration(node: object | null | undefined, opts?: object | null): node is TypeParameterDeclaration; 2420// export function assertTypeParameterDeclaration(node: object | null | undefined, opts?: object | null): asserts node is TypeParameterDeclaration; 2421export function isTypeParameterInstantiation(node: object | null | undefined, opts?: object | null): node is TypeParameterInstantiation; 2422// export function assertTypeParameterInstantiation(node: object | null | undefined, opts?: object | null): asserts node is TypeParameterInstantiation; 2423export function isTypeofTypeAnnotation(node: object | null | undefined, opts?: object | null): node is TypeofTypeAnnotation; 2424// export function assertTypeofTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is TypeofTypeAnnotation; 2425export function isUnaryExpression(node: object | null | undefined, opts?: object | null): node is UnaryExpression; 2426// export function assertUnaryExpression(node: object | null | undefined, opts?: object | null): asserts node is UnaryExpression; 2427export function isUnaryLike(node: object | null | undefined, opts?: object | null): node is UnaryLike; 2428// export function assertUnaryLike(node: object | null | undefined, opts?: object | null): asserts node is UnaryLike; 2429export function isUnionTypeAnnotation(node: object | null | undefined, opts?: object | null): node is UnionTypeAnnotation; 2430// export function assertUnionTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is UnionTypeAnnotation; 2431export function isUpdateExpression(node: object | null | undefined, opts?: object | null): node is UpdateExpression; 2432// export function assertUpdateExpression(node: object | null | undefined, opts?: object | null): asserts node is UpdateExpression; 2433export function isUserWhitespacable(node: object | null | undefined, opts?: object | null): node is UserWhitespacable; 2434// export function assertUserWhitespacable(node: object | null | undefined, opts?: object | null): asserts node is UserWhitespacable; 2435export function isV8IntrinsicIdentifier(node: object | null | undefined, opts?: object | null): node is V8IntrinsicIdentifier; 2436// export function assertV8IntrinsicIdentifier(node: object | null | undefined, opts?: object | null): asserts node is V8IntrinsicIdentifier; 2437export function isVariableDeclaration(node: object | null | undefined, opts?: object | null): node is VariableDeclaration; 2438// export function assertVariableDeclaration(node: object | null | undefined, opts?: object | null): asserts node is VariableDeclaration; 2439export function isVariableDeclarator(node: object | null | undefined, opts?: object | null): node is VariableDeclarator; 2440// export function assertVariableDeclarator(node: object | null | undefined, opts?: object | null): asserts node is VariableDeclarator; 2441export function isVariance(node: object | null | undefined, opts?: object | null): node is Variance; 2442// export function assertVariance(node: object | null | undefined, opts?: object | null): asserts node is Variance; 2443export function isVoidTypeAnnotation(node: object | null | undefined, opts?: object | null): node is VoidTypeAnnotation; 2444// export function assertVoidTypeAnnotation(node: object | null | undefined, opts?: object | null): asserts node is VoidTypeAnnotation; 2445export function isWhile(node: object | null | undefined, opts?: object | null): node is While; 2446// export function assertWhile(node: object | null | undefined, opts?: object | null): asserts node is While; 2447export function isWhileStatement(node: object | null | undefined, opts?: object | null): node is WhileStatement; 2448// export function assertWhileStatement(node: object | null | undefined, opts?: object | null): asserts node is WhileStatement; 2449export function isWithStatement(node: object | null | undefined, opts?: object | null): node is WithStatement; 2450// export function assertWithStatement(node: object | null | undefined, opts?: object | null): asserts node is WithStatement; 2451export function isYieldExpression(node: object | null | undefined, opts?: object | null): node is YieldExpression; 2452// export function assertYieldExpression(node: object | null | undefined, opts?: object | null): asserts node is YieldExpression; 2453// export function assertNode(obj: any): asserts obj is Node 2454export function createTypeAnnotationBasedOnTypeof(type: 'string' | 'number' | 'undefined' | 'boolean' | 'function' | 'object' | 'symbol'): StringTypeAnnotation | VoidTypeAnnotation | NumberTypeAnnotation | BooleanTypeAnnotation | GenericTypeAnnotation 2455export function createUnionTypeAnnotation<T extends FlowType>(types: [T]): T 2456export function createUnionTypeAnnotation(types: ReadonlyArray<FlowType>): UnionTypeAnnotation 2457export function buildChildren(node: { children: ReadonlyArray<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment | JSXEmptyExpression> }): JSXElement['children'] 2458export function clone<T extends Node>(n: T): T; 2459export function cloneDeep<T extends Node>(n: T): T; 2460export function cloneDeepWithoutLoc<T extends Node>(n: T): T; 2461export function cloneNode<T extends Node>(n: T, deep?: boolean, withoutLoc?: boolean): T; 2462export function cloneWithoutLoc<T extends Node>(n: T): T; 2463export type CommentTypeShorthand = 'leading' | 'inner' | 'trailing' 2464export function addComment<T extends Node>(node: T, type: CommentTypeShorthand, content: string, line?: boolean): T 2465export function addComments<T extends Node>(node: T, type: CommentTypeShorthand, comments: ReadonlyArray<Comment>): T 2466export function inheritInnerComments(node: Node, parent: Node): void 2467export function inheritLeadingComments(node: Node, parent: Node): void 2468export function inheritsComments<T extends Node>(node: T, parent: Node): void 2469export function inheritTrailingComments(node: Node, parent: Node): void 2470export function removeComments<T extends Node>(node: T): T 2471export function ensureBlock(node: Extract<Node, { body: BlockStatement | Statement | Expression }>): BlockStatement 2472export function ensureBlock<K extends keyof Extract<Node, { body: BlockStatement | Statement | Expression }> = 'body'>(node: Extract<Node, Record<K, BlockStatement | Statement | Expression>>, key: K): BlockStatement 2473export function toBindingIdentifierName(name: { toString(): string } | null | undefined): string 2474export function toBlock(node: Statement | Expression, parent?: Function | null): BlockStatement 2475export function toComputedKey<T extends Extract<Node, { computed: boolean | null }>>(node: T, key?: Expression | Identifier): Expression 2476export function toExpression(node: Function): FunctionExpression 2477export function toExpression(node: Class): ClassExpression 2478export function toExpression(node: ExpressionStatement | Expression | Class | Function): Expression 2479export function toIdentifier(name: { toString(): string } | null | undefined): string 2480export function toKeyAlias(node: Method | Property, key?: Node): string 2481export function toSequenceExpression(nodes: ReadonlyArray<Node>, scope: { push(value: { id: LVal; kind: 'var'; init?: Expression}): void; buildUndefinedNode(): Node }): SequenceExpression | undefined 2482export function toStatement(node: AssignmentExpression, ignore?: boolean): ExpressionStatement 2483export function toStatement(node: Statement | AssignmentExpression, ignore?: boolean): Statement 2484export function toStatement(node: Class, ignore: true): ClassDeclaration | undefined 2485export function toStatement(node: Class, ignore?: boolean): ClassDeclaration 2486export function toStatement(node: Function, ignore: true): FunctionDeclaration | undefined 2487export function toStatement(node: Function, ignore?: boolean): FunctionDeclaration 2488export function toStatement(node: Statement | Class | Function | AssignmentExpression, ignore: true): Statement | undefined 2489export function toStatement(node: Statement | Class | Function | AssignmentExpression, ignore?: boolean): Statement 2490export function valueToNode(value: undefined): Identifier 2491export function valueToNode(value: boolean): BooleanLiteral 2492export function valueToNode(value: null): NullLiteral 2493export function valueToNode(value: string): StringLiteral 2494export function valueToNode(value: number): NumericLiteral | BinaryExpression | UnaryExpression 2495export function valueToNode(value: RegExp): RegExpLiteral 2496export function valueToNode(value: ReadonlyArray<undefined | boolean | null | string | number | RegExp | object>): ArrayExpression 2497export function valueToNode(value: object): ObjectExpression 2498export function valueToNode(value: undefined | boolean | null | string | number | RegExp | object): Expression 2499export function removeTypeDuplicates(types: ReadonlyArray<FlowType | false | null | undefined>): FlowType[] 2500export function appendToMemberExpression<T extends Pick<MemberExpression, 'object' | 'property'>>(member: T, append: MemberExpression['property'], computed?: boolean): T 2501export function inherits<T extends Node | null | undefined>(child: T, parent: Node | null | undefined): T 2502export function prependToMemberExpression<T extends Pick<MemberExpression, 'object' | 'property'>>(member: T, prepend: MemberExpression['object']): T 2503export function removeProperties( 2504 n: Node, 2505 opts?: { preserveComments: boolean } | null 2506): void; 2507export function removePropertiesDeep<T extends Node>( 2508 n: T, 2509 opts?: { preserveComments: boolean } | null 2510): T; 2511export function getBindingIdentifiers(node: Node, duplicates: true, outerOnly?: boolean): Record<string, Array<Identifier>> 2512export function getBindingIdentifiers(node: Node, duplicates?: false, outerOnly?: boolean): Record<string, Identifier> 2513export function getBindingIdentifiers(node: Node, duplicates: boolean, outerOnly?: boolean): Record<string, Identifier | Array<Identifier>> 2514export function getOuterBindingIdentifiers(node: Node, duplicates: true): Record<string, Array<Identifier>> 2515export function getOuterBindingIdentifiers(node: Node, duplicates?: false): Record<string, Identifier> 2516export function getOuterBindingIdentifiers(node: Node, duplicates: boolean): Record<string, Identifier | Array<Identifier>> 2517export type TraversalAncestors = ReadonlyArray<{ 2518 node: Node, 2519 key: string, 2520 index?: number, 2521}>; 2522export type TraversalHandler<T> = ( 2523 this: undefined, node: Node, parent: TraversalAncestors, type: T 2524) => void; 2525export type TraversalHandlers<T> = { 2526 enter?: TraversalHandler<T>, 2527 exit?: TraversalHandler<T>, 2528}; 2529export function traverse<T>(n: Node, h: TraversalHandler<T> | TraversalHandlers<T>, state?: T): void; 2530export function traverseFast<T>(n: Node, h: TraversalHandler<T>, state?: T): void; 2531export function shallowEqual<T extends object>(actual: object, expected: T): actual is T 2532export function buildMatchMemberExpression(match: string, allowPartial?: boolean): (node: Node | null | undefined) => node is MemberExpression 2533export function is<T extends Node['type']>(type: T, n: Node | null | undefined, required?: undefined): n is Extract<Node, { type: T }> 2534export function is<T extends Node['type'], P extends Extract<Node, { type: T }>>(type: T, n: Node | null | undefined, required: Partial<P>): n is P 2535export function is<P extends Node>(type: string, n: Node | null | undefined, required: Partial<P>): n is P 2536export function is(type: string, n: Node | null | undefined, required?: Partial<Node>): n is Node 2537export function isBinding(node: Node, parent: Node, grandparent?: Node): boolean 2538export function isBlockScoped(node: Node): node is FunctionDeclaration | ClassDeclaration | VariableDeclaration 2539export function isImmutable(node: Node): node is Immutable 2540export function isLet(node: Node): node is VariableDeclaration 2541export function isNode(node: object | null | undefined): node is Node 2542export function isNodesEquivalent<T extends Partial<Node>>(a: T, b: any): b is T 2543export function isNodesEquivalent(a: any, b: any): boolean 2544export function isPlaceholderType(placeholderType: Node['type'], targetType: Node['type']): boolean 2545export function isReferenced(node: Node, parent: Node, grandparent?: Node): boolean 2546export function isScope(node: Node, parent: Node): node is Scopable 2547export function isSpecifierDefault(specifier: ModuleSpecifier): boolean 2548export function isType<T extends Node['type']>(nodetype: string, targetType: T): nodetype is T 2549export function isType(nodetype: string | null | undefined, targetType: string): boolean 2550export function isValidES3Identifier(name: string): boolean 2551export function isValidIdentifier(name: string): boolean 2552export function isVar(node: Node): node is VariableDeclaration 2553export function matchesPattern(node: Node | null | undefined, match: string | ReadonlyArray<string>, allowPartial?: boolean): node is MemberExpression 2554export function validate<T extends Node, K extends keyof T>(n: Node | null | undefined, key: K, value: T[K]): void 2555export function validate(n: Node, key: string, value: any): void; 2556