immosquare-cleaner 0.1.43 → 0.1.44

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/lib/immosquare-cleaner/version.rb +1 -1
  3. data/node_modules/@eslint/js/package.json +1 -1
  4. data/node_modules/eslint/README.md +1 -1
  5. data/node_modules/eslint/lib/cli.js +4 -3
  6. data/node_modules/eslint/lib/eslint/eslint.js +93 -17
  7. data/node_modules/eslint/lib/languages/js/source-code/source-code.js +1 -1
  8. data/node_modules/eslint/lib/rules/require-await.js +37 -3
  9. data/node_modules/eslint/lib/rules/utils/ast-utils.js +4 -3
  10. data/node_modules/eslint/lib/shared/flags.js +2 -1
  11. data/node_modules/eslint/package.json +17 -8
  12. data/node_modules/jscodeshift/CHANGELOG.md +17 -0
  13. data/node_modules/jscodeshift/CONTRIBUTING.md +7 -6
  14. data/node_modules/jscodeshift/README.md +3 -2
  15. data/node_modules/jscodeshift/dist/Runner.js +15 -15
  16. data/node_modules/jscodeshift/dist/collections/ImportDeclaration.js +113 -0
  17. data/node_modules/jscodeshift/dist/collections/index.js +1 -0
  18. data/node_modules/jscodeshift/dist/src/Runner.js +15 -15
  19. data/node_modules/jscodeshift/dist/src/collections/ImportDeclaration.js +113 -0
  20. data/node_modules/jscodeshift/dist/src/collections/index.js +1 -0
  21. data/node_modules/jscodeshift/package.json +9 -7
  22. data/node_modules/jscodeshift/parser/tsOptions.js +2 -0
  23. data/node_modules/jscodeshift/src/Runner.js +15 -15
  24. data/node_modules/jscodeshift/src/collections/ImportDeclaration.js +113 -0
  25. data/node_modules/jscodeshift/src/collections/index.js +1 -0
  26. data/node_modules/jscodeshift/utils/testUtils.js +1 -2
  27. data/node_modules/jscodeshift/website/README.md +44 -0
  28. data/node_modules/jscodeshift/website/astro.config.mjs +36 -0
  29. data/node_modules/jscodeshift/website/package.json +17 -0
  30. data/node_modules/jscodeshift/website/public/favicon.svg +1 -0
  31. data/node_modules/jscodeshift/website/src/assets/houston.webp +0 -0
  32. data/node_modules/jscodeshift/website/src/content/config.ts +6 -0
  33. data/node_modules/jscodeshift/website/src/content/docs/build/api-reference.mdx +406 -0
  34. data/node_modules/jscodeshift/website/src/content/docs/build/ast-grammar.mdx +3086 -0
  35. data/node_modules/jscodeshift/website/src/content/docs/index.mdx +15 -0
  36. data/node_modules/jscodeshift/website/src/content/docs/overview/introduction.mdx +45 -0
  37. data/node_modules/jscodeshift/website/src/content/docs/run/cli.mdx +161 -0
  38. data/node_modules/jscodeshift/website/src/env.d.ts +2 -0
  39. data/node_modules/jscodeshift/website/tsconfig.json +3 -0
  40. data/node_modules/npm-check-updates/README.md +34 -21
  41. data/node_modules/npm-check-updates/build/index.js +136 -136
  42. data/node_modules/npm-check-updates/build/index.js.map +1 -1
  43. data/node_modules/npm-check-updates/package.json +1 -1
  44. data/package.json +4 -4
  45. metadata +18 -10
  46. data/node_modules/jscodeshift/node_modules/chalk/index.d.ts +0 -415
  47. data/node_modules/jscodeshift/node_modules/chalk/license +0 -9
  48. data/node_modules/jscodeshift/node_modules/chalk/package.json +0 -68
  49. data/node_modules/jscodeshift/node_modules/chalk/readme.md +0 -341
  50. data/node_modules/jscodeshift/node_modules/chalk/source/index.js +0 -229
  51. data/node_modules/jscodeshift/node_modules/chalk/source/templates.js +0 -134
  52. data/node_modules/jscodeshift/node_modules/chalk/source/util.js +0 -39
  53. data/node_modules/jscodeshift/website/index.htm +0 -9
