hermes-transform 0.5.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/LICENSE +1 -1
  2. package/dist/detachedNode.js +25 -49
  3. package/dist/detachedNode.js.flow +3 -3
  4. package/dist/generated/TransformCloneSignatures.js.flow +1728 -9
  5. package/dist/generated/TransformReplaceSignatures.js.flow +921 -780
  6. package/dist/generated/node-types.js +1099 -1156
  7. package/dist/generated/node-types.js.flow +77 -125
  8. package/dist/generated/special-case-node-types.js +106 -85
  9. package/dist/generated/special-case-node-types.js.flow +28 -2
  10. package/dist/getVisitorKeys.js +4 -6
  11. package/dist/getVisitorKeys.js.flow +1 -1
  12. package/dist/index.js +13 -18
  13. package/dist/index.js.flow +8 -2
  14. package/dist/transform/Errors.js +8 -116
  15. package/dist/transform/Errors.js.flow +1 -1
  16. package/dist/transform/MutationContext.js +54 -67
  17. package/dist/transform/MutationContext.js.flow +4 -3
  18. package/dist/transform/TransformContext.js +100 -58
  19. package/dist/transform/TransformContext.js.flow +277 -141
  20. package/dist/transform/comments/comments.js +127 -40
  21. package/dist/transform/comments/comments.js.flow +106 -29
  22. package/dist/transform/comments/prettier/common/util.js +46 -47
  23. package/dist/transform/comments/prettier/common/util.js.flow +1 -1
  24. package/dist/transform/comments/prettier/language-js/comments.js +199 -216
  25. package/dist/transform/comments/prettier/language-js/comments.js.flow +1 -1
  26. package/dist/transform/comments/prettier/language-js/loc.js +10 -9
  27. package/dist/transform/comments/prettier/language-js/loc.js.flow +1 -1
  28. package/dist/transform/comments/prettier/language-js/printer-estree.js +7 -6
  29. package/dist/transform/comments/prettier/language-js/printer-estree.js.flow +1 -1
  30. package/dist/transform/comments/prettier/language-js/utils.js +18 -30
  31. package/dist/transform/comments/prettier/language-js/utils.js.flow +1 -1
  32. package/dist/transform/comments/prettier/main/comments.js +225 -298
  33. package/dist/transform/comments/prettier/main/comments.js.flow +1 -1
  34. package/dist/transform/comments/prettier/utils/get-last.js +2 -4
  35. package/dist/transform/comments/prettier/utils/get-last.js.flow +1 -1
  36. package/dist/transform/getTransformedAST.js +81 -104
  37. package/dist/transform/getTransformedAST.js.flow +18 -13
  38. package/dist/transform/mutations/AddComments.js +43 -0
  39. package/dist/transform/mutations/AddComments.js.flow +50 -0
  40. package/dist/transform/mutations/CloneCommentsTo.js +16 -24
  41. package/dist/transform/mutations/CloneCommentsTo.js.flow +2 -3
  42. package/dist/transform/mutations/InsertStatement.js +28 -30
  43. package/dist/transform/mutations/InsertStatement.js.flow +7 -2
  44. package/dist/transform/mutations/RemoveComment.js +25 -43
  45. package/dist/transform/mutations/RemoveComment.js.flow +1 -1
  46. package/dist/transform/mutations/RemoveNode.js +192 -0
  47. package/dist/transform/mutations/RemoveNode.js.flow +290 -0
  48. package/dist/transform/mutations/RemoveStatement.js +7 -9
  49. package/dist/transform/mutations/RemoveStatement.js.flow +1 -1
  50. package/dist/transform/mutations/ReplaceNode.js +36 -44
  51. package/dist/transform/mutations/ReplaceNode.js.flow +1 -1
  52. package/dist/transform/mutations/ReplaceStatementWithMany.js +11 -13
  53. package/dist/transform/mutations/ReplaceStatementWithMany.js.flow +1 -1
  54. package/dist/transform/mutations/utils/arrayUtils.js +16 -14
  55. package/dist/transform/mutations/utils/arrayUtils.js.flow +16 -1
  56. package/dist/transform/mutations/utils/getStatementParent.js +23 -28
  57. package/dist/transform/mutations/utils/getStatementParent.js.flow +2 -2
  58. package/dist/transform/mutations/utils/isValidModuleDeclarationParent.js +7 -24
  59. package/dist/transform/mutations/utils/isValidModuleDeclarationParent.js.flow +1 -1
  60. package/dist/transform/transform.js +58 -30
  61. package/dist/transform/transform.js.flow +51 -13
  62. package/dist/traverse/NodeEventGenerator.js +91 -165
  63. package/dist/traverse/NodeEventGenerator.js.flow +1 -1
  64. package/dist/traverse/SafeEmitter.js +20 -38
  65. package/dist/traverse/SafeEmitter.js.flow +1 -1
  66. package/dist/traverse/SimpleTraverser.js +67 -98
  67. package/dist/traverse/SimpleTraverser.js.flow +4 -1
  68. package/dist/traverse/esquery.js +6 -6
  69. package/dist/traverse/esquery.js.flow +1 -1
  70. package/dist/traverse/traverse.js +64 -52
  71. package/dist/traverse/traverse.js.flow +63 -10
  72. package/package.json +5 -3
  73. package/dist/transform/mutations/AddLeadingComments.js +0 -47
  74. package/dist/transform/mutations/AddLeadingComments.js.flow +0 -49
  75. package/dist/transform/mutations/AddTrailingComments.js +0 -47
  76. package/dist/transform/mutations/AddTrailingComments.js.flow +0 -49
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -8,12 +8,1731 @@
8
8
  * @format
9
9
  */
10
10
 
