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