UNPKG

87.6 kBTypeScriptView Raw
1import { Omit } from "../types";
2import { Type } from "../lib/types";
3import * as K from "./kinds";
4export declare namespace namedTypes {
5 interface Printable {
6 loc?: K.SourceLocationKind | null;
7 }
8 interface SourceLocation {
9 start: K.PositionKind;
10 end: K.PositionKind;
11 source?: string | null;
12 }
13 interface Node extends Printable {
14 type: string;
15 comments?: K.CommentKind[] | null;
16 }
17 interface Comment extends Printable {
18 value: string;
19 leading?: boolean;
20 trailing?: boolean;
21 }
22 interface Position {
23 line: number;
24 column: number;
25 }
26 interface File extends Omit<Node, "type"> {
27 type: "File";
28 program: K.ProgramKind;
29 name?: string | null;
30 }
31 interface Program extends Omit<Node, "type"> {
32 type: "Program";
33 body: K.StatementKind[];
34 directives?: K.DirectiveKind[];
35 interpreter?: K.InterpreterDirectiveKind | null;
36 }
37 interface Statement extends Node {
38 }
39 interface Function extends Node {
40 id?: K.IdentifierKind | null;
41 params: K.PatternKind[];
42 body: K.BlockStatementKind;
43 generator?: boolean;
44 async?: boolean;
45 expression?: boolean;
46 defaults?: (K.ExpressionKind | null)[];
47 rest?: K.IdentifierKind | null;
48 returnType?: K.TypeAnnotationKind | K.TSTypeAnnotationKind | null;
49 typeParameters?: K.TypeParameterDeclarationKind | K.TSTypeParameterDeclarationKind | null;
50 predicate?: K.FlowPredicateKind | null;
51 }
52 interface Expression extends Node {
53 }
54 interface Pattern extends Node {
55 }
56 interface Identifier extends Omit<Expression, "type">, Omit<Pattern, "type"> {
57 type: "Identifier";
58 name: string;
59 optional?: boolean;
60 typeAnnotation?: K.TypeAnnotationKind | K.TSTypeAnnotationKind | null;
61 }
62 interface BlockStatement extends Omit<Statement, "type"> {
63 type: "BlockStatement";
64 body: K.StatementKind[];
65 directives?: K.DirectiveKind[];
66 }
67 interface EmptyStatement extends Omit<Statement, "type"> {
68 type: "EmptyStatement";
69 }
70 interface ExpressionStatement extends Omit<Statement, "type"> {
71 type: "ExpressionStatement";
72 expression: K.ExpressionKind;
73 }
74 interface IfStatement extends Omit<Statement, "type"> {
75 type: "IfStatement";
76 test: K.ExpressionKind;
77 consequent: K.StatementKind;
78 alternate?: K.StatementKind | null;
79 }
80 interface LabeledStatement extends Omit<Statement, "type"> {
81 type: "LabeledStatement";
82 label: K.IdentifierKind;
83 body: K.StatementKind;
84 }
85 interface BreakStatement extends Omit<Statement, "type"> {
86 type: "BreakStatement";
87 label?: K.IdentifierKind | null;
88 }
89 interface ContinueStatement extends Omit<Statement, "type"> {
90 type: "ContinueStatement";
91 label?: K.IdentifierKind | null;
92 }
93 interface WithStatement extends Omit<Statement, "type"> {
94 type: "WithStatement";
95 object: K.ExpressionKind;
96 body: K.StatementKind;
97 }
98 interface SwitchStatement extends Omit<Statement, "type"> {
99 type: "SwitchStatement";
100 discriminant: K.ExpressionKind;
101 cases: K.SwitchCaseKind[];
102 lexical?: boolean;
103 }
104 interface SwitchCase extends Omit<Node, "type"> {
105 type: "SwitchCase";
106 test: K.ExpressionKind | null;
107 consequent: K.StatementKind[];
108 }
109 interface ReturnStatement extends Omit<Statement, "type"> {
110 type: "ReturnStatement";
111 argument: K.ExpressionKind | null;
112 }
113 interface ThrowStatement extends Omit<Statement, "type"> {
114 type: "ThrowStatement";
115 argument: K.ExpressionKind;
116 }
117 interface TryStatement extends Omit<Statement, "type"> {
118 type: "TryStatement";
119 block: K.BlockStatementKind;
120 handler?: K.CatchClauseKind | null;
121 handlers?: K.CatchClauseKind[];
122 guardedHandlers?: K.CatchClauseKind[];
123 finalizer?: K.BlockStatementKind | null;
124 }
125 interface CatchClause extends Omit<Node, "type"> {
126 type: "CatchClause";
127 param?: K.PatternKind | null;
128 guard?: K.ExpressionKind | null;
129 body: K.BlockStatementKind;
130 }
131 interface WhileStatement extends Omit<Statement, "type"> {
132 type: "WhileStatement";
133 test: K.ExpressionKind;
134 body: K.StatementKind;
135 }
136 interface DoWhileStatement extends Omit<Statement, "type"> {
137 type: "DoWhileStatement";
138 body: K.StatementKind;
139 test: K.ExpressionKind;
140 }
141 interface ForStatement extends Omit<Statement, "type"> {
142 type: "ForStatement";
143 init: K.VariableDeclarationKind | K.ExpressionKind | null;
144 test: K.ExpressionKind | null;
145 update: K.ExpressionKind | null;
146 body: K.StatementKind;
147 }
148 interface Declaration extends Statement {
149 }
150 interface VariableDeclaration extends Omit<Declaration, "type"> {
151 type: "VariableDeclaration";
152 kind: "var" | "let" | "const";
153 declarations: (K.VariableDeclaratorKind | K.IdentifierKind)[];
154 }
155 interface ForInStatement extends Omit<Statement, "type"> {
156 type: "ForInStatement";
157 left: K.VariableDeclarationKind | K.ExpressionKind;
158 right: K.ExpressionKind;
159 body: K.StatementKind;
160 }
161 interface DebuggerStatement extends Omit<Statement, "type"> {
162 type: "DebuggerStatement";
163 }
164 interface FunctionDeclaration extends Omit<Function, "type" | "id">, Omit<Declaration, "type"> {
165 type: "FunctionDeclaration";
166 id: K.IdentifierKind | null;
167 }
168 interface FunctionExpression extends Omit<Function, "type">, Omit<Expression, "type"> {
169 type: "FunctionExpression";
170 }
171 interface VariableDeclarator extends Omit<Node, "type"> {
172 type: "VariableDeclarator";
173 id: K.PatternKind;
174 init?: K.ExpressionKind | null;
175 }
176 interface ThisExpression extends Omit<Expression, "type"> {
177 type: "ThisExpression";
178 }
179 interface ArrayExpression extends Omit<Expression, "type"> {
180 type: "ArrayExpression";
181 elements: (K.ExpressionKind | K.SpreadElementKind | K.RestElementKind | null)[];
182 }
183 interface ObjectExpression extends Omit<Expression, "type"> {
184 type: "ObjectExpression";
185 properties: (K.PropertyKind | K.ObjectMethodKind | K.ObjectPropertyKind | K.SpreadPropertyKind | K.SpreadElementKind)[];
186 }
187 interface Property extends Omit<Node, "type"> {
188 type: "Property";
189 kind: "init" | "get" | "set";
190 key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
191 value: K.ExpressionKind | K.PatternKind;
192 method?: boolean;
193 shorthand?: boolean;
194 computed?: boolean;
195 decorators?: K.DecoratorKind[] | null;
196 }
197 interface Literal extends Omit<Expression, "type"> {
198 type: "Literal";
199 value: string | boolean | null | number | RegExp;
200 regex?: {
201 pattern: string;
202 flags: string;
203 } | null;
204 }
205 interface SequenceExpression extends Omit<Expression, "type"> {
206 type: "SequenceExpression";
207 expressions: K.ExpressionKind[];
208 }
209 interface UnaryExpression extends Omit<Expression, "type"> {
210 type: "UnaryExpression";
211 operator: "-" | "+" | "!" | "~" | "typeof" | "void" | "delete";
212 argument: K.ExpressionKind;
213 prefix?: boolean;
214 }
215 interface BinaryExpression extends Omit<Expression, "type"> {
216 type: "BinaryExpression";
217 operator: "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "&" | "|" | "^" | "in" | "instanceof" | "**";
218 left: K.ExpressionKind;
219 right: K.ExpressionKind;
220 }
221 interface AssignmentExpression extends Omit<Expression, "type"> {
222 type: "AssignmentExpression";
223 operator: "=" | "+=" | "-=" | "*=" | "/=" | "%=" | "<<=" | ">>=" | ">>>=" | "|=" | "^=" | "&=" | "**=";
224 left: K.PatternKind | K.MemberExpressionKind;
225 right: K.ExpressionKind;
226 }
227 interface ChainElement extends Node {
228 optional?: boolean;
229 }
230 interface MemberExpression extends Omit<Expression, "type">, Omit<ChainElement, "type"> {
231 type: "MemberExpression";
232 object: K.ExpressionKind;
233 property: K.IdentifierKind | K.ExpressionKind;
234 computed?: boolean;
235 }
236 interface UpdateExpression extends Omit<Expression, "type"> {
237 type: "UpdateExpression";
238 operator: "++" | "--";
239 argument: K.ExpressionKind;
240 prefix: boolean;
241 }
242 interface LogicalExpression extends Omit<Expression, "type"> {
243 type: "LogicalExpression";
244 operator: "||" | "&&" | "??";
245 left: K.ExpressionKind;
246 right: K.ExpressionKind;
247 }
248 interface ConditionalExpression extends Omit<Expression, "type"> {
249 type: "ConditionalExpression";
250 test: K.ExpressionKind;
251 consequent: K.ExpressionKind;
252 alternate: K.ExpressionKind;
253 }
254 interface NewExpression extends Omit<Expression, "type"> {
255 type: "NewExpression";
256 callee: K.ExpressionKind;
257 arguments: (K.ExpressionKind | K.SpreadElementKind)[];
258 typeArguments?: null | K.TypeParameterInstantiationKind;
259 }
260 interface CallExpression extends Omit<Expression, "type">, Omit<ChainElement, "type"> {
261 type: "CallExpression";
262 callee: K.ExpressionKind;
263 arguments: (K.ExpressionKind | K.SpreadElementKind)[];
264 typeArguments?: null | K.TypeParameterInstantiationKind;
265 }
266 interface RestElement extends Omit<Pattern, "type"> {
267 type: "RestElement";
268 argument: K.PatternKind;
269 typeAnnotation?: K.TypeAnnotationKind | K.TSTypeAnnotationKind | null;
270 }
271 interface TypeAnnotation extends Omit<Node, "type"> {
272 type: "TypeAnnotation";
273 typeAnnotation: K.FlowTypeKind;
274 }
275 interface TSTypeAnnotation extends Omit<Node, "type"> {
276 type: "TSTypeAnnotation";
277 typeAnnotation: K.TSTypeKind | K.TSTypeAnnotationKind;
278 }
279 interface SpreadElementPattern extends Omit<Pattern, "type"> {
280 type: "SpreadElementPattern";
281 argument: K.PatternKind;
282 }
283 interface ArrowFunctionExpression extends Omit<Function, "type" | "id" | "body" | "generator">, Omit<Expression, "type"> {
284 type: "ArrowFunctionExpression";
285 id?: null;
286 body: K.BlockStatementKind | K.ExpressionKind;
287 generator?: false;
288 }
289 interface ForOfStatement extends Omit<Statement, "type"> {
290 type: "ForOfStatement";
291 left: K.VariableDeclarationKind | K.PatternKind;
292 right: K.ExpressionKind;
293 body: K.StatementKind;
294 await?: boolean;
295 }
296 interface YieldExpression extends Omit<Expression, "type"> {
297 type: "YieldExpression";
298 argument: K.ExpressionKind | null;
299 delegate?: boolean;
300 }
301 interface GeneratorExpression extends Omit<Expression, "type"> {
302 type: "GeneratorExpression";
303 body: K.ExpressionKind;
304 blocks: K.ComprehensionBlockKind[];
305 filter: K.ExpressionKind | null;
306 }
307 interface ComprehensionBlock extends Omit<Node, "type"> {
308 type: "ComprehensionBlock";
309 left: K.PatternKind;
310 right: K.ExpressionKind;
311 each: boolean;
312 }
313 interface ComprehensionExpression extends Omit<Expression, "type"> {
314 type: "ComprehensionExpression";
315 body: K.ExpressionKind;
316 blocks: K.ComprehensionBlockKind[];
317 filter: K.ExpressionKind | null;
318 }
319 interface ObjectProperty extends Omit<Node, "type"> {
320 shorthand?: boolean;
321 type: "ObjectProperty";
322 key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
323 value: K.ExpressionKind | K.PatternKind;
324 accessibility?: K.LiteralKind | null;
325 computed?: boolean;
326 }
327 interface PropertyPattern extends Omit<Pattern, "type"> {
328 type: "PropertyPattern";
329 key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
330 pattern: K.PatternKind;
331 computed?: boolean;
332 }
333 interface ObjectPattern extends Omit<Pattern, "type"> {
334 type: "ObjectPattern";
335 properties: (K.PropertyKind | K.PropertyPatternKind | K.SpreadPropertyPatternKind | K.SpreadPropertyKind | K.ObjectPropertyKind | K.RestPropertyKind)[];
336 typeAnnotation?: K.TypeAnnotationKind | K.TSTypeAnnotationKind | null;
337 decorators?: K.DecoratorKind[] | null;
338 }
339 interface ArrayPattern extends Omit<Pattern, "type"> {
340 type: "ArrayPattern";
341 elements: (K.PatternKind | K.SpreadElementKind | null)[];
342 }
343 interface SpreadElement extends Omit<Node, "type"> {
344 type: "SpreadElement";
345 argument: K.ExpressionKind;
346 }
347 interface AssignmentPattern extends Omit<Pattern, "type"> {
348 type: "AssignmentPattern";
349 left: K.PatternKind;
350 right: K.ExpressionKind;
351 }
352 interface MethodDefinition extends Omit<Declaration, "type"> {
353 type: "MethodDefinition";
354 kind: "constructor" | "method" | "get" | "set";
355 key: K.ExpressionKind;
356 value: K.FunctionKind;
357 computed?: boolean;
358 static?: boolean;
359 decorators?: K.DecoratorKind[] | null;
360 }
361 interface ClassPropertyDefinition extends Omit<Declaration, "type"> {
362 type: "ClassPropertyDefinition";
363 definition: K.MethodDefinitionKind | K.VariableDeclaratorKind | K.ClassPropertyDefinitionKind | K.ClassPropertyKind;
364 }
365 interface ClassProperty extends Omit<Declaration, "type"> {
366 type: "ClassProperty";
367 key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
368 computed?: boolean;
369 value: K.ExpressionKind | null;
370 static?: boolean;
371 typeAnnotation?: K.TypeAnnotationKind | K.TSTypeAnnotationKind | null;
372 variance?: K.VarianceKind | "plus" | "minus" | null;
373 access?: "public" | "private" | "protected" | undefined;
374 }
375 interface ClassBody extends Omit<Declaration, "type"> {
376 type: "ClassBody";
377 body: (K.MethodDefinitionKind | K.VariableDeclaratorKind | K.ClassPropertyDefinitionKind | K.ClassPropertyKind | K.ClassPrivatePropertyKind | K.ClassMethodKind | K.ClassPrivateMethodKind | K.TSDeclareMethodKind | K.TSCallSignatureDeclarationKind | K.TSConstructSignatureDeclarationKind | K.TSIndexSignatureKind | K.TSMethodSignatureKind | K.TSPropertySignatureKind)[];
378 }
379 interface ClassDeclaration extends Omit<Declaration, "type"> {
380 type: "ClassDeclaration";
381 id: K.IdentifierKind | null;
382 body: K.ClassBodyKind;
383 superClass?: K.ExpressionKind | null;
384 typeParameters?: K.TypeParameterDeclarationKind | K.TSTypeParameterDeclarationKind | null;
385 superTypeParameters?: K.TypeParameterInstantiationKind | K.TSTypeParameterInstantiationKind | null;
386 implements?: K.ClassImplementsKind[] | K.TSExpressionWithTypeArgumentsKind[];
387 }
388 interface ClassExpression extends Omit<Expression, "type"> {
389 type: "ClassExpression";
390 id?: K.IdentifierKind | null;
391 body: K.ClassBodyKind;
392 superClass?: K.ExpressionKind | null;
393 typeParameters?: K.TypeParameterDeclarationKind | K.TSTypeParameterDeclarationKind | null;
394 superTypeParameters?: K.TypeParameterInstantiationKind | K.TSTypeParameterInstantiationKind | null;
395 implements?: K.ClassImplementsKind[] | K.TSExpressionWithTypeArgumentsKind[];
396 }
397 interface Super extends Omit<Expression, "type"> {
398 type: "Super";
399 }
400 interface Specifier extends Node {
401 }
402 interface ModuleSpecifier extends Specifier {
403 local?: K.IdentifierKind | null;
404 id?: K.IdentifierKind | null;
405 name?: K.IdentifierKind | null;
406 }
407 interface ImportSpecifier extends Omit<ModuleSpecifier, "type"> {
408 type: "ImportSpecifier";
409 imported: K.IdentifierKind;
410 }
411 interface ImportDefaultSpecifier extends Omit<ModuleSpecifier, "type"> {
412 type: "ImportDefaultSpecifier";
413 }
414 interface ImportNamespaceSpecifier extends Omit<ModuleSpecifier, "type"> {
415 type: "ImportNamespaceSpecifier";
416 }
417 interface ImportDeclaration extends Omit<Declaration, "type"> {
418 type: "ImportDeclaration";
419 specifiers?: (K.ImportSpecifierKind | K.ImportNamespaceSpecifierKind | K.ImportDefaultSpecifierKind)[];
420 source: K.LiteralKind;
421 importKind?: "value" | "type" | "typeof";
422 }
423 interface ExportNamedDeclaration extends Omit<Declaration, "type"> {
424 type: "ExportNamedDeclaration";
425 declaration: K.DeclarationKind | null;
426 specifiers?: K.ExportSpecifierKind[];
427 source?: K.LiteralKind | null;
428 }
429 interface ExportSpecifier extends Omit<ModuleSpecifier, "type"> {
430 type: "ExportSpecifier";
431 exported: K.IdentifierKind;
432 }
433 interface ExportDefaultDeclaration extends Omit<Declaration, "type"> {
434 type: "ExportDefaultDeclaration";
435 declaration: K.DeclarationKind | K.ExpressionKind;
436 }
437 interface ExportAllDeclaration extends Omit<Declaration, "type"> {
438 type: "ExportAllDeclaration";
439 source: K.LiteralKind;
440 exported: K.IdentifierKind | null;
441 }
442 interface TaggedTemplateExpression extends Omit<Expression, "type"> {
443 type: "TaggedTemplateExpression";
444 tag: K.ExpressionKind;
445 quasi: K.TemplateLiteralKind;
446 }
447 interface TemplateLiteral extends Omit<Expression, "type"> {
448 type: "TemplateLiteral";
449 quasis: K.TemplateElementKind[];
450 expressions: K.ExpressionKind[];
451 }
452 interface TemplateElement extends Omit<Node, "type"> {
453 type: "TemplateElement";
454 value: {
455 cooked: string | null;
456 raw: string;
457 };
458 tail: boolean;
459 }
460 interface MetaProperty extends Omit<Expression, "type"> {
461 type: "MetaProperty";
462 meta: K.IdentifierKind;
463 property: K.IdentifierKind;
464 }
465 interface AwaitExpression extends Omit<Expression, "type"> {
466 type: "AwaitExpression";
467 argument: K.ExpressionKind | null;
468 all?: boolean;
469 }
470 interface SpreadProperty extends Omit<Node, "type"> {
471 type: "SpreadProperty";
472 argument: K.ExpressionKind;
473 }
474 interface SpreadPropertyPattern extends Omit<Pattern, "type"> {
475 type: "SpreadPropertyPattern";
476 argument: K.PatternKind;
477 }
478 interface ImportExpression extends Omit<Expression, "type"> {
479 type: "ImportExpression";
480 source: K.ExpressionKind;
481 }
482 interface ChainExpression extends Omit<Expression, "type"> {
483 type: "ChainExpression";
484 expression: K.ChainElementKind;
485 }
486 interface OptionalCallExpression extends Omit<CallExpression, "type" | "optional"> {
487 type: "OptionalCallExpression";
488 optional?: boolean;
489 }
490 interface OptionalMemberExpression extends Omit<MemberExpression, "type" | "optional"> {
491 type: "OptionalMemberExpression";
492 optional?: boolean;
493 }
494 interface JSXAttribute extends Omit<Node, "type"> {
495 type: "JSXAttribute";
496 name: K.JSXIdentifierKind | K.JSXNamespacedNameKind;
497 value?: K.LiteralKind | K.JSXExpressionContainerKind | K.JSXElementKind | K.JSXFragmentKind | null;
498 }
499 interface JSXIdentifier extends Omit<Identifier, "type" | "name"> {
500 type: "JSXIdentifier";
501 name: string;
502 }
503 interface JSXNamespacedName extends Omit<Node, "type"> {
504 type: "JSXNamespacedName";
505 namespace: K.JSXIdentifierKind;
506 name: K.JSXIdentifierKind;
507 }
508 interface JSXExpressionContainer extends Omit<Expression, "type"> {
509 type: "JSXExpressionContainer";
510 expression: K.ExpressionKind | K.JSXEmptyExpressionKind;
511 }
512 interface JSXElement extends Omit<Expression, "type"> {
513 type: "JSXElement";
514 openingElement: K.JSXOpeningElementKind;
515 closingElement?: K.JSXClosingElementKind | null;
516 children?: (K.JSXTextKind | K.JSXExpressionContainerKind | K.JSXSpreadChildKind | K.JSXElementKind | K.JSXFragmentKind | K.LiteralKind)[];
517 name?: K.JSXIdentifierKind | K.JSXNamespacedNameKind | K.JSXMemberExpressionKind;
518 selfClosing?: boolean;
519 attributes?: (K.JSXAttributeKind | K.JSXSpreadAttributeKind)[];
520 }
521 interface JSXFragment extends Omit<Expression, "type"> {
522 type: "JSXFragment";
523 openingFragment: K.JSXOpeningFragmentKind;
524 closingFragment: K.JSXClosingFragmentKind;
525 children?: (K.JSXTextKind | K.JSXExpressionContainerKind | K.JSXSpreadChildKind | K.JSXElementKind | K.JSXFragmentKind | K.LiteralKind)[];
526 }
527 interface JSXMemberExpression extends Omit<MemberExpression, "type" | "object" | "property" | "computed"> {
528 type: "JSXMemberExpression";
529 object: K.JSXIdentifierKind | K.JSXMemberExpressionKind;
530 property: K.JSXIdentifierKind;
531 computed?: boolean;
532 }
533 interface JSXSpreadAttribute extends Omit<Node, "type"> {
534 type: "JSXSpreadAttribute";
535 argument: K.ExpressionKind;
536 }
537 interface JSXEmptyExpression extends Omit<Node, "type"> {
538 type: "JSXEmptyExpression";
539 }
540 interface JSXText extends Omit<Literal, "type" | "value"> {
541 type: "JSXText";
542 value: string;
543 raw?: string;
544 }
545 interface JSXSpreadChild extends Omit<Node, "type"> {
546 type: "JSXSpreadChild";
547 expression: K.ExpressionKind;
548 }
549 interface JSXOpeningElement extends Omit<Node, "type"> {
550 type: "JSXOpeningElement";
551 name: K.JSXIdentifierKind | K.JSXNamespacedNameKind | K.JSXMemberExpressionKind;
552 attributes?: (K.JSXAttributeKind | K.JSXSpreadAttributeKind)[];
553 selfClosing?: boolean;
554 }
555 interface JSXClosingElement extends Omit<Node, "type"> {
556 type: "JSXClosingElement";
557 name: K.JSXIdentifierKind | K.JSXNamespacedNameKind | K.JSXMemberExpressionKind;
558 }
559 interface JSXOpeningFragment extends Omit<Node, "type"> {
560 type: "JSXOpeningFragment";
561 }
562 interface JSXClosingFragment extends Omit<Node, "type"> {
563 type: "JSXClosingFragment";
564 }
565 interface Decorator extends Omit<Node, "type"> {
566 type: "Decorator";
567 expression: K.ExpressionKind;
568 }
569 interface PrivateName extends Omit<Expression, "type">, Omit<Pattern, "type"> {
570 type: "PrivateName";
571 id: K.IdentifierKind;
572 }
573 interface ClassPrivateProperty extends Omit<ClassProperty, "type" | "key" | "value"> {
574 type: "ClassPrivateProperty";
575 key: K.PrivateNameKind;
576 value?: K.ExpressionKind | null;
577 }
578 interface TypeParameterDeclaration extends Omit<Node, "type"> {
579 type: "TypeParameterDeclaration";
580 params: K.TypeParameterKind[];
581 }
582 interface TSTypeParameterDeclaration extends Omit<Declaration, "type"> {
583 type: "TSTypeParameterDeclaration";
584 params: K.TSTypeParameterKind[];
585 }
586 interface TypeParameterInstantiation extends Omit<Node, "type"> {
587 type: "TypeParameterInstantiation";
588 params: K.FlowTypeKind[];
589 }
590 interface TSTypeParameterInstantiation extends Omit<Node, "type"> {
591 type: "TSTypeParameterInstantiation";
592 params: K.TSTypeKind[];
593 }
594 interface ClassImplements extends Omit<Node, "type"> {
595 type: "ClassImplements";
596 id: K.IdentifierKind;
597 superClass?: K.ExpressionKind | null;
598 typeParameters?: K.TypeParameterInstantiationKind | null;
599 }
600 interface TSType extends Node {
601 }
602 interface TSHasOptionalTypeParameterInstantiation {
603 typeParameters?: K.TSTypeParameterInstantiationKind | null;
604 }
605 interface TSExpressionWithTypeArguments extends Omit<TSType, "type">, TSHasOptionalTypeParameterInstantiation {
606 type: "TSExpressionWithTypeArguments";
607 expression: K.IdentifierKind | K.TSQualifiedNameKind;
608 }
609 interface Flow extends Node {
610 }
611 interface FlowType extends Flow {
612 }
613 interface AnyTypeAnnotation extends Omit<FlowType, "type"> {
614 type: "AnyTypeAnnotation";
615 }
616 interface EmptyTypeAnnotation extends Omit<FlowType, "type"> {
617 type: "EmptyTypeAnnotation";
618 }
619 interface MixedTypeAnnotation extends Omit<FlowType, "type"> {
620 type: "MixedTypeAnnotation";
621 }
622 interface VoidTypeAnnotation extends Omit<FlowType, "type"> {
623 type: "VoidTypeAnnotation";
624 }
625 interface SymbolTypeAnnotation extends Omit<FlowType, "type"> {
626 type: "SymbolTypeAnnotation";
627 }
628 interface NumberTypeAnnotation extends Omit<FlowType, "type"> {
629 type: "NumberTypeAnnotation";
630 }
631 interface BigIntTypeAnnotation extends Omit<FlowType, "type"> {
632 type: "BigIntTypeAnnotation";
633 }
634 interface NumberLiteralTypeAnnotation extends Omit<FlowType, "type"> {
635 type: "NumberLiteralTypeAnnotation";
636 value: number;
637 raw: string;
638 }
639 interface NumericLiteralTypeAnnotation extends Omit<FlowType, "type"> {
640 type: "NumericLiteralTypeAnnotation";
641 value: number;
642 raw: string;
643 }
644 interface BigIntLiteralTypeAnnotation extends Omit<FlowType, "type"> {
645 type: "BigIntLiteralTypeAnnotation";
646 value: null;
647 raw: string;
648 }
649 interface StringTypeAnnotation extends Omit<FlowType, "type"> {
650 type: "StringTypeAnnotation";
651 }
652 interface StringLiteralTypeAnnotation extends Omit<FlowType, "type"> {
653 type: "StringLiteralTypeAnnotation";
654 value: string;
655 raw: string;
656 }
657 interface BooleanTypeAnnotation extends Omit<FlowType, "type"> {
658 type: "BooleanTypeAnnotation";
659 }
660 interface BooleanLiteralTypeAnnotation extends Omit<FlowType, "type"> {
661 type: "BooleanLiteralTypeAnnotation";
662 value: boolean;
663 raw: string;
664 }
665 interface NullableTypeAnnotation extends Omit<FlowType, "type"> {
666 type: "NullableTypeAnnotation";
667 typeAnnotation: K.FlowTypeKind;
668 }
669 interface NullLiteralTypeAnnotation extends Omit<FlowType, "type"> {
670 type: "NullLiteralTypeAnnotation";
671 }
672 interface NullTypeAnnotation extends Omit<FlowType, "type"> {
673 type: "NullTypeAnnotation";
674 }
675 interface ThisTypeAnnotation extends Omit<FlowType, "type"> {
676 type: "ThisTypeAnnotation";
677 }
678 interface ExistsTypeAnnotation extends Omit<FlowType, "type"> {
679 type: "ExistsTypeAnnotation";
680 }
681 interface ExistentialTypeParam extends Omit<FlowType, "type"> {
682 type: "ExistentialTypeParam";
683 }
684 interface FunctionTypeAnnotation extends Omit<FlowType, "type"> {
685 type: "FunctionTypeAnnotation";
686 params: K.FunctionTypeParamKind[];
687 returnType: K.FlowTypeKind;
688 rest: K.FunctionTypeParamKind | null;
689 typeParameters: K.TypeParameterDeclarationKind | null;
690 }
691 interface FunctionTypeParam extends Omit<Node, "type"> {
692 type: "FunctionTypeParam";
693 name: K.IdentifierKind | null;
694 typeAnnotation: K.FlowTypeKind;
695 optional: boolean;
696 }
697 interface ArrayTypeAnnotation extends Omit<FlowType, "type"> {
698 type: "ArrayTypeAnnotation";
699 elementType: K.FlowTypeKind;
700 }
701 interface ObjectTypeAnnotation extends Omit<FlowType, "type"> {
702 type: "ObjectTypeAnnotation";
703 properties: (K.ObjectTypePropertyKind | K.ObjectTypeSpreadPropertyKind)[];
704 indexers?: K.ObjectTypeIndexerKind[];
705 callProperties?: K.ObjectTypeCallPropertyKind[];
706 inexact?: boolean | undefined;
707 exact?: boolean;
708 internalSlots?: K.ObjectTypeInternalSlotKind[];
709 }
710 interface ObjectTypeProperty extends Omit<Node, "type"> {
711 type: "ObjectTypeProperty";
712 key: K.LiteralKind | K.IdentifierKind;
713 value: K.FlowTypeKind;
714 optional: boolean;
715 variance?: K.VarianceKind | "plus" | "minus" | null;
716 }
717 interface ObjectTypeSpreadProperty extends Omit<Node, "type"> {
718 type: "ObjectTypeSpreadProperty";
719 argument: K.FlowTypeKind;
720 }
721 interface ObjectTypeIndexer extends Omit<Node, "type"> {
722 type: "ObjectTypeIndexer";
723 id: K.IdentifierKind;
724 key: K.FlowTypeKind;
725 value: K.FlowTypeKind;
726 variance?: K.VarianceKind | "plus" | "minus" | null;
727 static?: boolean;
728 }
729 interface ObjectTypeCallProperty extends Omit<Node, "type"> {
730 type: "ObjectTypeCallProperty";
731 value: K.FunctionTypeAnnotationKind;
732 static?: boolean;
733 }
734 interface ObjectTypeInternalSlot extends Omit<Node, "type"> {
735 type: "ObjectTypeInternalSlot";
736 id: K.IdentifierKind;
737 value: K.FlowTypeKind;
738 optional: boolean;
739 static: boolean;
740 method: boolean;
741 }
742 interface Variance extends Omit<Node, "type"> {
743 type: "Variance";
744 kind: "plus" | "minus";
745 }
746 interface QualifiedTypeIdentifier extends Omit<Node, "type"> {
747 type: "QualifiedTypeIdentifier";
748 qualification: K.IdentifierKind | K.QualifiedTypeIdentifierKind;
749 id: K.IdentifierKind;
750 }
751 interface GenericTypeAnnotation extends Omit<FlowType, "type"> {
752 type: "GenericTypeAnnotation";
753 id: K.IdentifierKind | K.QualifiedTypeIdentifierKind;
754 typeParameters: K.TypeParameterInstantiationKind | null;
755 }
756 interface MemberTypeAnnotation extends Omit<FlowType, "type"> {
757 type: "MemberTypeAnnotation";
758 object: K.IdentifierKind;
759 property: K.MemberTypeAnnotationKind | K.GenericTypeAnnotationKind;
760 }
761 interface UnionTypeAnnotation extends Omit<FlowType, "type"> {
762 type: "UnionTypeAnnotation";
763 types: K.FlowTypeKind[];
764 }
765 interface IntersectionTypeAnnotation extends Omit<FlowType, "type"> {
766 type: "IntersectionTypeAnnotation";
767 types: K.FlowTypeKind[];
768 }
769 interface TypeofTypeAnnotation extends Omit<FlowType, "type"> {
770 type: "TypeofTypeAnnotation";
771 argument: K.FlowTypeKind;
772 }
773 interface TypeParameter extends Omit<FlowType, "type"> {
774 type: "TypeParameter";
775 name: string;
776 variance?: K.VarianceKind | "plus" | "minus" | null;
777 bound?: K.TypeAnnotationKind | null;
778 default?: K.FlowTypeKind | null;
779 }
780 interface InterfaceTypeAnnotation extends Omit<FlowType, "type"> {
781 type: "InterfaceTypeAnnotation";
782 body: K.ObjectTypeAnnotationKind;
783 extends?: K.InterfaceExtendsKind[] | null;
784 }
785 interface InterfaceExtends extends Omit<Node, "type"> {
786 type: "InterfaceExtends";
787 id: K.IdentifierKind;
788 typeParameters?: K.TypeParameterInstantiationKind | null;
789 }
790 interface InterfaceDeclaration extends Omit<Declaration, "type"> {
791 type: "InterfaceDeclaration";
792 id: K.IdentifierKind;
793 typeParameters?: K.TypeParameterDeclarationKind | null;
794 body: K.ObjectTypeAnnotationKind;
795 extends: K.InterfaceExtendsKind[];
796 }
797 interface DeclareInterface extends Omit<InterfaceDeclaration, "type"> {
798 type: "DeclareInterface";
799 }
800 interface TypeAlias extends Omit<Declaration, "type"> {
801 type: "TypeAlias";
802 id: K.IdentifierKind;
803 typeParameters: K.TypeParameterDeclarationKind | null;
804 right: K.FlowTypeKind;
805 }
806 interface DeclareTypeAlias extends Omit<TypeAlias, "type"> {
807 type: "DeclareTypeAlias";
808 }
809 interface OpaqueType extends Omit<Declaration, "type"> {
810 type: "OpaqueType";
811 id: K.IdentifierKind;
812 typeParameters: K.TypeParameterDeclarationKind | null;
813 impltype: K.FlowTypeKind;
814 supertype: K.FlowTypeKind | null;
815 }
816 interface DeclareOpaqueType extends Omit<OpaqueType, "type" | "impltype"> {
817 type: "DeclareOpaqueType";
818 impltype: K.FlowTypeKind | null;
819 }
820 interface TypeCastExpression extends Omit<Expression, "type"> {
821 type: "TypeCastExpression";
822 expression: K.ExpressionKind;
823 typeAnnotation: K.TypeAnnotationKind;
824 }
825 interface TupleTypeAnnotation extends Omit<FlowType, "type"> {
826 type: "TupleTypeAnnotation";
827 types: K.FlowTypeKind[];
828 }
829 interface DeclareVariable extends Omit<Statement, "type"> {
830 type: "DeclareVariable";
831 id: K.IdentifierKind;
832 }
833 interface DeclareFunction extends Omit<Statement, "type"> {
834 type: "DeclareFunction";
835 id: K.IdentifierKind;
836 predicate?: K.FlowPredicateKind | null;
837 }
838 interface FlowPredicate extends Flow {
839 }
840 interface DeclareClass extends Omit<InterfaceDeclaration, "type"> {
841 type: "DeclareClass";
842 }
843 interface DeclareModule extends Omit<Statement, "type"> {
844 type: "DeclareModule";
845 id: K.IdentifierKind | K.LiteralKind;
846 body: K.BlockStatementKind;
847 }
848 interface DeclareModuleExports extends Omit<Statement, "type"> {
849 type: "DeclareModuleExports";
850 typeAnnotation: K.TypeAnnotationKind;
851 }
852 interface DeclareExportDeclaration extends Omit<Declaration, "type"> {
853 type: "DeclareExportDeclaration";
854 default: boolean;
855 declaration: K.DeclareVariableKind | K.DeclareFunctionKind | K.DeclareClassKind | K.FlowTypeKind | K.TypeAliasKind | K.DeclareOpaqueTypeKind | K.InterfaceDeclarationKind | null;
856 specifiers?: (K.ExportSpecifierKind | K.ExportBatchSpecifierKind)[];
857 source?: K.LiteralKind | null;
858 }
859 interface ExportBatchSpecifier extends Omit<Specifier, "type"> {
860 type: "ExportBatchSpecifier";
861 }
862 interface DeclareExportAllDeclaration extends Omit<Declaration, "type"> {
863 type: "DeclareExportAllDeclaration";
864 source?: K.LiteralKind | null;
865 }
866 interface InferredPredicate extends Omit<FlowPredicate, "type"> {
867 type: "InferredPredicate";
868 }
869 interface DeclaredPredicate extends Omit<FlowPredicate, "type"> {
870 type: "DeclaredPredicate";
871 value: K.ExpressionKind;
872 }
873 interface EnumDeclaration extends Omit<Declaration, "type"> {
874 type: "EnumDeclaration";
875 id: K.IdentifierKind;
876 body: K.EnumBooleanBodyKind | K.EnumNumberBodyKind | K.EnumStringBodyKind | K.EnumSymbolBodyKind;
877 }
878 interface EnumBooleanBody {
879 type: "EnumBooleanBody";
880 members: K.EnumBooleanMemberKind[];
881 explicitType: boolean;
882 }
883 interface EnumNumberBody {
884 type: "EnumNumberBody";
885 members: K.EnumNumberMemberKind[];
886 explicitType: boolean;
887 }
888 interface EnumStringBody {
889 type: "EnumStringBody";
890 members: K.EnumStringMemberKind[] | K.EnumDefaultedMemberKind[];
891 explicitType: boolean;
892 }
893 interface EnumSymbolBody {
894 type: "EnumSymbolBody";
895 members: K.EnumDefaultedMemberKind[];
896 }
897 interface EnumBooleanMember {
898 type: "EnumBooleanMember";
899 id: K.IdentifierKind;
900 init: K.LiteralKind | boolean;
901 }
902 interface EnumNumberMember {
903 type: "EnumNumberMember";
904 id: K.IdentifierKind;
905 init: K.LiteralKind;
906 }
907 interface EnumStringMember {
908 type: "EnumStringMember";
909 id: K.IdentifierKind;
910 init: K.LiteralKind;
911 }
912 interface EnumDefaultedMember {
913 type: "EnumDefaultedMember";
914 id: K.IdentifierKind;
915 }
916 interface ExportDeclaration extends Omit<Declaration, "type"> {
917 type: "ExportDeclaration";
918 default: boolean;
919 declaration: K.DeclarationKind | K.ExpressionKind | null;
920 specifiers?: (K.ExportSpecifierKind | K.ExportBatchSpecifierKind)[];
921 source?: K.LiteralKind | null;
922 }
923 interface Block extends Comment {
924 type: "Block";
925 }
926 interface Line extends Comment {
927 type: "Line";
928 }
929 interface Noop extends Omit<Statement, "type"> {
930 type: "Noop";
931 }
932 interface DoExpression extends Omit<Expression, "type"> {
933 type: "DoExpression";
934 body: K.StatementKind[];
935 }
936 interface BindExpression extends Omit<Expression, "type"> {
937 type: "BindExpression";
938 object: K.ExpressionKind | null;
939 callee: K.ExpressionKind;
940 }
941 interface ParenthesizedExpression extends Omit<Expression, "type"> {
942 type: "ParenthesizedExpression";
943 expression: K.ExpressionKind;
944 }
945 interface ExportNamespaceSpecifier extends Omit<Specifier, "type"> {
946 type: "ExportNamespaceSpecifier";
947 exported: K.IdentifierKind;
948 }
949 interface ExportDefaultSpecifier extends Omit<Specifier, "type"> {
950 type: "ExportDefaultSpecifier";
951 exported: K.IdentifierKind;
952 }
953 interface CommentBlock extends Comment {
954 type: "CommentBlock";
955 }
956 interface CommentLine extends Comment {
957 type: "CommentLine";
958 }
959 interface Directive extends Omit<Node, "type"> {
960 type: "Directive";
961 value: K.DirectiveLiteralKind;
962 }
963 interface DirectiveLiteral extends Omit<Node, "type">, Omit<Expression, "type"> {
964 type: "DirectiveLiteral";
965 value?: string;
966 }
967 interface InterpreterDirective extends Omit<Node, "type"> {
968 type: "InterpreterDirective";
969 value: string;
970 }
971 interface StringLiteral extends Omit<Literal, "type" | "value"> {
972 type: "StringLiteral";
973 value: string;
974 }
975 interface NumericLiteral extends Omit<Literal, "type" | "value"> {
976 type: "NumericLiteral";
977 value: number;
978 raw?: string | null;
979 extra?: {
980 rawValue: number;
981 raw: string;
982 };
983 }
984 interface BigIntLiteral extends Omit<Literal, "type" | "value"> {
985 type: "BigIntLiteral";
986 value: string | number;
987 extra?: {
988 rawValue: string;
989 raw: string;
990 };
991 }
992 interface NullLiteral extends Omit<Literal, "type" | "value"> {
993 type: "NullLiteral";
994 value?: null;
995 }
996 interface BooleanLiteral extends Omit<Literal, "type" | "value"> {
997 type: "BooleanLiteral";
998 value: boolean;
999 }
1000 interface RegExpLiteral extends Omit<Literal, "type" | "value"> {
1001 type: "RegExpLiteral";
1002 pattern: string;
1003 flags: string;
1004 value?: RegExp;
1005 }
1006 interface ObjectMethod extends Omit<Node, "type">, Omit<Function, "type" | "params" | "body" | "generator" | "async"> {
1007 type: "ObjectMethod";
1008 kind: "method" | "get" | "set";
1009 key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
1010 params: K.PatternKind[];
1011 body: K.BlockStatementKind;
1012 computed?: boolean;
1013 generator?: boolean;
1014 async?: boolean;
1015 accessibility?: K.LiteralKind | null;
1016 decorators?: K.DecoratorKind[] | null;
1017 }
1018 interface ClassMethod extends Omit<Declaration, "type">, Omit<Function, "type" | "body"> {
1019 type: "ClassMethod";
1020 key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
1021 kind?: "get" | "set" | "method" | "constructor";
1022 body: K.BlockStatementKind;
1023 computed?: boolean;
1024 static?: boolean | null;
1025 abstract?: boolean | null;
1026 access?: "public" | "private" | "protected" | null;
1027 accessibility?: "public" | "private" | "protected" | null;
1028 decorators?: K.DecoratorKind[] | null;
1029 optional?: boolean | null;
1030 }
1031 interface ClassPrivateMethod extends Omit<Declaration, "type">, Omit<Function, "type" | "body"> {
1032 type: "ClassPrivateMethod";
1033 key: K.PrivateNameKind;
1034 kind?: "get" | "set" | "method" | "constructor";
1035 body: K.BlockStatementKind;
1036 computed?: boolean;
1037 static?: boolean | null;
1038 abstract?: boolean | null;
1039 access?: "public" | "private" | "protected" | null;
1040 accessibility?: "public" | "private" | "protected" | null;
1041 decorators?: K.DecoratorKind[] | null;
1042 optional?: boolean | null;
1043 }
1044 interface RestProperty extends Omit<Node, "type"> {
1045 type: "RestProperty";
1046 argument: K.ExpressionKind;
1047 }
1048 interface ForAwaitStatement extends Omit<Statement, "type"> {
1049 type: "ForAwaitStatement";
1050 left: K.VariableDeclarationKind | K.ExpressionKind;
1051 right: K.ExpressionKind;
1052 body: K.StatementKind;
1053 }
1054 interface Import extends Omit<Expression, "type"> {
1055 type: "Import";
1056 }
1057 interface TSQualifiedName extends Omit<Node, "type"> {
1058 type: "TSQualifiedName";
1059 left: K.IdentifierKind | K.TSQualifiedNameKind;
1060 right: K.IdentifierKind | K.TSQualifiedNameKind;
1061 }
1062 interface TSTypeReference extends Omit<TSType, "type">, TSHasOptionalTypeParameterInstantiation {
1063 type: "TSTypeReference";
1064 typeName: K.IdentifierKind | K.TSQualifiedNameKind;
1065 }
1066 interface TSHasOptionalTypeParameters {
1067 typeParameters?: K.TSTypeParameterDeclarationKind | null | undefined;
1068 }
1069 interface TSHasOptionalTypeAnnotation {
1070 typeAnnotation?: K.TSTypeAnnotationKind | null;
1071 }
1072 interface TSAsExpression extends Omit<Expression, "type">, Omit<Pattern, "type"> {
1073 type: "TSAsExpression";
1074 expression: K.ExpressionKind;
1075 typeAnnotation: K.TSTypeKind;
1076 extra?: {
1077 parenthesized: boolean;
1078 } | null;
1079 }
1080 interface TSNonNullExpression extends Omit<Expression, "type">, Omit<Pattern, "type"> {
1081 type: "TSNonNullExpression";
1082 expression: K.ExpressionKind;
1083 }
1084 interface TSAnyKeyword extends Omit<TSType, "type"> {
1085 type: "TSAnyKeyword";
1086 }
1087 interface TSBigIntKeyword extends Omit<TSType, "type"> {
1088 type: "TSBigIntKeyword";
1089 }
1090 interface TSBooleanKeyword extends Omit<TSType, "type"> {
1091 type: "TSBooleanKeyword";
1092 }
1093 interface TSNeverKeyword extends Omit<TSType, "type"> {
1094 type: "TSNeverKeyword";
1095 }
1096 interface TSNullKeyword extends Omit<TSType, "type"> {
1097 type: "TSNullKeyword";
1098 }
1099 interface TSNumberKeyword extends Omit<TSType, "type"> {
1100 type: "TSNumberKeyword";
1101 }
1102 interface TSObjectKeyword extends Omit<TSType, "type"> {
1103 type: "TSObjectKeyword";
1104 }
1105 interface TSStringKeyword extends Omit<TSType, "type"> {
1106 type: "TSStringKeyword";
1107 }
1108 interface TSSymbolKeyword extends Omit<TSType, "type"> {
1109 type: "TSSymbolKeyword";
1110 }
1111 interface TSUndefinedKeyword extends Omit<TSType, "type"> {
1112 type: "TSUndefinedKeyword";
1113 }
1114 interface TSUnknownKeyword extends Omit<TSType, "type"> {
1115 type: "TSUnknownKeyword";
1116 }
1117 interface TSVoidKeyword extends Omit<TSType, "type"> {
1118 type: "TSVoidKeyword";
1119 }
1120 interface TSThisType extends Omit<TSType, "type"> {
1121 type: "TSThisType";
1122 }
1123 interface TSArrayType extends Omit<TSType, "type"> {
1124 type: "TSArrayType";
1125 elementType: K.TSTypeKind;
1126 }
1127 interface TSLiteralType extends Omit<TSType, "type"> {
1128 type: "TSLiteralType";
1129 literal: K.NumericLiteralKind | K.StringLiteralKind | K.BooleanLiteralKind | K.TemplateLiteralKind | K.UnaryExpressionKind;
1130 }
1131 interface TSUnionType extends Omit<TSType, "type"> {
1132 type: "TSUnionType";
1133 types: K.TSTypeKind[];
1134 }
1135 interface TSIntersectionType extends Omit<TSType, "type"> {
1136 type: "TSIntersectionType";
1137 types: K.TSTypeKind[];
1138 }
1139 interface TSConditionalType extends Omit<TSType, "type"> {
1140 type: "TSConditionalType";
1141 checkType: K.TSTypeKind;
1142 extendsType: K.TSTypeKind;
1143 trueType: K.TSTypeKind;
1144 falseType: K.TSTypeKind;
1145 }
1146 interface TSInferType extends Omit<TSType, "type"> {
1147 type: "TSInferType";
1148 typeParameter: K.TSTypeParameterKind;
1149 }
1150 interface TSTypeParameter extends Omit<Identifier, "type" | "name"> {
1151 type: "TSTypeParameter";
1152 name: string;
1153 constraint?: K.TSTypeKind | undefined;
1154 default?: K.TSTypeKind | undefined;
1155 }
1156 interface TSParenthesizedType extends Omit<TSType, "type"> {
1157 type: "TSParenthesizedType";
1158 typeAnnotation: K.TSTypeKind;
1159 }
1160 interface TSFunctionType extends Omit<TSType, "type">, TSHasOptionalTypeParameters, TSHasOptionalTypeAnnotation {
1161 type: "TSFunctionType";
1162 parameters: (K.IdentifierKind | K.RestElementKind | K.ArrayPatternKind | K.ObjectPatternKind)[];
1163 }
1164 interface TSConstructorType extends Omit<TSType, "type">, TSHasOptionalTypeParameters, TSHasOptionalTypeAnnotation {
1165 type: "TSConstructorType";
1166 parameters: (K.IdentifierKind | K.RestElementKind | K.ArrayPatternKind | K.ObjectPatternKind)[];
1167 }
1168 interface TSDeclareFunction extends Omit<Declaration, "type">, TSHasOptionalTypeParameters {
1169 type: "TSDeclareFunction";
1170 declare?: boolean;
1171 async?: boolean;
1172 generator?: boolean;
1173 id?: K.IdentifierKind | null;
1174 params: K.PatternKind[];
1175 returnType?: K.TSTypeAnnotationKind | K.NoopKind | null;
1176 }
1177 interface TSDeclareMethod extends Omit<Declaration, "type">, TSHasOptionalTypeParameters {
1178 type: "TSDeclareMethod";
1179 async?: boolean;
1180 generator?: boolean;
1181 params: K.PatternKind[];
1182 abstract?: boolean;
1183 accessibility?: "public" | "private" | "protected" | undefined;
1184 static?: boolean;
1185 computed?: boolean;
1186 optional?: boolean;
1187 key: K.IdentifierKind | K.StringLiteralKind | K.NumericLiteralKind | K.ExpressionKind;
1188 kind?: "get" | "set" | "method" | "constructor";
1189 access?: "public" | "private" | "protected" | undefined;
1190 decorators?: K.DecoratorKind[] | null;
1191 returnType?: K.TSTypeAnnotationKind | K.NoopKind | null;
1192 }
1193 interface TSMappedType extends Omit<TSType, "type"> {
1194 type: "TSMappedType";
1195 readonly?: boolean | "+" | "-";
1196 typeParameter: K.TSTypeParameterKind;
1197 optional?: boolean | "+" | "-";
1198 typeAnnotation?: K.TSTypeKind | null;
1199 }
1200 interface TSTupleType extends Omit<TSType, "type"> {
1201 type: "TSTupleType";
1202 elementTypes: (K.TSTypeKind | K.TSNamedTupleMemberKind)[];
1203 }
1204 interface TSNamedTupleMember extends Omit<TSType, "type"> {
1205 type: "TSNamedTupleMember";
1206 label: K.IdentifierKind;
1207 optional?: boolean;
1208 elementType: K.TSTypeKind;
1209 }
1210 interface TSRestType extends Omit<TSType, "type"> {
1211 type: "TSRestType";
1212 typeAnnotation: K.TSTypeKind;
1213 }
1214 interface TSOptionalType extends Omit<TSType, "type"> {
1215 type: "TSOptionalType";
1216 typeAnnotation: K.TSTypeKind;
1217 }
1218 interface TSIndexedAccessType extends Omit<TSType, "type"> {
1219 type: "TSIndexedAccessType";
1220 objectType: K.TSTypeKind;
1221 indexType: K.TSTypeKind;
1222 }
1223 interface TSTypeOperator extends Omit<TSType, "type"> {
1224 type: "TSTypeOperator";
1225 operator: string;
1226 typeAnnotation: K.TSTypeKind;
1227 }
1228 interface TSIndexSignature extends Omit<Declaration, "type">, TSHasOptionalTypeAnnotation {
1229 type: "TSIndexSignature";
1230 parameters: K.IdentifierKind[];
1231 readonly?: boolean;
1232 }
1233 interface TSPropertySignature extends Omit<Declaration, "type">, TSHasOptionalTypeAnnotation {
1234 type: "TSPropertySignature";
1235 key: K.ExpressionKind;
1236 computed?: boolean;
1237 readonly?: boolean;
1238 optional?: boolean;
1239 initializer?: K.ExpressionKind | null;
1240 }
1241 interface TSMethodSignature extends Omit<Declaration, "type">, TSHasOptionalTypeParameters, TSHasOptionalTypeAnnotation {
1242 type: "TSMethodSignature";
1243 key: K.ExpressionKind;
1244 computed?: boolean;
1245 optional?: boolean;
1246 parameters: (K.IdentifierKind | K.RestElementKind | K.ArrayPatternKind | K.ObjectPatternKind)[];
1247 }
1248 interface TSTypePredicate extends Omit<TSTypeAnnotation, "type" | "typeAnnotation">, Omit<TSType, "type"> {
1249 type: "TSTypePredicate";
1250 parameterName: K.IdentifierKind | K.TSThisTypeKind;
1251 typeAnnotation?: K.TSTypeAnnotationKind | null;
1252 asserts?: boolean;
1253 }
1254 interface TSCallSignatureDeclaration extends Omit<Declaration, "type">, TSHasOptionalTypeParameters, TSHasOptionalTypeAnnotation {
1255 type: "TSCallSignatureDeclaration";
1256 parameters: (K.IdentifierKind | K.RestElementKind | K.ArrayPatternKind | K.ObjectPatternKind)[];
1257 }
1258 interface TSConstructSignatureDeclaration extends Omit<Declaration, "type">, TSHasOptionalTypeParameters, TSHasOptionalTypeAnnotation {
1259 type: "TSConstructSignatureDeclaration";
1260 parameters: (K.IdentifierKind | K.RestElementKind | K.ArrayPatternKind | K.ObjectPatternKind)[];
1261 }
1262 interface TSEnumMember extends Omit<Node, "type"> {
1263 type: "TSEnumMember";
1264 id: K.IdentifierKind | K.StringLiteralKind;
1265 initializer?: K.ExpressionKind | null;
1266 }
1267 interface TSTypeQuery extends Omit<TSType, "type"> {
1268 type: "TSTypeQuery";
1269 exprName: K.IdentifierKind | K.TSQualifiedNameKind | K.TSImportTypeKind;
1270 }
1271 interface TSImportType extends Omit<TSType, "type">, TSHasOptionalTypeParameterInstantiation {
1272 type: "TSImportType";
1273 argument: K.StringLiteralKind;
1274 qualifier?: K.IdentifierKind | K.TSQualifiedNameKind | undefined;
1275 }
1276 interface TSTypeLiteral extends Omit<TSType, "type"> {
1277 type: "TSTypeLiteral";
1278 members: (K.TSCallSignatureDeclarationKind | K.TSConstructSignatureDeclarationKind | K.TSIndexSignatureKind | K.TSMethodSignatureKind | K.TSPropertySignatureKind)[];
1279 }
1280 interface TSTypeAssertion extends Omit<Expression, "type">, Omit<Pattern, "type"> {
1281 type: "TSTypeAssertion";
1282 typeAnnotation: K.TSTypeKind;
1283 expression: K.ExpressionKind;
1284 extra?: {
1285 parenthesized: boolean;
1286 } | null;
1287 }
1288 interface TSEnumDeclaration extends Omit<Declaration, "type"> {
1289 type: "TSEnumDeclaration";
1290 id: K.IdentifierKind;
1291 const?: boolean;
1292 declare?: boolean;
1293 members: K.TSEnumMemberKind[];
1294 initializer?: K.ExpressionKind | null;
1295 }
1296 interface TSTypeAliasDeclaration extends Omit<Declaration, "type">, TSHasOptionalTypeParameters {
1297 type: "TSTypeAliasDeclaration";
1298 id: K.IdentifierKind;
1299 declare?: boolean;
1300 typeAnnotation: K.TSTypeKind;
1301 }
1302 interface TSModuleBlock extends Omit<Node, "type"> {
1303 type: "TSModuleBlock";
1304 body: K.StatementKind[];
1305 }
1306 interface TSModuleDeclaration extends Omit<Declaration, "type"> {
1307 type: "TSModuleDeclaration";
1308 id: K.StringLiteralKind | K.IdentifierKind | K.TSQualifiedNameKind;
1309 declare?: boolean;
1310 global?: boolean;
1311 body?: K.TSModuleBlockKind | K.TSModuleDeclarationKind | null;
1312 }
1313 interface TSImportEqualsDeclaration extends Omit<Declaration, "type"> {
1314 type: "TSImportEqualsDeclaration";
1315 id: K.IdentifierKind;
1316 isExport?: boolean;
1317 moduleReference: K.IdentifierKind | K.TSQualifiedNameKind | K.TSExternalModuleReferenceKind;
1318 }
1319 interface TSExternalModuleReference extends Omit<Declaration, "type"> {
1320 type: "TSExternalModuleReference";
1321 expression: K.StringLiteralKind;
1322 }
1323 interface TSExportAssignment extends Omit<Statement, "type"> {
1324 type: "TSExportAssignment";
1325 expression: K.ExpressionKind;
1326 }
1327 interface TSNamespaceExportDeclaration extends Omit<Declaration, "type"> {
1328 type: "TSNamespaceExportDeclaration";
1329 id: K.IdentifierKind;
1330 }
1331 interface TSInterfaceBody extends Omit<Node, "type"> {
1332 type: "TSInterfaceBody";
1333 body: (K.TSCallSignatureDeclarationKind | K.TSConstructSignatureDeclarationKind | K.TSIndexSignatureKind | K.TSMethodSignatureKind | K.TSPropertySignatureKind)[];
1334 }
1335 interface TSInterfaceDeclaration extends Omit<Declaration, "type">, TSHasOptionalTypeParameters {
1336 type: "TSInterfaceDeclaration";
1337 id: K.IdentifierKind | K.TSQualifiedNameKind;
1338 declare?: boolean;
1339 extends?: K.TSExpressionWithTypeArgumentsKind[] | null;
1340 body: K.TSInterfaceBodyKind;
1341 }
1342 interface TSParameterProperty extends Omit<Pattern, "type"> {
1343 type: "TSParameterProperty";
1344 accessibility?: "public" | "private" | "protected" | undefined;
1345 readonly?: boolean;
1346 parameter: K.IdentifierKind | K.AssignmentPatternKind;
1347 }
1348 type ASTNode = File | Program | Identifier | BlockStatement | EmptyStatement | ExpressionStatement | IfStatement | LabeledStatement | BreakStatement | ContinueStatement | WithStatement | SwitchStatement | SwitchCase | ReturnStatement | ThrowStatement | TryStatement | CatchClause | WhileStatement | DoWhileStatement | ForStatement | VariableDeclaration | ForInStatement | DebuggerStatement | FunctionDeclaration | FunctionExpression | VariableDeclarator | ThisExpression | ArrayExpression | ObjectExpression | Property | Literal | SequenceExpression | UnaryExpression | BinaryExpression | AssignmentExpression | MemberExpression | UpdateExpression | LogicalExpression | ConditionalExpression | NewExpression | CallExpression | RestElement | TypeAnnotation | TSTypeAnnotation | SpreadElementPattern | ArrowFunctionExpression | ForOfStatement | YieldExpression | GeneratorExpression | ComprehensionBlock | ComprehensionExpression | ObjectProperty | PropertyPattern | ObjectPattern | ArrayPattern | SpreadElement | AssignmentPattern | MethodDefinition | ClassPropertyDefinition | ClassProperty | ClassBody | ClassDeclaration | ClassExpression | Super | ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportDeclaration | ExportNamedDeclaration | ExportSpecifier | ExportDefaultDeclaration | ExportAllDeclaration | TaggedTemplateExpression | TemplateLiteral | TemplateElement | MetaProperty | AwaitExpression | SpreadProperty | SpreadPropertyPattern | ImportExpression | ChainExpression | OptionalCallExpression | OptionalMemberExpression | JSXAttribute | JSXIdentifier | JSXNamespacedName | JSXExpressionContainer | JSXElement | JSXFragment | JSXMemberExpression | JSXSpreadAttribute | JSXEmptyExpression | JSXText | JSXSpreadChild | JSXOpeningElement | JSXClosingElement | JSXOpeningFragment | JSXClosingFragment | Decorator | PrivateName | ClassPrivateProperty | TypeParameterDeclaration | TSTypeParameterDeclaration | TypeParameterInstantiation | TSTypeParameterInstantiation | ClassImplements | TSExpressionWithTypeArguments | AnyTypeAnnotation | EmptyTypeAnnotation | MixedTypeAnnotation | VoidTypeAnnotation | SymbolTypeAnnotation | NumberTypeAnnotation | BigIntTypeAnnotation | NumberLiteralTypeAnnotation | NumericLiteralTypeAnnotation | BigIntLiteralTypeAnnotation | StringTypeAnnotation | StringLiteralTypeAnnotation | BooleanTypeAnnotation | BooleanLiteralTypeAnnotation | NullableTypeAnnotation | NullLiteralTypeAnnotation | NullTypeAnnotation | ThisTypeAnnotation | ExistsTypeAnnotation | ExistentialTypeParam | FunctionTypeAnnotation | FunctionTypeParam | ArrayTypeAnnotation | ObjectTypeAnnotation | ObjectTypeProperty | ObjectTypeSpreadProperty | ObjectTypeIndexer | ObjectTypeCallProperty | ObjectTypeInternalSlot | Variance | QualifiedTypeIdentifier | GenericTypeAnnotation | MemberTypeAnnotation | UnionTypeAnnotation | IntersectionTypeAnnotation | TypeofTypeAnnotation | TypeParameter | InterfaceTypeAnnotation | InterfaceExtends | InterfaceDeclaration | DeclareInterface | TypeAlias | DeclareTypeAlias | OpaqueType | DeclareOpaqueType | TypeCastExpression | TupleTypeAnnotation | DeclareVariable | DeclareFunction | DeclareClass | DeclareModule | DeclareModuleExports | DeclareExportDeclaration | ExportBatchSpecifier | DeclareExportAllDeclaration | InferredPredicate | DeclaredPredicate | EnumDeclaration | EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody | EnumBooleanMember | EnumNumberMember | EnumStringMember | EnumDefaultedMember | ExportDeclaration | Block | Line | Noop | DoExpression | BindExpression | ParenthesizedExpression | ExportNamespaceSpecifier | ExportDefaultSpecifier | CommentBlock | CommentLine | Directive | DirectiveLiteral | InterpreterDirective | StringLiteral | NumericLiteral | BigIntLiteral | NullLiteral | BooleanLiteral | RegExpLiteral | ObjectMethod | ClassMethod | ClassPrivateMethod | RestProperty | ForAwaitStatement | Import | TSQualifiedName | TSTypeReference | TSAsExpression | TSNonNullExpression | TSAnyKeyword | TSBigIntKeyword | TSBooleanKeyword | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSStringKeyword | TSSymbolKeyword | TSUndefinedKeyword | TSUnknownKeyword | TSVoidKeyword | TSThisType | TSArrayType | TSLiteralType | TSUnionType | TSIntersectionType | TSConditionalType | TSInferType | TSTypeParameter | TSParenthesizedType | TSFunctionType | TSConstructorType | TSDeclareFunction | TSDeclareMethod | TSMappedType | TSTupleType | TSNamedTupleMember | TSRestType | TSOptionalType | TSIndexedAccessType | TSTypeOperator | TSIndexSignature | TSPropertySignature | TSMethodSignature | TSTypePredicate | TSCallSignatureDeclaration | TSConstructSignatureDeclaration | TSEnumMember | TSTypeQuery | TSImportType | TSTypeLiteral | TSTypeAssertion | TSEnumDeclaration | TSTypeAliasDeclaration | TSModuleBlock | TSModuleDeclaration | TSImportEqualsDeclaration | TSExternalModuleReference | TSExportAssignment | TSNamespaceExportDeclaration | TSInterfaceBody | TSInterfaceDeclaration | TSParameterProperty;
1349 let Printable: Type<Printable>;
1350 let SourceLocation: Type<SourceLocation>;
1351 let Node: Type<Node>;
1352 let Comment: Type<Comment>;
1353 let Position: Type<Position>;
1354 let File: Type<File>;
1355 let Program: Type<Program>;
1356 let Statement: Type<Statement>;
1357 let Function: Type<Function>;
1358 let Expression: Type<Expression>;
1359 let Pattern: Type<Pattern>;
1360 let Identifier: Type<Identifier>;
1361 let BlockStatement: Type<BlockStatement>;
1362 let EmptyStatement: Type<EmptyStatement>;
1363 let ExpressionStatement: Type<ExpressionStatement>;
1364 let IfStatement: Type<IfStatement>;
1365 let LabeledStatement: Type<LabeledStatement>;
1366 let BreakStatement: Type<BreakStatement>;
1367 let ContinueStatement: Type<ContinueStatement>;
1368 let WithStatement: Type<WithStatement>;
1369 let SwitchStatement: Type<SwitchStatement>;
1370 let SwitchCase: Type<SwitchCase>;
1371 let ReturnStatement: Type<ReturnStatement>;
1372 let ThrowStatement: Type<ThrowStatement>;
1373 let TryStatement: Type<TryStatement>;
1374 let CatchClause: Type<CatchClause>;
1375 let WhileStatement: Type<WhileStatement>;
1376 let DoWhileStatement: Type<DoWhileStatement>;
1377 let ForStatement: Type<ForStatement>;
1378 let Declaration: Type<Declaration>;
1379 let VariableDeclaration: Type<VariableDeclaration>;
1380 let ForInStatement: Type<ForInStatement>;
1381 let DebuggerStatement: Type<DebuggerStatement>;
1382 let FunctionDeclaration: Type<FunctionDeclaration>;
1383 let FunctionExpression: Type<FunctionExpression>;
1384 let VariableDeclarator: Type<VariableDeclarator>;
1385 let ThisExpression: Type<ThisExpression>;
1386 let ArrayExpression: Type<ArrayExpression>;
1387 let ObjectExpression: Type<ObjectExpression>;
1388 let Property: Type<Property>;
1389 let Literal: Type<Literal>;
1390 let SequenceExpression: Type<SequenceExpression>;
1391 let UnaryExpression: Type<UnaryExpression>;
1392 let BinaryExpression: Type<BinaryExpression>;
1393 let AssignmentExpression: Type<AssignmentExpression>;
1394 let ChainElement: Type<ChainElement>;
1395 let MemberExpression: Type<MemberExpression>;
1396 let UpdateExpression: Type<UpdateExpression>;
1397 let LogicalExpression: Type<LogicalExpression>;
1398 let ConditionalExpression: Type<ConditionalExpression>;
1399 let NewExpression: Type<NewExpression>;
1400 let CallExpression: Type<CallExpression>;
1401 let RestElement: Type<RestElement>;
1402 let TypeAnnotation: Type<TypeAnnotation>;
1403 let TSTypeAnnotation: Type<TSTypeAnnotation>;
1404 let SpreadElementPattern: Type<SpreadElementPattern>;
1405 let ArrowFunctionExpression: Type<ArrowFunctionExpression>;
1406 let ForOfStatement: Type<ForOfStatement>;
1407 let YieldExpression: Type<YieldExpression>;
1408 let GeneratorExpression: Type<GeneratorExpression>;
1409 let ComprehensionBlock: Type<ComprehensionBlock>;
1410 let ComprehensionExpression: Type<ComprehensionExpression>;
1411 let ObjectProperty: Type<ObjectProperty>;
1412 let PropertyPattern: Type<PropertyPattern>;
1413 let ObjectPattern: Type<ObjectPattern>;
1414 let ArrayPattern: Type<ArrayPattern>;
1415 let SpreadElement: Type<SpreadElement>;
1416 let AssignmentPattern: Type<AssignmentPattern>;
1417 let MethodDefinition: Type<MethodDefinition>;
1418 let ClassPropertyDefinition: Type<ClassPropertyDefinition>;
1419 let ClassProperty: Type<ClassProperty>;
1420 let ClassBody: Type<ClassBody>;
1421 let ClassDeclaration: Type<ClassDeclaration>;
1422 let ClassExpression: Type<ClassExpression>;
1423 let Super: Type<Super>;
1424 let Specifier: Type<Specifier>;
1425 let ModuleSpecifier: Type<ModuleSpecifier>;
1426 let ImportSpecifier: Type<ImportSpecifier>;
1427 let ImportDefaultSpecifier: Type<ImportDefaultSpecifier>;
1428 let ImportNamespaceSpecifier: Type<ImportNamespaceSpecifier>;
1429 let ImportDeclaration: Type<ImportDeclaration>;
1430 let ExportNamedDeclaration: Type<ExportNamedDeclaration>;
1431 let ExportSpecifier: Type<ExportSpecifier>;
1432 let ExportDefaultDeclaration: Type<ExportDefaultDeclaration>;
1433 let ExportAllDeclaration: Type<ExportAllDeclaration>;
1434 let TaggedTemplateExpression: Type<TaggedTemplateExpression>;
1435 let TemplateLiteral: Type<TemplateLiteral>;
1436 let TemplateElement: Type<TemplateElement>;
1437 let MetaProperty: Type<MetaProperty>;
1438 let AwaitExpression: Type<AwaitExpression>;
1439 let SpreadProperty: Type<SpreadProperty>;
1440 let SpreadPropertyPattern: Type<SpreadPropertyPattern>;
1441 let ImportExpression: Type<ImportExpression>;
1442 let ChainExpression: Type<ChainExpression>;
1443 let OptionalCallExpression: Type<OptionalCallExpression>;
1444 let OptionalMemberExpression: Type<OptionalMemberExpression>;
1445 let JSXAttribute: Type<JSXAttribute>;
1446 let JSXIdentifier: Type<JSXIdentifier>;
1447 let JSXNamespacedName: Type<JSXNamespacedName>;
1448 let JSXExpressionContainer: Type<JSXExpressionContainer>;
1449 let JSXElement: Type<JSXElement>;
1450 let JSXFragment: Type<JSXFragment>;
1451 let JSXMemberExpression: Type<JSXMemberExpression>;
1452 let JSXSpreadAttribute: Type<JSXSpreadAttribute>;
1453 let JSXEmptyExpression: Type<JSXEmptyExpression>;
1454 let JSXText: Type<JSXText>;
1455 let JSXSpreadChild: Type<JSXSpreadChild>;
1456 let JSXOpeningElement: Type<JSXOpeningElement>;
1457 let JSXClosingElement: Type<JSXClosingElement>;
1458 let JSXOpeningFragment: Type<JSXOpeningFragment>;
1459 let JSXClosingFragment: Type<JSXClosingFragment>;
1460 let Decorator: Type<Decorator>;
1461 let PrivateName: Type<PrivateName>;
1462 let ClassPrivateProperty: Type<ClassPrivateProperty>;
1463 let TypeParameterDeclaration: Type<TypeParameterDeclaration>;
1464 let TSTypeParameterDeclaration: Type<TSTypeParameterDeclaration>;
1465 let TypeParameterInstantiation: Type<TypeParameterInstantiation>;
1466 let TSTypeParameterInstantiation: Type<TSTypeParameterInstantiation>;
1467 let ClassImplements: Type<ClassImplements>;
1468 let TSType: Type<TSType>;
1469 let TSHasOptionalTypeParameterInstantiation: Type<TSHasOptionalTypeParameterInstantiation>;
1470 let TSExpressionWithTypeArguments: Type<TSExpressionWithTypeArguments>;
1471 let Flow: Type<Flow>;
1472 let FlowType: Type<FlowType>;
1473 let AnyTypeAnnotation: Type<AnyTypeAnnotation>;
1474 let EmptyTypeAnnotation: Type<EmptyTypeAnnotation>;
1475 let MixedTypeAnnotation: Type<MixedTypeAnnotation>;
1476 let VoidTypeAnnotation: Type<VoidTypeAnnotation>;
1477 let SymbolTypeAnnotation: Type<SymbolTypeAnnotation>;
1478 let NumberTypeAnnotation: Type<NumberTypeAnnotation>;
1479 let BigIntTypeAnnotation: Type<BigIntTypeAnnotation>;
1480 let NumberLiteralTypeAnnotation: Type<NumberLiteralTypeAnnotation>;
1481 let NumericLiteralTypeAnnotation: Type<NumericLiteralTypeAnnotation>;
1482 let BigIntLiteralTypeAnnotation: Type<BigIntLiteralTypeAnnotation>;
1483 let StringTypeAnnotation: Type<StringTypeAnnotation>;
1484 let StringLiteralTypeAnnotation: Type<StringLiteralTypeAnnotation>;
1485 let BooleanTypeAnnotation: Type<BooleanTypeAnnotation>;
1486 let BooleanLiteralTypeAnnotation: Type<BooleanLiteralTypeAnnotation>;
1487 let NullableTypeAnnotation: Type<NullableTypeAnnotation>;
1488 let NullLiteralTypeAnnotation: Type<NullLiteralTypeAnnotation>;
1489 let NullTypeAnnotation: Type<NullTypeAnnotation>;
1490 let ThisTypeAnnotation: Type<ThisTypeAnnotation>;
1491 let ExistsTypeAnnotation: Type<ExistsTypeAnnotation>;
1492 let ExistentialTypeParam: Type<ExistentialTypeParam>;
1493 let FunctionTypeAnnotation: Type<FunctionTypeAnnotation>;
1494 let FunctionTypeParam: Type<FunctionTypeParam>;
1495 let ArrayTypeAnnotation: Type<ArrayTypeAnnotation>;
1496 let ObjectTypeAnnotation: Type<ObjectTypeAnnotation>;
1497 let ObjectTypeProperty: Type<ObjectTypeProperty>;
1498 let ObjectTypeSpreadProperty: Type<ObjectTypeSpreadProperty>;
1499 let ObjectTypeIndexer: Type<ObjectTypeIndexer>;
1500 let ObjectTypeCallProperty: Type<ObjectTypeCallProperty>;
1501 let ObjectTypeInternalSlot: Type<ObjectTypeInternalSlot>;
1502 let Variance: Type<Variance>;
1503 let QualifiedTypeIdentifier: Type<QualifiedTypeIdentifier>;
1504 let GenericTypeAnnotation: Type<GenericTypeAnnotation>;
1505 let MemberTypeAnnotation: Type<MemberTypeAnnotation>;
1506 let UnionTypeAnnotation: Type<UnionTypeAnnotation>;
1507 let IntersectionTypeAnnotation: Type<IntersectionTypeAnnotation>;
1508 let TypeofTypeAnnotation: Type<TypeofTypeAnnotation>;
1509 let TypeParameter: Type<TypeParameter>;
1510 let InterfaceTypeAnnotation: Type<InterfaceTypeAnnotation>;
1511 let InterfaceExtends: Type<InterfaceExtends>;
1512 let InterfaceDeclaration: Type<InterfaceDeclaration>;
1513 let DeclareInterface: Type<DeclareInterface>;
1514 let TypeAlias: Type<TypeAlias>;
1515 let DeclareTypeAlias: Type<DeclareTypeAlias>;
1516 let OpaqueType: Type<OpaqueType>;
1517 let DeclareOpaqueType: Type<DeclareOpaqueType>;
1518 let TypeCastExpression: Type<TypeCastExpression>;
1519 let TupleTypeAnnotation: Type<TupleTypeAnnotation>;
1520 let DeclareVariable: Type<DeclareVariable>;
1521 let DeclareFunction: Type<DeclareFunction>;
1522 let FlowPredicate: Type<FlowPredicate>;
1523 let DeclareClass: Type<DeclareClass>;
1524 let DeclareModule: Type<DeclareModule>;
1525 let DeclareModuleExports: Type<DeclareModuleExports>;
1526 let DeclareExportDeclaration: Type<DeclareExportDeclaration>;
1527 let ExportBatchSpecifier: Type<ExportBatchSpecifier>;
1528 let DeclareExportAllDeclaration: Type<DeclareExportAllDeclaration>;
1529 let InferredPredicate: Type<InferredPredicate>;
1530 let DeclaredPredicate: Type<DeclaredPredicate>;
1531 let EnumDeclaration: Type<EnumDeclaration>;
1532 let EnumBooleanBody: Type<EnumBooleanBody>;
1533 let EnumNumberBody: Type<EnumNumberBody>;
1534 let EnumStringBody: Type<EnumStringBody>;
1535 let EnumSymbolBody: Type<EnumSymbolBody>;
1536 let EnumBooleanMember: Type<EnumBooleanMember>;
1537 let EnumNumberMember: Type<EnumNumberMember>;
1538 let EnumStringMember: Type<EnumStringMember>;
1539 let EnumDefaultedMember: Type<EnumDefaultedMember>;
1540 let ExportDeclaration: Type<ExportDeclaration>;
1541 let Block: Type<Block>;
1542 let Line: Type<Line>;
1543 let Noop: Type<Noop>;
1544 let DoExpression: Type<DoExpression>;
1545 let BindExpression: Type<BindExpression>;
1546 let ParenthesizedExpression: Type<ParenthesizedExpression>;
1547 let ExportNamespaceSpecifier: Type<ExportNamespaceSpecifier>;
1548 let ExportDefaultSpecifier: Type<ExportDefaultSpecifier>;
1549 let CommentBlock: Type<CommentBlock>;
1550 let CommentLine: Type<CommentLine>;
1551 let Directive: Type<Directive>;
1552 let DirectiveLiteral: Type<DirectiveLiteral>;
1553 let InterpreterDirective: Type<InterpreterDirective>;
1554 let StringLiteral: Type<StringLiteral>;
1555 let NumericLiteral: Type<NumericLiteral>;
1556 let BigIntLiteral: Type<BigIntLiteral>;
1557 let NullLiteral: Type<NullLiteral>;
1558 let BooleanLiteral: Type<BooleanLiteral>;
1559 let RegExpLiteral: Type<RegExpLiteral>;
1560 let ObjectMethod: Type<ObjectMethod>;
1561 let ClassMethod: Type<ClassMethod>;
1562 let ClassPrivateMethod: Type<ClassPrivateMethod>;
1563 let RestProperty: Type<RestProperty>;
1564 let ForAwaitStatement: Type<ForAwaitStatement>;
1565 let Import: Type<Import>;
1566 let TSQualifiedName: Type<TSQualifiedName>;
1567 let TSTypeReference: Type<TSTypeReference>;
1568 let TSHasOptionalTypeParameters: Type<TSHasOptionalTypeParameters>;
1569 let TSHasOptionalTypeAnnotation: Type<TSHasOptionalTypeAnnotation>;
1570 let TSAsExpression: Type<TSAsExpression>;
1571 let TSNonNullExpression: Type<TSNonNullExpression>;
1572 let TSAnyKeyword: Type<TSAnyKeyword>;
1573 let TSBigIntKeyword: Type<TSBigIntKeyword>;
1574 let TSBooleanKeyword: Type<TSBooleanKeyword>;
1575 let TSNeverKeyword: Type<TSNeverKeyword>;
1576 let TSNullKeyword: Type<TSNullKeyword>;
1577 let TSNumberKeyword: Type<TSNumberKeyword>;
1578 let TSObjectKeyword: Type<TSObjectKeyword>;
1579 let TSStringKeyword: Type<TSStringKeyword>;
1580 let TSSymbolKeyword: Type<TSSymbolKeyword>;
1581 let TSUndefinedKeyword: Type<TSUndefinedKeyword>;
1582 let TSUnknownKeyword: Type<TSUnknownKeyword>;
1583 let TSVoidKeyword: Type<TSVoidKeyword>;
1584 let TSThisType: Type<TSThisType>;
1585 let TSArrayType: Type<TSArrayType>;
1586 let TSLiteralType: Type<TSLiteralType>;
1587 let TSUnionType: Type<TSUnionType>;
1588 let TSIntersectionType: Type<TSIntersectionType>;
1589 let TSConditionalType: Type<TSConditionalType>;
1590 let TSInferType: Type<TSInferType>;
1591 let TSTypeParameter: Type<TSTypeParameter>;
1592 let TSParenthesizedType: Type<TSParenthesizedType>;
1593 let TSFunctionType: Type<TSFunctionType>;
1594 let TSConstructorType: Type<TSConstructorType>;
1595 let TSDeclareFunction: Type<TSDeclareFunction>;
1596 let TSDeclareMethod: Type<TSDeclareMethod>;
1597 let TSMappedType: Type<TSMappedType>;
1598 let TSTupleType: Type<TSTupleType>;
1599 let TSNamedTupleMember: Type<TSNamedTupleMember>;
1600 let TSRestType: Type<TSRestType>;
1601 let TSOptionalType: Type<TSOptionalType>;
1602 let TSIndexedAccessType: Type<TSIndexedAccessType>;
1603 let TSTypeOperator: Type<TSTypeOperator>;
1604 let TSIndexSignature: Type<TSIndexSignature>;
1605 let TSPropertySignature: Type<TSPropertySignature>;
1606 let TSMethodSignature: Type<TSMethodSignature>;
1607 let TSTypePredicate: Type<TSTypePredicate>;
1608 let TSCallSignatureDeclaration: Type<TSCallSignatureDeclaration>;
1609 let TSConstructSignatureDeclaration: Type<TSConstructSignatureDeclaration>;
1610 let TSEnumMember: Type<TSEnumMember>;
1611 let TSTypeQuery: Type<TSTypeQuery>;
1612 let TSImportType: Type<TSImportType>;
1613 let TSTypeLiteral: Type<TSTypeLiteral>;
1614 let TSTypeAssertion: Type<TSTypeAssertion>;
1615 let TSEnumDeclaration: Type<TSEnumDeclaration>;
1616 let TSTypeAliasDeclaration: Type<TSTypeAliasDeclaration>;
1617 let TSModuleBlock: Type<TSModuleBlock>;
1618 let TSModuleDeclaration: Type<TSModuleDeclaration>;
1619 let TSImportEqualsDeclaration: Type<TSImportEqualsDeclaration>;
1620 let TSExternalModuleReference: Type<TSExternalModuleReference>;
1621 let TSExportAssignment: Type<TSExportAssignment>;
1622 let TSNamespaceExportDeclaration: Type<TSNamespaceExportDeclaration>;
1623 let TSInterfaceBody: Type<TSInterfaceBody>;
1624 let TSInterfaceDeclaration: Type<TSInterfaceDeclaration>;
1625 let TSParameterProperty: Type<TSParameterProperty>;
1626}
1627export interface NamedTypes {
1628 Printable: Type<namedTypes.Printable>;
1629 SourceLocation: Type<namedTypes.SourceLocation>;
1630 Node: Type<namedTypes.Node>;
1631 Comment: Type<namedTypes.Comment>;
1632 Position: Type<namedTypes.Position>;
1633 File: Type<namedTypes.File>;
1634 Program: Type<namedTypes.Program>;
1635 Statement: Type<namedTypes.Statement>;
1636 Function: Type<namedTypes.Function>;
1637 Expression: Type<namedTypes.Expression>;
1638 Pattern: Type<namedTypes.Pattern>;
1639 Identifier: Type<namedTypes.Identifier>;
1640 BlockStatement: Type<namedTypes.BlockStatement>;
1641 EmptyStatement: Type<namedTypes.EmptyStatement>;
1642 ExpressionStatement: Type<namedTypes.ExpressionStatement>;
1643 IfStatement: Type<namedTypes.IfStatement>;
1644 LabeledStatement: Type<namedTypes.LabeledStatement>;
1645 BreakStatement: Type<namedTypes.BreakStatement>;
1646 ContinueStatement: Type<namedTypes.ContinueStatement>;
1647 WithStatement: Type<namedTypes.WithStatement>;
1648 SwitchStatement: Type<namedTypes.SwitchStatement>;
1649 SwitchCase: Type<namedTypes.SwitchCase>;
1650 ReturnStatement: Type<namedTypes.ReturnStatement>;
1651 ThrowStatement: Type<namedTypes.ThrowStatement>;
1652 TryStatement: Type<namedTypes.TryStatement>;
1653 CatchClause: Type<namedTypes.CatchClause>;
1654 WhileStatement: Type<namedTypes.WhileStatement>;
1655 DoWhileStatement: Type<namedTypes.DoWhileStatement>;
1656 ForStatement: Type<namedTypes.ForStatement>;
1657 Declaration: Type<namedTypes.Declaration>;
1658 VariableDeclaration: Type<namedTypes.VariableDeclaration>;
1659 ForInStatement: Type<namedTypes.ForInStatement>;
1660 DebuggerStatement: Type<namedTypes.DebuggerStatement>;
1661 FunctionDeclaration: Type<namedTypes.FunctionDeclaration>;
1662 FunctionExpression: Type<namedTypes.FunctionExpression>;
1663 VariableDeclarator: Type<namedTypes.VariableDeclarator>;
1664 ThisExpression: Type<namedTypes.ThisExpression>;
1665 ArrayExpression: Type<namedTypes.ArrayExpression>;
1666 ObjectExpression: Type<namedTypes.ObjectExpression>;
1667 Property: Type<namedTypes.Property>;
1668 Literal: Type<namedTypes.Literal>;
1669 SequenceExpression: Type<namedTypes.SequenceExpression>;
1670 UnaryExpression: Type<namedTypes.UnaryExpression>;
1671 BinaryExpression: Type<namedTypes.BinaryExpression>;
1672 AssignmentExpression: Type<namedTypes.AssignmentExpression>;
1673 ChainElement: Type<namedTypes.ChainElement>;
1674 MemberExpression: Type<namedTypes.MemberExpression>;
1675 UpdateExpression: Type<namedTypes.UpdateExpression>;
1676 LogicalExpression: Type<namedTypes.LogicalExpression>;
1677 ConditionalExpression: Type<namedTypes.ConditionalExpression>;
1678 NewExpression: Type<namedTypes.NewExpression>;
1679 CallExpression: Type<namedTypes.CallExpression>;
1680 RestElement: Type<namedTypes.RestElement>;
1681 TypeAnnotation: Type<namedTypes.TypeAnnotation>;
1682 TSTypeAnnotation: Type<namedTypes.TSTypeAnnotation>;
1683 SpreadElementPattern: Type<namedTypes.SpreadElementPattern>;
1684 ArrowFunctionExpression: Type<namedTypes.ArrowFunctionExpression>;
1685 ForOfStatement: Type<namedTypes.ForOfStatement>;
1686 YieldExpression: Type<namedTypes.YieldExpression>;
1687 GeneratorExpression: Type<namedTypes.GeneratorExpression>;
1688 ComprehensionBlock: Type<namedTypes.ComprehensionBlock>;
1689 ComprehensionExpression: Type<namedTypes.ComprehensionExpression>;
1690 ObjectProperty: Type<namedTypes.ObjectProperty>;
1691 PropertyPattern: Type<namedTypes.PropertyPattern>;
1692 ObjectPattern: Type<namedTypes.ObjectPattern>;
1693 ArrayPattern: Type<namedTypes.ArrayPattern>;
1694 SpreadElement: Type<namedTypes.SpreadElement>;
1695 AssignmentPattern: Type<namedTypes.AssignmentPattern>;
1696 MethodDefinition: Type<namedTypes.MethodDefinition>;
1697 ClassPropertyDefinition: Type<namedTypes.ClassPropertyDefinition>;
1698 ClassProperty: Type<namedTypes.ClassProperty>;
1699 ClassBody: Type<namedTypes.ClassBody>;
1700 ClassDeclaration: Type<namedTypes.ClassDeclaration>;
1701 ClassExpression: Type<namedTypes.ClassExpression>;
1702 Super: Type<namedTypes.Super>;
1703 Specifier: Type<namedTypes.Specifier>;
1704 ModuleSpecifier: Type<namedTypes.ModuleSpecifier>;
1705 ImportSpecifier: Type<namedTypes.ImportSpecifier>;
1706 ImportDefaultSpecifier: Type<namedTypes.ImportDefaultSpecifier>;
1707 ImportNamespaceSpecifier: Type<namedTypes.ImportNamespaceSpecifier>;
1708 ImportDeclaration: Type<namedTypes.ImportDeclaration>;
1709 ExportNamedDeclaration: Type<namedTypes.ExportNamedDeclaration>;
1710 ExportSpecifier: Type<namedTypes.ExportSpecifier>;
1711 ExportDefaultDeclaration: Type<namedTypes.ExportDefaultDeclaration>;
1712 ExportAllDeclaration: Type<namedTypes.ExportAllDeclaration>;
1713 TaggedTemplateExpression: Type<namedTypes.TaggedTemplateExpression>;
1714 TemplateLiteral: Type<namedTypes.TemplateLiteral>;
1715 TemplateElement: Type<namedTypes.TemplateElement>;
1716 MetaProperty: Type<namedTypes.MetaProperty>;
1717 AwaitExpression: Type<namedTypes.AwaitExpression>;
1718 SpreadProperty: Type<namedTypes.SpreadProperty>;
1719 SpreadPropertyPattern: Type<namedTypes.SpreadPropertyPattern>;
1720 ImportExpression: Type<namedTypes.ImportExpression>;
1721 ChainExpression: Type<namedTypes.ChainExpression>;
1722 OptionalCallExpression: Type<namedTypes.OptionalCallExpression>;
1723 OptionalMemberExpression: Type<namedTypes.OptionalMemberExpression>;
1724 JSXAttribute: Type<namedTypes.JSXAttribute>;
1725 JSXIdentifier: Type<namedTypes.JSXIdentifier>;
1726 JSXNamespacedName: Type<namedTypes.JSXNamespacedName>;
1727 JSXExpressionContainer: Type<namedTypes.JSXExpressionContainer>;
1728 JSXElement: Type<namedTypes.JSXElement>;
1729 JSXFragment: Type<namedTypes.JSXFragment>;
1730 JSXMemberExpression: Type<namedTypes.JSXMemberExpression>;
1731 JSXSpreadAttribute: Type<namedTypes.JSXSpreadAttribute>;
1732 JSXEmptyExpression: Type<namedTypes.JSXEmptyExpression>;
1733 JSXText: Type<namedTypes.JSXText>;
1734 JSXSpreadChild: Type<namedTypes.JSXSpreadChild>;
1735 JSXOpeningElement: Type<namedTypes.JSXOpeningElement>;
1736 JSXClosingElement: Type<namedTypes.JSXClosingElement>;
1737 JSXOpeningFragment: Type<namedTypes.JSXOpeningFragment>;
1738 JSXClosingFragment: Type<namedTypes.JSXClosingFragment>;
1739 Decorator: Type<namedTypes.Decorator>;
1740 PrivateName: Type<namedTypes.PrivateName>;
1741 ClassPrivateProperty: Type<namedTypes.ClassPrivateProperty>;
1742 TypeParameterDeclaration: Type<namedTypes.TypeParameterDeclaration>;
1743 TSTypeParameterDeclaration: Type<namedTypes.TSTypeParameterDeclaration>;
1744 TypeParameterInstantiation: Type<namedTypes.TypeParameterInstantiation>;
1745 TSTypeParameterInstantiation: Type<namedTypes.TSTypeParameterInstantiation>;
1746 ClassImplements: Type<namedTypes.ClassImplements>;
1747 TSType: Type<namedTypes.TSType>;
1748 TSHasOptionalTypeParameterInstantiation: Type<namedTypes.TSHasOptionalTypeParameterInstantiation>;
1749 TSExpressionWithTypeArguments: Type<namedTypes.TSExpressionWithTypeArguments>;
1750 Flow: Type<namedTypes.Flow>;
1751 FlowType: Type<namedTypes.FlowType>;
1752 AnyTypeAnnotation: Type<namedTypes.AnyTypeAnnotation>;
1753 EmptyTypeAnnotation: Type<namedTypes.EmptyTypeAnnotation>;
1754 MixedTypeAnnotation: Type<namedTypes.MixedTypeAnnotation>;
1755 VoidTypeAnnotation: Type<namedTypes.VoidTypeAnnotation>;
1756 SymbolTypeAnnotation: Type<namedTypes.SymbolTypeAnnotation>;
1757 NumberTypeAnnotation: Type<namedTypes.NumberTypeAnnotation>;
1758 BigIntTypeAnnotation: Type<namedTypes.BigIntTypeAnnotation>;
1759 NumberLiteralTypeAnnotation: Type<namedTypes.NumberLiteralTypeAnnotation>;
1760 NumericLiteralTypeAnnotation: Type<namedTypes.NumericLiteralTypeAnnotation>;
1761 BigIntLiteralTypeAnnotation: Type<namedTypes.BigIntLiteralTypeAnnotation>;
1762 StringTypeAnnotation: Type<namedTypes.StringTypeAnnotation>;
1763 StringLiteralTypeAnnotation: Type<namedTypes.StringLiteralTypeAnnotation>;
1764 BooleanTypeAnnotation: Type<namedTypes.BooleanTypeAnnotation>;
1765 BooleanLiteralTypeAnnotation: Type<namedTypes.BooleanLiteralTypeAnnotation>;
1766 NullableTypeAnnotation: Type<namedTypes.NullableTypeAnnotation>;
1767 NullLiteralTypeAnnotation: Type<namedTypes.NullLiteralTypeAnnotation>;
1768 NullTypeAnnotation: Type<namedTypes.NullTypeAnnotation>;
1769 ThisTypeAnnotation: Type<namedTypes.ThisTypeAnnotation>;
1770 ExistsTypeAnnotation: Type<namedTypes.ExistsTypeAnnotation>;
1771 ExistentialTypeParam: Type<namedTypes.ExistentialTypeParam>;
1772 FunctionTypeAnnotation: Type<namedTypes.FunctionTypeAnnotation>;
1773 FunctionTypeParam: Type<namedTypes.FunctionTypeParam>;
1774 ArrayTypeAnnotation: Type<namedTypes.ArrayTypeAnnotation>;
1775 ObjectTypeAnnotation: Type<namedTypes.ObjectTypeAnnotation>;
1776 ObjectTypeProperty: Type<namedTypes.ObjectTypeProperty>;
1777 ObjectTypeSpreadProperty: Type<namedTypes.ObjectTypeSpreadProperty>;
1778 ObjectTypeIndexer: Type<namedTypes.ObjectTypeIndexer>;
1779 ObjectTypeCallProperty: Type<namedTypes.ObjectTypeCallProperty>;
1780 ObjectTypeInternalSlot: Type<namedTypes.ObjectTypeInternalSlot>;
1781 Variance: Type<namedTypes.Variance>;
1782 QualifiedTypeIdentifier: Type<namedTypes.QualifiedTypeIdentifier>;
1783 GenericTypeAnnotation: Type<namedTypes.GenericTypeAnnotation>;
1784 MemberTypeAnnotation: Type<namedTypes.MemberTypeAnnotation>;
1785 UnionTypeAnnotation: Type<namedTypes.UnionTypeAnnotation>;
1786 IntersectionTypeAnnotation: Type<namedTypes.IntersectionTypeAnnotation>;
1787 TypeofTypeAnnotation: Type<namedTypes.TypeofTypeAnnotation>;
1788 TypeParameter: Type<namedTypes.TypeParameter>;
1789 InterfaceTypeAnnotation: Type<namedTypes.InterfaceTypeAnnotation>;
1790 InterfaceExtends: Type<namedTypes.InterfaceExtends>;
1791 InterfaceDeclaration: Type<namedTypes.InterfaceDeclaration>;
1792 DeclareInterface: Type<namedTypes.DeclareInterface>;
1793 TypeAlias: Type<namedTypes.TypeAlias>;
1794 DeclareTypeAlias: Type<namedTypes.DeclareTypeAlias>;
1795 OpaqueType: Type<namedTypes.OpaqueType>;
1796 DeclareOpaqueType: Type<namedTypes.DeclareOpaqueType>;
1797 TypeCastExpression: Type<namedTypes.TypeCastExpression>;
1798 TupleTypeAnnotation: Type<namedTypes.TupleTypeAnnotation>;
1799 DeclareVariable: Type<namedTypes.DeclareVariable>;
1800 DeclareFunction: Type<namedTypes.DeclareFunction>;
1801 FlowPredicate: Type<namedTypes.FlowPredicate>;
1802 DeclareClass: Type<namedTypes.DeclareClass>;
1803 DeclareModule: Type<namedTypes.DeclareModule>;
1804 DeclareModuleExports: Type<namedTypes.DeclareModuleExports>;
1805 DeclareExportDeclaration: Type<namedTypes.DeclareExportDeclaration>;
1806 ExportBatchSpecifier: Type<namedTypes.ExportBatchSpecifier>;
1807 DeclareExportAllDeclaration: Type<namedTypes.DeclareExportAllDeclaration>;
1808 InferredPredicate: Type<namedTypes.InferredPredicate>;
1809 DeclaredPredicate: Type<namedTypes.DeclaredPredicate>;
1810 EnumDeclaration: Type<namedTypes.EnumDeclaration>;
1811 EnumBooleanBody: Type<namedTypes.EnumBooleanBody>;
1812 EnumNumberBody: Type<namedTypes.EnumNumberBody>;
1813 EnumStringBody: Type<namedTypes.EnumStringBody>;
1814 EnumSymbolBody: Type<namedTypes.EnumSymbolBody>;
1815 EnumBooleanMember: Type<namedTypes.EnumBooleanMember>;
1816 EnumNumberMember: Type<namedTypes.EnumNumberMember>;
1817 EnumStringMember: Type<namedTypes.EnumStringMember>;
1818 EnumDefaultedMember: Type<namedTypes.EnumDefaultedMember>;
1819 ExportDeclaration: Type<namedTypes.ExportDeclaration>;
1820 Block: Type<namedTypes.Block>;
1821 Line: Type<namedTypes.Line>;
1822 Noop: Type<namedTypes.Noop>;
1823 DoExpression: Type<namedTypes.DoExpression>;
1824 BindExpression: Type<namedTypes.BindExpression>;
1825 ParenthesizedExpression: Type<namedTypes.ParenthesizedExpression>;
1826 ExportNamespaceSpecifier: Type<namedTypes.ExportNamespaceSpecifier>;
1827 ExportDefaultSpecifier: Type<namedTypes.ExportDefaultSpecifier>;
1828 CommentBlock: Type<namedTypes.CommentBlock>;
1829 CommentLine: Type<namedTypes.CommentLine>;
1830 Directive: Type<namedTypes.Directive>;
1831 DirectiveLiteral: Type<namedTypes.DirectiveLiteral>;
1832 InterpreterDirective: Type<namedTypes.InterpreterDirective>;
1833 StringLiteral: Type<namedTypes.StringLiteral>;
1834 NumericLiteral: Type<namedTypes.NumericLiteral>;
1835 BigIntLiteral: Type<namedTypes.BigIntLiteral>;
1836 NullLiteral: Type<namedTypes.NullLiteral>;
1837 BooleanLiteral: Type<namedTypes.BooleanLiteral>;
1838 RegExpLiteral: Type<namedTypes.RegExpLiteral>;
1839 ObjectMethod: Type<namedTypes.ObjectMethod>;
1840 ClassMethod: Type<namedTypes.ClassMethod>;
1841 ClassPrivateMethod: Type<namedTypes.ClassPrivateMethod>;
1842 RestProperty: Type<namedTypes.RestProperty>;
1843 ForAwaitStatement: Type<namedTypes.ForAwaitStatement>;
1844 Import: Type<namedTypes.Import>;
1845 TSQualifiedName: Type<namedTypes.TSQualifiedName>;
1846 TSTypeReference: Type<namedTypes.TSTypeReference>;
1847 TSHasOptionalTypeParameters: Type<namedTypes.TSHasOptionalTypeParameters>;
1848 TSHasOptionalTypeAnnotation: Type<namedTypes.TSHasOptionalTypeAnnotation>;
1849 TSAsExpression: Type<namedTypes.TSAsExpression>;
1850 TSNonNullExpression: Type<namedTypes.TSNonNullExpression>;
1851 TSAnyKeyword: Type<namedTypes.TSAnyKeyword>;
1852 TSBigIntKeyword: Type<namedTypes.TSBigIntKeyword>;
1853 TSBooleanKeyword: Type<namedTypes.TSBooleanKeyword>;
1854 TSNeverKeyword: Type<namedTypes.TSNeverKeyword>;
1855 TSNullKeyword: Type<namedTypes.TSNullKeyword>;
1856 TSNumberKeyword: Type<namedTypes.TSNumberKeyword>;
1857 TSObjectKeyword: Type<namedTypes.TSObjectKeyword>;
1858 TSStringKeyword: Type<namedTypes.TSStringKeyword>;
1859 TSSymbolKeyword: Type<namedTypes.TSSymbolKeyword>;
1860 TSUndefinedKeyword: Type<namedTypes.TSUndefinedKeyword>;
1861 TSUnknownKeyword: Type<namedTypes.TSUnknownKeyword>;
1862 TSVoidKeyword: Type<namedTypes.TSVoidKeyword>;
1863 TSThisType: Type<namedTypes.TSThisType>;
1864 TSArrayType: Type<namedTypes.TSArrayType>;
1865 TSLiteralType: Type<namedTypes.TSLiteralType>;
1866 TSUnionType: Type<namedTypes.TSUnionType>;
1867 TSIntersectionType: Type<namedTypes.TSIntersectionType>;
1868 TSConditionalType: Type<namedTypes.TSConditionalType>;
1869 TSInferType: Type<namedTypes.TSInferType>;
1870 TSTypeParameter: Type<namedTypes.TSTypeParameter>;
1871 TSParenthesizedType: Type<namedTypes.TSParenthesizedType>;
1872 TSFunctionType: Type<namedTypes.TSFunctionType>;
1873 TSConstructorType: Type<namedTypes.TSConstructorType>;
1874 TSDeclareFunction: Type<namedTypes.TSDeclareFunction>;
1875 TSDeclareMethod: Type<namedTypes.TSDeclareMethod>;
1876 TSMappedType: Type<namedTypes.TSMappedType>;
1877 TSTupleType: Type<namedTypes.TSTupleType>;
1878 TSNamedTupleMember: Type<namedTypes.TSNamedTupleMember>;
1879 TSRestType: Type<namedTypes.TSRestType>;
1880 TSOptionalType: Type<namedTypes.TSOptionalType>;
1881 TSIndexedAccessType: Type<namedTypes.TSIndexedAccessType>;
1882 TSTypeOperator: Type<namedTypes.TSTypeOperator>;
1883 TSIndexSignature: Type<namedTypes.TSIndexSignature>;
1884 TSPropertySignature: Type<namedTypes.TSPropertySignature>;
1885 TSMethodSignature: Type<namedTypes.TSMethodSignature>;
1886 TSTypePredicate: Type<namedTypes.TSTypePredicate>;
1887 TSCallSignatureDeclaration: Type<namedTypes.TSCallSignatureDeclaration>;
1888 TSConstructSignatureDeclaration: Type<namedTypes.TSConstructSignatureDeclaration>;
1889 TSEnumMember: Type<namedTypes.TSEnumMember>;
1890 TSTypeQuery: Type<namedTypes.TSTypeQuery>;
1891 TSImportType: Type<namedTypes.TSImportType>;
1892 TSTypeLiteral: Type<namedTypes.TSTypeLiteral>;
1893 TSTypeAssertion: Type<namedTypes.TSTypeAssertion>;
1894 TSEnumDeclaration: Type<namedTypes.TSEnumDeclaration>;
1895 TSTypeAliasDeclaration: Type<namedTypes.TSTypeAliasDeclaration>;
1896 TSModuleBlock: Type<namedTypes.TSModuleBlock>;
1897 TSModuleDeclaration: Type<namedTypes.TSModuleDeclaration>;
1898 TSImportEqualsDeclaration: Type<namedTypes.TSImportEqualsDeclaration>;
1899 TSExternalModuleReference: Type<namedTypes.TSExternalModuleReference>;
1900 TSExportAssignment: Type<namedTypes.TSExportAssignment>;
1901 TSNamespaceExportDeclaration: Type<namedTypes.TSNamespaceExportDeclaration>;
1902 TSInterfaceBody: Type<namedTypes.TSInterfaceBody>;
1903 TSInterfaceDeclaration: Type<namedTypes.TSInterfaceDeclaration>;
1904 TSParameterProperty: Type<namedTypes.TSParameterProperty>;
1905}