11
- /*
12
- * !!! THIS FILE WILL BE OVERWRITTEN BY CODEGEN !!!
13
- *
14
- * Statically it should only contain the minimal set of
15
- * definitions required to typecheck the code and execute
16
- * the transformation tests.
17
- */
11
+ // lint directives to let us do some basic validation of generated files
12
+ /* eslint no-undef: 'error', no-unused-vars: ['error', {vars: "local"}], no-redeclare: 'error' */
13
+ /* global $NonMaybeType, $Partial, $ReadOnly, $ReadOnlyArray */
14
+
15
+ 'use strict';
16
+
17
+ import type {
18
+ AnyTypeAnnotation,
19
+ ArrayExpression,
20
+ ArrayPattern,
21
+ ArrayTypeAnnotation,
22
+ ArrowFunctionExpression,
23
+ AssignmentExpression,
24
+ AssignmentPattern,
25
+ AwaitExpression,
26
+ BigIntLiteral,
27
+ BigIntLiteralTypeAnnotation,
28
+ BinaryExpression,
29
+ BlockStatement,
30
+ BooleanLiteral,
31
+ BooleanLiteralTypeAnnotation,
32
+ BooleanTypeAnnotation,
33
+ BreakStatement,
34
+ CallExpression,
35
+ CatchClause,
36
+ ChainExpression,
37
+ ClassBody,
38
+ ClassDeclaration,
39
+ ClassExpression,
40
+ ClassImplements,
41
+ ConditionalExpression,
42
+ ContinueStatement,
43
+ DebuggerStatement,
44
+ DeclareClass,
45
+ DeclaredPredicate,
46
+ DeclareExportAllDeclaration,
47
+ DeclareExportDeclaration,
48
+ DeclareFunction,
49
+ DeclareInterface,
50
+ DeclareModule,
51
+ DeclareModuleExports,
52
+ DeclareOpaqueType,
53
+ DeclareTypeAlias,
54
+ DeclareVariable,
55
+ DoWhileStatement,
56
+ EmptyStatement,
57
+ EmptyTypeAnnotation,
58
+ EnumBooleanBody,
59
+ EnumBooleanMember,
60
+ EnumDeclaration,
61
+ EnumDefaultedMember,
62
+ EnumNumberBody,
63
+ EnumNumberMember,
64
+ EnumStringBody,
65
+ EnumStringMember,
66
+ EnumSymbolBody,
67
+ ExistsTypeAnnotation,
68
+ ExportAllDeclaration,
69
+ ExportDefaultDeclaration,
70
+ ExportNamedDeclaration,
71
+ ExportSpecifier,
72
+ ExpressionStatement,
73
+ ForInStatement,
74
+ ForOfStatement,
75
+ ForStatement,
76
+ FunctionDeclaration,
77
+ FunctionExpression,
78
+ FunctionTypeAnnotation,
79
+ FunctionTypeParam,
80
+ GenericTypeAnnotation,
81
+ Identifier,
82
+ IfStatement,
83
+ ImportAttribute,
84
+ ImportDeclaration,
85
+ ImportDefaultSpecifier,
86
+ ImportExpression,
87
+ ImportNamespaceSpecifier,
88
+ ImportSpecifier,
89
+ IndexedAccessType,
90
+ InferredPredicate,
91
+ InterfaceDeclaration,
92
+ InterfaceExtends,
93
+ InterfaceTypeAnnotation,
94
+ IntersectionTypeAnnotation,
95
+ JSXAttribute,
96
+ JSXClosingElement,
97
+ JSXClosingFragment,
98
+ JSXElement,
99
+ JSXEmptyExpression,
100
+ JSXExpressionContainer,
101
+ JSXFragment,
102
+ JSXIdentifier,
103
+ JSXMemberExpression,
104
+ JSXNamespacedName,
105
+ JSXOpeningElement,
106
+ JSXOpeningFragment,
107
+ JSXSpreadAttribute,
108
+ JSXSpreadChild,
109
+ JSXText,
110
+ LabeledStatement,
111
+ LogicalExpression,
112
+ MemberExpression,
113
+ MetaProperty,
114
+ MethodDefinition,
115
+ MixedTypeAnnotation,
116
+ NewExpression,
117
+ NullableTypeAnnotation,
118
+ NullLiteral,
119
+ NullLiteralTypeAnnotation,
120
+ NumberLiteralTypeAnnotation,
121
+ NumberTypeAnnotation,
122
+ NumericLiteral,
123
+ ObjectExpression,
124
+ ObjectPattern,
125
+ ObjectTypeAnnotation,
126
+ ObjectTypeCallProperty,
127
+ ObjectTypeIndexer,
128
+ ObjectTypeInternalSlot,
129
+ ObjectTypeProperty,
130
+ ObjectTypeSpreadProperty,
131
+ OpaqueType,
132
+ OptionalIndexedAccessType,
133
+ PrivateIdentifier,
134
+ Property,
135
+ PropertyDefinition,
136
+ QualifiedTypeIdentifier,
137
+ RegExpLiteral,
138
+ RestElement,
139
+ ReturnStatement,
140
+ SequenceExpression,
141
+ SpreadElement,
142
+ StringLiteral,
143
+ StringLiteralTypeAnnotation,
144
+ StringTypeAnnotation,
145
+ Super,
146
+ SwitchCase,
147
+ SwitchStatement,
148
+ SymbolTypeAnnotation,
149
+ TaggedTemplateExpression,
150
+ TemplateElement,
151
+ TemplateLiteral,
152
+ ThisExpression,
153
+ ThisTypeAnnotation,
154
+ ThrowStatement,
155
+ TryStatement,
156
+ TupleTypeAnnotation,
157
+ TypeAlias,
158
+ TypeAnnotation,
159
+ TypeCastExpression,
160
+ TypeofTypeAnnotation,
161
+ TypeParameter,
162
+ TypeParameterDeclaration,
163
+ TypeParameterInstantiation,
164
+ UnaryExpression,
165
+ UnionTypeAnnotation,
166
+ UpdateExpression,
167
+ VariableDeclaration,
168
+ VariableDeclarator,
169
+ Variance,
170
+ VoidTypeAnnotation,
171
+ WhileStatement,
172
+ WithStatement,
173
+ YieldExpression,
174
+ } from 'hermes-estree';
175
+ import type {
176
+ AnyTypeAnnotationProps,
177
+ ArrayExpressionProps,
178
+ ArrayPatternProps,
179
+ ArrayTypeAnnotationProps,
180
+ ArrowFunctionExpressionProps,
181
+ AssignmentExpressionProps,
182
+ AssignmentPatternProps,
183
+ AwaitExpressionProps,
184
+ BigIntLiteralProps,
185
+ BigIntLiteralTypeAnnotationProps,
186
+ BinaryExpressionProps,
187
+ BlockStatementProps,
188
+ BooleanLiteralProps,
189
+ BooleanLiteralTypeAnnotationProps,
190
+ BooleanTypeAnnotationProps,
191
+ BreakStatementProps,
192
+ CallExpressionProps,
193
+ CatchClauseProps,
194
+ ChainExpressionProps,
195
+ ClassBodyProps,
196
+ ClassDeclarationProps,
197
+ ClassExpressionProps,
198
+ ClassImplementsProps,
199
+ ConditionalExpressionProps,
200
+ ContinueStatementProps,
201
+ DebuggerStatementProps,
202
+ DeclareClassProps,
203
+ DeclaredPredicateProps,
204
+ DeclareExportAllDeclarationProps,
205
+ DeclareExportDeclarationProps,
206
+ DeclareFunctionProps,
207
+ DeclareInterfaceProps,
208
+ DeclareModuleProps,
209
+ DeclareModuleExportsProps,
210
+ DeclareOpaqueTypeProps,
211
+ DeclareTypeAliasProps,
212
+ DeclareVariableProps,
213
+ DoWhileStatementProps,
214
+ EmptyStatementProps,
215
+ EmptyTypeAnnotationProps,
216
+ EnumBooleanBodyProps,
217
+ EnumBooleanMemberProps,
218
+ EnumDeclarationProps,
219
+ EnumDefaultedMemberProps,
220
+ EnumNumberBodyProps,
221
+ EnumNumberMemberProps,
222
+ EnumStringBodyProps,
223
+ EnumStringMemberProps,
224
+ EnumSymbolBodyProps,
225
+ ExistsTypeAnnotationProps,
226
+ ExportAllDeclarationProps,
227
+ ExportDefaultDeclarationProps,
228
+ ExportNamedDeclarationProps,
229
+ ExportSpecifierProps,
230
+ ExpressionStatementProps,
231
+ ForInStatementProps,
232
+ ForOfStatementProps,
233
+ ForStatementProps,
234
+ FunctionDeclarationProps,
235
+ FunctionExpressionProps,
236
+ FunctionTypeAnnotationProps,
237
+ FunctionTypeParamProps,
238
+ GenericTypeAnnotationProps,
239
+ IdentifierProps,
240
+ IfStatementProps,
241
+ ImportAttributeProps,
242
+ ImportDeclarationProps,
243
+ ImportDefaultSpecifierProps,
244
+ ImportExpressionProps,
245
+ ImportNamespaceSpecifierProps,
246
+ ImportSpecifierProps,
247
+ IndexedAccessTypeProps,
248
+ InferredPredicateProps,
249
+ InterfaceDeclarationProps,
250
+ InterfaceExtendsProps,
251
+ InterfaceTypeAnnotationProps,
252
+ IntersectionTypeAnnotationProps,
253
+ JSXAttributeProps,
254
+ JSXClosingElementProps,
255
+ JSXClosingFragmentProps,
256
+ JSXElementProps,
257
+ JSXEmptyExpressionProps,
258
+ JSXExpressionContainerProps,
259
+ JSXFragmentProps,
260
+ JSXIdentifierProps,
261
+ JSXMemberExpressionProps,
262
+ JSXNamespacedNameProps,
263
+ JSXOpeningElementProps,
264
+ JSXOpeningFragmentProps,
265
+ JSXSpreadAttributeProps,
266
+ JSXSpreadChildProps,
267
+ JSXTextProps,
268
+ LabeledStatementProps,
269
+ LogicalExpressionProps,
270
+ MemberExpressionProps,
271
+ MetaPropertyProps,
272
+ MethodDefinitionProps,
273
+ MixedTypeAnnotationProps,
274
+ NewExpressionProps,
275
+ NullableTypeAnnotationProps,
276
+ NullLiteralProps,
277
+ NullLiteralTypeAnnotationProps,
278
+ NumberLiteralTypeAnnotationProps,
279
+ NumberTypeAnnotationProps,
280
+ NumericLiteralProps,
281
+ ObjectExpressionProps,
282
+ ObjectPatternProps,
283
+ ObjectTypeAnnotationProps,
284
+ ObjectTypeCallPropertyProps,
285
+ ObjectTypeIndexerProps,
286
+ ObjectTypeInternalSlotProps,
287
+ ObjectTypePropertyProps,
288
+ ObjectTypeSpreadPropertyProps,
289
+ OpaqueTypeProps,
290
+ OptionalIndexedAccessTypeProps,
291
+ PrivateIdentifierProps,
292
+ PropertyProps,
293
+ PropertyDefinitionProps,
294
+ QualifiedTypeIdentifierProps,
295
+ RegExpLiteralProps,
296
+ RestElementProps,
297
+ ReturnStatementProps,
298
+ SequenceExpressionProps,
299
+ SpreadElementProps,
300
+ StringLiteralProps,
301
+ StringLiteralTypeAnnotationProps,
302
+ StringTypeAnnotationProps,
303
+ SuperProps,
304
+ SwitchCaseProps,
305
+ SwitchStatementProps,
306
+ SymbolTypeAnnotationProps,
307
+ TaggedTemplateExpressionProps,
308
+ TemplateElementProps,
309
+ TemplateLiteralProps,
310
+ ThisExpressionProps,
311
+ ThisTypeAnnotationProps,
312
+ ThrowStatementProps,
313
+ TryStatementProps,
314
+ TupleTypeAnnotationProps,
315
+ TypeAliasProps,
316
+ TypeAnnotationProps,
317
+ TypeCastExpressionProps,
318
+ TypeofTypeAnnotationProps,
319
+ TypeParameterProps,
320
+ TypeParameterDeclarationProps,
321
+ TypeParameterInstantiationProps,
322
+ UnaryExpressionProps,
323
+ UnionTypeAnnotationProps,
324
+ UpdateExpressionProps,
325
+ VariableDeclarationProps,
326
+ VariableDeclaratorProps,
327
+ VarianceProps,
328
+ VoidTypeAnnotationProps,
329
+ WhileStatementProps,
330
+ WithStatementProps,
331
+ YieldExpressionProps,
332
+ } from './node-types';
333
+ import type {DetachedNode} from '../detachedNode';
18
334
 