@@ -0,0 +1,3086 @@
1
+ ---
2
+ title: AST Grammar
3
+ ---
4
+
5
+ jscodeshift provides 278 node types which are mapped to their corresponding node type in `ast-types`. This is a comprehensive list of each node type used in `jscodeshift`.
6
+
7
+ For an easier approach to identifying the AST node type in a piece of code, please refer to [AST Explorer](https://astexplorer.net/).
8
+
9
+
10
+
11
+ ### AnyTypeAnnotation
12
+ A type annotation representing any type.
13
+
14
+ ```typescript
15
+ export interface AnyTypeAnnotation extends Omit<FlowType, "type"> {
16
+ type: "AnyTypeAnnotation";
17
+ }
18
+ ```
19
+
20
+ ### ArrayExpression
21
+ Represents an array literal.
22
+
23
+ ```typescript
24
+ export interface ArrayExpression extends Omit<Expression, "type"> {
25
+ type: "ArrayExpression";
26
+ elements: (K.ExpressionKind | K.SpreadElementKind | K.RestElementKind | null)[];
27
+ }
28
+ ```
29
+
30
+ ### ArrayPattern
31
+ A pattern that matches an array from a destructuring assignment.
32
+
33
+ ```typescript
34
+ export interface ArrayPattern extends Omit<Pattern, "type"> {
35
+ type: "ArrayPattern";
36
+ elements: (K.PatternKind | K.SpreadElementKind | null)[];
37
+ }
38
+ ```
39
+
40
+ ### ArrayTypeAnnotation
41
+ A type annotation for arrays.
42
+
43
+ ```typescript
44
+ export interface ArrayTypeAnnotation extends Omit<FlowType, "type"> {
45
+ type: "ArrayTypeAnnotation";
46
+ elementType: K.FlowTypeKind;
47
+ }
48
+ ```
49
+
50
+ ### ArrowFunctionExpression
51
+ An arrow function expression.
52
+
53
+ ```typescript
54
+ export interface ArrowFunctionExpression extends Omit<Function, "type" | "id" | "body" | "generator">, Omit<Expression, "type"> {
55
+ type: "ArrowFunctionExpression";
56
+ id?: null;
57
+ body: K.BlockStatementKind | K.ExpressionKind;
58
+ generator?: false;
59
+ }
60
+ ```
61
+
62
+ ### AssignmentExpression
63
+ Represents an assignment expression.
64
+
65
+ ```typescript
66
+ export interface AssignmentExpression extends Omit<Expression, "type"> {
67
+ type: "AssignmentExpression";
68
+ operator: "=" | "+=" | "-=" | "*=" | "/=" | "%=" | "<<=" | ">>=" | ">>>=" | "|=" | "^=" | "&=" | "**=" | "||=" | "&&=" | "??=";
69
+ left: K.PatternKind | K.MemberExpressionKind;
70
+ right: K.ExpressionKind;
71
+ }
72
+ ```
73
+
74
+ ### AssignmentPattern
75
+ A pattern that matches an assignment from a destructuring assignment.
76
+
77
+ ```typescript
78
+ export interface AssignmentPattern extends Omit<Pattern, "type"> {
79
+ type: "AssignmentPattern";
80
+ left: K.PatternKind;
81
+ right: K.ExpressionKind;
82
+ }
83
+ ```
84
+
85
+ ### AwaitExpression
86
+ Represents an await expression.
87
+
88
+ ```typescript
89
+ export interface AwaitExpression extends Omit<Expression, "type"> {
90
+ type: "AwaitExpression";
91
+ argument: K.ExpressionKind | null;
92
+ all?: boolean;
93
+ }
94
+ ```
95
+
96
+ ### BigIntLiteral
97
+ A literal representing a big integer.
98
+
99
+ ```typescript
100
+ export interface BigIntLiteral extends Omit<Literal, "type" | "value"> {
101
+ type: "BigIntLiteral";
102
+ value: string | number;
103
+ extra?: {
104
+ rawValue: string;
105
+ raw: string;
106
+ };
107
+ }
108
+ ```
109
+
110
+ ### BigIntLiteralTypeAnnotation
111
+ A type annotation for big integer literals.
112
+
113
+ ```typescript
114
+ export interface BigIntLiteralTypeAnnotation extends Omit<FlowType, "type"> {
115
+ type: "BigIntLiteralTypeAnnotation";
116
+ value: null;
117
+ raw: string;
118
+ }
119
+ ```
120
+
121
+ ### BigIntTypeAnnotation
122
+ A type annotation for big integers.
123
+
124
+ ```typescript
125
+ export interface BigIntTypeAnnotation extends Omit<FlowType, "type"> {
126
+ type: "BigIntTypeAnnotation";
127
+ }
128
+ ```
129
+
130
+ ### BinaryExpression
131
+ Represents a binary expression.
132
+
133
+ ```typescript
134
+ export interface BinaryExpression extends Omit<Expression, "type"> {
135
+ type: "BinaryExpression";
136
+ operator: "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "&" | "|" | "^" | "in" | "instanceof" | "**";
137
+ left: K.ExpressionKind;
138
+ right: K.ExpressionKind;
139
+ }
140
+ ```
141
+
142
+ ### BindExpression
143
+ Represents a bind expression.
144
+
145
+ ```typescript
146
+ export interface BindExpression extends Omit<Expression, "type"> {
147
+ type: "BindExpression";
148
+ object: K.ExpressionKind | null;
149
+ callee: K.ExpressionKind;
150
+ }
151
+ ```
152
+
153
+ ### Block
154
+ A comment block.
155
+
156
+ ```typescript
157
+ export interface Block extends Comment {
158
+ type: "Block";
159
+ }
160
+ ```
161
+
162
+ ### BlockStatement
163
+ Represents a block statement.
164
+
165
+ ```typescript
166
+ export interface BlockStatement extends Omit<Statement, "type"> {
167
+ type: "BlockStatement";
168
+ body: K.StatementKind[];
169
+ directives?: K.DirectiveKind[];
170
+ }
171
+ ```
172
+
173
+ ### BooleanLiteral
174
+ A literal representing a boolean value.
175
+
176
+ ```typescript
177
+ export interface BooleanLiteral extends Omit<Literal, "type" | "value"> {
178
+ type: "BooleanLiteral";
179
+ value: boolean;
180
+ }
181
+ ```
182
+
183
+ ### BooleanLiteralTypeAnnotation
184
+ A type annotation for boolean literals.
185
+
186
+ ```typescript
187
+ export interface BooleanLiteralTypeAnnotation extends Omit<FlowType, "type"> {
188
+ type: "BooleanLiteralTypeAnnotation";
189
+ value: boolean;
190
+ raw: string;
191
+ }
192
+ ```
193
+
194
+ ### BooleanTypeAnnotation
195
+ A type annotation for boolean values.
196
+
197
+ ```typescript
198
+ export interface BooleanTypeAnnotation extends Omit<FlowType, "type"> {
199
+ type: "BooleanTypeAnnotation";
200
+ }
201
+ ```
202
+
203
+ ### BreakStatement
204
+ Represents a break statement.
205
+
206
+ ```typescript
207
+ export interface BreakStatement extends Omit<Statement, "type"> {
208
+ type: "BreakStatement";
209
+ label?: K.IdentifierKind | null;
210
+ }
211
+ ```
212
+
213
+ ### CallExpression
214
+ Represents a call expression.
215
+
216
+ ```typescript
217
+ export interface CallExpression extends Omit<Expression, "type">, Omit<ChainElement, "type"> {
218
+ type: "CallExpression";
219
+ callee: K.ExpressionKind;
220
+ arguments: (K.ExpressionKind | K.SpreadElementKind)[];
221
+ typeArguments?: null | K.TypeParameterInstantiationKind;
222
+ }
223
+ ```
224
+
225
+ ### CatchClause
226
+ Represents a catch clause in a try statement.
227
+
228
+ ```typescript
229
+ export interface CatchClause extends Omit<Node, "type"> {
230
+ type: "CatchClause";
231
+ param?: K.PatternKind | null;
232
+ guard?: K.ExpressionKind | null;
233
+ body: K.BlockStatementKind;
234
+ }
235
+ ```
236
+
237
+ ### ChainElement
238
+ An element of a chain expression.
239
+
240
+ ```typescript
241
+ export interface ChainElement extends Node {
242
+ optional?: boolean;
243
+ }
244
+ ```
245
+
246
+ ### ChainExpression
247
+ Represents a chain expression.
248
+
249
+ ```typescript
250
+ export interface ChainExpression extends Omit<Expression, "type"> {
251
+ type: "ChainExpression";
252
+ expression: K.ChainElementKind;
253
+ }
254
+ ```
255
+
256
+ ### ClassBody
257
+ Represents the body of a class, which contains method definitions.
258
+
259
+ ```typescript
260
+ export interface ClassBody extends Omit<Declaration, "type"> {
261
+ type: "ClassBody";
262
+ body: (K.MethodDefinitionKind | K.VariableDeclaratorKind | K.ClassPropertyDefinitionKind | K.ClassPropertyKind | K.ClassPrivatePropertyKind | K.ClassAccessorPropertyKind | K.ClassMethodKind | K.ClassPrivateMethodKind | K.StaticBlockKind | K.TSDeclareMethodKind | K.TSCallSignatureDeclarationKind | K.TSConstructSignatureDeclarationKind | K.TSIndexSignatureKind | K.TSMethodSignatureKind | K.TSPropertySignatureKind)[];
263
+ }
264
+ ```
265
+
266
+ ### ClassDeclaration
267
+ Represents a class declaration.
268
+
269
+ ```typescript
270
+ export interface ClassDeclaration extends Omit<Declaration, "type"> {
271
+ type: "ClassDeclaration";
272
+ id: K.IdentifierKind | null;
273
+ body: K.ClassBodyKind;
274
+ superClass?: K.ExpressionKind | null;
275
+ typeParameters?: K.TypeParameterDeclarationKind | K.TSTypeParameterDeclarationKind | null;
276
+ superTypeParameters?: K.TypeParameterInstantiationKind | K.TSTypeParameterInstantiationKind | null;
277
+ implements?: K.ClassImplementsKind[] | K.TSExpressionWithTypeArgumentsKind[];
278
+ }
279
+ ```
280
+
281
+ ### ClassExpression
282
+ Represents a class expression.
283
+
284
+ ```typescript
285
+ export interface ClassExpression extends Omit<Expression, "type"> {
286
+ type: "ClassExpression";
287
+ id?: K.IdentifierKind | null;
288
+ body: K.ClassBodyKind;
289
+ superClass?: K.ExpressionKind | null;
290
+ typeParameters?: K.TypeParameterDeclarationKind | K.TSTypeParameterDeclarationKind | null;
291
+ superTypeParameters?: K.TypeParameterInstantiationKind | K.TSTypeParameterInstantiationKind | null;
292
+ implements?: K.ClassImplementsKind[] | K.TSExpressionWithTypeArgumentsKind[];
293
+ }
294
+ ```
295
+
296
+ ### ClassImplements
297
+ Represents an implementation of a class.
298
+
299
+ ```typescript
300
+ export interface ClassImplements extends Omit<Node, "type"> {
301
+ type: "ClassImplements";
302
+ id: K.IdentifierKind;
303
+ superClass?: K.ExpressionKind | null;
304
+ typeParameters?: K.TypeParameterInstantiationKind | null;
305
+ }
306
+ ```
307
+
308
+ ### ClassMethod
309
+ Represents a method of a class.
310
+
311
+ ```typescript
312
+ export interface ClassMethod extends Omit<Declaration, "type">, Omit<Function, "type" | "body"> {
313
+ type: "ClassMethod";
314
+ key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
315
+ kind?: "get" | "set" | "method" | "constructor";
316
+ body: K.BlockStatementKind;
317
+ access?: "public" | "private" | "protected" | null;
318
+ computed?: boolean;
319
+ static?: boolean;
320
+ abstract?: boolean;
321
+ accessibility?: "public" | "private" | "protected" | null;
322
+ decorators?: K.DecoratorKind[] | null;
323
+ definite?: boolean;
324
+ optional?: boolean;
325
+ override?: boolean;
326
+ readonly?: boolean;
327
+ }
328
+ ```
329
+
330
+ ### ClassPrivateMethod
331
+ Represents a
332
+
333
+ private method of a class.
334
+
335
+ ```typescript
336
+ export interface ClassPrivateMethod extends Omit<Declaration, "type">, Omit<Function, "type" | "body"> {
337
+ type: "ClassPrivateMethod";
338
+ key: K.PrivateNameKind;
339
+ body: K.BlockStatementKind;
340
+ access?: "public" | "private" | "protected" | null;
341
+ computed?: boolean;
342
+ static?: boolean;
343
+ decorators?: K.DecoratorKind[] | null;
344
+ }
345
+ ```
346
+
347
+ ### ClassPrivateProperty
348
+ Represents a private property of a class.
349
+
350
+ ```typescript
351
+ export interface ClassPrivateProperty extends Omit<Declaration, "type"> {
352
+ type: "ClassPrivateProperty";
353
+ key: K.PrivateNameKind;
354
+ value?: K.ExpressionKind | null;
355
+ access?: "public" | "private" | "protected" | null;
356
+ computed?: boolean;
357
+ static?: boolean;
358
+ decorators?: K.DecoratorKind[] | null;
359
+ optional?: boolean;
360
+ override?: boolean;
361
+ readonly?: boolean;
362
+ variance?: K.VarianceKind | "plus" | "minus" | null;
363
+ definite?: boolean;
364
+ }
365
+ ```
366
+
367
+ ### ClassProperty
368
+ Represents a property of a class.
369
+
370
+ ```typescript
371
+ export interface ClassProperty extends Omit<Declaration, "type"> {
372
+ type: "ClassProperty";
373
+ key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
374
+ value?: K.ExpressionKind | null;
375
+ access?: "public" | "private" | "protected" | null;
376
+ computed?: boolean;
377
+ static?: boolean;
378
+ decorators?: K.DecoratorKind[] | null;
379
+ optional?: boolean;
380
+ override?: boolean;
381
+ readonly?: boolean;
382
+ variance?: K.VarianceKind | "plus" | "minus" | null;
383
+ definite?: boolean;
384
+ }
385
+ ```
386
+
387
+ ### ClassPropertyDefinition
388
+ Represents a property definition in a class.
389
+
390
+ ```typescript
391
+ export interface ClassPropertyDefinition extends Omit<Declaration, "type"> {
392
+ type: "ClassPropertyDefinition";
393
+ key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
394
+ value?: K.ExpressionKind | null;
395
+ access?: "public" | "private" | "protected" | null;
396
+ computed?: boolean;
397
+ static?: boolean;
398
+ decorators?: K.DecoratorKind[] | null;
399
+ optional?: boolean;
400
+ override?: boolean;
401
+ readonly?: boolean;
402
+ variance?: K.VarianceKind | "plus" | "minus" | null;
403
+ definite?: boolean;
404
+ }
405
+ ```
406
+
407
+ ### Comment
408
+ Represents a comment in the code.
409
+
410
+ ```typescript
411
+ export interface Comment extends Printable {
412
+ type: "Comment";
413
+ value: string;
414
+ }
415
+ ```
416
+
417
+ ### CommentBlock
418
+ Represents a block comment.
419
+
420
+ ```typescript
421
+ export interface CommentBlock extends Comment {
422
+ type: "Block";
423
+ }
424
+ ```
425
+
426
+ ### CommentLine
427
+ Represents a line comment.
428
+
429
+ ```typescript
430
+ export interface CommentLine extends Comment {
431
+ type: "Line";
432
+ }
433
+ ```
434
+
435
+ ### ComprehensionBlock
436
+ Represents a comprehension block.
437
+
438
+ ```typescript
439
+ export interface ComprehensionBlock extends Omit<Node, "type"> {
440
+ type: "ComprehensionBlock";
441
+ left: K.PatternKind;
442
+ right: K.ExpressionKind;
443
+ each: boolean;
444
+ }
445
+ ```
446
+
447
+ ### ComprehensionExpression
448
+ Represents a comprehension expression.
449
+
450
+ ```typescript
451
+ export interface ComprehensionExpression extends Omit<Expression, "type"> {
452
+ type: "ComprehensionExpression";
453
+ body: K.ExpressionKind;
454
+ blocks: K.ComprehensionBlockKind[];
455
+ filter?: K.ExpressionKind | null;
456
+ }
457
+ ```
458
+
459
+ ### ConditionalExpression
460
+ Represents a conditional expression (ternary).
461
+
462
+ ```typescript
463
+ export interface ConditionalExpression extends Omit<Expression, "type"> {
464
+ type: "ConditionalExpression";
465
+ test: K.ExpressionKind;
466
+ consequent: K.ExpressionKind;
467
+ alternate: K.ExpressionKind;
468
+ }
469
+ ```
470
+
471
+ ### ContinueStatement
472
+ Represents a continue statement.
473
+
474
+ ```typescript
475
+ export interface ContinueStatement extends Omit<Statement, "type"> {
476
+ type: "ContinueStatement";
477
+ label?: K.IdentifierKind | null;
478
+ }
479
+ ```
480
+
481
+ ### DebuggerStatement
482
+ Represents a debugger statement.
483
+
484
+ ```typescript
485
+ export interface DebuggerStatement extends Omit<Statement, "type"> {
486
+ type: "DebuggerStatement";
487
+ }
488
+ ```
489
+
490
+ ### Declaration
491
+ Represents a declaration in the code.
492
+
493
+ ```typescript
494
+ export interface Declaration extends Statement {
495
+ type: "Declaration";
496
+ }
497
+ ```
498
+
499
+ ### DeclareClass
500
+ Represents a Flow type declaration for a class.
501
+
502
+ ```typescript
503
+ export interface DeclareClass extends Omit<Declaration, "type"> {
504
+ type: "DeclareClass";
505
+ id: K.IdentifierKind;
506
+ typeParameters?: K.TypeParameterDeclarationKind | null;
507
+ extends: K.InterfaceExtendsKind[];
508
+ body: K.ObjectTypeAnnotationKind;
509
+ mixins?: K.InterfaceExtendsKind[] | null;
510
+ implements?: K.ClassImplementsKind[] | K.TSExpressionWithTypeArgumentsKind[];
511
+ }
512
+ ```
513
+
514
+ ### DeclaredPredicate
515
+ Represents a declared predicate in Flow.
516
+
517
+ ```typescript
518
+ export interface DeclaredPredicate extends Omit<FlowPredicate, "type"> {
519
+ type: "DeclaredPredicate";
520
+ value: K.ExpressionKind;
521
+ }
522
+ ```
523
+
524
+ ### DeclareExportAllDeclaration
525
+ Represents a Flow type declaration for exporting everything.
526
+
527
+ ```typescript
528
+ export interface DeclareExportAllDeclaration extends Omit<Declaration, "type"> {
529
+ type: "DeclareExportAllDeclaration";
530
+ source?: K.LiteralKind | null;
531
+ }
532
+ ```
533
+
534
+ ### DeclareExportDeclaration
535
+ Represents a Flow type declaration for exporting.
536
+
537
+ ```typescript
538
+ export interface DeclareExportDeclaration extends Omit<Declaration, "type"> {
539
+ type: "DeclareExportDeclaration";
540
+ default: boolean;
541
+ declaration?: K.DeclarationKind | K.ExpressionKind | null;
542
+ specifiers?: K.ExportSpecifierKind[] | null;
543
+ source?: K.LiteralKind | null;
544
+ }
545
+ ```
546
+
547
+ ### DeclareFunction
548
+ Represents a Flow type declaration for a function.
549
+
550
+ ```typescript
551
+ export interface DeclareFunction extends Omit<Declaration, "type"> {
552
+ type: "DeclareFunction";
553
+ id: K.IdentifierKind;
554
+ }
555
+ ```
556
+
557
+ ### DeclareInterface
558
+ Represents a Flow type declaration for an interface.
559
+
560
+ ```typescript
561
+ export interface DeclareInterface extends Omit<Declaration, "type"> {
562
+ type: "DeclareInterface";
563
+ id: K.IdentifierKind;
564
+ typeParameters?: K.TypeParameterDeclarationKind | null;
565
+ extends: K.InterfaceExtendsKind[];
566
+ body: K.ObjectTypeAnnotationKind;
567
+ }
568
+ ```
569
+
570
+ ### DeclareModule
571
+ Represents a Flow type declaration for a module.
572
+
573
+ ```typescript
574
+ export interface DeclareModule extends Omit<Declaration, "type"> {
575
+ type: "DeclareModule";
576
+ id: K.StringLiteralKind | K.IdentifierKind;
577
+ body: K.BlockStatementKind;
578
+ kind?: "commonjs" | "es" | null;
579
+ }
580
+ ```
581
+
582
+ ### DeclareModuleExports
583
+ Represents a Flow type declaration for module exports.
584
+
585
+ ```typescript
586
+ export interface DeclareModuleExports extends Omit<Declaration, "type"> {
587
+ type: "DeclareModuleExports";
588
+ typeAnnotation: K.TypeAnnotationKind;
589
+ }
590
+ ```
591
+
592
+ ### DeclareOpaqueType
593
+ Represents a Flow type declaration for an opaque type.
594
+
595
+ ```typescript
596
+ export interface DeclareOpaqueType extends Omit<Declaration, "type"> {
597
+ type: "DeclareOpaqueType";
598
+ id: K.IdentifierKind;
599
+ typeParameters?: K.TypeParameterDeclarationKind | null;
600
+ impltype: K.FlowTypeKind;
601
+ supertype?: K.FlowTypeKind | null;
602
+ }
603
+ ```
604
+
605
+ ### DeclareTypeAlias
606
+ Represents a Flow type declaration for a type alias.
607
+
608
+ ```typescript
609
+ export interface DeclareTypeAlias extends Omit<Declaration, "type"> {
610
+ type: "DeclareTypeAlias";
611
+ id: K.IdentifierKind;
612
+ typeParameters?: K.TypeParameterDeclarationKind | null;
613
+ right: K.FlowTypeKind;
614
+ }
615
+ ```
616
+
617
+ ### DeclareVariable
618
+ Represents a Flow type declaration for a variable.
619
+
620
+ ```typescript
621
+ export interface DeclareVariable extends Omit<Declaration, "type"> {
622
+ type: "DeclareVariable";
623
+ id: K.IdentifierKind;
624
+ }
625
+ ```
626
+
627
+ ### Decorator
628
+ Represents a decorator.
629
+
630
+ ```typescript
631
+ export interface Decorator extends Omit<Node, "type"> {
632
+ type: "Decorator";
633
+ expression: K.ExpressionKind;
634
+ }
635
+ ```
636
+
637
+ ### Directive
638
+ Represents a directive in a function or a script.
639
+
640
+ ```typescript
641
+ export interface Directive extends Node {
642
+ type: "Directive";
643
+ value: K.DirectiveLiteralKind;
644
+ }
645
+ ```
646
+
647
+ ### DirectiveLiteral
648
+ Represents the value of a directive.
649
+
650
+ ```typescript
651
+ export interface DirectiveLiteral extends Omit<Literal, "type"> {
652
+ type: "DirectiveLiteral";
653
+ value: string;
654
+ }
655
+ ```
656
+
657
+ ### DoExpression
658
+ Represents a do expression.
659
+
660
+ ```typescript
661
+ export interface DoExpression extends Omit<Expression, "type"> {
662
+ type: "DoExpression";
663
+ body: K.BlockStatementKind;
664
+ }
665
+ ```
666
+
667
+ ### DoWhileStatement
668
+ Represents a do...while statement.
669
+
670
+ ```typescript
671
+ export interface DoWhileStatement extends Omit<Statement, "type"> {
672
+ type: "DoWhileStatement";
673
+ test: K.ExpressionKind;
674
+ body: K.StatementKind;
675
+ }
676
+ ```
677
+
678
+ ### EmptyStatement
679
+ Represents an empty statement.
680
+
681
+ ```typescript
682
+ export interface EmptyStatement extends Omit<Statement, "type"> {
683
+ type: "EmptyStatement";
684
+ }
685
+ ```
686
+
687
+ ### EmptyTypeAnnotation
688
+ A type annotation for an empty type.
689
+
690
+ ```typescript
691
+ export interface EmptyTypeAnnotation extends Omit<FlowType, "type"> {
692
+ type: "EmptyTypeAnnotation";
693
+ }
694
+ ```
695
+
696
+ ### EnumBooleanBody
697
+ Represents the body of a boolean enum.
698
+
699
+ ```typescript
700
+ export interface EnumBooleanBody extends Omit<Node, "type"> {
701
+ type: "EnumBooleanBody";
702
+ members: K.EnumBooleanMemberKind[];
703
+ explicitType?: boolean;
704
+ hasUnknownMembers?: boolean
705
+
706
+ ;
707
+ }
708
+ ```
709
+
710
+ ### EnumBooleanMember
711
+ Represents a member of a boolean enum.
712
+
713
+ ```typescript
714
+ export interface EnumBooleanMember extends Omit<Node, "type"> {
715
+ type: "EnumBooleanMember";
716
+ id: K.IdentifierKind;
717
+ init: K.BooleanLiteralKind;
718
+ }
719
+ ```
720
+
721
+ ### EnumDeclaration
722
+ Represents an enum declaration.
723
+
724
+ ```typescript
725
+ export interface EnumDeclaration extends Omit<Declaration, "type"> {
726
+ type: "EnumDeclaration";
727
+ id: K.IdentifierKind;
728
+ body: K.EnumBooleanBodyKind | K.EnumNumberBodyKind | K.EnumStringBodyKind | K.EnumSymbolBodyKind;
729
+ }
730
+ ```
731
+
732
+ ### EnumDefaultedMember
733
+ Represents a defaulted member of an enum.
734
+
735
+ ```typescript
736
+ export interface EnumDefaultedMember extends Omit<Node, "type"> {
737
+ type: "EnumDefaultedMember";
738
+ id: K.IdentifierKind;
739
+ }
740
+ ```
741
+
742
+ ### EnumNumberBody
743
+ Represents the body of a number enum.
744
+
745
+ ```typescript
746
+ export interface EnumNumberBody extends Omit<Node, "type"> {
747
+ type: "EnumNumberBody";
748
+ members: K.EnumNumberMemberKind[];
749
+ explicitType?: boolean;
750
+ hasUnknownMembers?: boolean;
751
+ }
752
+ ```
753
+
754
+ ### EnumNumberMember
755
+ Represents a member of a number enum.
756
+
757
+ ```typescript
758
+ export interface EnumNumberMember extends Omit<Node, "type"> {
759
+ type: "EnumNumberMember";
760
+ id: K.IdentifierKind;
761
+ init: K.NumericLiteralKind;
762
+ }
763
+ ```
764
+
765
+ ### EnumStringBody
766
+ Represents the body of a string enum.
767
+
768
+ ```typescript
769
+ export interface EnumStringBody extends Omit<Node, "type"> {
770
+ type: "EnumStringBody";
771
+ members: K.EnumStringMemberKind[];
772
+ explicitType?: boolean;
773
+ hasUnknownMembers?: boolean;
774
+ }
775
+ ```
776
+
777
+ ### EnumStringMember
778
+ Represents a member of a string enum.
779
+
780
+ ```typescript
781
+ export interface EnumStringMember extends Omit<Node, "type"> {
782
+ type: "EnumStringMember";
783
+ id: K.IdentifierKind;
784
+ init?: K.StringLiteralKind;
785
+ }
786
+ ```
787
+
788
+ ### EnumSymbolBody
789
+ Represents the body of a symbol enum.
790
+
791
+ ```typescript
792
+ export interface EnumSymbolBody extends Omit<Node, "type"> {
793
+ type: "EnumSymbolBody";
794
+ members: K.EnumDefaultedMemberKind[];
795
+ hasUnknownMembers?: boolean;
796
+ }
797
+ ```
798
+
799
+ ### ExistentialTypeParam
800
+ Represents an existential type parameter in Flow.
801
+
802
+ ```typescript
803
+ export interface ExistentialTypeParam extends Omit<FlowType, "type"> {
804
+ type: "ExistentialTypeParam";
805
+ }
806
+ ```
807
+
808
+ ### ExistsTypeAnnotation
809
+ A type annotation for an existential type.
810
+
811
+ ```typescript
812
+ export interface ExistsTypeAnnotation extends Omit<FlowType, "type"> {
813
+ type: "ExistsTypeAnnotation";
814
+ }
815
+ ```
816
+
817
+ ### ExportAllDeclaration
818
+ Represents an export all declaration.
819
+
820
+ ```typescript
821
+ export interface ExportAllDeclaration extends Omit<Declaration, "type"> {
822
+ type: "ExportAllDeclaration";
823
+ source: K.LiteralKind;
824
+ exportKind?: "type" | "value" | null;
825
+ }
826
+ ```
827
+
828
+ ### ExportBatchSpecifier
829
+ Represents a batch export specifier.
830
+
831
+ ```typescript
832
+ export interface ExportBatchSpecifier extends Omit<Node, "type"> {
833
+ type: "ExportBatchSpecifier";
834
+ }
835
+ ```
836
+
837
+ ### ExportDeclaration
838
+ Represents an export declaration.
839
+
840
+ ```typescript
841
+ export interface ExportDeclaration extends Omit<Declaration, "type"> {
842
+ type: "ExportDeclaration";
843
+ default: boolean;
844
+ declaration?: K.DeclarationKind | K.ExpressionKind | null;
845
+ specifiers?: K.ExportSpecifierKind[] | null;
846
+ source?: K.LiteralKind | null;
847
+ }
848
+ ```
849
+
850
+ ### ExportDefaultDeclaration
851
+ Represents an export default declaration.
852
+
853
+ ```typescript
854
+ export interface ExportDefaultDeclaration extends Omit<Declaration, "type"> {
855
+ type: "ExportDefaultDeclaration";
856
+ declaration: K.DeclarationKind | K.ExpressionKind;
857
+ }
858
+ ```
859
+
860
+ ### ExportDefaultSpecifier
861
+ Represents an export default specifier.
862
+
863
+ ```typescript
864
+ export interface ExportDefaultSpecifier extends Omit<Node, "type"> {
865
+ type: "ExportDefaultSpecifier";
866
+ exported: K.IdentifierKind;
867
+ }
868
+ ```
869
+
870
+ ### ExportNamedDeclaration
871
+ Represents a named export declaration.
872
+
873
+ ```typescript
874
+ export interface ExportNamedDeclaration extends Omit<Declaration, "type"> {
875
+ type: "ExportNamedDeclaration";
876
+ declaration?: K.DeclarationKind | null;
877
+ specifiers: K.ExportSpecifierKind[];
878
+ source?: K.LiteralKind | null;
879
+ exportKind?: "type" | "value" | null;
880
+ }
881
+ ```
882
+
883
+ ### ExportNamespaceSpecifier
884
+ Represents an export namespace specifier.
885
+
886
+ ```typescript
887
+ export interface ExportNamespaceSpecifier extends Omit<Node, "type"> {
888
+ type: "ExportNamespaceSpecifier";
889
+ exported: K.IdentifierKind;
890
+ }
891
+ ```
892
+
893
+ ### ExportSpecifier
894
+ Represents an export specifier.
895
+
896
+ ```typescript
897
+ export interface ExportSpecifier extends Omit<Node, "type"> {
898
+ type: "ExportSpecifier";
899
+ exported: K.IdentifierKind;
900
+ local: K.IdentifierKind;
901
+ }
902
+ ```
903
+
904
+ ### Expression
905
+ Represents an expression in the code.
906
+
907
+ ```typescript
908
+ export interface Expression extends Node {
909
+ type: "Expression";
910
+ }
911
+ ```
912
+
913
+ ### ExpressionStatement
914
+ Represents an expression statement.
915
+
916
+ ```typescript
917
+ export interface ExpressionStatement extends Omit<Statement, "type"> {
918
+ type: "ExpressionStatement";
919
+ expression: K.ExpressionKind;
920
+ directive?: string;
921
+ }
922
+ ```
923
+
924
+ ### File
925
+ Represents a file in the AST.
926
+
927
+ ```typescript
928
+ export interface File extends Omit<Node, "type"> {
929
+ type: "File";
930
+ program: K.ProgramKind;
931
+ comments?: K.CommentKind[] | null;
932
+ tokens?: any[] | null;
933
+ }
934
+ ```
935
+
936
+ ### Flow
937
+ Represents a Flow type.
938
+
939
+ ```typescript
940
+ export interface Flow extends Node {
941
+ type: "Flow";
942
+ }
943
+ ```
944
+
945
+ ### FlowPredicate
946
+ Represents a Flow predicate.
947
+
948
+ ```typescript
949
+ export interface FlowPredicate extends Omit<Flow, "type"> {
950
+ type: "FlowPredicate";
951
+ }
952
+ ```
953
+
954
+ ### FlowType
955
+ Represents a Flow type.
956
+
957
+ ```typescript
958
+ export interface FlowType extends Flow {
959
+ type: "FlowType";
960
+ }
961
+ ```
962
+
963
+ ### ForAwaitStatement
964
+ Represents a for-await statement.
965
+
966
+ ```typescript
967
+ export interface ForAwaitStatement extends Omit<Statement, "type"> {
968
+ type: "ForAwaitStatement";
969
+ left: K.VariableDeclarationKind | K.ExpressionKind;
970
+ right: K.ExpressionKind;
971
+ body: K.StatementKind;
972
+ }
973
+ ```
974
+
975
+ ### ForInStatement
976
+ Represents a for-in statement.
977
+
978
+ ```typescript
979
+ export interface ForInStatement extends Omit<Statement, "type"> {
980
+ type: "ForInStatement";
981
+ left: K.VariableDeclarationKind | K.ExpressionKind;
982
+ right: K.ExpressionKind;
983
+ body: K.StatementKind;
984
+ }
985
+ ```
986
+
987
+ ### ForOfStatement
988
+ Represents a for-of statement.
989
+
990
+ ```typescript
991
+ export interface ForOfStatement extends Omit<Statement, "type"> {
992
+ type: "ForOfStatement";
993
+ left: K.VariableDeclarationKind | K.ExpressionKind;
994
+ right: K.ExpressionKind;
995
+ body: K.StatementKind;
996
+ }
997
+ ```
998
+
999
+ ### ForStatement
1000
+ Represents a for statement.
1001
+
1002
+ ```typescript
1003
+ export interface ForStatement extends Omit<Statement, "type"> {
1004
+ type: "ForStatement";
1005
+ init?: K.VariableDeclarationKind | K.ExpressionKind | null;
1006
+ test?: K.ExpressionKind | null;
1007
+ update?: K.ExpressionKind | null;
1008
+ body: K.StatementKind;
1009
+ }
1010
+ ```
1011
+
1012
+ ### Function
1013
+ Represents a function in the code.
1014
+
1015
+ ```typescript
1016
+ export interface Function extends Node {
1017
+ type: "Function";
1018
+ id?: K.IdentifierKind | null;
1019
+ params: (K.PatternKind | K.TSParameterPropertyKind)[];
1020
+ body: K.BlockStatementKind;
1021
+ generator?: boolean;
1022
+ async?: boolean;
1023
+ expression?: boolean;
1024
+ returnType?: K.TypeAnnotationKind | K.TSTypeAnnotationKind | K.NoopKind | null;
1025
+ typeParameters?: K.TypeParameterDeclarationKind | K.TSTypeParameterDeclarationKind | null;
1026
+ }
1027
+ ```
1028
+
1029
+ ### FunctionDeclaration
1030
+ Represents a function declaration.
1031
+
1032
+ ```typescript
1033
+ export interface FunctionDeclaration extends Omit<Function, "type">, Omit<Declaration, "type"> {
1034
+ type: "FunctionDeclaration";
1035
+ body: K.BlockStatementKind;
1036
+ declare?: boolean;
1037
+ }
1038
+ ```
1039
+
1040
+ ### FunctionExpression
1041
+ Represents a function expression.
1042
+
1043
+ ```typescript
1044
+ export interface FunctionExpression extends Omit<Function, "type">, Omit<Expression, "type"> {
1045
+ type: "FunctionExpression";
1046
+ }
1047
+ ```
1048
+
1049
+ ### FunctionTypeAnnotation
1050
+ A type annotation for a function.
1051
+
1052
+ ```typescript
1053
+ export interface FunctionTypeAnnotation extends Omit<FlowType, "type"> {
1054
+ type: "FunctionTypeAnnotation";
1055
+ params: K.FunctionTypeParamKind[];
1056
+ returnType: K.FlowTypeKind;
1057
+ rest?: K.FunctionTypeParamKind | null;
1058
+ typeParameters?: K.TypeParameterDeclarationKind | null;
1059
+ }
1060
+ ```
1061
+
1062
+ ### FunctionTypeParam
1063
+ Represents a parameter in a function type annotation.
1064
+
1065
+ ```typescript
1066
+ export interface FunctionTypeParam extends Omit<Node, "type"> {
1067
+ type: "FunctionTypeParam";
1068
+ name: K.IdentifierKind | null;
1069
+ typeAnnotation: K.FlowTypeKind;
1070
+ optional?: boolean;
1071
+ }
1072
+ ```
1073
+
1074
+ ### GeneratorExpression
1075
+ Represents a generator expression.
1076
+
1077
+ ```typescript
1078
+ export interface GeneratorExpression extends Omit<Expression, "type"> {
1079
+ type: "GeneratorExpression";
1080
+ }
1081
+ ```
1082
+
1083
+ ### GenericTypeAnnotation
1084
+ A type annotation for a generic type.
1085
+
1086
+ ```typescript
1087
+ export interface GenericTypeAnnotation extends Omit<FlowType, "type"> {
1088
+ type: "GenericTypeAnnotation";
1089
+ id: K.IdentifierKind | K.QualifiedTypeIdentifierKind;
1090
+ typeParameters?: K.TypeParameterInstantiationKind | null;
1091
+ }
1092
+ ```
1093
+
1094
+ ### Identifier
1095
+ Represents an identifier.
1096
+
1097
+ ```typescript
1098
+ export interface Identifier extends Omit<Expression
1099
+
1100
+ , "type">, Omit<Pattern, "type"> {
1101
+ type: "Identifier";
1102
+ name: string;
1103
+ optional?: boolean;
1104
+ typeAnnotation?: K.TypeAnnotationKind | K.TSTypeAnnotationKind | null;
1105
+ decorators?: K.DecoratorKind[] | null;
1106
+ }
1107
+ ```
1108
+
1109
+ ### IfStatement
1110
+ Represents an if statement.
1111
+
1112
+ ```typescript
1113
+ export interface IfStatement extends Omit<Statement, "type"> {
1114
+ type: "IfStatement";
1115
+ test: K.ExpressionKind;
1116
+ consequent: K.StatementKind;
1117
+ alternate?: K.StatementKind | null;
1118
+ }
1119
+ ```
1120
+
1121
+ ### Import
1122
+ Represents an import expression.
1123
+
1124
+ ```typescript
1125
+ export interface Import extends Omit<Expression, "type"> {
1126
+ type: "Import";
1127
+ }
1128
+ ```
1129
+
1130
+ ### ImportDeclaration
1131
+ Represents an import declaration.
1132
+
1133
+ ```typescript
1134
+ export interface ImportDeclaration extends Omit<Declaration, "type"> {
1135
+ type: "ImportDeclaration";
1136
+ specifiers: (K.ImportSpecifierKind | K.ImportNamespaceSpecifierKind | K.ImportDefaultSpecifierKind)[];
1137
+ source: K.LiteralKind;
1138
+ importKind?: "type" | "typeof" | "value" | null;
1139
+ }
1140
+ ```
1141
+
1142
+ ### ImportDefaultSpecifier
1143
+ Represents a default import specifier.
1144
+
1145
+ ```typescript
1146
+ export interface ImportDefaultSpecifier extends Omit<Node, "type"> {
1147
+ type: "ImportDefaultSpecifier";
1148
+ local: K.IdentifierKind;
1149
+ }
1150
+ ```
1151
+
1152
+ ### ImportExpression
1153
+ Represents an import expression.
1154
+
1155
+ ```typescript
1156
+ export interface ImportExpression extends Omit<Expression, "type"> {
1157
+ type: "ImportExpression";
1158
+ source: K.LiteralKind;
1159
+ }
1160
+ ```
1161
+
1162
+ ### ImportNamespaceSpecifier
1163
+ Represents a namespace import specifier.
1164
+
1165
+ ```typescript
1166
+ export interface ImportNamespaceSpecifier extends Omit<Node, "type"> {
1167
+ type: "ImportNamespaceSpecifier";
1168
+ local: K.IdentifierKind;
1169
+ }
1170
+ ```
1171
+
1172
+ ### ImportSpecifier
1173
+ Represents an import specifier.
1174
+
1175
+ ```typescript
1176
+ export interface ImportSpecifier extends Omit<Node, "type"> {
1177
+ type: "ImportSpecifier";
1178
+ local: K.IdentifierKind;
1179
+ imported: K.IdentifierKind;
1180
+ importKind?: "type" | "typeof" | "value" | null;
1181
+ }
1182
+ ```
1183
+
1184
+ ### InferredPredicate
1185
+ Represents an inferred predicate in Flow.
1186
+
1187
+ ```typescript
1188
+ export interface InferredPredicate extends Omit<FlowPredicate, "type"> {
1189
+ type: "InferredPredicate";
1190
+ }
1191
+ ```
1192
+
1193
+ ### InterfaceDeclaration
1194
+ Represents an interface declaration.
1195
+
1196
+ ```typescript
1197
+ export interface InterfaceDeclaration extends Omit<Declaration, "type"> {
1198
+ type: "InterfaceDeclaration";
1199
+ id: K.IdentifierKind;
1200
+ typeParameters?: K.TypeParameterDeclarationKind | null;
1201
+ extends: K.InterfaceExtendsKind[];
1202
+ body: K.ObjectTypeAnnotationKind;
1203
+ }
1204
+ ```
1205
+
1206
+ ### InterfaceExtends
1207
+ Represents an extension of an interface.
1208
+
1209
+ ```typescript
1210
+ export interface InterfaceExtends extends Omit<Node, "type"> {
1211
+ type: "InterfaceExtends";
1212
+ id: K.IdentifierKind | K.QualifiedTypeIdentifierKind;
1213
+ typeParameters?: K.TypeParameterInstantiationKind | null;
1214
+ }
1215
+ ```
1216
+
1217
+ ### InterfaceTypeAnnotation
1218
+ A type annotation for an interface.
1219
+
1220
+ ```typescript
1221
+ export interface InterfaceTypeAnnotation extends Omit<FlowType, "type"> {
1222
+ type: "InterfaceTypeAnnotation";
1223
+ body: K.ObjectTypeAnnotationKind;
1224
+ extends?: K.InterfaceExtendsKind[] | null;
1225
+ }
1226
+ ```
1227
+
1228
+ ### InterpreterDirective
1229
+ Represents an interpreter directive at the top of a script.
1230
+
1231
+ ```typescript
1232
+ export interface InterpreterDirective extends Omit<Literal, "type"> {
1233
+ type: "InterpreterDirective";
1234
+ value: string;
1235
+ }
1236
+ ```
1237
+
1238
+ ### IntersectionTypeAnnotation
1239
+ A type annotation for an intersection type.
1240
+
1241
+ ```typescript
1242
+ export interface IntersectionTypeAnnotation extends Omit<FlowType, "type"> {
1243
+ type: "IntersectionTypeAnnotation";
1244
+ types: K.FlowTypeKind[];
1245
+ }
1246
+ ```
1247
+
1248
+ ### JSXAttribute
1249
+ Represents an attribute in a JSX element.
1250
+
1251
+ ```typescript
1252
+ export interface JSXAttribute extends Omit<Node, "type"> {
1253
+ type: "JSXAttribute";
1254
+ name: K.JSXIdentifierKind | K.JSXNamespacedNameKind;
1255
+ value?: K.LiteralKind | K.JSXExpressionContainerKind | null;
1256
+ }
1257
+ ```
1258
+
1259
+ ### JSXClosingElement
1260
+ Represents a closing element in JSX.
1261
+
1262
+ ```typescript
1263
+ export interface JSXClosingElement extends Omit<Node, "type"> {
1264
+ type: "JSXClosingElement";
1265
+ name: K.JSXIdentifierKind | K.JSXMemberExpressionKind | K.JSXNamespacedNameKind;
1266
+ }
1267
+ ```
1268
+
1269
+ ### JSXClosingFragment
1270
+ Represents a closing fragment in JSX.
1271
+
1272
+ ```typescript
1273
+ export interface JSXClosingFragment extends Omit<Node, "type"> {
1274
+ type: "JSXClosingFragment";
1275
+ }
1276
+ ```
1277
+
1278
+ ### JSXElement
1279
+ Represents a JSX element.
1280
+
1281
+ ```typescript
1282
+ export interface JSXElement extends Omit<Expression, "type"> {
1283
+ type: "JSXElement";
1284
+ openingElement: K.JSXOpeningElementKind;
1285
+ closingElement?: K.JSXClosingElementKind | null;
1286
+ children: K.JSXElementKind[];
1287
+ selfClosing?: boolean;
1288
+ }
1289
+ ```
1290
+
1291
+ ### JSXEmptyExpression
1292
+ Represents an empty expression in JSX.
1293
+
1294
+ ```typescript
1295
+ export interface JSXEmptyExpression extends Omit<Expression, "type"> {
1296
+ type: "JSXEmptyExpression";
1297
+ }
1298
+ ```
1299
+
1300
+ ### JSXExpressionContainer
1301
+ Represents an expression container in JSX.
1302
+
1303
+ ```typescript
1304
+ export interface JSXExpressionContainer extends Omit<Expression, "type"> {
1305
+ type: "JSXExpressionContainer";
1306
+ expression: K.ExpressionKind | K.JSXEmptyExpressionKind;
1307
+ }
1308
+ ```
1309
+
1310
+ ### JSXFragment
1311
+ Represents a JSX fragment.
1312
+
1313
+ ```typescript
1314
+ export interface JSXFragment extends Omit<Expression, "type"> {
1315
+ type: "JSXFragment";
1316
+ openingFragment: K.JSXOpeningFragmentKind;
1317
+ closingFragment: K.JSXClosingFragmentKind;
1318
+ children: K.JSXElementKind[];
1319
+ }
1320
+ ```
1321
+
1322
+ ### JSXIdentifier
1323
+ Represents an identifier in JSX.
1324
+
1325
+ ```typescript
1326
+ export interface JSXIdentifier extends Omit<Node, "type"> {
1327
+ type: "JSXIdentifier";
1328
+ name: string;
1329
+ }
1330
+ ```
1331
+
1332
+ ### JSXMemberExpression
1333
+ Represents a member expression in JSX.
1334
+
1335
+ ```typescript
1336
+ export interface JSXMemberExpression extends Omit<Expression, "type"> {
1337
+ type: "JSXMemberExpression";
1338
+ object: K.JSXIdentifierKind | K.JSXMemberExpressionKind;
1339
+ property: K.JSXIdentifierKind;
1340
+ }
1341
+ ```
1342
+
1343
+ ### JSXNamespacedName
1344
+ Represents a namespaced name in JSX.
1345
+
1346
+ ```typescript
1347
+ export interface JSXNamespacedName extends Omit<Expression, "type"> {
1348
+ type: "JSXNamespacedName";
1349
+ namespace: K.JSXIdentifierKind;
1350
+ name: K.JSXIdentifierKind;
1351
+ }
1352
+ ```
1353
+
1354
+ ### JSXOpeningElement
1355
+ Represents an opening element in JSX.
1356
+
1357
+ ```typescript
1358
+ export interface JSXOpeningElement extends Omit<Node, "type"> {
1359
+ type: "JSXOpeningElement";
1360
+ name: K.JSXIdentifierKind | K.JSXMemberExpressionKind | K.JSXNamespacedNameKind;
1361
+ attributes: (K.JSXAttributeKind | K.JSXSpreadAttributeKind)[];
1362
+ selfClosing: boolean;
1363
+ }
1364
+ ```
1365
+
1366
+ ### JSXOpeningFragment
1367
+ Represents an opening fragment in JSX.
1368
+
1369
+ ```typescript
1370
+ export interface JSXOpeningFragment extends Omit<Node, "type"> {
1371
+ type: "JSXOpeningFragment";
1372
+ }
1373
+ ```
1374
+
1375
+ ### JSXSpreadAttribute
1376
+ Represents a spread attribute in JSX.
1377
+
1378
+ ```typescript
1379
+ export interface JSXSpreadAttribute extends Omit<Node, "type"> {
1380
+ type: "JSXSpreadAttribute";
1381
+ argument: K.ExpressionKind;
1382
+ }
1383
+ ```
1384
+
1385
+ ### JSXSpreadChild
1386
+ Represents a spread child in JSX.
1387
+
1388
+ ```typescript
1389
+ export interface JSXSpreadChild extends Omit<Expression, "type"> {
1390
+ type: "JSXSpreadChild";
1391
+ expression: K.ExpressionKind;
1392
+ }
1393
+ ```
1394
+
1395
+ ### JSXText
1396
+ Represents text in JSX.
1397
+
1398
+ ```typescript
1399
+ export interface JSXText extends Omit<Literal, "type"> {
1400
+ type: "JSXText";
1401
+ value: string;
1402
+ raw: string;
1403
+ }
1404
+ ```
1405
+
1406
+ ### LabeledStatement
1407
+ Represents a labeled statement.
1408
+
1409
+ ```typescript
1410
+ export interface LabeledStatement extends Omit<Statement, "type"> {
1411
+ type: "LabeledStatement";
1412
+ label: K.IdentifierKind;
1413
+ body: K.StatementKind;
1414
+ }
1415
+ ```
1416
+
1417
+ ### Line
1418
+ Represents a line comment.
1419
+
1420
+ ```typescript
1421
+ export interface Line extends Comment {
1422
+ type: "Line";
1423
+ }
1424
+ ```
1425
+
1426
+ ### Literal
1427
+ Represents a literal value.
1428
+
1429
+ ```typescript
1430
+ export interface Literal extends Expression, Pattern {
1431
+ type: "Literal";
1432
+ value: boolean | number | string | RegExp | null;
1433
+ regex?: { pattern: string; flags: string };
1434
+ raw?: string;
1435
+ bigint?: string;
1436
+ }
1437
+ ```
1438
+
1439
+ ### LogicalExpression
1440
+ Represents a logical expression.
1441
+
1442
+ ```typescript
1443
+ export interface LogicalExpression extends Omit<Expression, "type"> {
1444
+ type: "LogicalExpression";
1445
+ operator: "||" | "&&" | "??";
1446
+ left: K.ExpressionKind;
1447
+ right: K.ExpressionKind;
1448
+ }
1449
+ ```
1450
+
1451
+ ### MemberExpression
1452
+ Represents a member expression.
1453
+
1454
+ ```typescript
1455
+ export interface MemberExpression extends Omit<Expression, "type">, Omit<ChainElement, "type"> {
1456
+ type: "MemberExpression";
1457
+ object: K.ExpressionKind | K.SuperKind;
1458
+ property: K.IdentifierKind | K.ExpressionKind;
1459
+ computed: boolean;
1460
+ }
1461
+ ```
1462
+
1463
+ ### MemberTypeAnnotation
1464
+ A type annotation for a member type.
1465
+
1466
+ ```typescript
1467
+ export interface MemberTypeAnnotation extends Omit<FlowType, "type"> {
1468
+ type: "MemberTypeAnnotation";
1469
+ object: K.IdentifierKind;
1470
+ property: K.IdentifierKind;
1471
+ }
1472
+ ```
1473
+
1474
+ ### MetaProperty
1475
+ Represents a meta property.
1476
+
1477
+ ```typescript
1478
+ export interface MetaProperty extends Omit<Expression, "type
1479
+
1480
+ "> {
1481
+ type: "MetaProperty";
1482
+ meta: K.IdentifierKind;
1483
+ property: K.IdentifierKind;
1484
+ }
1485
+ ```
1486
+
1487
+ ### MethodDefinition
1488
+ Represents a method definition.
1489
+
1490
+ ```typescript
1491
+ export interface MethodDefinition extends Omit<Declaration, "type"> {
1492
+ type: "MethodDefinition";
1493
+ key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
1494
+ value: K.FunctionExpressionKind;
1495
+ kind?: "get" | "set" | "method" | "constructor";
1496
+ access?: "public" | "private" | "protected" | null;
1497
+ computed?: boolean;
1498
+ static?: boolean;
1499
+ decorators?: K.DecoratorKind[] | null;
1500
+ }
1501
+ ```
1502
+
1503
+ ### MixedTypeAnnotation
1504
+ A type annotation for a mixed type.
1505
+
1506
+ ```typescript
1507
+ export interface MixedTypeAnnotation extends Omit<FlowType, "type"> {
1508
+ type: "MixedTypeAnnotation";
1509
+ }
1510
+ ```
1511
+
1512
+ ### ModuleSpecifier
1513
+ Represents a module specifier.
1514
+
1515
+ ```typescript
1516
+ export interface ModuleSpecifier extends Node {
1517
+ type: "ModuleSpecifier";
1518
+ }
1519
+ ```
1520
+
1521
+ ### NewExpression
1522
+ Represents a new expression.
1523
+
1524
+ ```typescript
1525
+ export interface NewExpression extends Omit<Expression, "type"> {
1526
+ type: "NewExpression";
1527
+ callee: K.ExpressionKind;
1528
+ arguments: (K.ExpressionKind | K.SpreadElementKind)[];
1529
+ typeArguments?: null | K.TypeParameterInstantiationKind;
1530
+ }
1531
+ ```
1532
+
1533
+ ### Node
1534
+ Represents a generic AST node.
1535
+
1536
+ ```typescript
1537
+ export interface Node {
1538
+ type: string;
1539
+ loc?: K.SourceLocationKind | null;
1540
+ comments?: (K.CommentBlockKind | K.CommentLineKind)[] | null;
1541
+ }
1542
+ ```
1543
+
1544
+ ### Noop
1545
+ Represents a no-op (no operation) statement.
1546
+
1547
+ ```typescript
1548
+ export interface Noop extends Omit<Statement, "type"> {
1549
+ type: "Noop";
1550
+ }
1551
+ ```
1552
+
1553
+ ### NullableTypeAnnotation
1554
+ A type annotation for a nullable type.
1555
+
1556
+ ```typescript
1557
+ export interface NullableTypeAnnotation extends Omit<FlowType, "type"> {
1558
+ type: "NullableTypeAnnotation";
1559
+ typeAnnotation: K.FlowTypeKind;
1560
+ }
1561
+ ```
1562
+
1563
+ ### NullLiteral
1564
+ Represents a null literal.
1565
+
1566
+ ```typescript
1567
+ export interface NullLiteral extends Omit<Literal, "type" | "value"> {
1568
+ type: "NullLiteral";
1569
+ value: null;
1570
+ }
1571
+ ```
1572
+
1573
+ ### NullLiteralTypeAnnotation
1574
+ A type annotation for null literals.
1575
+
1576
+ ```typescript
1577
+ export interface NullLiteralTypeAnnotation extends Omit<FlowType, "type"> {
1578
+ type: "NullLiteralTypeAnnotation";
1579
+ value: null;
1580
+ raw: string;
1581
+ }
1582
+ ```
1583
+
1584
+ ### NullTypeAnnotation
1585
+ A type annotation for null types.
1586
+
1587
+ ```typescript
1588
+ export interface NullTypeAnnotation extends Omit<FlowType, "type"> {
1589
+ type: "NullTypeAnnotation";
1590
+ }
1591
+ ```
1592
+
1593
+ ### NumberLiteralTypeAnnotation
1594
+ A type annotation for number literals.
1595
+
1596
+ ```typescript
1597
+ export interface NumberLiteralTypeAnnotation extends Omit<FlowType, "type"> {
1598
+ type: "NumberLiteralTypeAnnotation";
1599
+ value: number;
1600
+ raw: string;
1601
+ }
1602
+ ```
1603
+
1604
+ ### NumberTypeAnnotation
1605
+ A type annotation for number types.
1606
+
1607
+ ```typescript
1608
+ export interface NumberTypeAnnotation extends Omit<FlowType, "type"> {
1609
+ type: "NumberTypeAnnotation";
1610
+ }
1611
+ ```
1612
+
1613
+ ### NumericLiteral
1614
+ Represents a numeric literal.
1615
+
1616
+ ```typescript
1617
+ export interface NumericLiteral extends Omit<Literal, "type" | "value"> {
1618
+ type: "NumericLiteral";
1619
+ value: number;
1620
+ raw?: string;
1621
+ }
1622
+ ```
1623
+
1624
+ ### NumericLiteralTypeAnnotation
1625
+ A type annotation for numeric literals.
1626
+
1627
+ ```typescript
1628
+ export interface NumericLiteralTypeAnnotation extends Omit<FlowType, "type"> {
1629
+ type: "NumericLiteralTypeAnnotation";
1630
+ value: number;
1631
+ raw: string;
1632
+ }
1633
+ ```
1634
+
1635
+ ### ObjectExpression
1636
+ Represents an object expression.
1637
+
1638
+ ```typescript
1639
+ export interface ObjectExpression extends Omit<Expression, "type"> {
1640
+ type: "ObjectExpression";
1641
+ properties: (K.PropertyKind | K.ObjectMethodKind | K.SpreadElementKind | K.RestElementKind)[];
1642
+ }
1643
+ ```
1644
+
1645
+ ### ObjectMethod
1646
+ Represents a method in an object.
1647
+
1648
+ ```typescript
1649
+ export interface ObjectMethod extends Omit<Declaration, "type">, Omit<Function, "type" | "body"> {
1650
+ type: "ObjectMethod";
1651
+ key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
1652
+ kind?: "method" | "get" | "set";
1653
+ body: K.BlockStatementKind;
1654
+ computed?: boolean;
1655
+ static?: boolean;
1656
+ shorthand?: boolean;
1657
+ decorators?: K.DecoratorKind[] | null;
1658
+ access?: "public" | "private" | "protected" | null;
1659
+ optional?: boolean;
1660
+ readonly?: boolean;
1661
+ definite?: boolean;
1662
+ }
1663
+ ```
1664
+
1665
+ ### ObjectPattern
1666
+ Represents an object pattern for destructuring.
1667
+
1668
+ ```typescript
1669
+ export interface ObjectPattern extends Omit<Pattern, "type"> {
1670
+ type: "ObjectPattern";
1671
+ properties: (K.PropertyKind | K.RestElementKind)[];
1672
+ decorators?: K.DecoratorKind[] | null;
1673
+ }
1674
+ ```
1675
+
1676
+ ### ObjectProperty
1677
+ Represents a property in an object.
1678
+
1679
+ ```typescript
1680
+ export interface ObjectProperty extends Omit<Declaration, "type"> {
1681
+ type: "ObjectProperty";
1682
+ key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
1683
+ value: K.ExpressionKind;
1684
+ computed?: boolean;
1685
+ shorthand?: boolean;
1686
+ decorators?: K.DecoratorKind[] | null;
1687
+ access?: "public" | "private" | "protected" | null;
1688
+ optional?: boolean;
1689
+ readonly?: boolean;
1690
+ definite?: boolean;
1691
+ }
1692
+ ```
1693
+
1694
+ ### ObjectTypeAnnotation
1695
+ A type annotation for object types.
1696
+
1697
+ ```typescript
1698
+ export interface ObjectTypeAnnotation extends Omit<FlowType, "type"> {
1699
+ type: "ObjectTypeAnnotation";
1700
+ properties: K.ObjectTypePropertyKind[];
1701
+ indexers?: K.ObjectTypeIndexerKind[] | null;
1702
+ callProperties?: K.ObjectTypeCallPropertyKind[] | null;
1703
+ internalSlots?: K.ObjectTypeInternalSlotKind[] | null;
1704
+ exact?: boolean;
1705
+ inexact?: boolean;
1706
+ }
1707
+ ```
1708
+
1709
+ ### ObjectTypeCallProperty
1710
+ Represents a call property in an object type annotation.
1711
+
1712
+ ```typescript
1713
+ export interface ObjectTypeCallProperty extends Omit<Node, "type"> {
1714
+ type: "ObjectTypeCallProperty";
1715
+ value: K.FunctionTypeAnnotationKind;
1716
+ static?: boolean;
1717
+ }
1718
+ ```
1719
+
1720
+ ### ObjectTypeIndexer
1721
+ Represents an indexer in an object type annotation.
1722
+
1723
+ ```typescript
1724
+ export interface ObjectTypeIndexer extends Omit<Node, "type"> {
1725
+ type: "ObjectTypeIndexer";
1726
+ id?: K.IdentifierKind | null;
1727
+ key: K.FlowTypeKind;
1728
+ value: K.FlowTypeKind;
1729
+ variance?: K.VarianceKind | "plus" | "minus" | null;
1730
+ static?: boolean;
1731
+ }
1732
+ ```
1733
+
1734
+ ### ObjectTypeInternalSlot
1735
+ Represents an internal slot in an object type annotation.
1736
+
1737
+ ```typescript
1738
+ export interface ObjectTypeInternalSlot extends Omit<Node, "type"> {
1739
+ type: "ObjectTypeInternalSlot";
1740
+ id: K.IdentifierKind;
1741
+ value: K.FlowTypeKind;
1742
+ optional?: boolean;
1743
+ static?: boolean;
1744
+ method?: boolean;
1745
+ }
1746
+ ```
1747
+
1748
+ ### ObjectTypeProperty
1749
+ Represents a property in an object type annotation.
1750
+
1751
+ ```typescript
1752
+ export interface ObjectTypeProperty extends Omit<Node, "type"> {
1753
+ type: "ObjectTypeProperty";
1754
+ key: K.LiteralKind | K.IdentifierKind;
1755
+ value: K.FlowTypeKind;
1756
+ optional?: boolean;
1757
+ variance?: K.VarianceKind | "plus" | "minus" | null;
1758
+ static?: boolean;
1759
+ }
1760
+ ```
1761
+
1762
+ ### ObjectTypeSpreadProperty
1763
+ Represents a spread property in an object type annotation.
1764
+
1765
+ ```typescript
1766
+ export interface ObjectTypeSpreadProperty extends Omit<Node, "type"> {
1767
+ type: "ObjectTypeSpreadProperty";
1768
+ argument: K.FlowTypeKind;
1769
+ }
1770
+ ```
1771
+
1772
+ ### OpaqueType
1773
+ Represents an opaque type.
1774
+
1775
+ ```typescript
1776
+ export interface OpaqueType extends Omit<Declaration, "type"> {
1777
+ type: "OpaqueType";
1778
+ id: K.IdentifierKind;
1779
+ typeParameters?: K.TypeParameterDeclarationKind | null;
1780
+ impltype: K.FlowTypeKind;
1781
+ supertype?: K.FlowTypeKind | null;
1782
+ }
1783
+ ```
1784
+
1785
+ ### OptionalCallExpression
1786
+ Represents an optional call expression.
1787
+
1788
+ ```typescript
1789
+ export interface OptionalCallExpression extends Omit<Expression, "type">, Omit<ChainElement, "type"> {
1790
+ type: "OptionalCallExpression";
1791
+ callee: K.ExpressionKind;
1792
+ arguments: (K.ExpressionKind | K.SpreadElementKind)[];
1793
+ optional?: boolean;
1794
+ typeArguments?: null | K.TypeParameterInstantiationKind;
1795
+ }
1796
+ ```
1797
+
1798
+ ### OptionalMemberExpression
1799
+ Represents an optional member expression.
1800
+
1801
+ ```typescript
1802
+ export interface OptionalMemberExpression extends Omit<Expression, "type">, Omit<ChainElement, "type"> {
1803
+ type: "OptionalMemberExpression";
1804
+ object: K.ExpressionKind | K.SuperKind;
1805
+ property: K.IdentifierKind | K.ExpressionKind;
1806
+ computed?: boolean;
1807
+ optional?: boolean;
1808
+ }
1809
+ ```
1810
+
1811
+ ### ParenthesizedExpression
1812
+ Represents a parenthesized expression.
1813
+
1814
+ ```typescript
1815
+ export interface ParenthesizedExpression extends Omit<Expression, "type"> {
1816
+ type: "ParenthesizedExpression";
1817
+ expression: K.ExpressionKind;
1818
+ }
1819
+ ```
1820
+
1821
+ ### Pattern
1822
+ Represents a pattern in the code.
1823
+
1824
+ ```typescript
1825
+ export interface Pattern extends Node {
1826
+ type: "Pattern";
1827
+ }
1828
+ ```
1829
+
1830
+ ### Position
1831
+ Represents a position in the source code.
1832
+
1833
+ ```typescript
1834
+ export interface Position extends Omit<Node, "type"> {
1835
+ type: "Position";
1836
+ line: number;
1837
+ column: number;
1838
+ }
1839
+ ```
1840
+
1841
+ ### Printable
1842
+ Represents a printable node.
1843
+
1844
+ ```typescript
1845
+ export interface
1846
+
1847
+ Printable extends Node {
1848
+ type: "Printable";
1849
+ }
1850
+ ```
1851
+
1852
+ ### PrivateName
1853
+ Represents a private name.
1854
+
1855
+ ```typescript
1856
+ export interface PrivateName extends Omit<Expression, "type"> {
1857
+ type: "PrivateName";
1858
+ id: K.IdentifierKind;
1859
+ }
1860
+ ```
1861
+
1862
+ ### Program
1863
+ Represents the entire program.
1864
+
1865
+ ```typescript
1866
+ export interface Program extends Omit<Node, "type"> {
1867
+ type: "Program";
1868
+ body: (K.StatementKind | K.ModuleDeclarationKind)[];
1869
+ sourceType: "script" | "module";
1870
+ directives?: K.DirectiveKind[] | null;
1871
+ }
1872
+ ```
1873
+
1874
+ ### Property
1875
+ Represents a property in an object.
1876
+
1877
+ ```typescript
1878
+ export interface Property extends Omit<Declaration, "type"> {
1879
+ type: "Property";
1880
+ key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
1881
+ value: K.ExpressionKind;
1882
+ kind?: "init" | "get" | "set";
1883
+ computed?: boolean;
1884
+ method?: boolean;
1885
+ shorthand?: boolean;
1886
+ decorators?: K.DecoratorKind[] | null;
1887
+ }
1888
+ ```
1889
+
1890
+ ### PropertyPattern
1891
+ Represents a pattern property in an object.
1892
+
1893
+ ```typescript
1894
+ export interface PropertyPattern extends Omit<Pattern, "type"> {
1895
+ type: "PropertyPattern";
1896
+ key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
1897
+ pattern: K.PatternKind;
1898
+ }
1899
+ ```
1900
+
1901
+ ### QualifiedTypeIdentifier
1902
+ Represents a qualified type identifier in Flow.
1903
+
1904
+ ```typescript
1905
+ export interface QualifiedTypeIdentifier extends Omit<FlowType, "type"> {
1906
+ type: "QualifiedTypeIdentifier";
1907
+ qualification: K.IdentifierKind | K.QualifiedTypeIdentifierKind;
1908
+ id: K.IdentifierKind;
1909
+ }
1910
+ ```
1911
+
1912
+ ### RegExpLiteral
1913
+ Represents a regular expression literal.
1914
+
1915
+ ```typescript
1916
+ export interface RegExpLiteral extends Omit<Literal, "type" | "value"> {
1917
+ type: "RegExpLiteral";
1918
+ value: RegExp;
1919
+ regex: { pattern: string; flags: string };
1920
+ }
1921
+ ```
1922
+
1923
+ ### RestElement
1924
+ Represents a rest element in a destructuring assignment.
1925
+
1926
+ ```typescript
1927
+ export interface RestElement extends Omit<Pattern, "type"> {
1928
+ type: "RestElement";
1929
+ argument: K.PatternKind;
1930
+ decorators?: K.DecoratorKind[] | null;
1931
+ }
1932
+ ```
1933
+
1934
+ ### RestProperty
1935
+ Represents a rest property in an object pattern.
1936
+
1937
+ ```typescript
1938
+ export interface RestProperty extends Omit<Pattern, "type"> {
1939
+ type: "RestProperty";
1940
+ argument: K.PatternKind;
1941
+ }
1942
+ ```
1943
+
1944
+ ### ReturnStatement
1945
+ Represents a return statement.
1946
+
1947
+ ```typescript
1948
+ export interface ReturnStatement extends Omit<Statement, "type"> {
1949
+ type: "ReturnStatement";
1950
+ argument?: K.ExpressionKind | null;
1951
+ }
1952
+ ```
1953
+
1954
+ ### SequenceExpression
1955
+ Represents a sequence expression.
1956
+
1957
+ ```typescript
1958
+ export interface SequenceExpression extends Omit<Expression, "type"> {
1959
+ type: "SequenceExpression";
1960
+ expressions: K.ExpressionKind[];
1961
+ }
1962
+ ```
1963
+
1964
+ ### SourceLocation
1965
+ Represents the source location of a node.
1966
+
1967
+ ```typescript
1968
+ export interface SourceLocation extends Omit<Node, "type"> {
1969
+ type: "SourceLocation";
1970
+ start: K.PositionKind;
1971
+ end: K.PositionKind;
1972
+ }
1973
+ ```
1974
+
1975
+ ### Specifier
1976
+ Represents a specifier in an import or export declaration.
1977
+
1978
+ ```typescript
1979
+ export interface Specifier extends Node {
1980
+ type: "Specifier";
1981
+ }
1982
+ ```
1983
+
1984
+ ### SpreadElement
1985
+ Represents a spread element in an array or function call.
1986
+
1987
+ ```typescript
1988
+ export interface SpreadElement extends Omit<Expression, "type"> {
1989
+ type: "SpreadElement";
1990
+ argument: K.ExpressionKind;
1991
+ }
1992
+ ```
1993
+
1994
+ ### SpreadElementPattern
1995
+ Represents a spread element pattern in an array.
1996
+
1997
+ ```typescript
1998
+ export interface SpreadElementPattern extends Omit<Pattern, "type"> {
1999
+ type: "SpreadElementPattern";
2000
+ argument: K.PatternKind;
2001
+ }
2002
+ ```
2003
+
2004
+ ### SpreadProperty
2005
+ Represents a spread property in an object.
2006
+
2007
+ ```typescript
2008
+ export interface SpreadProperty extends Omit<Pattern, "type"> {
2009
+ type: "SpreadProperty";
2010
+ argument: K.PatternKind;
2011
+ }
2012
+ ```
2013
+
2014
+ ### SpreadPropertyPattern
2015
+ Represents a spread property pattern in an object.
2016
+
2017
+ ```typescript
2018
+ export interface SpreadPropertyPattern extends Omit<Pattern, "type"> {
2019
+ type: "SpreadPropertyPattern";
2020
+ argument: K.PatternKind;
2021
+ }
2022
+ ```
2023
+
2024
+ ### Statement
2025
+ Represents a statement in the code.
2026
+
2027
+ ```typescript
2028
+ export interface Statement extends Node {
2029
+ type: "Statement";
2030
+ }
2031
+ ```
2032
+
2033
+ ### StringLiteral
2034
+ Represents a string literal.
2035
+
2036
+ ```typescript
2037
+ export interface StringLiteral extends Omit<Literal, "type" | "value"> {
2038
+ type: "StringLiteral";
2039
+ value: string;
2040
+ raw?: string;
2041
+ }
2042
+ ```
2043
+
2044
+ ### StringLiteralTypeAnnotation
2045
+ A type annotation for string literals.
2046
+
2047
+ ```typescript
2048
+ export interface StringLiteralTypeAnnotation extends Omit<FlowType, "type"> {
2049
+ type: "StringLiteralTypeAnnotation";
2050
+ value: string;
2051
+ raw: string;
2052
+ }
2053
+ ```
2054
+
2055
+ ### StringTypeAnnotation
2056
+ A type annotation for string types.
2057
+
2058
+ ```typescript
2059
+ export interface StringTypeAnnotation extends Omit<FlowType, "type"> {
2060
+ type: "StringTypeAnnotation";
2061
+ }
2062
+ ```
2063
+
2064
+ ### Super
2065
+ Represents the `super` keyword.
2066
+
2067
+ ```typescript
2068
+ export interface Super extends Omit<Node, "type"> {
2069
+ type: "Super";
2070
+ }
2071
+ ```
2072
+
2073
+ ### SwitchCase
2074
+ Represents a case in a switch statement.
2075
+
2076
+ ```typescript
2077
+ export interface SwitchCase extends Omit<Node, "type"> {
2078
+ type: "SwitchCase";
2079
+ test?: K.ExpressionKind | null;
2080
+ consequent: K.StatementKind[];
2081
+ }
2082
+ ```
2083
+
2084
+ ### SwitchStatement
2085
+ Represents a switch statement.
2086
+
2087
+ ```typescript
2088
+ export interface SwitchStatement extends Omit<Statement, "type"> {
2089
+ type: "SwitchStatement";
2090
+ discriminant: K.ExpressionKind;
2091
+ cases: K.SwitchCaseKind[];
2092
+ }
2093
+ ```
2094
+
2095
+ ### SymbolTypeAnnotation
2096
+ A type annotation for symbol types.
2097
+
2098
+ ```typescript
2099
+ export interface SymbolTypeAnnotation extends Omit<FlowType, "type"> {
2100
+ type: "SymbolTypeAnnotation";
2101
+ }
2102
+ ```
2103
+
2104
+ ### TaggedTemplateExpression
2105
+ Represents a tagged template expression.
2106
+
2107
+ ```typescript
2108
+ export interface TaggedTemplateExpression extends Omit<Expression, "type"> {
2109
+ type: "TaggedTemplateExpression";
2110
+ tag: K.ExpressionKind;
2111
+ quasi: K.TemplateLiteralKind;
2112
+ }
2113
+ ```
2114
+
2115
+ ### TemplateElement
2116
+ Represents an element in a template literal.
2117
+
2118
+ ```typescript
2119
+ export interface TemplateElement extends Omit<Node, "type"> {
2120
+ type: "TemplateElement";
2121
+ tail: boolean;
2122
+ value: { cooked: string; raw: string };
2123
+ }
2124
+ ```
2125
+
2126
+ ### TemplateLiteral
2127
+ Represents a template literal.
2128
+
2129
+ ```typescript
2130
+ export interface TemplateLiteral extends Omit<Expression, "type"> {
2131
+ type: "TemplateLiteral";
2132
+ quasis: K.TemplateElementKind[];
2133
+ expressions: K.ExpressionKind[];
2134
+ }
2135
+ ```
2136
+
2137
+ ### ThisExpression
2138
+ Represents the `this` expression.
2139
+
2140
+ ```typescript
2141
+ export interface ThisExpression extends Omit<Expression, "type"> {
2142
+ type: "ThisExpression";
2143
+ }
2144
+ ```
2145
+
2146
+ ### ThisTypeAnnotation
2147
+ A type annotation for the `this` type.
2148
+
2149
+ ```typescript
2150
+ export interface ThisTypeAnnotation extends Omit<FlowType, "type"> {
2151
+ type: "ThisTypeAnnotation";
2152
+ }
2153
+ ```
2154
+
2155
+ ### ThrowStatement
2156
+ Represents a throw statement.
2157
+
2158
+ ```typescript
2159
+ export interface ThrowStatement extends Omit<Statement, "type"> {
2160
+ type: "ThrowStatement";
2161
+ argument: K.ExpressionKind;
2162
+ }
2163
+ ```
2164
+
2165
+ ### TryStatement
2166
+ Represents a try statement.
2167
+
2168
+ ```typescript
2169
+ export interface TryStatement extends Omit<Statement, "type"> {
2170
+ type: "TryStatement";
2171
+ block: K.BlockStatementKind;
2172
+ handler?: K.CatchClauseKind | null;
2173
+ finalizer?: K.BlockStatementKind | null;
2174
+ }
2175
+ ```
2176
+
2177
+ ### TSAnyKeyword
2178
+ Represents the TypeScript `any` keyword.
2179
+
2180
+ ```typescript
2181
+ export interface TSAnyKeyword extends Omit<TSType, "type"> {
2182
+ type: "TSAnyKeyword";
2183
+ }
2184
+ ```
2185
+
2186
+ ### TSArrayType
2187
+ Represents a TypeScript array type.
2188
+
2189
+ ```typescript
2190
+ export interface TSArrayType extends Omit<TSType, "type"> {
2191
+ type: "TSArrayType";
2192
+ elementType: K.TSTypeKind;
2193
+ }
2194
+ ```
2195
+
2196
+ ### TSAsExpression
2197
+ Represents a TypeScript as-expression.
2198
+
2199
+ ```typescript
2200
+ export interface TSAsExpression extends Omit<Expression, "type"> {
2201
+ type: "TSAsExpression";
2202
+ expression: K.ExpressionKind;
2203
+ typeAnnotation: K.TSTypeKind;
2204
+ }
2205
+ ```
2206
+
2207
+ ### TSBigIntKeyword
2208
+ Represents the TypeScript `bigint` keyword.
2209
+
2210
+ ```typescript
2211
+ export interface TSBigIntKeyword extends Omit<TSType, "type"> {
2212
+ type: "TSBigIntKeyword";
2213
+ }
2214
+ ```
2215
+
2216
+ ### TSBooleanKeyword
2217
+ Represents the TypeScript `boolean` keyword.
2218
+
2219
+ ```typescript
2220
+ export interface TSBooleanKeyword extends Omit<TSType, "type"> {
2221
+ type: "TSBooleanKeyword";
2222
+ }
2223
+ ```
2224
+
2225
+ ### TSCallSignatureDeclaration
2226
+ Represents a TypeScript call signature declaration.
2227
+
2228
+ ```typescript
2229
+ export interface TSCallSignatureDeclaration extends Omit<TSTypeElement, "type"> {
2230
+ type: "TSCallSignatureDeclaration";
2231
+ parameters: (K.IdentifierKind | K.RestElementKind)[];
2232
+ typeAnnotation?: K.TSTypeAnnotationKind | null;
2233
+ typeParameters?: K.TSTypeParameterDeclarationKind | null;
2234
+ }
2235
+ ```
2236
+
2237
+ ### TSConditionalType
2238
+ Represents a TypeScript conditional type.
2239
+
2240
+ ```typescript
2241
+ export interface TSConditionalType extends Omit<TSType, "type"> {
2242
+ type: "TSConditionalType";
2243
+ checkType: K.TSTypeKind;
2244
+ extendsType: K.TSTypeKind;
2245
+ trueType: K.TSTypeKind;
2246
+ falseType: K.TSTypeKind;
2247
+ }
2248
+ ```
2249
+
2250
+ ### TSConstructorType
2251
+ Represents a TypeScript constructor type.
2252
+
2253
+ ```
2254
+
2255
+ typescript
2256
+ export interface TSConstructorType extends Omit<TSType, "type"> {
2257
+ type: "TSConstructorType";
2258
+ parameters: (K.IdentifierKind | K.RestElementKind)[];
2259
+ typeAnnotation: K.TSTypeAnnotationKind;
2260
+ typeParameters?: K.TSTypeParameterDeclarationKind | null;
2261
+ }
2262
+ ```
2263
+
2264
+ ### TSConstructSignatureDeclaration
2265
+ Represents a TypeScript construct signature declaration.
2266
+
2267
+ ```typescript
2268
+ export interface TSConstructSignatureDeclaration extends Omit<TSTypeElement, "type"> {
2269
+ type: "TSConstructSignatureDeclaration";
2270
+ parameters: (K.IdentifierKind | K.RestElementKind)[];
2271
+ typeAnnotation?: K.TSTypeAnnotationKind | null;
2272
+ typeParameters?: K.TSTypeParameterDeclarationKind | null;
2273
+ }
2274
+ ```
2275
+
2276
+ ### TSDeclareFunction
2277
+ Represents a TypeScript function declaration.
2278
+
2279
+ ```typescript
2280
+ export interface TSDeclareFunction extends Omit<FunctionDeclaration, "type"> {
2281
+ type: "TSDeclareFunction";
2282
+ }
2283
+ ```
2284
+
2285
+ ### TSDeclareMethod
2286
+ Represents a TypeScript method declaration.
2287
+
2288
+ ```typescript
2289
+ export interface TSDeclareMethod extends Omit<FunctionDeclaration, "type"> {
2290
+ type: "TSDeclareMethod";
2291
+ }
2292
+ ```
2293
+
2294
+ ### TSEnumDeclaration
2295
+ Represents a TypeScript enum declaration.
2296
+
2297
+ ```typescript
2298
+ export interface TSEnumDeclaration extends Omit<Declaration, "type"> {
2299
+ type: "TSEnumDeclaration";
2300
+ id: K.IdentifierKind;
2301
+ members: K.TSEnumMemberKind[];
2302
+ const?: boolean;
2303
+ declare?: boolean;
2304
+ modifiers?: K.ModifierKind[] | null;
2305
+ }
2306
+ ```
2307
+
2308
+ ### TSEnumMember
2309
+ Represents a member of a TypeScript enum.
2310
+
2311
+ ```typescript
2312
+ export interface TSEnumMember extends Omit<Node, "type"> {
2313
+ type: "TSEnumMember";
2314
+ id: K.IdentifierKind | K.StringLiteralKind;
2315
+ initializer?: K.ExpressionKind | null;
2316
+ }
2317
+ ```
2318
+
2319
+ ### TSExportAssignment
2320
+ Represents a TypeScript export assignment.
2321
+
2322
+ ```typescript
2323
+ export interface TSExportAssignment extends Omit<Declaration, "type"> {
2324
+ type: "TSExportAssignment";
2325
+ expression: K.ExpressionKind;
2326
+ }
2327
+ ```
2328
+
2329
+ ### TSExpressionWithTypeArguments
2330
+ Represents a TypeScript expression with type arguments.
2331
+
2332
+ ```typescript
2333
+ export interface TSExpressionWithTypeArguments extends Omit<TSType, "type"> {
2334
+ type: "TSExpressionWithTypeArguments";
2335
+ expression: K.IdentifierKind | K.TSQualifiedNameKind;
2336
+ typeParameters?: K.TSTypeParameterInstantiationKind | null;
2337
+ }
2338
+ ```
2339
+
2340
+ ### TSExternalModuleReference
2341
+ Represents a TypeScript external module reference.
2342
+
2343
+ ```typescript
2344
+ export interface TSExternalModuleReference extends Omit<Declaration, "type"> {
2345
+ type: "TSExternalModuleReference";
2346
+ expression: K.StringLiteralKind;
2347
+ }
2348
+ ```
2349
+
2350
+ ### TSFunctionType
2351
+ Represents a TypeScript function type.
2352
+
2353
+ ```typescript
2354
+ export interface TSFunctionType extends Omit<TSType, "type"> {
2355
+ type: "TSFunctionType";
2356
+ parameters: (K.IdentifierKind | K.RestElementKind)[];
2357
+ typeAnnotation: K.TSTypeAnnotationKind;
2358
+ typeParameters?: K.TSTypeParameterDeclarationKind | null;
2359
+ }
2360
+ ```
2361
+
2362
+ ### TSHasOptionalTypeAnnotation
2363
+ Represents an optional type annotation in TypeScript.
2364
+
2365
+ ```typescript
2366
+ export interface TSHasOptionalTypeAnnotation extends Omit<TSType, "type"> {
2367
+ type: "TSHasOptionalTypeAnnotation";
2368
+ typeAnnotation?: K.TSTypeAnnotationKind | null;
2369
+ }
2370
+ ```
2371
+
2372
+ ### TSHasOptionalTypeParameterInstantiation
2373
+ Represents an optional type parameter instantiation in TypeScript.
2374
+
2375
+ ```typescript
2376
+ export interface TSHasOptionalTypeParameterInstantiation extends Omit<TSType, "type"> {
2377
+ type: "TSHasOptionalTypeParameterInstantiation";
2378
+ typeParameters?: K.TSTypeParameterInstantiationKind | null;
2379
+ }
2380
+ ```
2381
+
2382
+ ### TSHasOptionalTypeParameters
2383
+ Represents optional type parameters in TypeScript.
2384
+
2385
+ ```typescript
2386
+ export interface TSHasOptionalTypeParameters extends Omit<TSType, "type"> {
2387
+ type: "TSHasOptionalTypeParameters";
2388
+ typeParameters?: K.TSTypeParameterDeclarationKind | null;
2389
+ }
2390
+ ```
2391
+
2392
+ ### TSImportEqualsDeclaration
2393
+ Represents a TypeScript import equals declaration.
2394
+
2395
+ ```typescript
2396
+ export interface TSImportEqualsDeclaration extends Omit<Declaration, "type"> {
2397
+ type: "TSImportEqualsDeclaration";
2398
+ id: K.IdentifierKind;
2399
+ moduleReference: K.IdentifierKind | K.TSQualifiedNameKind | K.TSExternalModuleReferenceKind;
2400
+ isExport?: boolean;
2401
+ }
2402
+ ```
2403
+
2404
+ ### TSImportType
2405
+ Represents a TypeScript import type.
2406
+
2407
+ ```typescript
2408
+ export interface TSImportType extends Omit<TSType, "type"> {
2409
+ type: "TSImportType";
2410
+ argument: K.StringLiteralKind;
2411
+ qualifier?: K.IdentifierKind | K.TSQualifiedNameKind | null;
2412
+ typeParameters?: K.TSTypeParameterInstantiationKind | null;
2413
+ }
2414
+ ```
2415
+
2416
+ ### TSIndexedAccessType
2417
+ Represents a TypeScript indexed access type.
2418
+
2419
+ ```typescript
2420
+ export interface TSIndexedAccessType extends Omit<TSType, "type"> {
2421
+ type: "TSIndexedAccessType";
2422
+ objectType: K.TSTypeKind;
2423
+ indexType: K.TSTypeKind;
2424
+ }
2425
+ ```
2426
+
2427
+ ### TSIndexSignature
2428
+ Represents a TypeScript index signature.
2429
+
2430
+ ```typescript
2431
+ export interface TSIndexSignature extends Omit<Declaration, "type"> {
2432
+ type: "TSIndexSignature";
2433
+ parameters: (K.IdentifierKind | K.RestElementKind)[];
2434
+ typeAnnotation?: K.TSTypeAnnotationKind | null;
2435
+ readonly?: boolean;
2436
+ static?: boolean;
2437
+ declare?: boolean;
2438
+ optional?: boolean;
2439
+ accessibility?: "public" | "private" | "protected" | null;
2440
+ }
2441
+ ```
2442
+
2443
+ ### TSInferType
2444
+ Represents a TypeScript infer type.
2445
+
2446
+ ```typescript
2447
+ export interface TSInferType extends Omit<TSType, "type"> {
2448
+ type: "TSInferType";
2449
+ typeParameter: K.TSTypeParameterKind;
2450
+ }
2451
+ ```
2452
+
2453
+ ### TSInterfaceBody
2454
+ Represents the body of a TypeScript interface.
2455
+
2456
+ ```typescript
2457
+ export interface TSInterfaceBody extends Omit<Node, "type"> {
2458
+ type: "TSInterfaceBody";
2459
+ body: K.TSTypeElementKind[];
2460
+ }
2461
+ ```
2462
+
2463
+ ### TSInterfaceDeclaration
2464
+ Represents a TypeScript interface declaration.
2465
+
2466
+ ```typescript
2467
+ export interface TSInterfaceDeclaration extends Omit<Declaration, "type"> {
2468
+ type: "TSInterfaceDeclaration";
2469
+ id: K.IdentifierKind;
2470
+ body: K.TSInterfaceBodyKind;
2471
+ typeParameters?: K.TSTypeParameterDeclarationKind | null;
2472
+ extends?: K.TSExpressionWithTypeArgumentsKind[] | null;
2473
+ declare?: boolean;
2474
+ }
2475
+ ```
2476
+
2477
+ ### TSIntersectionType
2478
+ Represents a TypeScript intersection type.
2479
+
2480
+ ```typescript
2481
+ export interface TSIntersectionType extends Omit<TSType, "type"> {
2482
+ type: "TSIntersectionType";
2483
+ types: K.TSTypeKind[];
2484
+ }
2485
+ ```
2486
+
2487
+ ### TSLiteralType
2488
+ Represents a TypeScript literal type.
2489
+
2490
+ ```typescript
2491
+ export interface TSLiteralType extends Omit<TSType, "type"> {
2492
+ type: "TSLiteralType";
2493
+ literal: K.NumericLiteralKind | K.StringLiteralKind | K.BooleanLiteralKind;
2494
+ }
2495
+ ```
2496
+
2497
+ ### TSMappedType
2498
+ Represents a TypeScript mapped type.
2499
+
2500
+ ```typescript
2501
+ export interface TSMappedType extends Omit<TSType, "type"> {
2502
+ type: "TSMappedType";
2503
+ typeParameter: K.TSTypeParameterKind;
2504
+ nameType?: K.TSTypeKind | null;
2505
+ optional?: boolean | "+" | "-";
2506
+ readonly?: boolean | "+" | "-";
2507
+ typeAnnotation?: K.TSTypeKind | null;
2508
+ }
2509
+ ```
2510
+
2511
+ ### TSMethodSignature
2512
+ Represents a TypeScript method signature.
2513
+
2514
+ ```typescript
2515
+ export interface TSMethodSignature extends Omit<TSTypeElement, "type"> {
2516
+ type: "TSMethodSignature";
2517
+ key: K.ExpressionKind;
2518
+ parameters: (K.IdentifierKind | K.RestElementKind)[];
2519
+ typeAnnotation?: K.TSTypeAnnotationKind | null;
2520
+ typeParameters?: K.TSTypeParameterDeclarationKind | null;
2521
+ computed?: boolean;
2522
+ optional?: boolean;
2523
+ }
2524
+ ```
2525
+
2526
+ ### TSModuleBlock
2527
+ Represents a TypeScript module block.
2528
+
2529
+ ```typescript
2530
+ export interface TSModuleBlock extends Omit<Node, "type"> {
2531
+ type: "TSModuleBlock";
2532
+ body: K.StatementKind[];
2533
+ }
2534
+ ```
2535
+
2536
+ ### TSModuleDeclaration
2537
+ Represents a TypeScript module declaration.
2538
+
2539
+ ```typescript
2540
+ export interface TSModuleDeclaration extends Omit<Declaration, "type"> {
2541
+ type: "TSModuleDeclaration";
2542
+ id: K.IdentifierKind | K.StringLiteralKind;
2543
+ body: K.TSModuleBlockKind | K.TSModuleDeclarationKind;
2544
+ declare?: boolean;
2545
+ global?: boolean;
2546
+ modifiers?: K.ModifierKind[] | null;
2547
+ }
2548
+ ```
2549
+
2550
+ ### TSNamedTupleMember
2551
+ Represents a named tuple member in TypeScript.
2552
+
2553
+ ```typescript
2554
+ export interface TSNamedTupleMember extends Omit<TSType, "type"> {
2555
+ type: "TSNamedTupleMember";
2556
+ elementType: K.TSTypeKind;
2557
+ label: K.IdentifierKind;
2558
+ optional?: boolean;
2559
+ }
2560
+ ```
2561
+
2562
+ ### TSNamespaceExportDeclaration
2563
+ Represents a TypeScript namespace export declaration.
2564
+
2565
+ ```typescript
2566
+ export interface TSNamespaceExportDeclaration extends Omit<Declaration, "type"> {
2567
+ type: "TSNamespaceExportDeclaration";
2568
+ id: K.IdentifierKind;
2569
+ }
2570
+ ```
2571
+
2572
+ ### TSNeverKeyword
2573
+ Represents the TypeScript `never` keyword.
2574
+
2575
+ ```typescript
2576
+ export interface TSNeverKeyword extends Omit<TSType, "type"> {
2577
+ type: "TSNeverKeyword";
2578
+ }
2579
+ ```
2580
+
2581
+ ### TSNonNullExpression
2582
+ Represents a non-null assertion in TypeScript.
2583
+
2584
+ ```typescript
2585
+ export interface TSNonNullExpression extends Omit<Expression, "type"> {
2586
+ type: "TSNonNullExpression";
2587
+ expression: K.ExpressionKind;
2588
+ }
2589
+ ```
2590
+
2591
+ ### TSNullKeyword
2592
+ Represents the TypeScript `null` keyword.
2593
+
2594
+ ```typescript
2595
+ export interface
2596
+
2597
+ TSNullKeyword extends Omit<TSType, "type"> {
2598
+ type: "TSNullKeyword";
2599
+ }
2600
+ ```
2601
+
2602
+ ### TSNumberKeyword
2603
+ Represents the TypeScript `number` keyword.
2604
+
2605
+ ```typescript
2606
+ export interface TSNumberKeyword extends Omit<TSType, "type"> {
2607
+ type: "TSNumberKeyword";
2608
+ }
2609
+ ```
2610
+
2611
+ ### TSObjectKeyword
2612
+ Represents the TypeScript `object` keyword.
2613
+
2614
+ ```typescript
2615
+ export interface TSObjectKeyword extends Omit<TSType, "type"> {
2616
+ type: "TSObjectKeyword";
2617
+ }
2618
+ ```
2619
+
2620
+ ### TSOptionalType
2621
+ Represents an optional type in TypeScript.
2622
+
2623
+ ```typescript
2624
+ export interface TSOptionalType extends Omit<TSType, "type"> {
2625
+ type: "TSOptionalType";
2626
+ typeAnnotation: K.TSTypeKind;
2627
+ }
2628
+ ```
2629
+
2630
+ ### TSParameterProperty
2631
+ Represents a parameter property in TypeScript.
2632
+
2633
+ ```typescript
2634
+ export interface TSParameterProperty extends Omit<Pattern, "type"> {
2635
+ type: "TSParameterProperty";
2636
+ parameter: K.IdentifierKind | K.AssignmentPatternKind;
2637
+ accessibility?: "public" | "private" | "protected" | null;
2638
+ readonly?: boolean;
2639
+ }
2640
+ ```
2641
+
2642
+ ### TSParenthesizedType
2643
+ Represents a parenthesized type in TypeScript.
2644
+
2645
+ ```typescript
2646
+ export interface TSParenthesizedType extends Omit<TSType, "type"> {
2647
+ type: "TSParenthesizedType";
2648
+ typeAnnotation: K.TSTypeKind;
2649
+ }
2650
+ ```
2651
+
2652
+ ### TSPropertySignature
2653
+ Represents a property signature in TypeScript.
2654
+
2655
+ ```typescript
2656
+ export interface TSPropertySignature extends Omit<TSTypeElement, "type"> {
2657
+ type: "TSPropertySignature";
2658
+ key: K.ExpressionKind;
2659
+ typeAnnotation?: K.TSTypeAnnotationKind | null;
2660
+ initializer?: K.ExpressionKind | null;
2661
+ computed?: boolean;
2662
+ optional?: boolean;
2663
+ readonly?: boolean;
2664
+ }
2665
+ ```
2666
+
2667
+ ### TSQualifiedName
2668
+ Represents a qualified name in TypeScript.
2669
+
2670
+ ```typescript
2671
+ export interface TSQualifiedName extends Omit<TSType, "type"> {
2672
+ type: "TSQualifiedName";
2673
+ left: K.IdentifierKind | K.TSQualifiedNameKind;
2674
+ right: K.IdentifierKind;
2675
+ }
2676
+ ```
2677
+
2678
+ ### TSRestType
2679
+ Represents a rest type in TypeScript.
2680
+
2681
+ ```typescript
2682
+ export interface TSRestType extends Omit<TSType, "type"> {
2683
+ type: "TSRestType";
2684
+ typeAnnotation: K.TSTypeKind;
2685
+ }
2686
+ ```
2687
+
2688
+ ### TSStringKeyword
2689
+ Represents the TypeScript `string` keyword.
2690
+
2691
+ ```typescript
2692
+ export interface TSStringKeyword extends Omit<TSType, "type"> {
2693
+ type: "TSStringKeyword";
2694
+ }
2695
+ ```
2696
+
2697
+ ### TSSymbolKeyword
2698
+ Represents the TypeScript `symbol` keyword.
2699
+
2700
+ ```typescript
2701
+ export interface TSSymbolKeyword extends Omit<TSType, "type"> {
2702
+ type: "TSSymbolKeyword";
2703
+ }
2704
+ ```
2705
+
2706
+ ### TSThisType
2707
+ Represents the TypeScript `this` type.
2708
+
2709
+ ```typescript
2710
+ export interface TSThisType extends Omit<TSType, "type"> {
2711
+ type: "TSThisType";
2712
+ }
2713
+ ```
2714
+
2715
+ ### TSTupleType
2716
+ Represents a tuple type in TypeScript.
2717
+
2718
+ ```typescript
2719
+ export interface TSTupleType extends Omit<TSType, "type"> {
2720
+ type: "TSTupleType";
2721
+ elementTypes: K.TSTypeKind[];
2722
+ }
2723
+ ```
2724
+
2725
+ ### TSType
2726
+ Represents a TypeScript type.
2727
+
2728
+ ```typescript
2729
+ export interface TSType extends Node {
2730
+ type: "TSType";
2731
+ }
2732
+ ```
2733
+
2734
+ ### TSTypeAliasDeclaration
2735
+ Represents a TypeScript type alias declaration.
2736
+
2737
+ ```typescript
2738
+ export interface TSTypeAliasDeclaration extends Omit<Declaration, "type"> {
2739
+ type: "TSTypeAliasDeclaration";
2740
+ id: K.IdentifierKind;
2741
+ typeAnnotation: K.TSTypeKind;
2742
+ typeParameters?: K.TSTypeParameterDeclarationKind | null;
2743
+ declare?: boolean;
2744
+ }
2745
+ ```
2746
+
2747
+ ### TSTypeAnnotation
2748
+ Represents a TypeScript type annotation.
2749
+
2750
+ ```typescript
2751
+ export interface TSTypeAnnotation extends Omit<Declaration, "type"> {
2752
+ type: "TSTypeAnnotation";
2753
+ typeAnnotation: K.TSTypeKind;
2754
+ }
2755
+ ```
2756
+
2757
+ ### TSTypeAssertion
2758
+ Represents a TypeScript type assertion.
2759
+
2760
+ ```typescript
2761
+ export interface TSTypeAssertion extends Omit<Expression, "type"> {
2762
+ type: "TSTypeAssertion";
2763
+ expression: K.ExpressionKind;
2764
+ typeAnnotation: K.TSTypeKind;
2765
+ }
2766
+ ```
2767
+
2768
+ ### TSTypeLiteral
2769
+ Represents a TypeScript type literal.
2770
+
2771
+ ```typescript
2772
+ export interface TSTypeLiteral extends Omit<TSType, "type"> {
2773
+ type: "TSTypeLiteral";
2774
+ members: K.TSTypeElementKind[];
2775
+ }
2776
+ ```
2777
+
2778
+ ### TSTypeOperator
2779
+ Represents a TypeScript type operator.
2780
+
2781
+ ```typescript
2782
+ export interface TSTypeOperator extends Omit<TSType, "type"> {
2783
+ type: "TSTypeOperator";
2784
+ operator: "keyof" | "unique" | "readonly";
2785
+ typeAnnotation: K.TSTypeKind;
2786
+ }
2787
+ ```
2788
+
2789
+ ### TSTypeParameter
2790
+ Represents a type parameter in TypeScript.
2791
+
2792
+ ```typescript
2793
+ export interface TSTypeParameter extends Omit<TSType, "type"> {
2794
+ type: "TSTypeParameter";
2795
+ name: string;
2796
+ constraint?: K.TSTypeKind | null;
2797
+ default?: K.TSTypeKind | null;
2798
+ }
2799
+ ```
2800
+
2801
+ ### TSTypeParameterDeclaration
2802
+ Represents a type parameter declaration in TypeScript.
2803
+
2804
+ ```typescript
2805
+ export interface TSTypeParameterDeclaration extends Omit<TSType, "type"> {
2806
+ type: "TSTypeParameterDeclaration";
2807
+ params: K.TSTypeParameterKind[];
2808
+ }
2809
+ ```
2810
+
2811
+ ### TSTypeParameterInstantiation
2812
+ Represents a type parameter instantiation in TypeScript.
2813
+
2814
+ ```typescript
2815
+ export interface TSTypeParameterInstantiation extends Omit<TSType, "type"> {
2816
+ type: "TSTypeParameterInstantiation";
2817
+ params: K.TSTypeKind[];
2818
+ }
2819
+ ```
2820
+
2821
+ ### TSTypePredicate
2822
+ Represents a type predicate in TypeScript.
2823
+
2824
+ ```typescript
2825
+ export interface TSTypePredicate extends Omit<TSType, "type"> {
2826
+ type: "TSTypePredicate";
2827
+ asserts: boolean;
2828
+ parameterName: K.IdentifierKind | K.TSThisTypeKind;
2829
+ typeAnnotation?: K.TSTypeAnnotationKind | null;
2830
+ }
2831
+ ```
2832
+
2833
+ ### TSTypeQuery
2834
+ Represents a type query in TypeScript.
2835
+
2836
+ ```typescript
2837
+ export interface TSTypeQuery extends Omit<TSType, "type"> {
2838
+ type: "TSTypeQuery";
2839
+ exprName: K.IdentifierKind | K.TSQualifiedNameKind;
2840
+ }
2841
+ ```
2842
+
2843
+ ### TSTypeReference
2844
+ Represents a type reference in TypeScript.
2845
+
2846
+ ```typescript
2847
+ export interface TSTypeReference extends Omit<TSType, "type"> {
2848
+ type: "TSTypeReference";
2849
+ typeName: K.IdentifierKind | K.TSQualifiedNameKind;
2850
+ typeParameters?: K.TSTypeParameterInstantiationKind | null;
2851
+ }
2852
+ ```
2853
+
2854
+ ### TSUndefinedKeyword
2855
+ Represents the TypeScript `undefined` keyword.
2856
+
2857
+ ```typescript
2858
+ export interface TSUndefinedKeyword extends Omit<TSType, "type"> {
2859
+ type: "TSUndefinedKeyword";
2860
+ }
2861
+ ```
2862
+
2863
+ ### TSUnionType
2864
+ Represents a union type in TypeScript.
2865
+
2866
+ ```typescript
2867
+ export interface TSUnionType extends Omit<TSType, "type"> {
2868
+ type: "TSUnionType";
2869
+ types: K.TSTypeKind[];
2870
+ }
2871
+ ```
2872
+
2873
+ ### TSUnknownKeyword
2874
+ Represents the TypeScript `unknown` keyword.
2875
+
2876
+ ```typescript
2877
+ export interface TSUnknownKeyword extends Omit<TSType, "type"> {
2878
+ type: "TSUnknownKeyword";
2879
+ }
2880
+ ```
2881
+
2882
+ ### TSVoidKeyword
2883
+ Represents the TypeScript `void` keyword.
2884
+
2885
+ ```typescript
2886
+ export interface TSVoidKeyword extends Omit<TSType, "type"> {
2887
+ type: "TSVoidKeyword";
2888
+ }
2889
+ ```
2890
+
2891
+ ### TupleTypeAnnotation
2892
+ A type annotation for a tuple type.
2893
+
2894
+ ```typescript
2895
+ export interface TupleTypeAnnotation extends Omit<FlowType, "type"> {
2896
+ type: "TupleTypeAnnotation";
2897
+ types: K.FlowTypeKind[];
2898
+ }
2899
+ ```
2900
+
2901
+ ### TypeAlias
2902
+ Represents a type alias in Flow.
2903
+
2904
+ ```typescript
2905
+ export interface TypeAlias extends Omit<Declaration, "type"> {
2906
+ type: "TypeAlias";
2907
+ id: K.IdentifierKind;
2908
+ typeParameters?: K.TypeParameterDeclarationKind | null;
2909
+ right: K.FlowTypeKind;
2910
+ }
2911
+ ```
2912
+
2913
+ ### TypeAnnotation
2914
+ Represents a type annotation.
2915
+
2916
+ ```typescript
2917
+ export interface TypeAnnotation extends Omit<Node, "type"> {
2918
+ type: "TypeAnnotation";
2919
+ typeAnnotation: K.FlowTypeKind;
2920
+ }
2921
+ ```
2922
+
2923
+ ### TypeCastExpression
2924
+ Represents a type cast expression.
2925
+
2926
+ ```typescript
2927
+ export interface TypeCastExpression extends Omit<Expression, "type"> {
2928
+ type: "TypeCastExpression";
2929
+ expression: K.ExpressionKind;
2930
+ typeAnnotation: K.TypeAnnotationKind;
2931
+ }
2932
+ ```
2933
+
2934
+ ### TypeofTypeAnnotation
2935
+ A type annotation for a `typeof` type.
2936
+
2937
+ ```typescript
2938
+ export interface TypeofTypeAnnotation extends Omit<FlowType, "type"> {
2939
+ type: "TypeofTypeAnnotation";
2940
+ argument: K.FlowTypeKind;
2941
+ }
2942
+ ```
2943
+
2944
+ ### TypeParameter
2945
+ Represents a type parameter.
2946
+
2947
+ ```typescript
2948
+ export interface TypeParameter extends Omit<Node, "type"> {
2949
+ type: "TypeParameter";
2950
+ name: string;
2951
+ variance?: K.VarianceKind | "plus" | "minus" | null;
2952
+ bound?: K.TypeAnnotationKind | null;
2953
+ default?: K.FlowTypeKind | null;
2954
+ }
2955
+ ```
2956
+
2957
+ ### TypeParameterDeclaration
2958
+ Represents a type parameter declaration.
2959
+
2960
+ ```typescript
2961
+ export interface TypeParameterDeclaration extends Omit<Node, "type"> {
2962
+ type: "TypeParameterDeclaration";
2963
+ params: K.TypeParameterKind[];
2964
+ }
2965
+ ```
2966
+
2967
+ ### TypeParameterInstantiation
2968
+ Represents a type parameter instantiation.
2969
+
2970
+ ```typescript
2971
+ export interface TypeParameterInstantiation extends Omit<Node, "type"> {
2972
+ type: "TypeParameterInstantiation";
2973
+ params: K.FlowType
2974
+
2975
+ Kind[];
2976
+ }
2977
+ ```
2978
+
2979
+ ### UnaryExpression
2980
+ Represents a unary expression.
2981
+
2982
+ ```typescript
2983
+ export interface UnaryExpression extends Omit<Expression, "type"> {
2984
+ type: "UnaryExpression";
2985
+ operator: "-" | "+" | "!" | "~" | "typeof" | "void" | "delete";
2986
+ argument: K.ExpressionKind;
2987
+ prefix: boolean;
2988
+ }
2989
+ ```
2990
+
2991
+ ### UnionTypeAnnotation
2992
+ A type annotation for a union type.
2993
+
2994
+ ```typescript
2995
+ export interface UnionTypeAnnotation extends Omit<FlowType, "type"> {
2996
+ type: "UnionTypeAnnotation";
2997
+ types: K.FlowTypeKind[];
2998
+ }
2999
+ ```
3000
+
3001
+ ### UpdateExpression
3002
+ Represents an update expression.
3003
+
3004
+ ```typescript
3005
+ export interface UpdateExpression extends Omit<Expression, "type"> {
3006
+ type: "UpdateExpression";
3007
+ operator: "++" | "--";
3008
+ argument: K.ExpressionKind;
3009
+ prefix: boolean;
3010
+ }
3011
+ ```
3012
+
3013
+ ### VariableDeclaration
3014
+ Represents a variable declaration.
3015
+
3016
+ ```typescript
3017
+ export interface VariableDeclaration extends Omit<Declaration, "type"> {
3018
+ type: "VariableDeclaration";
3019
+ declarations: K.VariableDeclaratorKind[];
3020
+ kind: "var" | "let" | "const";
3021
+ }
3022
+ ```
3023
+
3024
+ ### VariableDeclarator
3025
+ Represents a variable declarator.
3026
+
3027
+ ```typescript
3028
+ export interface VariableDeclarator extends Omit<Node, "type"> {
3029
+ type: "VariableDeclarator";
3030
+ id: K.PatternKind;
3031
+ init?: K.ExpressionKind | null;
3032
+ definite?: boolean;
3033
+ }
3034
+ ```
3035
+
3036
+ ### Variance
3037
+ Represents a variance in Flow types.
3038
+
3039
+ ```typescript
3040
+ export interface Variance extends Omit<Node, "type"> {
3041
+ type: "Variance";
3042
+ kind: "plus" | "minus";
3043
+ }
3044
+ ```
3045
+
3046
+ ### VoidTypeAnnotation
3047
+ A type annotation for void types.
3048
+
3049
+ ```typescript
3050
+ export interface VoidTypeAnnotation extends Omit<FlowType, "type"> {
3051
+ type: "VoidTypeAnnotation";
3052
+ }
3053
+ ```
3054
+
3055
+ ### WhileStatement
3056
+ Represents a while statement.
3057
+
3058
+ ```typescript
3059
+ export interface WhileStatement extends Omit<Statement, "type"> {
3060
+ type: "WhileStatement";
3061
+ test: K.ExpressionKind;
3062
+ body: K.StatementKind;
3063
+ }
3064
+ ```
3065
+
3066
+ ### WithStatement
3067
+ Represents a with statement.
3068
+
3069
+ ```typescript
3070
+ export interface WithStatement extends Omit<Statement, "type"> {
3071
+ type: "WithStatement";
3072
+ object: K.ExpressionKind;
3073
+ body: K.StatementKind;
3074
+ }
3075
+ ```
3076
+
3077
+ ### YieldExpression
3078
+ Represents a yield expression.
3079
+
3080
+ ```typescript
3081
+ export interface YieldExpression extends Omit<Expression, "type"> {
3082
+ type: "YieldExpression";
3083
+ argument?: K.ExpressionKind | null;
3084
+ delegate: boolean;
3085
+ }
3086
+ ```