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