19
- export type TransformCloneSignatures = {};
335
+ type AnyTypeAnnotationCloneSignature = ((
336
+ node: AnyTypeAnnotation,
337
+ newProps: $Partial<AnyTypeAnnotationProps>,
338
+ ) => DetachedNode<AnyTypeAnnotation>) &
339
+ ((
340
+ node: ?AnyTypeAnnotation,
341
+ newProps: $Partial<AnyTypeAnnotationProps>,
342
+ ) => DetachedNode<AnyTypeAnnotation> | null);
343
+ type ArrayExpressionCloneSignature = ((
344
+ node: ArrayExpression,
345
+ newProps: $Partial<ArrayExpressionProps>,
346
+ ) => DetachedNode<ArrayExpression>) &
347
+ ((
348
+ node: ?ArrayExpression,
349
+ newProps: $Partial<ArrayExpressionProps>,
350
+ ) => DetachedNode<ArrayExpression> | null);
351
+ type ArrayPatternCloneSignature = ((
352
+ node: ArrayPattern,
353
+ newProps: $Partial<ArrayPatternProps>,
354
+ ) => DetachedNode<ArrayPattern>) &
355
+ ((
356
+ node: ?ArrayPattern,
357
+ newProps: $Partial<ArrayPatternProps>,
358
+ ) => DetachedNode<ArrayPattern> | null);
359
+ type ArrayTypeAnnotationCloneSignature = ((
360
+ node: ArrayTypeAnnotation,
361
+ newProps: $Partial<ArrayTypeAnnotationProps>,
362
+ ) => DetachedNode<ArrayTypeAnnotation>) &
363
+ ((
364
+ node: ?ArrayTypeAnnotation,
365
+ newProps: $Partial<ArrayTypeAnnotationProps>,
366
+ ) => DetachedNode<ArrayTypeAnnotation> | null);
367
+ type ArrowFunctionExpressionCloneSignature = ((
368
+ node: ArrowFunctionExpression,
369
+ newProps: $Partial<ArrowFunctionExpressionProps>,
370
+ ) => DetachedNode<ArrowFunctionExpression>) &
371
+ ((
372
+ node: ?ArrowFunctionExpression,
373
+ newProps: $Partial<ArrowFunctionExpressionProps>,
374
+ ) => DetachedNode<ArrowFunctionExpression> | null);
375
+ type AssignmentExpressionCloneSignature = ((
376
+ node: AssignmentExpression,
377
+ newProps: $Partial<AssignmentExpressionProps>,
378
+ ) => DetachedNode<AssignmentExpression>) &
379
+ ((
380
+ node: ?AssignmentExpression,
381
+ newProps: $Partial<AssignmentExpressionProps>,
382
+ ) => DetachedNode<AssignmentExpression> | null);
383
+ type AssignmentPatternCloneSignature = ((
384
+ node: AssignmentPattern,
385
+ newProps: $Partial<AssignmentPatternProps>,
386
+ ) => DetachedNode<AssignmentPattern>) &
387
+ ((
388
+ node: ?AssignmentPattern,
389
+ newProps: $Partial<AssignmentPatternProps>,
390
+ ) => DetachedNode<AssignmentPattern> | null);
391
+ type AwaitExpressionCloneSignature = ((
392
+ node: AwaitExpression,
393
+ newProps: $Partial<AwaitExpressionProps>,
394
+ ) => DetachedNode<AwaitExpression>) &
395
+ ((
396
+ node: ?AwaitExpression,
397
+ newProps: $Partial<AwaitExpressionProps>,
398
+ ) => DetachedNode<AwaitExpression> | null);
399
+ type BigIntLiteralCloneSignature = ((
400
+ node: BigIntLiteral,
401
+ newProps: $Partial<BigIntLiteralProps>,
402
+ ) => DetachedNode<BigIntLiteral>) &
403
+ ((
404
+ node: ?BigIntLiteral,
405
+ newProps: $Partial<BigIntLiteralProps>,
406
+ ) => DetachedNode<BigIntLiteral> | null);
407
+ type BigIntLiteralTypeAnnotationCloneSignature = ((
408
+ node: BigIntLiteralTypeAnnotation,
409
+ newProps: $Partial<BigIntLiteralTypeAnnotationProps>,
410
+ ) => DetachedNode<BigIntLiteralTypeAnnotation>) &
411
+ ((
412
+ node: ?BigIntLiteralTypeAnnotation,
413
+ newProps: $Partial<BigIntLiteralTypeAnnotationProps>,
414
+ ) => DetachedNode<BigIntLiteralTypeAnnotation> | null);
415
+ type BinaryExpressionCloneSignature = ((
416
+ node: BinaryExpression,
417
+ newProps: $Partial<BinaryExpressionProps>,
418
+ ) => DetachedNode<BinaryExpression>) &
419
+ ((
420
+ node: ?BinaryExpression,
421
+ newProps: $Partial<BinaryExpressionProps>,
422
+ ) => DetachedNode<BinaryExpression> | null);
423
+ type BlockStatementCloneSignature = ((
424
+ node: BlockStatement,
425
+ newProps: $Partial<BlockStatementProps>,
426
+ ) => DetachedNode<BlockStatement>) &
427
+ ((
428
+ node: ?BlockStatement,
429
+ newProps: $Partial<BlockStatementProps>,
430
+ ) => DetachedNode<BlockStatement> | null);
431
+ type BooleanLiteralCloneSignature = ((
432
+ node: BooleanLiteral,
433
+ newProps: $Partial<BooleanLiteralProps>,
434
+ ) => DetachedNode<BooleanLiteral>) &
435
+ ((
436
+ node: ?BooleanLiteral,
437
+ newProps: $Partial<BooleanLiteralProps>,
438
+ ) => DetachedNode<BooleanLiteral> | null);
439
+ type BooleanLiteralTypeAnnotationCloneSignature = ((
440
+ node: BooleanLiteralTypeAnnotation,
441
+ newProps: $Partial<BooleanLiteralTypeAnnotationProps>,
442
+ ) => DetachedNode<BooleanLiteralTypeAnnotation>) &
443
+ ((
444
+ node: ?BooleanLiteralTypeAnnotation,
445
+ newProps: $Partial<BooleanLiteralTypeAnnotationProps>,
446
+ ) => DetachedNode<BooleanLiteralTypeAnnotation> | null);
447
+ type BooleanTypeAnnotationCloneSignature = ((
448
+ node: BooleanTypeAnnotation,
449
+ newProps: $Partial<BooleanTypeAnnotationProps>,
450
+ ) => DetachedNode<BooleanTypeAnnotation>) &
451
+ ((
452
+ node: ?BooleanTypeAnnotation,
453
+ newProps: $Partial<BooleanTypeAnnotationProps>,
454
+ ) => DetachedNode<BooleanTypeAnnotation> | null);
455
+ type BreakStatementCloneSignature = ((
456
+ node: BreakStatement,
457
+ newProps: $Partial<BreakStatementProps>,
458
+ ) => DetachedNode<BreakStatement>) &
459
+ ((
460
+ node: ?BreakStatement,
461
+ newProps: $Partial<BreakStatementProps>,
462
+ ) => DetachedNode<BreakStatement> | null);
463
+ type CallExpressionCloneSignature = ((
464
+ node: CallExpression,
465
+ newProps: $Partial<CallExpressionProps>,
466
+ ) => DetachedNode<CallExpression>) &
467
+ ((
468
+ node: ?CallExpression,
469
+ newProps: $Partial<CallExpressionProps>,
470
+ ) => DetachedNode<CallExpression> | null);
471
+ type CatchClauseCloneSignature = ((
472
+ node: CatchClause,
473
+ newProps: $Partial<CatchClauseProps>,
474
+ ) => DetachedNode<CatchClause>) &
475
+ ((
476
+ node: ?CatchClause,
477
+ newProps: $Partial<CatchClauseProps>,
478
+ ) => DetachedNode<CatchClause> | null);
479
+ type ChainExpressionCloneSignature = ((
480
+ node: ChainExpression,
481
+ newProps: $Partial<ChainExpressionProps>,
482
+ ) => DetachedNode<ChainExpression>) &
483
+ ((
484
+ node: ?ChainExpression,
485
+ newProps: $Partial<ChainExpressionProps>,
486
+ ) => DetachedNode<ChainExpression> | null);
487
+ type ClassBodyCloneSignature = ((
488
+ node: ClassBody,
489
+ newProps: $Partial<ClassBodyProps>,
490
+ ) => DetachedNode<ClassBody>) &
491
+ ((
492
+ node: ?ClassBody,
493
+ newProps: $Partial<ClassBodyProps>,
494
+ ) => DetachedNode<ClassBody> | null);
495
+ type ClassDeclarationCloneSignature = ((
496
+ node: ClassDeclaration,
497
+ newProps: $Partial<ClassDeclarationProps>,
498
+ ) => DetachedNode<ClassDeclaration>) &
499
+ ((
500
+ node: ?ClassDeclaration,
501
+ newProps: $Partial<ClassDeclarationProps>,
502
+ ) => DetachedNode<ClassDeclaration> | null);
503
+ type ClassExpressionCloneSignature = ((
504
+ node: ClassExpression,
505
+ newProps: $Partial<ClassExpressionProps>,
506
+ ) => DetachedNode<ClassExpression>) &
507
+ ((
508
+ node: ?ClassExpression,
509
+ newProps: $Partial<ClassExpressionProps>,
510
+ ) => DetachedNode<ClassExpression> | null);
511
+ type ClassImplementsCloneSignature = ((
512
+ node: ClassImplements,
513
+ newProps: $Partial<ClassImplementsProps>,
514
+ ) => DetachedNode<ClassImplements>) &
515
+ ((
516
+ node: ?ClassImplements,
517
+ newProps: $Partial<ClassImplementsProps>,
518
+ ) => DetachedNode<ClassImplements> | null);
519
+ type ConditionalExpressionCloneSignature = ((
520
+ node: ConditionalExpression,
521
+ newProps: $Partial<ConditionalExpressionProps>,
522
+ ) => DetachedNode<ConditionalExpression>) &
523
+ ((
524
+ node: ?ConditionalExpression,
525
+ newProps: $Partial<ConditionalExpressionProps>,
526
+ ) => DetachedNode<ConditionalExpression> | null);
527
+ type ContinueStatementCloneSignature = ((
528
+ node: ContinueStatement,
529
+ newProps: $Partial<ContinueStatementProps>,
530
+ ) => DetachedNode<ContinueStatement>) &
531
+ ((
532
+ node: ?ContinueStatement,
533
+ newProps: $Partial<ContinueStatementProps>,
534
+ ) => DetachedNode<ContinueStatement> | null);
535
+ type DebuggerStatementCloneSignature = ((
536
+ node: DebuggerStatement,
537
+ newProps: $Partial<DebuggerStatementProps>,
538
+ ) => DetachedNode<DebuggerStatement>) &
539
+ ((
540
+ node: ?DebuggerStatement,
541
+ newProps: $Partial<DebuggerStatementProps>,
542
+ ) => DetachedNode<DebuggerStatement> | null);
543
+ type DeclareClassCloneSignature = ((
544
+ node: DeclareClass,
545
+ newProps: $Partial<DeclareClassProps>,
546
+ ) => DetachedNode<DeclareClass>) &
547
+ ((
548
+ node: ?DeclareClass,
549
+ newProps: $Partial<DeclareClassProps>,
550
+ ) => DetachedNode<DeclareClass> | null);
551
+ type DeclaredPredicateCloneSignature = ((
552
+ node: DeclaredPredicate,
553
+ newProps: $Partial<DeclaredPredicateProps>,
554
+ ) => DetachedNode<DeclaredPredicate>) &
555
+ ((
556
+ node: ?DeclaredPredicate,
557
+ newProps: $Partial<DeclaredPredicateProps>,
558
+ ) => DetachedNode<DeclaredPredicate> | null);
559
+ type DeclareExportAllDeclarationCloneSignature = ((
560
+ node: DeclareExportAllDeclaration,
561
+ newProps: $Partial<DeclareExportAllDeclarationProps>,
562
+ ) => DetachedNode<DeclareExportAllDeclaration>) &
563
+ ((
564
+ node: ?DeclareExportAllDeclaration,
565
+ newProps: $Partial<DeclareExportAllDeclarationProps>,
566
+ ) => DetachedNode<DeclareExportAllDeclaration> | null);
567
+ type DeclareExportDeclarationCloneSignature = ((
568
+ node: DeclareExportDeclaration,
569
+ newProps: $Partial<DeclareExportDeclarationProps>,
570
+ ) => DetachedNode<DeclareExportDeclaration>) &
571
+ ((
572
+ node: ?DeclareExportDeclaration,
573
+ newProps: $Partial<DeclareExportDeclarationProps>,
574
+ ) => DetachedNode<DeclareExportDeclaration> | null);
575
+ type DeclareFunctionCloneSignature = ((
576
+ node: DeclareFunction,
577
+ newProps: $Partial<DeclareFunctionProps>,
578
+ ) => DetachedNode<DeclareFunction>) &
579
+ ((
580
+ node: ?DeclareFunction,
581
+ newProps: $Partial<DeclareFunctionProps>,
582
+ ) => DetachedNode<DeclareFunction> | null);
583
+ type DeclareInterfaceCloneSignature = ((
584
+ node: DeclareInterface,
585
+ newProps: $Partial<DeclareInterfaceProps>,
586
+ ) => DetachedNode<DeclareInterface>) &
587
+ ((
588
+ node: ?DeclareInterface,
589
+ newProps: $Partial<DeclareInterfaceProps>,
590
+ ) => DetachedNode<DeclareInterface> | null);
591
+ type DeclareModuleCloneSignature = ((
592
+ node: DeclareModule,
593
+ newProps: $Partial<DeclareModuleProps>,
594
+ ) => DetachedNode<DeclareModule>) &
595
+ ((
596
+ node: ?DeclareModule,
597
+ newProps: $Partial<DeclareModuleProps>,
598
+ ) => DetachedNode<DeclareModule> | null);
599
+ type DeclareModuleExportsCloneSignature = ((
600
+ node: DeclareModuleExports,
601
+ newProps: $Partial<DeclareModuleExportsProps>,
602
+ ) => DetachedNode<DeclareModuleExports>) &
603
+ ((
604
+ node: ?DeclareModuleExports,
605
+ newProps: $Partial<DeclareModuleExportsProps>,
606
+ ) => DetachedNode<DeclareModuleExports> | null);
607
+ type DeclareOpaqueTypeCloneSignature = ((
608
+ node: DeclareOpaqueType,
609
+ newProps: $Partial<DeclareOpaqueTypeProps>,
610
+ ) => DetachedNode<DeclareOpaqueType>) &
611
+ ((
612
+ node: ?DeclareOpaqueType,
613
+ newProps: $Partial<DeclareOpaqueTypeProps>,
614
+ ) => DetachedNode<DeclareOpaqueType> | null);
615
+ type DeclareTypeAliasCloneSignature = ((
616
+ node: DeclareTypeAlias,
617
+ newProps: $Partial<DeclareTypeAliasProps>,
618
+ ) => DetachedNode<DeclareTypeAlias>) &
619
+ ((
620
+ node: ?DeclareTypeAlias,
621
+ newProps: $Partial<DeclareTypeAliasProps>,
622
+ ) => DetachedNode<DeclareTypeAlias> | null);
623
+ type DeclareVariableCloneSignature = ((
624
+ node: DeclareVariable,
625
+ newProps: $Partial<DeclareVariableProps>,
626
+ ) => DetachedNode<DeclareVariable>) &
627
+ ((
628
+ node: ?DeclareVariable,
629
+ newProps: $Partial<DeclareVariableProps>,
630
+ ) => DetachedNode<DeclareVariable> | null);
631
+ type DoWhileStatementCloneSignature = ((
632
+ node: DoWhileStatement,
633
+ newProps: $Partial<DoWhileStatementProps>,
634
+ ) => DetachedNode<DoWhileStatement>) &
635
+ ((
636
+ node: ?DoWhileStatement,
637
+ newProps: $Partial<DoWhileStatementProps>,
638
+ ) => DetachedNode<DoWhileStatement> | null);
639
+ type EmptyStatementCloneSignature = ((
640
+ node: EmptyStatement,
641
+ newProps: $Partial<EmptyStatementProps>,
642
+ ) => DetachedNode<EmptyStatement>) &
643
+ ((
644
+ node: ?EmptyStatement,
645
+ newProps: $Partial<EmptyStatementProps>,
646
+ ) => DetachedNode<EmptyStatement> | null);
647
+ type EmptyTypeAnnotationCloneSignature = ((
648
+ node: EmptyTypeAnnotation,
649
+ newProps: $Partial<EmptyTypeAnnotationProps>,
650
+ ) => DetachedNode<EmptyTypeAnnotation>) &
651
+ ((
652
+ node: ?EmptyTypeAnnotation,
653
+ newProps: $Partial<EmptyTypeAnnotationProps>,
654
+ ) => DetachedNode<EmptyTypeAnnotation> | null);
655
+ type EnumBooleanBodyCloneSignature = ((
656
+ node: EnumBooleanBody,
657
+ newProps: $Partial<EnumBooleanBodyProps>,
658
+ ) => DetachedNode<EnumBooleanBody>) &
659
+ ((
660
+ node: ?EnumBooleanBody,
661
+ newProps: $Partial<EnumBooleanBodyProps>,
662
+ ) => DetachedNode<EnumBooleanBody> | null);
663
+ type EnumBooleanMemberCloneSignature = ((
664
+ node: EnumBooleanMember,
665
+ newProps: $Partial<EnumBooleanMemberProps>,
666
+ ) => DetachedNode<EnumBooleanMember>) &
667
+ ((
668
+ node: ?EnumBooleanMember,
669
+ newProps: $Partial<EnumBooleanMemberProps>,
670
+ ) => DetachedNode<EnumBooleanMember> | null);
671
+ type EnumDeclarationCloneSignature = ((
672
+ node: EnumDeclaration,
673
+ newProps: $Partial<EnumDeclarationProps>,
674
+ ) => DetachedNode<EnumDeclaration>) &
675
+ ((
676
+ node: ?EnumDeclaration,
677
+ newProps: $Partial<EnumDeclarationProps>,
678
+ ) => DetachedNode<EnumDeclaration> | null);
679
+ type EnumDefaultedMemberCloneSignature = ((
680
+ node: EnumDefaultedMember,
681
+ newProps: $Partial<EnumDefaultedMemberProps>,
682
+ ) => DetachedNode<EnumDefaultedMember>) &
683
+ ((
684
+ node: ?EnumDefaultedMember,
685
+ newProps: $Partial<EnumDefaultedMemberProps>,
686
+ ) => DetachedNode<EnumDefaultedMember> | null);
687
+ type EnumNumberBodyCloneSignature = ((
688
+ node: EnumNumberBody,
689
+ newProps: $Partial<EnumNumberBodyProps>,
690
+ ) => DetachedNode<EnumNumberBody>) &
691
+ ((
692
+ node: ?EnumNumberBody,
693
+ newProps: $Partial<EnumNumberBodyProps>,
694
+ ) => DetachedNode<EnumNumberBody> | null);
695
+ type EnumNumberMemberCloneSignature = ((
696
+ node: EnumNumberMember,
697
+ newProps: $Partial<EnumNumberMemberProps>,
698
+ ) => DetachedNode<EnumNumberMember>) &
699
+ ((
700
+ node: ?EnumNumberMember,
701
+ newProps: $Partial<EnumNumberMemberProps>,
702
+ ) => DetachedNode<EnumNumberMember> | null);
703
+ type EnumStringBodyCloneSignature = ((
704
+ node: EnumStringBody,
705
+ newProps: $Partial<EnumStringBodyProps>,
706
+ ) => DetachedNode<EnumStringBody>) &
707
+ ((
708
+ node: ?EnumStringBody,
709
+ newProps: $Partial<EnumStringBodyProps>,
710
+ ) => DetachedNode<EnumStringBody> | null);
711
+ type EnumStringMemberCloneSignature = ((
712
+ node: EnumStringMember,
713
+ newProps: $Partial<EnumStringMemberProps>,
714
+ ) => DetachedNode<EnumStringMember>) &
715
+ ((
716
+ node: ?EnumStringMember,
717
+ newProps: $Partial<EnumStringMemberProps>,
718
+ ) => DetachedNode<EnumStringMember> | null);
719
+ type EnumSymbolBodyCloneSignature = ((
720
+ node: EnumSymbolBody,
721
+ newProps: $Partial<EnumSymbolBodyProps>,
722
+ ) => DetachedNode<EnumSymbolBody>) &
723
+ ((
724
+ node: ?EnumSymbolBody,
725
+ newProps: $Partial<EnumSymbolBodyProps>,
726
+ ) => DetachedNode<EnumSymbolBody> | null);
727
+ type ExistsTypeAnnotationCloneSignature = ((
728
+ node: ExistsTypeAnnotation,
729
+ newProps: $Partial<ExistsTypeAnnotationProps>,
730
+ ) => DetachedNode<ExistsTypeAnnotation>) &
731
+ ((
732
+ node: ?ExistsTypeAnnotation,
733
+ newProps: $Partial<ExistsTypeAnnotationProps>,
734
+ ) => DetachedNode<ExistsTypeAnnotation> | null);
735
+ type ExportAllDeclarationCloneSignature = ((
736
+ node: ExportAllDeclaration,
737
+ newProps: $Partial<ExportAllDeclarationProps>,
738
+ ) => DetachedNode<ExportAllDeclaration>) &
739
+ ((
740
+ node: ?ExportAllDeclaration,
741
+ newProps: $Partial<ExportAllDeclarationProps>,
742
+ ) => DetachedNode<ExportAllDeclaration> | null);
743
+ type ExportDefaultDeclarationCloneSignature = ((
744
+ node: ExportDefaultDeclaration,
745
+ newProps: $Partial<ExportDefaultDeclarationProps>,
746
+ ) => DetachedNode<ExportDefaultDeclaration>) &
747
+ ((
748
+ node: ?ExportDefaultDeclaration,
749
+ newProps: $Partial<ExportDefaultDeclarationProps>,
750
+ ) => DetachedNode<ExportDefaultDeclaration> | null);
751
+ type ExportNamedDeclarationCloneSignature = ((
752
+ node: ExportNamedDeclaration,
753
+ newProps: $Partial<ExportNamedDeclarationProps>,
754
+ ) => DetachedNode<ExportNamedDeclaration>) &
755
+ ((
756
+ node: ?ExportNamedDeclaration,
757
+ newProps: $Partial<ExportNamedDeclarationProps>,
758
+ ) => DetachedNode<ExportNamedDeclaration> | null);
759
+ type ExportSpecifierCloneSignature = ((
760
+ node: ExportSpecifier,
761
+ newProps: $Partial<ExportSpecifierProps>,
762
+ ) => DetachedNode<ExportSpecifier>) &
763
+ ((
764
+ node: ?ExportSpecifier,
765
+ newProps: $Partial<ExportSpecifierProps>,
766
+ ) => DetachedNode<ExportSpecifier> | null);
767
+ type ExpressionStatementCloneSignature = ((
768
+ node: ExpressionStatement,
769
+ newProps: $Partial<ExpressionStatementProps>,
770
+ ) => DetachedNode<ExpressionStatement>) &
771
+ ((
772
+ node: ?ExpressionStatement,
773
+ newProps: $Partial<ExpressionStatementProps>,
774
+ ) => DetachedNode<ExpressionStatement> | null);
775
+ type ForInStatementCloneSignature = ((
776
+ node: ForInStatement,
777
+ newProps: $Partial<ForInStatementProps>,
778
+ ) => DetachedNode<ForInStatement>) &
779
+ ((
780
+ node: ?ForInStatement,
781
+ newProps: $Partial<ForInStatementProps>,
782
+ ) => DetachedNode<ForInStatement> | null);
783
+ type ForOfStatementCloneSignature = ((
784
+ node: ForOfStatement,
785
+ newProps: $Partial<ForOfStatementProps>,
786
+ ) => DetachedNode<ForOfStatement>) &
787
+ ((
788
+ node: ?ForOfStatement,
789
+ newProps: $Partial<ForOfStatementProps>,
790
+ ) => DetachedNode<ForOfStatement> | null);
791
+ type ForStatementCloneSignature = ((
792
+ node: ForStatement,
793
+ newProps: $Partial<ForStatementProps>,
794
+ ) => DetachedNode<ForStatement>) &
795
+ ((
796
+ node: ?ForStatement,
797
+ newProps: $Partial<ForStatementProps>,
798
+ ) => DetachedNode<ForStatement> | null);
799
+ type FunctionDeclarationCloneSignature = ((
800
+ node: FunctionDeclaration,
801
+ newProps: $Partial<FunctionDeclarationProps>,
802
+ ) => DetachedNode<FunctionDeclaration>) &
803
+ ((
804
+ node: ?FunctionDeclaration,
805
+ newProps: $Partial<FunctionDeclarationProps>,
806
+ ) => DetachedNode<FunctionDeclaration> | null);
807
+ type FunctionExpressionCloneSignature = ((
808
+ node: FunctionExpression,
809
+ newProps: $Partial<FunctionExpressionProps>,
810
+ ) => DetachedNode<FunctionExpression>) &
811
+ ((
812
+ node: ?FunctionExpression,
813
+ newProps: $Partial<FunctionExpressionProps>,
814
+ ) => DetachedNode<FunctionExpression> | null);
815
+ type FunctionTypeAnnotationCloneSignature = ((
816
+ node: FunctionTypeAnnotation,
817
+ newProps: $Partial<FunctionTypeAnnotationProps>,
818
+ ) => DetachedNode<FunctionTypeAnnotation>) &
819
+ ((
820
+ node: ?FunctionTypeAnnotation,
821
+ newProps: $Partial<FunctionTypeAnnotationProps>,
822
+ ) => DetachedNode<FunctionTypeAnnotation> | null);
823
+ type FunctionTypeParamCloneSignature = ((
824
+ node: FunctionTypeParam,
825
+ newProps: $Partial<FunctionTypeParamProps>,
826
+ ) => DetachedNode<FunctionTypeParam>) &
827
+ ((
828
+ node: ?FunctionTypeParam,
829
+ newProps: $Partial<FunctionTypeParamProps>,
830
+ ) => DetachedNode<FunctionTypeParam> | null);
831
+ type GenericTypeAnnotationCloneSignature = ((
832
+ node: GenericTypeAnnotation,
833
+ newProps: $Partial<GenericTypeAnnotationProps>,
834
+ ) => DetachedNode<GenericTypeAnnotation>) &
835
+ ((
836
+ node: ?GenericTypeAnnotation,
837
+ newProps: $Partial<GenericTypeAnnotationProps>,
838
+ ) => DetachedNode<GenericTypeAnnotation> | null);
839
+ type IdentifierCloneSignature = ((
840
+ node: Identifier,
841
+ newProps: $Partial<IdentifierProps>,
842
+ ) => DetachedNode<Identifier>) &
843
+ ((
844
+ node: ?Identifier,
845
+ newProps: $Partial<IdentifierProps>,
846
+ ) => DetachedNode<Identifier> | null);
847
+ type IfStatementCloneSignature = ((
848
+ node: IfStatement,
849
+ newProps: $Partial<IfStatementProps>,
850
+ ) => DetachedNode<IfStatement>) &
851
+ ((
852
+ node: ?IfStatement,
853
+ newProps: $Partial<IfStatementProps>,
854
+ ) => DetachedNode<IfStatement> | null);
855
+ type ImportAttributeCloneSignature = ((
856
+ node: ImportAttribute,
857
+ newProps: $Partial<ImportAttributeProps>,
858
+ ) => DetachedNode<ImportAttribute>) &
859
+ ((
860
+ node: ?ImportAttribute,
861
+ newProps: $Partial<ImportAttributeProps>,
862
+ ) => DetachedNode<ImportAttribute> | null);
863
+ type ImportDeclarationCloneSignature = ((
864
+ node: ImportDeclaration,
865
+ newProps: $Partial<ImportDeclarationProps>,
866
+ ) => DetachedNode<ImportDeclaration>) &
867
+ ((
868
+ node: ?ImportDeclaration,
869
+ newProps: $Partial<ImportDeclarationProps>,
870
+ ) => DetachedNode<ImportDeclaration> | null);
871
+ type ImportDefaultSpecifierCloneSignature = ((
872
+ node: ImportDefaultSpecifier,
873
+ newProps: $Partial<ImportDefaultSpecifierProps>,
874
+ ) => DetachedNode<ImportDefaultSpecifier>) &
875
+ ((
876
+ node: ?ImportDefaultSpecifier,
877
+ newProps: $Partial<ImportDefaultSpecifierProps>,
878
+ ) => DetachedNode<ImportDefaultSpecifier> | null);
879
+ type ImportExpressionCloneSignature = ((
880
+ node: ImportExpression,
881
+ newProps: $Partial<ImportExpressionProps>,
882
+ ) => DetachedNode<ImportExpression>) &
883
+ ((
884
+ node: ?ImportExpression,
885
+ newProps: $Partial<ImportExpressionProps>,
886
+ ) => DetachedNode<ImportExpression> | null);
887
+ type ImportNamespaceSpecifierCloneSignature = ((
888
+ node: ImportNamespaceSpecifier,
889
+ newProps: $Partial<ImportNamespaceSpecifierProps>,
890
+ ) => DetachedNode<ImportNamespaceSpecifier>) &
891
+ ((
892
+ node: ?ImportNamespaceSpecifier,
893
+ newProps: $Partial<ImportNamespaceSpecifierProps>,
894
+ ) => DetachedNode<ImportNamespaceSpecifier> | null);
895
+ type ImportSpecifierCloneSignature = ((
896
+ node: ImportSpecifier,
897
+ newProps: $Partial<ImportSpecifierProps>,
898
+ ) => DetachedNode<ImportSpecifier>) &
899
+ ((
900
+ node: ?ImportSpecifier,
901
+ newProps: $Partial<ImportSpecifierProps>,
902
+ ) => DetachedNode<ImportSpecifier> | null);
903
+ type IndexedAccessTypeCloneSignature = ((
904
+ node: IndexedAccessType,
905
+ newProps: $Partial<IndexedAccessTypeProps>,
906
+ ) => DetachedNode<IndexedAccessType>) &
907
+ ((
908
+ node: ?IndexedAccessType,
909
+ newProps: $Partial<IndexedAccessTypeProps>,
910
+ ) => DetachedNode<IndexedAccessType> | null);
911
+ type InferredPredicateCloneSignature = ((
912
+ node: InferredPredicate,
913
+ newProps: $Partial<InferredPredicateProps>,
914
+ ) => DetachedNode<InferredPredicate>) &
915
+ ((
916
+ node: ?InferredPredicate,
917
+ newProps: $Partial<InferredPredicateProps>,
918
+ ) => DetachedNode<InferredPredicate> | null);
919
+ type InterfaceDeclarationCloneSignature = ((
920
+ node: InterfaceDeclaration,
921
+ newProps: $Partial<InterfaceDeclarationProps>,
922
+ ) => DetachedNode<InterfaceDeclaration>) &
923
+ ((
924
+ node: ?InterfaceDeclaration,
925
+ newProps: $Partial<InterfaceDeclarationProps>,
926
+ ) => DetachedNode<InterfaceDeclaration> | null);
927
+ type InterfaceExtendsCloneSignature = ((
928
+ node: InterfaceExtends,
929
+ newProps: $Partial<InterfaceExtendsProps>,
930
+ ) => DetachedNode<InterfaceExtends>) &
931
+ ((
932
+ node: ?InterfaceExtends,
933
+ newProps: $Partial<InterfaceExtendsProps>,
934
+ ) => DetachedNode<InterfaceExtends> | null);
935
+ type InterfaceTypeAnnotationCloneSignature = ((
936
+ node: InterfaceTypeAnnotation,
937
+ newProps: $Partial<InterfaceTypeAnnotationProps>,
938
+ ) => DetachedNode<InterfaceTypeAnnotation>) &
939
+ ((
940
+ node: ?InterfaceTypeAnnotation,
941
+ newProps: $Partial<InterfaceTypeAnnotationProps>,
942
+ ) => DetachedNode<InterfaceTypeAnnotation> | null);
943
+ type IntersectionTypeAnnotationCloneSignature = ((
944
+ node: IntersectionTypeAnnotation,
945
+ newProps: $Partial<IntersectionTypeAnnotationProps>,
946
+ ) => DetachedNode<IntersectionTypeAnnotation>) &
947
+ ((
948
+ node: ?IntersectionTypeAnnotation,
949
+ newProps: $Partial<IntersectionTypeAnnotationProps>,
950
+ ) => DetachedNode<IntersectionTypeAnnotation> | null);
951
+ type JSXAttributeCloneSignature = ((
952
+ node: JSXAttribute,
953
+ newProps: $Partial<JSXAttributeProps>,
954
+ ) => DetachedNode<JSXAttribute>) &
955
+ ((
956
+ node: ?JSXAttribute,
957
+ newProps: $Partial<JSXAttributeProps>,
958
+ ) => DetachedNode<JSXAttribute> | null);
959
+ type JSXClosingElementCloneSignature = ((
960
+ node: JSXClosingElement,
961
+ newProps: $Partial<JSXClosingElementProps>,
962
+ ) => DetachedNode<JSXClosingElement>) &
963
+ ((
964
+ node: ?JSXClosingElement,
965
+ newProps: $Partial<JSXClosingElementProps>,
966
+ ) => DetachedNode<JSXClosingElement> | null);
967
+ type JSXClosingFragmentCloneSignature = ((
968
+ node: JSXClosingFragment,
969
+ newProps: $Partial<JSXClosingFragmentProps>,
970
+ ) => DetachedNode<JSXClosingFragment>) &
971
+ ((
972
+ node: ?JSXClosingFragment,
973
+ newProps: $Partial<JSXClosingFragmentProps>,
974
+ ) => DetachedNode<JSXClosingFragment> | null);
975
+ type JSXElementCloneSignature = ((
976
+ node: JSXElement,
977
+ newProps: $Partial<JSXElementProps>,
978
+ ) => DetachedNode<JSXElement>) &
979
+ ((
980
+ node: ?JSXElement,
981
+ newProps: $Partial<JSXElementProps>,
982
+ ) => DetachedNode<JSXElement> | null);
983
+ type JSXEmptyExpressionCloneSignature = ((
984
+ node: JSXEmptyExpression,
985
+ newProps: $Partial<JSXEmptyExpressionProps>,
986
+ ) => DetachedNode<JSXEmptyExpression>) &
987
+ ((
988
+ node: ?JSXEmptyExpression,
989
+ newProps: $Partial<JSXEmptyExpressionProps>,
990
+ ) => DetachedNode<JSXEmptyExpression> | null);
991
+ type JSXExpressionContainerCloneSignature = ((
992
+ node: JSXExpressionContainer,
993
+ newProps: $Partial<JSXExpressionContainerProps>,
994
+ ) => DetachedNode<JSXExpressionContainer>) &
995
+ ((
996
+ node: ?JSXExpressionContainer,
997
+ newProps: $Partial<JSXExpressionContainerProps>,
998
+ ) => DetachedNode<JSXExpressionContainer> | null);
999
+ type JSXFragmentCloneSignature = ((
1000
+ node: JSXFragment,
1001
+ newProps: $Partial<JSXFragmentProps>,
1002
+ ) => DetachedNode<JSXFragment>) &
1003
+ ((
1004
+ node: ?JSXFragment,
1005
+ newProps: $Partial<JSXFragmentProps>,
1006
+ ) => DetachedNode<JSXFragment> | null);
1007
+ type JSXIdentifierCloneSignature = ((
1008
+ node: JSXIdentifier,
1009
+ newProps: $Partial<JSXIdentifierProps>,
1010
+ ) => DetachedNode<JSXIdentifier>) &
1011
+ ((
1012
+ node: ?JSXIdentifier,
1013
+ newProps: $Partial<JSXIdentifierProps>,
1014
+ ) => DetachedNode<JSXIdentifier> | null);
1015
+ type JSXMemberExpressionCloneSignature = ((
1016
+ node: JSXMemberExpression,
1017
+ newProps: $Partial<JSXMemberExpressionProps>,
1018
+ ) => DetachedNode<JSXMemberExpression>) &
1019
+ ((
1020
+ node: ?JSXMemberExpression,
1021
+ newProps: $Partial<JSXMemberExpressionProps>,
1022
+ ) => DetachedNode<JSXMemberExpression> | null);
1023
+ type JSXNamespacedNameCloneSignature = ((
1024
+ node: JSXNamespacedName,
1025
+ newProps: $Partial<JSXNamespacedNameProps>,
1026
+ ) => DetachedNode<JSXNamespacedName>) &
1027
+ ((
1028
+ node: ?JSXNamespacedName,
1029
+ newProps: $Partial<JSXNamespacedNameProps>,
1030
+ ) => DetachedNode<JSXNamespacedName> | null);
1031
+ type JSXOpeningElementCloneSignature = ((
1032
+ node: JSXOpeningElement,
1033
+ newProps: $Partial<JSXOpeningElementProps>,
1034
+ ) => DetachedNode<JSXOpeningElement>) &
1035
+ ((
1036
+ node: ?JSXOpeningElement,
1037
+ newProps: $Partial<JSXOpeningElementProps>,
1038
+ ) => DetachedNode<JSXOpeningElement> | null);
1039
+ type JSXOpeningFragmentCloneSignature = ((
1040
+ node: JSXOpeningFragment,
1041
+ newProps: $Partial<JSXOpeningFragmentProps>,
1042
+ ) => DetachedNode<JSXOpeningFragment>) &
1043
+ ((
1044
+ node: ?JSXOpeningFragment,
1045
+ newProps: $Partial<JSXOpeningFragmentProps>,
1046
+ ) => DetachedNode<JSXOpeningFragment> | null);
1047
+ type JSXSpreadAttributeCloneSignature = ((
1048
+ node: JSXSpreadAttribute,
1049
+ newProps: $Partial<JSXSpreadAttributeProps>,
1050
+ ) => DetachedNode<JSXSpreadAttribute>) &
1051
+ ((
1052
+ node: ?JSXSpreadAttribute,
1053
+ newProps: $Partial<JSXSpreadAttributeProps>,
1054
+ ) => DetachedNode<JSXSpreadAttribute> | null);
1055
+ type JSXSpreadChildCloneSignature = ((
1056
+ node: JSXSpreadChild,
1057
+ newProps: $Partial<JSXSpreadChildProps>,
1058
+ ) => DetachedNode<JSXSpreadChild>) &
1059
+ ((
1060
+ node: ?JSXSpreadChild,
1061
+ newProps: $Partial<JSXSpreadChildProps>,
1062
+ ) => DetachedNode<JSXSpreadChild> | null);
1063
+ type JSXTextCloneSignature = ((
1064
+ node: JSXText,
1065
+ newProps: $Partial<JSXTextProps>,
1066
+ ) => DetachedNode<JSXText>) &
1067
+ ((
1068
+ node: ?JSXText,
1069
+ newProps: $Partial<JSXTextProps>,
1070
+ ) => DetachedNode<JSXText> | null);
1071
+ type LabeledStatementCloneSignature = ((
1072
+ node: LabeledStatement,
1073
+ newProps: $Partial<LabeledStatementProps>,
1074
+ ) => DetachedNode<LabeledStatement>) &
1075
+ ((
1076
+ node: ?LabeledStatement,
1077
+ newProps: $Partial<LabeledStatementProps>,
1078
+ ) => DetachedNode<LabeledStatement> | null);
1079
+ type LogicalExpressionCloneSignature = ((
1080
+ node: LogicalExpression,
1081
+ newProps: $Partial<LogicalExpressionProps>,
1082
+ ) => DetachedNode<LogicalExpression>) &
1083
+ ((
1084
+ node: ?LogicalExpression,
1085
+ newProps: $Partial<LogicalExpressionProps>,
1086
+ ) => DetachedNode<LogicalExpression> | null);
1087
+ type MemberExpressionCloneSignature = ((
1088
+ node: MemberExpression,
1089
+ newProps: $Partial<MemberExpressionProps>,
1090
+ ) => DetachedNode<MemberExpression>) &
1091
+ ((
1092
+ node: ?MemberExpression,
1093
+ newProps: $Partial<MemberExpressionProps>,
1094
+ ) => DetachedNode<MemberExpression> | null);
1095
+ type MetaPropertyCloneSignature = ((
1096
+ node: MetaProperty,
1097
+ newProps: $Partial<MetaPropertyProps>,
1098
+ ) => DetachedNode<MetaProperty>) &
1099
+ ((
1100
+ node: ?MetaProperty,
1101
+ newProps: $Partial<MetaPropertyProps>,
1102
+ ) => DetachedNode<MetaProperty> | null);
1103
+ type MethodDefinitionCloneSignature = ((
1104
+ node: MethodDefinition,
1105
+ newProps: $Partial<MethodDefinitionProps>,
1106
+ ) => DetachedNode<MethodDefinition>) &
1107
+ ((
1108
+ node: ?MethodDefinition,
1109
+ newProps: $Partial<MethodDefinitionProps>,
1110
+ ) => DetachedNode<MethodDefinition> | null);
1111
+ type MixedTypeAnnotationCloneSignature = ((
1112
+ node: MixedTypeAnnotation,
1113
+ newProps: $Partial<MixedTypeAnnotationProps>,
1114
+ ) => DetachedNode<MixedTypeAnnotation>) &
1115
+ ((
1116
+ node: ?MixedTypeAnnotation,
1117
+ newProps: $Partial<MixedTypeAnnotationProps>,
1118
+ ) => DetachedNode<MixedTypeAnnotation> | null);
1119
+ type NewExpressionCloneSignature = ((
1120
+ node: NewExpression,
1121
+ newProps: $Partial<NewExpressionProps>,
1122
+ ) => DetachedNode<NewExpression>) &
1123
+ ((
1124
+ node: ?NewExpression,
1125
+ newProps: $Partial<NewExpressionProps>,
1126
+ ) => DetachedNode<NewExpression> | null);
1127
+ type NullableTypeAnnotationCloneSignature = ((
1128
+ node: NullableTypeAnnotation,
1129
+ newProps: $Partial<NullableTypeAnnotationProps>,
1130
+ ) => DetachedNode<NullableTypeAnnotation>) &
1131
+ ((
1132
+ node: ?NullableTypeAnnotation,
1133
+ newProps: $Partial<NullableTypeAnnotationProps>,
1134
+ ) => DetachedNode<NullableTypeAnnotation> | null);
1135
+ type NullLiteralCloneSignature = ((
1136
+ node: NullLiteral,
1137
+ newProps: $Partial<NullLiteralProps>,
1138
+ ) => DetachedNode<NullLiteral>) &
1139
+ ((
1140
+ node: ?NullLiteral,
1141
+ newProps: $Partial<NullLiteralProps>,
1142
+ ) => DetachedNode<NullLiteral> | null);
1143
+ type NullLiteralTypeAnnotationCloneSignature = ((
1144
+ node: NullLiteralTypeAnnotation,
1145
+ newProps: $Partial<NullLiteralTypeAnnotationProps>,
1146
+ ) => DetachedNode<NullLiteralTypeAnnotation>) &
1147
+ ((
1148
+ node: ?NullLiteralTypeAnnotation,
1149
+ newProps: $Partial<NullLiteralTypeAnnotationProps>,
1150
+ ) => DetachedNode<NullLiteralTypeAnnotation> | null);
1151
+ type NumberLiteralTypeAnnotationCloneSignature = ((
1152
+ node: NumberLiteralTypeAnnotation,
1153
+ newProps: $Partial<NumberLiteralTypeAnnotationProps>,
1154
+ ) => DetachedNode<NumberLiteralTypeAnnotation>) &
1155
+ ((
1156
+ node: ?NumberLiteralTypeAnnotation,
1157
+ newProps: $Partial<NumberLiteralTypeAnnotationProps>,
1158
+ ) => DetachedNode<NumberLiteralTypeAnnotation> | null);
1159
+ type NumberTypeAnnotationCloneSignature = ((
1160
+ node: NumberTypeAnnotation,
1161
+ newProps: $Partial<NumberTypeAnnotationProps>,
1162
+ ) => DetachedNode<NumberTypeAnnotation>) &
1163
+ ((
1164
+ node: ?NumberTypeAnnotation,
1165
+ newProps: $Partial<NumberTypeAnnotationProps>,
1166
+ ) => DetachedNode<NumberTypeAnnotation> | null);
1167
+ type NumericLiteralCloneSignature = ((
1168
+ node: NumericLiteral,
1169
+ newProps: $Partial<NumericLiteralProps>,
1170
+ ) => DetachedNode<NumericLiteral>) &
1171
+ ((
1172
+ node: ?NumericLiteral,
1173
+ newProps: $Partial<NumericLiteralProps>,
1174
+ ) => DetachedNode<NumericLiteral> | null);
1175
+ type ObjectExpressionCloneSignature = ((
1176
+ node: ObjectExpression,
1177
+ newProps: $Partial<ObjectExpressionProps>,
1178
+ ) => DetachedNode<ObjectExpression>) &
1179
+ ((
1180
+ node: ?ObjectExpression,
1181
+ newProps: $Partial<ObjectExpressionProps>,
1182
+ ) => DetachedNode<ObjectExpression> | null);
1183
+ type ObjectPatternCloneSignature = ((
1184
+ node: ObjectPattern,
1185
+ newProps: $Partial<ObjectPatternProps>,
1186
+ ) => DetachedNode<ObjectPattern>) &
1187
+ ((
1188
+ node: ?ObjectPattern,
1189
+ newProps: $Partial<ObjectPatternProps>,
1190
+ ) => DetachedNode<ObjectPattern> | null);
1191
+ type ObjectTypeAnnotationCloneSignature = ((
1192
+ node: ObjectTypeAnnotation,
1193
+ newProps: $Partial<ObjectTypeAnnotationProps>,
1194
+ ) => DetachedNode<ObjectTypeAnnotation>) &
1195
+ ((
1196
+ node: ?ObjectTypeAnnotation,
1197
+ newProps: $Partial<ObjectTypeAnnotationProps>,
1198
+ ) => DetachedNode<ObjectTypeAnnotation> | null);
1199
+ type ObjectTypeCallPropertyCloneSignature = ((
1200
+ node: ObjectTypeCallProperty,
1201
+ newProps: $Partial<ObjectTypeCallPropertyProps>,
1202
+ ) => DetachedNode<ObjectTypeCallProperty>) &
1203
+ ((
1204
+ node: ?ObjectTypeCallProperty,
1205
+ newProps: $Partial<ObjectTypeCallPropertyProps>,
1206
+ ) => DetachedNode<ObjectTypeCallProperty> | null);
1207
+ type ObjectTypeIndexerCloneSignature = ((
1208
+ node: ObjectTypeIndexer,
1209
+ newProps: $Partial<ObjectTypeIndexerProps>,
1210
+ ) => DetachedNode<ObjectTypeIndexer>) &
1211
+ ((
1212
+ node: ?ObjectTypeIndexer,
1213
+ newProps: $Partial<ObjectTypeIndexerProps>,
1214
+ ) => DetachedNode<ObjectTypeIndexer> | null);
1215
+ type ObjectTypeInternalSlotCloneSignature = ((
1216
+ node: ObjectTypeInternalSlot,
1217
+ newProps: $Partial<ObjectTypeInternalSlotProps>,
1218
+ ) => DetachedNode<ObjectTypeInternalSlot>) &
1219
+ ((
1220
+ node: ?ObjectTypeInternalSlot,
1221
+ newProps: $Partial<ObjectTypeInternalSlotProps>,
1222
+ ) => DetachedNode<ObjectTypeInternalSlot> | null);
1223
+ type ObjectTypePropertyCloneSignature = ((
1224
+ node: ObjectTypeProperty,
1225
+ newProps: $Partial<ObjectTypePropertyProps>,
1226
+ ) => DetachedNode<ObjectTypeProperty>) &
1227
+ ((
1228
+ node: ?ObjectTypeProperty,
1229
+ newProps: $Partial<ObjectTypePropertyProps>,
1230
+ ) => DetachedNode<ObjectTypeProperty> | null);
1231
+ type ObjectTypeSpreadPropertyCloneSignature = ((
1232
+ node: ObjectTypeSpreadProperty,
1233
+ newProps: $Partial<ObjectTypeSpreadPropertyProps>,
1234
+ ) => DetachedNode<ObjectTypeSpreadProperty>) &
1235
+ ((
1236
+ node: ?ObjectTypeSpreadProperty,
1237
+ newProps: $Partial<ObjectTypeSpreadPropertyProps>,
1238
+ ) => DetachedNode<ObjectTypeSpreadProperty> | null);
1239
+ type OpaqueTypeCloneSignature = ((
1240
+ node: OpaqueType,
1241
+ newProps: $Partial<OpaqueTypeProps>,
1242
+ ) => DetachedNode<OpaqueType>) &
1243
+ ((
1244
+ node: ?OpaqueType,
1245
+ newProps: $Partial<OpaqueTypeProps>,
1246
+ ) => DetachedNode<OpaqueType> | null);
1247
+ type OptionalIndexedAccessTypeCloneSignature = ((
1248
+ node: OptionalIndexedAccessType,
1249
+ newProps: $Partial<OptionalIndexedAccessTypeProps>,
1250
+ ) => DetachedNode<OptionalIndexedAccessType>) &
1251
+ ((
1252
+ node: ?OptionalIndexedAccessType,
1253
+ newProps: $Partial<OptionalIndexedAccessTypeProps>,
1254
+ ) => DetachedNode<OptionalIndexedAccessType> | null);
1255
+ type PrivateIdentifierCloneSignature = ((
1256
+ node: PrivateIdentifier,
1257
+ newProps: $Partial<PrivateIdentifierProps>,
1258
+ ) => DetachedNode<PrivateIdentifier>) &
1259
+ ((
1260
+ node: ?PrivateIdentifier,
1261
+ newProps: $Partial<PrivateIdentifierProps>,
1262
+ ) => DetachedNode<PrivateIdentifier> | null);
1263
+ type PropertyCloneSignature = ((
1264
+ node: Property,
1265
+ newProps: $Partial<PropertyProps>,
1266
+ ) => DetachedNode<Property>) &
1267
+ ((
1268
+ node: ?Property,
1269
+ newProps: $Partial<PropertyProps>,
1270
+ ) => DetachedNode<Property> | null);
1271
+ type PropertyDefinitionCloneSignature = ((
1272
+ node: PropertyDefinition,
1273
+ newProps: $Partial<PropertyDefinitionProps>,
1274
+ ) => DetachedNode<PropertyDefinition>) &
1275
+ ((
1276
+ node: ?PropertyDefinition,
1277
+ newProps: $Partial<PropertyDefinitionProps>,
1278
+ ) => DetachedNode<PropertyDefinition> | null);
1279
+ type QualifiedTypeIdentifierCloneSignature = ((
1280
+ node: QualifiedTypeIdentifier,
1281
+ newProps: $Partial<QualifiedTypeIdentifierProps>,
1282
+ ) => DetachedNode<QualifiedTypeIdentifier>) &
1283
+ ((
1284
+ node: ?QualifiedTypeIdentifier,
1285
+ newProps: $Partial<QualifiedTypeIdentifierProps>,
1286
+ ) => DetachedNode<QualifiedTypeIdentifier> | null);
1287
+ type RegExpLiteralCloneSignature = ((
1288
+ node: RegExpLiteral,
1289
+ newProps: $Partial<RegExpLiteralProps>,
1290
+ ) => DetachedNode<RegExpLiteral>) &
1291
+ ((
1292
+ node: ?RegExpLiteral,
1293
+ newProps: $Partial<RegExpLiteralProps>,
1294
+ ) => DetachedNode<RegExpLiteral> | null);
1295
+ type RestElementCloneSignature = ((
1296
+ node: RestElement,
1297
+ newProps: $Partial<RestElementProps>,
1298
+ ) => DetachedNode<RestElement>) &
1299
+ ((
1300
+ node: ?RestElement,
1301
+ newProps: $Partial<RestElementProps>,
1302
+ ) => DetachedNode<RestElement> | null);
1303
+ type ReturnStatementCloneSignature = ((
1304
+ node: ReturnStatement,
1305
+ newProps: $Partial<ReturnStatementProps>,
1306
+ ) => DetachedNode<ReturnStatement>) &
1307
+ ((
1308
+ node: ?ReturnStatement,
1309
+ newProps: $Partial<ReturnStatementProps>,
1310
+ ) => DetachedNode<ReturnStatement> | null);
1311
+ type SequenceExpressionCloneSignature = ((
1312
+ node: SequenceExpression,
1313
+ newProps: $Partial<SequenceExpressionProps>,
1314
+ ) => DetachedNode<SequenceExpression>) &
1315
+ ((
1316
+ node: ?SequenceExpression,
1317
+ newProps: $Partial<SequenceExpressionProps>,
1318
+ ) => DetachedNode<SequenceExpression> | null);
1319
+ type SpreadElementCloneSignature = ((
1320
+ node: SpreadElement,
1321
+ newProps: $Partial<SpreadElementProps>,
1322
+ ) => DetachedNode<SpreadElement>) &
1323
+ ((
1324
+ node: ?SpreadElement,
1325
+ newProps: $Partial<SpreadElementProps>,
1326
+ ) => DetachedNode<SpreadElement> | null);
1327
+ type StringLiteralCloneSignature = ((
1328
+ node: StringLiteral,
1329
+ newProps: $Partial<StringLiteralProps>,
1330
+ ) => DetachedNode<StringLiteral>) &
1331
+ ((
1332
+ node: ?StringLiteral,
1333
+ newProps: $Partial<StringLiteralProps>,
1334
+ ) => DetachedNode<StringLiteral> | null);
1335
+ type StringLiteralTypeAnnotationCloneSignature = ((
1336
+ node: StringLiteralTypeAnnotation,
1337
+ newProps: $Partial<StringLiteralTypeAnnotationProps>,
1338
+ ) => DetachedNode<StringLiteralTypeAnnotation>) &
1339
+ ((
1340
+ node: ?StringLiteralTypeAnnotation,
1341
+ newProps: $Partial<StringLiteralTypeAnnotationProps>,
1342
+ ) => DetachedNode<StringLiteralTypeAnnotation> | null);
1343
+ type StringTypeAnnotationCloneSignature = ((
1344
+ node: StringTypeAnnotation,
1345
+ newProps: $Partial<StringTypeAnnotationProps>,
1346
+ ) => DetachedNode<StringTypeAnnotation>) &
1347
+ ((
1348
+ node: ?StringTypeAnnotation,
1349
+ newProps: $Partial<StringTypeAnnotationProps>,
1350
+ ) => DetachedNode<StringTypeAnnotation> | null);
1351
+ type SuperCloneSignature = ((
1352
+ node: Super,
1353
+ newProps: $Partial<SuperProps>,
1354
+ ) => DetachedNode<Super>) &
1355
+ ((
1356
+ node: ?Super,
1357
+ newProps: $Partial<SuperProps>,
1358
+ ) => DetachedNode<Super> | null);
1359
+ type SwitchCaseCloneSignature = ((
1360
+ node: SwitchCase,
1361
+ newProps: $Partial<SwitchCaseProps>,
1362
+ ) => DetachedNode<SwitchCase>) &
1363
+ ((
1364
+ node: ?SwitchCase,
1365
+ newProps: $Partial<SwitchCaseProps>,
1366
+ ) => DetachedNode<SwitchCase> | null);
1367
+ type SwitchStatementCloneSignature = ((
1368
+ node: SwitchStatement,
1369
+ newProps: $Partial<SwitchStatementProps>,
1370
+ ) => DetachedNode<SwitchStatement>) &
1371
+ ((
1372
+ node: ?SwitchStatement,
1373
+ newProps: $Partial<SwitchStatementProps>,
1374
+ ) => DetachedNode<SwitchStatement> | null);
1375
+ type SymbolTypeAnnotationCloneSignature = ((
1376
+ node: SymbolTypeAnnotation,
1377
+ newProps: $Partial<SymbolTypeAnnotationProps>,
1378
+ ) => DetachedNode<SymbolTypeAnnotation>) &
1379
+ ((
1380
+ node: ?SymbolTypeAnnotation,
1381
+ newProps: $Partial<SymbolTypeAnnotationProps>,
1382
+ ) => DetachedNode<SymbolTypeAnnotation> | null);
1383
+ type TaggedTemplateExpressionCloneSignature = ((
1384
+ node: TaggedTemplateExpression,
1385
+ newProps: $Partial<TaggedTemplateExpressionProps>,
1386
+ ) => DetachedNode<TaggedTemplateExpression>) &
1387
+ ((
1388
+ node: ?TaggedTemplateExpression,
1389
+ newProps: $Partial<TaggedTemplateExpressionProps>,
1390
+ ) => DetachedNode<TaggedTemplateExpression> | null);
1391
+ type TemplateElementCloneSignature = ((
1392
+ node: TemplateElement,
1393
+ newProps: $Partial<TemplateElementProps>,
1394
+ ) => DetachedNode<TemplateElement>) &
1395
+ ((
1396
+ node: ?TemplateElement,
1397
+ newProps: $Partial<TemplateElementProps>,
1398
+ ) => DetachedNode<TemplateElement> | null);
1399
+ type TemplateLiteralCloneSignature = ((
1400
+ node: TemplateLiteral,
1401
+ newProps: $Partial<TemplateLiteralProps>,
1402
+ ) => DetachedNode<TemplateLiteral>) &
1403
+ ((
1404
+ node: ?TemplateLiteral,
1405
+ newProps: $Partial<TemplateLiteralProps>,
1406
+ ) => DetachedNode<TemplateLiteral> | null);
1407
+ type ThisExpressionCloneSignature = ((
1408
+ node: ThisExpression,
1409
+ newProps: $Partial<ThisExpressionProps>,
1410
+ ) => DetachedNode<ThisExpression>) &
1411
+ ((
1412
+ node: ?ThisExpression,
1413
+ newProps: $Partial<ThisExpressionProps>,
1414
+ ) => DetachedNode<ThisExpression> | null);
1415
+ type ThisTypeAnnotationCloneSignature = ((
1416
+ node: ThisTypeAnnotation,
1417
+ newProps: $Partial<ThisTypeAnnotationProps>,
1418
+ ) => DetachedNode<ThisTypeAnnotation>) &
1419
+ ((
1420
+ node: ?ThisTypeAnnotation,
1421
+ newProps: $Partial<ThisTypeAnnotationProps>,
1422
+ ) => DetachedNode<ThisTypeAnnotation> | null);
1423
+ type ThrowStatementCloneSignature = ((
1424
+ node: ThrowStatement,
1425
+ newProps: $Partial<ThrowStatementProps>,
1426
+ ) => DetachedNode<ThrowStatement>) &
1427
+ ((
1428
+ node: ?ThrowStatement,
1429
+ newProps: $Partial<ThrowStatementProps>,
1430
+ ) => DetachedNode<ThrowStatement> | null);
1431
+ type TryStatementCloneSignature = ((
1432
+ node: TryStatement,
1433
+ newProps: $Partial<TryStatementProps>,
1434
+ ) => DetachedNode<TryStatement>) &
1435
+ ((
1436
+ node: ?TryStatement,
1437
+ newProps: $Partial<TryStatementProps>,
1438
+ ) => DetachedNode<TryStatement> | null);
1439
+ type TupleTypeAnnotationCloneSignature = ((
1440
+ node: TupleTypeAnnotation,
1441
+ newProps: $Partial<TupleTypeAnnotationProps>,
1442
+ ) => DetachedNode<TupleTypeAnnotation>) &
1443
+ ((
1444
+ node: ?TupleTypeAnnotation,
1445
+ newProps: $Partial<TupleTypeAnnotationProps>,
1446
+ ) => DetachedNode<TupleTypeAnnotation> | null);
1447
+ type TypeAliasCloneSignature = ((
1448
+ node: TypeAlias,
1449
+ newProps: $Partial<TypeAliasProps>,
1450
+ ) => DetachedNode<TypeAlias>) &
1451
+ ((
1452
+ node: ?TypeAlias,
1453
+ newProps: $Partial<TypeAliasProps>,
1454
+ ) => DetachedNode<TypeAlias> | null);
1455
+ type TypeAnnotationCloneSignature = ((
1456
+ node: TypeAnnotation,
1457
+ newProps: $Partial<TypeAnnotationProps>,
1458
+ ) => DetachedNode<TypeAnnotation>) &
1459
+ ((
1460
+ node: ?TypeAnnotation,
1461
+ newProps: $Partial<TypeAnnotationProps>,
1462
+ ) => DetachedNode<TypeAnnotation> | null);
1463
+ type TypeCastExpressionCloneSignature = ((
1464
+ node: TypeCastExpression,
1465
+ newProps: $Partial<TypeCastExpressionProps>,
1466
+ ) => DetachedNode<TypeCastExpression>) &
1467
+ ((
1468
+ node: ?TypeCastExpression,
1469
+ newProps: $Partial<TypeCastExpressionProps>,
1470
+ ) => DetachedNode<TypeCastExpression> | null);
1471
+ type TypeofTypeAnnotationCloneSignature = ((
1472
+ node: TypeofTypeAnnotation,
1473
+ newProps: $Partial<TypeofTypeAnnotationProps>,
1474
+ ) => DetachedNode<TypeofTypeAnnotation>) &
1475
+ ((
1476
+ node: ?TypeofTypeAnnotation,
1477
+ newProps: $Partial<TypeofTypeAnnotationProps>,
1478
+ ) => DetachedNode<TypeofTypeAnnotation> | null);
1479
+ type TypeParameterCloneSignature = ((
1480
+ node: TypeParameter,
1481
+ newProps: $Partial<TypeParameterProps>,
1482
+ ) => DetachedNode<TypeParameter>) &
1483
+ ((
1484
+ node: ?TypeParameter,
1485
+ newProps: $Partial<TypeParameterProps>,
1486
+ ) => DetachedNode<TypeParameter> | null);
1487
+ type TypeParameterDeclarationCloneSignature = ((
1488
+ node: TypeParameterDeclaration,
1489
+ newProps: $Partial<TypeParameterDeclarationProps>,
1490
+ ) => DetachedNode<TypeParameterDeclaration>) &
1491
+ ((
1492
+ node: ?TypeParameterDeclaration,
1493
+ newProps: $Partial<TypeParameterDeclarationProps>,
1494
+ ) => DetachedNode<TypeParameterDeclaration> | null);
1495
+ type TypeParameterInstantiationCloneSignature = ((
1496
+ node: TypeParameterInstantiation,
1497
+ newProps: $Partial<TypeParameterInstantiationProps>,
1498
+ ) => DetachedNode<TypeParameterInstantiation>) &
1499
+ ((
1500
+ node: ?TypeParameterInstantiation,
1501
+ newProps: $Partial<TypeParameterInstantiationProps>,
1502
+ ) => DetachedNode<TypeParameterInstantiation> | null);
1503
+ type UnaryExpressionCloneSignature = ((
1504
+ node: UnaryExpression,
1505
+ newProps: $Partial<UnaryExpressionProps>,
1506
+ ) => DetachedNode<UnaryExpression>) &
1507
+ ((
1508
+ node: ?UnaryExpression,
1509
+ newProps: $Partial<UnaryExpressionProps>,
1510
+ ) => DetachedNode<UnaryExpression> | null);
1511
+ type UnionTypeAnnotationCloneSignature = ((
1512
+ node: UnionTypeAnnotation,
1513
+ newProps: $Partial<UnionTypeAnnotationProps>,
1514
+ ) => DetachedNode<UnionTypeAnnotation>) &
1515
+ ((
1516
+ node: ?UnionTypeAnnotation,
1517
+ newProps: $Partial<UnionTypeAnnotationProps>,
1518
+ ) => DetachedNode<UnionTypeAnnotation> | null);
1519
+ type UpdateExpressionCloneSignature = ((
1520
+ node: UpdateExpression,
1521
+ newProps: $Partial<UpdateExpressionProps>,
1522
+ ) => DetachedNode<UpdateExpression>) &
1523
+ ((
1524
+ node: ?UpdateExpression,
1525
+ newProps: $Partial<UpdateExpressionProps>,
1526
+ ) => DetachedNode<UpdateExpression> | null);
1527
+ type VariableDeclarationCloneSignature = ((
1528
+ node: VariableDeclaration,
1529
+ newProps: $Partial<VariableDeclarationProps>,
1530
+ ) => DetachedNode<VariableDeclaration>) &
1531
+ ((
1532
+ node: ?VariableDeclaration,
1533
+ newProps: $Partial<VariableDeclarationProps>,
1534
+ ) => DetachedNode<VariableDeclaration> | null);
1535
+ type VariableDeclaratorCloneSignature = ((
1536
+ node: VariableDeclarator,
1537
+ newProps: $Partial<VariableDeclaratorProps>,
1538
+ ) => DetachedNode<VariableDeclarator>) &
1539
+ ((
1540
+ node: ?VariableDeclarator,
1541
+ newProps: $Partial<VariableDeclaratorProps>,
1542
+ ) => DetachedNode<VariableDeclarator> | null);
1543
+ type VarianceCloneSignature = ((
1544
+ node: Variance,
1545
+ newProps: $Partial<VarianceProps>,
1546
+ ) => DetachedNode<Variance>) &
1547
+ ((
1548
+ node: ?Variance,
1549
+ newProps: $Partial<VarianceProps>,
1550
+ ) => DetachedNode<Variance> | null);
1551
+ type VoidTypeAnnotationCloneSignature = ((
1552
+ node: VoidTypeAnnotation,
1553
+ newProps: $Partial<VoidTypeAnnotationProps>,
1554
+ ) => DetachedNode<VoidTypeAnnotation>) &
1555
+ ((
1556
+ node: ?VoidTypeAnnotation,
1557
+ newProps: $Partial<VoidTypeAnnotationProps>,
1558
+ ) => DetachedNode<VoidTypeAnnotation> | null);
1559
+ type WhileStatementCloneSignature = ((
1560
+ node: WhileStatement,
1561
+ newProps: $Partial<WhileStatementProps>,
1562
+ ) => DetachedNode<WhileStatement>) &
1563
+ ((
1564
+ node: ?WhileStatement,
1565
+ newProps: $Partial<WhileStatementProps>,
1566
+ ) => DetachedNode<WhileStatement> | null);
1567
+ type WithStatementCloneSignature = ((
1568
+ node: WithStatement,
1569
+ newProps: $Partial<WithStatementProps>,
1570
+ ) => DetachedNode<WithStatement>) &
1571
+ ((
1572
+ node: ?WithStatement,
1573
+ newProps: $Partial<WithStatementProps>,
1574
+ ) => DetachedNode<WithStatement> | null);
1575
+ type YieldExpressionCloneSignature = ((
1576
+ node: YieldExpression,
1577
+ newProps: $Partial<YieldExpressionProps>,
1578
+ ) => DetachedNode<YieldExpression>) &
1579
+ ((
1580
+ node: ?YieldExpression,
1581
+ newProps: $Partial<YieldExpressionProps>,
1582
+ ) => DetachedNode<YieldExpression> | null);
1583
+ export type TransformCloneSignatures = AnyTypeAnnotationCloneSignature &
1584
+ ArrayExpressionCloneSignature &
1585
+ ArrayPatternCloneSignature &
1586
+ ArrayTypeAnnotationCloneSignature &
1587
+ ArrowFunctionExpressionCloneSignature &
1588
+ AssignmentExpressionCloneSignature &
1589
+ AssignmentPatternCloneSignature &
1590
+ AwaitExpressionCloneSignature &
1591
+ BigIntLiteralCloneSignature &
1592
+ BigIntLiteralTypeAnnotationCloneSignature &
1593
+ BinaryExpressionCloneSignature &
1594
+ BlockStatementCloneSignature &
1595
+ BooleanLiteralCloneSignature &
1596
+ BooleanLiteralTypeAnnotationCloneSignature &
1597
+ BooleanTypeAnnotationCloneSignature &
1598
+ BreakStatementCloneSignature &
1599
+ CallExpressionCloneSignature &
1600
+ CatchClauseCloneSignature &
1601
+ ChainExpressionCloneSignature &
1602
+ ClassBodyCloneSignature &
1603
+ ClassDeclarationCloneSignature &
1604
+ ClassExpressionCloneSignature &
1605
+ ClassImplementsCloneSignature &
1606
+ ConditionalExpressionCloneSignature &
1607
+ ContinueStatementCloneSignature &
1608
+ DebuggerStatementCloneSignature &
1609
+ DeclareClassCloneSignature &
1610
+ DeclaredPredicateCloneSignature &
1611
+ DeclareExportAllDeclarationCloneSignature &
1612
+ DeclareExportDeclarationCloneSignature &
1613
+ DeclareFunctionCloneSignature &
1614
+ DeclareInterfaceCloneSignature &
1615
+ DeclareModuleCloneSignature &
1616
+ DeclareModuleExportsCloneSignature &
1617
+ DeclareOpaqueTypeCloneSignature &
1618
+ DeclareTypeAliasCloneSignature &
1619
+ DeclareVariableCloneSignature &
1620
+ DoWhileStatementCloneSignature &
1621
+ EmptyStatementCloneSignature &
1622
+ EmptyTypeAnnotationCloneSignature &
1623
+ EnumBooleanBodyCloneSignature &
1624
+ EnumBooleanMemberCloneSignature &
1625
+ EnumDeclarationCloneSignature &
1626
+ EnumDefaultedMemberCloneSignature &
1627
+ EnumNumberBodyCloneSignature &
1628
+ EnumNumberMemberCloneSignature &
1629
+ EnumStringBodyCloneSignature &
1630
+ EnumStringMemberCloneSignature &
1631
+ EnumSymbolBodyCloneSignature &
1632
+ ExistsTypeAnnotationCloneSignature &
1633
+ ExportAllDeclarationCloneSignature &
1634
+ ExportDefaultDeclarationCloneSignature &
1635
+ ExportNamedDeclarationCloneSignature &
1636
+ ExportSpecifierCloneSignature &
1637
+ ExpressionStatementCloneSignature &
1638
+ ForInStatementCloneSignature &
1639
+ ForOfStatementCloneSignature &
1640
+ ForStatementCloneSignature &
1641
+ FunctionDeclarationCloneSignature &
1642
+ FunctionExpressionCloneSignature &
1643
+ FunctionTypeAnnotationCloneSignature &
1644
+ FunctionTypeParamCloneSignature &
1645
+ GenericTypeAnnotationCloneSignature &
1646
+ IdentifierCloneSignature &
1647
+ IfStatementCloneSignature &
1648
+ ImportAttributeCloneSignature &
1649
+ ImportDeclarationCloneSignature &
1650
+ ImportDefaultSpecifierCloneSignature &
1651
+ ImportExpressionCloneSignature &
1652
+ ImportNamespaceSpecifierCloneSignature &
1653
+ ImportSpecifierCloneSignature &
1654
+ IndexedAccessTypeCloneSignature &
1655
+ InferredPredicateCloneSignature &
1656
+ InterfaceDeclarationCloneSignature &
1657
+ InterfaceExtendsCloneSignature &
1658
+ InterfaceTypeAnnotationCloneSignature &
1659
+ IntersectionTypeAnnotationCloneSignature &
1660
+ JSXAttributeCloneSignature &
1661
+ JSXClosingElementCloneSignature &
1662
+ JSXClosingFragmentCloneSignature &
1663
+ JSXElementCloneSignature &
1664
+ JSXEmptyExpressionCloneSignature &
1665
+ JSXExpressionContainerCloneSignature &
1666
+ JSXFragmentCloneSignature &
1667
+ JSXIdentifierCloneSignature &
1668
+ JSXMemberExpressionCloneSignature &
1669
+ JSXNamespacedNameCloneSignature &
1670
+ JSXOpeningElementCloneSignature &
1671
+ JSXOpeningFragmentCloneSignature &
1672
+ JSXSpreadAttributeCloneSignature &
1673
+ JSXSpreadChildCloneSignature &
1674
+ JSXTextCloneSignature &
1675
+ LabeledStatementCloneSignature &
1676
+ LogicalExpressionCloneSignature &
1677
+ MemberExpressionCloneSignature &
1678
+ MetaPropertyCloneSignature &
1679
+ MethodDefinitionCloneSignature &
1680
+ MixedTypeAnnotationCloneSignature &
1681
+ NewExpressionCloneSignature &
1682
+ NullableTypeAnnotationCloneSignature &
1683
+ NullLiteralCloneSignature &
1684
+ NullLiteralTypeAnnotationCloneSignature &
1685
+ NumberLiteralTypeAnnotationCloneSignature &
1686
+ NumberTypeAnnotationCloneSignature &
1687
+ NumericLiteralCloneSignature &
1688
+ ObjectExpressionCloneSignature &
1689
+ ObjectPatternCloneSignature &
1690
+ ObjectTypeAnnotationCloneSignature &
1691
+ ObjectTypeCallPropertyCloneSignature &
1692
+ ObjectTypeIndexerCloneSignature &
1693
+ ObjectTypeInternalSlotCloneSignature &
1694
+ ObjectTypePropertyCloneSignature &
1695
+ ObjectTypeSpreadPropertyCloneSignature &
1696
+ OpaqueTypeCloneSignature &
1697
+ OptionalIndexedAccessTypeCloneSignature &
1698
+ PrivateIdentifierCloneSignature &
1699
+ PropertyCloneSignature &
1700
+ PropertyDefinitionCloneSignature &
1701
+ QualifiedTypeIdentifierCloneSignature &
1702
+ RegExpLiteralCloneSignature &
1703
+ RestElementCloneSignature &
1704
+ ReturnStatementCloneSignature &
1705
+ SequenceExpressionCloneSignature &
1706
+ SpreadElementCloneSignature &
1707
+ StringLiteralCloneSignature &
1708
+ StringLiteralTypeAnnotationCloneSignature &
1709
+ StringTypeAnnotationCloneSignature &
1710
+ SuperCloneSignature &
1711
+ SwitchCaseCloneSignature &
1712
+ SwitchStatementCloneSignature &
1713
+ SymbolTypeAnnotationCloneSignature &
1714
+ TaggedTemplateExpressionCloneSignature &
1715
+ TemplateElementCloneSignature &
1716
+ TemplateLiteralCloneSignature &
1717
+ ThisExpressionCloneSignature &
1718
+ ThisTypeAnnotationCloneSignature &
1719
+ ThrowStatementCloneSignature &
1720
+ TryStatementCloneSignature &
1721
+ TupleTypeAnnotationCloneSignature &
1722
+ TypeAliasCloneSignature &
1723
+ TypeAnnotationCloneSignature &
1724
+ TypeCastExpressionCloneSignature &
1725
+ TypeofTypeAnnotationCloneSignature &
1726
+ TypeParameterCloneSignature &
1727
+ TypeParameterDeclarationCloneSignature &
1728
+ TypeParameterInstantiationCloneSignature &
1729
+ UnaryExpressionCloneSignature &
1730
+ UnionTypeAnnotationCloneSignature &
1731
+ UpdateExpressionCloneSignature &
1732
+ VariableDeclarationCloneSignature &
1733
+ VariableDeclaratorCloneSignature &
1734
+ VarianceCloneSignature &
1735
+ VoidTypeAnnotationCloneSignature &
1736
+ WhileStatementCloneSignature &
1737
+ WithStatementCloneSignature &
1738
+ YieldExpressionCloneSignature;