UNPKG

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