@flint.fyi/typescript-language 0.0.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 (78) hide show
  1. package/README.md +9 -0
  2. package/lib/_virtual/rolldown_runtime.js +18 -0
  3. package/lib/collectReferencedFilePaths.d.ts +4 -0
  4. package/lib/collectReferencedFilePaths.js +41 -0
  5. package/lib/convertTypeScriptDiagnosticToLanguageFileDiagnostic.d.ts +18 -0
  6. package/lib/convertTypeScriptDiagnosticToLanguageFileDiagnostic.js +110 -0
  7. package/lib/createTypeScriptFileFromProgram.d.ts +12 -0
  8. package/lib/createTypeScriptFileFromProgram.js +41 -0
  9. package/lib/createTypeScriptFileFromProjectService.d.ts +8 -0
  10. package/lib/createTypeScriptFileFromProjectService.js +16 -0
  11. package/lib/directives/parseDirectivesFromTypeScriptFile.d.ts +13 -0
  12. package/lib/directives/parseDirectivesFromTypeScriptFile.js +36 -0
  13. package/lib/getFirstEnumValues.d.ts +36 -0
  14. package/lib/getFirstEnumValues.js +48 -0
  15. package/lib/getTSNodeRange.d.ts +9 -0
  16. package/lib/getTSNodeRange.js +11 -0
  17. package/lib/index.d.ts +22 -0
  18. package/lib/index.js +20 -0
  19. package/lib/language.d.ts +16 -0
  20. package/lib/language.js +23 -0
  21. package/lib/lib/convertTypeScriptDiagnosticToLanguageFileDiagnostic.d.ts +2 -0
  22. package/lib/lib/createTypeScriptFileFromProgram.d.ts +5 -0
  23. package/lib/lib/directives/parseDirectivesFromTypeScriptFile.d.ts +2 -0
  24. package/lib/lib/getTSNodeRange.d.ts +3 -0
  25. package/lib/lib/index.d.ts +21 -0
  26. package/lib/lib/language.d.ts +5 -0
  27. package/lib/lib/nodes.d.ts +1 -0
  28. package/lib/lib/prepareTypeScriptBasedLanguage.d.ts +2 -0
  29. package/lib/lib/types/ast.d.ts +2066 -0
  30. package/lib/lib/types/checker.d.ts +23 -0
  31. package/lib/lib/utils/declarationIncludesGlobal.d.ts +1 -0
  32. package/lib/lib/utils/getDeclarationsIfGlobal.d.ts +2 -0
  33. package/lib/lib/utils/getModifyingReferences.d.ts +3 -0
  34. package/lib/lib/utils/hasSameTokens.d.ts +1 -0
  35. package/lib/lib/utils/isBuiltinArrayMethod.d.ts +2 -0
  36. package/lib/lib/utils/isFunction.d.ts +1 -0
  37. package/lib/lib/utils/isGlobalDeclaration.d.ts +1 -0
  38. package/lib/lib/utils/isGlobalDeclarationOfName.d.ts +2 -0
  39. package/lib/lib/utils/isGlobalVariable.d.ts +1 -0
  40. package/lib/lib/utils/isInlineArrayCreation.d.ts +1 -0
  41. package/lib/lib/utils/unwrapParentParenthesizedExpressions.d.ts +1 -0
  42. package/lib/lib/utils/unwrapParenthesizedExpression.d.ts +1 -0
  43. package/lib/nodes.d.ts +202 -0
  44. package/lib/normalizeRange.d.ts +4 -0
  45. package/lib/normalizeRange.js +20 -0
  46. package/lib/prepareTypeScriptBasedLanguage.d.ts +16 -0
  47. package/lib/prepareTypeScriptBasedLanguage.js +55 -0
  48. package/lib/prepareTypeScriptFile.d.ts +14 -0
  49. package/lib/prepareTypeScriptFile.js +18 -0
  50. package/lib/types/ast.d.ts +2070 -0
  51. package/lib/types/checker.d.ts +23 -0
  52. package/lib/utils/declarationIncludesGlobal.d.ts +7 -0
  53. package/lib/utils/declarationIncludesGlobal.js +9 -0
  54. package/lib/utils/declarationsIncludeGlobal.d.ts +3 -0
  55. package/lib/utils/declarationsIncludeGlobal.js +10 -0
  56. package/lib/utils/getDeclarationsIfGlobal.d.ts +10 -0
  57. package/lib/utils/getDeclarationsIfGlobal.js +11 -0
  58. package/lib/utils/getModifyingReferences.d.ts +17 -0
  59. package/lib/utils/getModifyingReferences.js +33 -0
  60. package/lib/utils/hasSameTokens.d.ts +7 -0
  61. package/lib/utils/hasSameTokens.js +33 -0
  62. package/lib/utils/isBuiltinArrayMethod.d.ts +15 -0
  63. package/lib/utils/isBuiltinArrayMethod.js +10 -0
  64. package/lib/utils/isFunction.d.ts +9 -0
  65. package/lib/utils/isFunction.js +8 -0
  66. package/lib/utils/isGlobalDeclaration.d.ts +9 -0
  67. package/lib/utils/isGlobalDeclaration.js +10 -0
  68. package/lib/utils/isGlobalDeclarationOfName.d.ts +12 -0
  69. package/lib/utils/isGlobalDeclarationOfName.js +24 -0
  70. package/lib/utils/isGlobalVariable.d.ts +16 -0
  71. package/lib/utils/isGlobalVariable.js +20 -0
  72. package/lib/utils/isInlineArrayCreation.d.ts +13 -0
  73. package/lib/utils/isInlineArrayCreation.js +46 -0
  74. package/lib/utils/unwrapParentParenthesizedExpressions.d.ts +7 -0
  75. package/lib/utils/unwrapParentParenthesizedExpressions.js +10 -0
  76. package/lib/utils/unwrapParenthesizedExpression.d.ts +7 -0
  77. package/lib/utils/unwrapParenthesizedExpression.js +10 -0
  78. package/package.json +53 -0
@@ -0,0 +1,2066 @@
1
+ import ts from "typescript";
2
+
3
+ //#region lib/types/ast.d.ts
4
+ interface AbstractKeyword extends ts.Node {
5
+ readonly kind: ts.SyntaxKind.AbstractKeyword;
6
+ readonly parent: ModifierParent;
7
+ }
8
+ type AccessorDeclaration = GetAccessorDeclaration | SetAccessorDeclaration;
9
+ interface AccessorKeyword extends ts.Node {
10
+ readonly kind: ts.SyntaxKind.AccessorKeyword;
11
+ readonly parent: ModifierParent;
12
+ }
13
+ type AdditiveOperator = ts.SyntaxKind.MinusToken | ts.SyntaxKind.PlusToken;
14
+ type AdditiveOperatorOrHigher = AdditiveOperator | MultiplicativeOperatorOrHigher;
15
+ interface AnyKeyword extends ts.Node {
16
+ _typeNodeBrand: any;
17
+ readonly kind: ts.SyntaxKind.AnyKeyword;
18
+ readonly parent: TypeNodeParent;
19
+ }
20
+ type ArrayBindingElement = BindingElement | OmittedExpression;
21
+ interface ArrayBindingPattern extends ts.Node {
22
+ readonly elements: ts.NodeArray<ArrayBindingElement>;
23
+ readonly kind: ts.SyntaxKind.ArrayBindingPattern;
24
+ readonly parent: BindingElement | ParameterDeclaration | VariableDeclaration;
25
+ }
26
+ interface ArrayLiteralExpression extends ts.Node {
27
+ _expressionBrand: any;
28
+ _leftHandSideExpressionBrand: any;
29
+ _memberExpressionBrand: any;
30
+ _primaryExpressionBrand: any;
31
+ _unaryExpressionBrand: any;
32
+ _updateExpressionBrand: any;
33
+ readonly elements: ts.NodeArray<Expression>;
34
+ readonly kind: ts.SyntaxKind.ArrayLiteralExpression;
35
+ readonly parent: LeftHandSideExpressionParent;
36
+ }
37
+ interface ArrayTypeNode extends ts.Node {
38
+ _typeNodeBrand: any;
39
+ readonly elementType: TypeNode;
40
+ readonly kind: ts.SyntaxKind.ArrayType;
41
+ readonly parent: TypeNodeParent;
42
+ }
43
+ interface ArrowFunction extends ts.Node {
44
+ _declarationBrand: any;
45
+ _expressionBrand: any;
46
+ _flowContainerBrand: any;
47
+ _functionLikeDeclarationBrand: any;
48
+ _jsdocContainerBrand: any;
49
+ _localsContainerBrand: any;
50
+ readonly asteriskToken?: AsteriskToken | undefined;
51
+ readonly body: ConciseBody;
52
+ readonly equalsGreaterThanToken: EqualsGreaterThanToken;
53
+ readonly exclamationToken?: ExclamationToken | undefined;
54
+ readonly kind: ts.SyntaxKind.ArrowFunction;
55
+ readonly modifiers?: ts.NodeArray<Modifier>;
56
+ readonly name: never;
57
+ readonly parameters: ts.NodeArray<ParameterDeclaration>;
58
+ readonly parent: ExpressionParent;
59
+ readonly questionToken?: QuestionToken | undefined;
60
+ readonly type?: TypeNode | undefined;
61
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration> | undefined;
62
+ }
63
+ interface AsExpression extends ts.Node {
64
+ _expressionBrand: any;
65
+ readonly expression: Expression;
66
+ readonly kind: ts.SyntaxKind.AsExpression;
67
+ readonly parent: ExpressionParent;
68
+ readonly type: TypeNode;
69
+ }
70
+ interface AssertsKeyword extends ts.Node {
71
+ readonly kind: ts.SyntaxKind.AssertsKeyword;
72
+ readonly parent: TypePredicateNode;
73
+ }
74
+ type AssignmentOperator = CompoundAssignmentOperator | ts.SyntaxKind.EqualsToken;
75
+ type AssignmentOperatorOrHigher = AssignmentOperator | LogicalOperatorOrHigher | ts.SyntaxKind.QuestionQuestionToken;
76
+ interface AsteriskToken extends ts.Node {
77
+ readonly kind: ts.SyntaxKind.AsteriskToken;
78
+ readonly parent: AccessorDeclaration | ArrowFunction | ConstructorDeclaration | FunctionDeclaration | FunctionExpression | MethodDeclaration | YieldExpression;
79
+ }
80
+ interface AsyncKeyword extends ts.Node {
81
+ readonly kind: ts.SyntaxKind.AsyncKeyword;
82
+ readonly parent: ModifierParent;
83
+ }
84
+ interface AwaitExpression extends ts.Node {
85
+ _expressionBrand: any;
86
+ _unaryExpressionBrand: any;
87
+ readonly expression: UnaryExpression;
88
+ readonly kind: ts.SyntaxKind.AwaitExpression;
89
+ readonly parent: AwaitExpression | DeleteExpression | ExpressionParent | PrefixUnaryExpression | TypeAssertion | TypeOfExpression | VoidExpression;
90
+ }
91
+ interface AwaitKeyword extends ts.Node {
92
+ readonly kind: ts.SyntaxKind.AwaitKeyword;
93
+ readonly parent: ForOfStatement;
94
+ }
95
+ interface BigIntKeyword extends ts.Node {
96
+ _typeNodeBrand: any;
97
+ readonly kind: ts.SyntaxKind.BigIntKeyword;
98
+ readonly parent: TypeNodeParent;
99
+ }
100
+ interface BigIntLiteral extends ts.Node {
101
+ _expressionBrand: any;
102
+ _leftHandSideExpressionBrand: any;
103
+ _literalExpressionBrand: any;
104
+ _memberExpressionBrand: any;
105
+ _primaryExpressionBrand: any;
106
+ _unaryExpressionBrand: any;
107
+ _updateExpressionBrand: any;
108
+ hasExtendedUnicodeEscape?: boolean;
109
+ isUnterminated?: boolean;
110
+ readonly kind: ts.SyntaxKind.BigIntLiteral;
111
+ readonly parent: ClassStaticBlockDeclaration | ConstructorDeclaration | FunctionOrConstructorTypeNodeBase | JSDocFunctionType | LeftHandSideExpressionParent | LiteralTypeNode | MethodDeclaration | SemicolonClassElement | TypeElement;
112
+ text: string;
113
+ }
114
+ interface BinaryExpression extends ts.Node {
115
+ _declarationBrand: any;
116
+ _expressionBrand: any;
117
+ _jsdocContainerBrand: any;
118
+ readonly kind: ts.SyntaxKind.BinaryExpression;
119
+ readonly left: Expression;
120
+ readonly operatorToken: BinaryOperatorToken;
121
+ readonly parent: ExpressionParent;
122
+ readonly right: Expression;
123
+ }
124
+ type BinaryOperator = AssignmentOperatorOrHigher | ts.SyntaxKind.CommaToken;
125
+ interface BinaryOperatorToken extends ts.Node {
126
+ readonly kind: BinaryOperator;
127
+ readonly parent: BinaryExpression;
128
+ }
129
+ interface BindingElement extends ts.Node {
130
+ _declarationBrand: any;
131
+ _flowContainerBrand: any;
132
+ readonly dotDotDotToken?: DotDotDotToken;
133
+ readonly initializer?: Expression;
134
+ readonly kind: ts.SyntaxKind.BindingElement;
135
+ readonly name: BindingName;
136
+ readonly parent: BindingPattern;
137
+ readonly propertyName?: PropertyName;
138
+ }
139
+ type BindingName = BindingPattern | Identifier;
140
+ type BindingPattern = ArrayBindingPattern | ObjectBindingPattern;
141
+ type BitwiseOperator = ts.SyntaxKind.AmpersandToken | ts.SyntaxKind.BarToken | ts.SyntaxKind.CaretToken;
142
+ type BitwiseOperatorOrHigher = BitwiseOperator | EqualityOperatorOrHigher;
143
+ interface Block extends ts.Node {
144
+ _jsdocContainerBrand: any;
145
+ _localsContainerBrand: any;
146
+ _statementBrand: any;
147
+ readonly kind: ts.SyntaxKind.Block;
148
+ readonly parent: AccessorDeclaration | ArrowFunction | CatchClause | ClassStaticBlockDeclaration | ConstructorDeclaration | FunctionDeclaration | FunctionExpression | MethodDeclaration | StatementParent | TryStatement;
149
+ readonly statements: ts.NodeArray<Statement>;
150
+ }
151
+ interface BooleanKeyword extends ts.Node {
152
+ _typeNodeBrand: any;
153
+ readonly kind: ts.SyntaxKind.BooleanKeyword;
154
+ readonly parent: TypeNodeParent;
155
+ }
156
+ type BooleanLiteral = FalseLiteral | TrueLiteral;
157
+ interface BreakStatement extends ts.Node {
158
+ _flowContainerBrand: any;
159
+ _jsdocContainerBrand: any;
160
+ _statementBrand: any;
161
+ readonly kind: ts.SyntaxKind.BreakStatement;
162
+ readonly label?: Identifier;
163
+ readonly parent: StatementParent;
164
+ }
165
+ interface CallExpression extends ts.Node {
166
+ _declarationBrand: any;
167
+ _expressionBrand: any;
168
+ _leftHandSideExpressionBrand: any;
169
+ _unaryExpressionBrand: any;
170
+ _updateExpressionBrand: any;
171
+ readonly arguments: ts.NodeArray<Expression>;
172
+ readonly expression: LeftHandSideExpression;
173
+ readonly kind: ts.SyntaxKind.CallExpression;
174
+ readonly parent: LeftHandSideExpressionParent;
175
+ readonly questionDotToken?: QuestionDotToken;
176
+ readonly typeArguments?: ts.NodeArray<TypeNode>;
177
+ }
178
+ interface CallSignatureDeclaration extends ts.Node {
179
+ _declarationBrand: any;
180
+ _jsdocContainerBrand: any;
181
+ _localsContainerBrand: any;
182
+ _typeElementBrand: any;
183
+ readonly kind: ts.SyntaxKind.CallSignature;
184
+ readonly name?: PropertyName;
185
+ readonly parameters: ts.NodeArray<ParameterDeclaration>;
186
+ readonly parent: InterfaceDeclaration | MappedTypeNode | TypeLiteralNode;
187
+ readonly questionToken?: QuestionToken | undefined;
188
+ readonly type?: TypeNode | undefined;
189
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration> | undefined;
190
+ }
191
+ interface CaseBlock extends ts.Node {
192
+ _localsContainerBrand: any;
193
+ readonly clauses: ts.NodeArray<CaseOrDefaultClause>;
194
+ readonly kind: ts.SyntaxKind.CaseBlock;
195
+ readonly parent: SwitchStatement;
196
+ }
197
+ interface CaseClause extends ts.Node {
198
+ _jsdocContainerBrand: any;
199
+ readonly expression: Expression;
200
+ readonly kind: ts.SyntaxKind.CaseClause;
201
+ readonly parent: CaseBlock;
202
+ readonly statements: ts.NodeArray<Statement>;
203
+ }
204
+ type CaseOrDefaultClause = CaseClause | DefaultClause;
205
+ interface CatchClause extends ts.Node {
206
+ _localsContainerBrand: any;
207
+ readonly block: Block;
208
+ readonly kind: ts.SyntaxKind.CatchClause;
209
+ readonly parent: TryStatement;
210
+ readonly variableDeclaration?: VariableDeclaration;
211
+ }
212
+ interface ClassDeclaration extends ts.Node {
213
+ readonly kind: ts.SyntaxKind.ClassDeclaration;
214
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
215
+ readonly parent: StatementParent;
216
+ /** May be undefined in `export default class { ... }`. */
217
+ _declarationBrand: any;
218
+ _jsdocContainerBrand: any;
219
+ _statementBrand: any;
220
+ readonly heritageClauses?: ts.NodeArray<HeritageClause>;
221
+ readonly members: ts.NodeArray<ClassElement>;
222
+ readonly name?: Identifier;
223
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration>;
224
+ }
225
+ type ClassElement = ClassStaticBlockDeclaration | ConstructorDeclaration | GetAccessorDeclaration | IndexSignatureDeclaration | MethodDeclaration | PropertyDeclaration | SemicolonClassElement | SetAccessorDeclaration;
226
+ interface ClassExpression extends ts.Node {
227
+ _declarationBrand: any;
228
+ _expressionBrand: any;
229
+ _jsdocContainerBrand: any;
230
+ _leftHandSideExpressionBrand: any;
231
+ _memberExpressionBrand: any;
232
+ _primaryExpressionBrand: any;
233
+ _unaryExpressionBrand: any;
234
+ _updateExpressionBrand: any;
235
+ readonly heritageClauses?: ts.NodeArray<HeritageClause>;
236
+ readonly kind: ts.SyntaxKind.ClassExpression;
237
+ readonly members: ts.NodeArray<ClassElement>;
238
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
239
+ readonly name?: Identifier;
240
+ readonly parent: LeftHandSideExpressionParent;
241
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration>;
242
+ }
243
+ interface ClassStaticBlockDeclaration extends ts.Node {
244
+ _classElementBrand: any;
245
+ _declarationBrand: any;
246
+ _jsdocContainerBrand: any;
247
+ _localsContainerBrand: any;
248
+ readonly body: Block;
249
+ readonly kind: ts.SyntaxKind.ClassStaticBlockDeclaration;
250
+ readonly name?: PropertyName;
251
+ readonly parent: ClassDeclaration | ClassExpression;
252
+ }
253
+ interface ColonToken extends ts.Node {
254
+ readonly kind: ts.SyntaxKind.ColonToken;
255
+ readonly parent: ConditionalExpression;
256
+ }
257
+ interface CommaListExpression extends ts.Node {
258
+ _expressionBrand: any;
259
+ readonly elements: ts.NodeArray<Expression>;
260
+ readonly kind: ts.SyntaxKind.CommaListExpression;
261
+ readonly parent: ExpressionParent;
262
+ }
263
+ type CompoundAssignmentOperator = ts.SyntaxKind.AmpersandAmpersandEqualsToken | ts.SyntaxKind.AmpersandEqualsToken | ts.SyntaxKind.AsteriskAsteriskEqualsToken | ts.SyntaxKind.AsteriskEqualsToken | ts.SyntaxKind.BarBarEqualsToken | ts.SyntaxKind.BarEqualsToken | ts.SyntaxKind.CaretEqualsToken | ts.SyntaxKind.GreaterThanGreaterThanEqualsToken | ts.SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken | ts.SyntaxKind.LessThanLessThanEqualsToken | ts.SyntaxKind.MinusEqualsToken | ts.SyntaxKind.PercentEqualsToken | ts.SyntaxKind.PlusEqualsToken | ts.SyntaxKind.QuestionQuestionEqualsToken | ts.SyntaxKind.SlashEqualsToken;
264
+ interface ComputedPropertyName extends ts.Node {
265
+ readonly expression: Expression;
266
+ readonly kind: ts.SyntaxKind.ComputedPropertyName;
267
+ readonly parent: BindingElement | ClassStaticBlockDeclaration | ConstructorDeclaration | EnumMember | FunctionOrConstructorTypeNodeBase | JSDocFunctionType | JsxSpreadAttribute | MethodDeclaration | PropertyAssignment | PropertyDeclaration | SemicolonClassElement | SpreadAssignment | TypeElement;
268
+ }
269
+ type ConciseBody = Expression | FunctionBody;
270
+ interface ConditionalExpression extends ts.Node {
271
+ _expressionBrand: any;
272
+ readonly colonToken: ColonToken;
273
+ readonly condition: Expression;
274
+ readonly kind: ts.SyntaxKind.ConditionalExpression;
275
+ readonly parent: ExpressionParent;
276
+ readonly questionToken: QuestionToken;
277
+ readonly whenFalse: Expression;
278
+ readonly whenTrue: Expression;
279
+ }
280
+ interface ConditionalTypeNode extends ts.Node {
281
+ _localsContainerBrand: any;
282
+ _typeNodeBrand: any;
283
+ readonly checkType: TypeNode;
284
+ readonly extendsType: TypeNode;
285
+ readonly falseType: TypeNode;
286
+ readonly kind: ts.SyntaxKind.ConditionalType;
287
+ readonly parent: TypeNodeParent;
288
+ readonly trueType: TypeNode;
289
+ }
290
+ interface ConstKeyword extends ts.Node {
291
+ readonly kind: ts.SyntaxKind.ConstKeyword;
292
+ readonly parent: ModifierParent;
293
+ }
294
+ interface ConstructorDeclaration extends ts.Node {
295
+ _classElementBrand: any;
296
+ _declarationBrand: any;
297
+ _functionLikeDeclarationBrand: any;
298
+ _jsdocContainerBrand: any;
299
+ _localsContainerBrand: any;
300
+ readonly asteriskToken?: AsteriskToken | undefined;
301
+ readonly body?: FunctionBody | undefined;
302
+ readonly exclamationToken?: ExclamationToken | undefined;
303
+ readonly kind: ts.SyntaxKind.Constructor;
304
+ readonly modifiers?: ts.NodeArray<ModifierLike> | undefined;
305
+ readonly name?: PropertyName;
306
+ readonly parameters: ts.NodeArray<ParameterDeclaration>;
307
+ readonly parent: ClassDeclaration | ClassExpression;
308
+ readonly questionToken?: QuestionToken | undefined;
309
+ readonly type?: TypeNode | undefined;
310
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration> | undefined;
311
+ }
312
+ interface ConstructorTypeNode extends ts.Node {
313
+ _declarationBrand: any;
314
+ _jsdocContainerBrand: any;
315
+ _localsContainerBrand: any;
316
+ _typeNodeBrand: any;
317
+ readonly kind: ts.SyntaxKind.ConstructorType;
318
+ readonly modifiers?: ts.NodeArray<Modifier>;
319
+ readonly name?: PropertyName;
320
+ readonly parameters: ts.NodeArray<ParameterDeclaration>;
321
+ readonly parent: TypeNodeParent;
322
+ readonly type: TypeNode;
323
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration> | undefined;
324
+ }
325
+ interface ConstructSignatureDeclaration extends ts.Node {
326
+ _declarationBrand: any;
327
+ _jsdocContainerBrand: any;
328
+ _localsContainerBrand: any;
329
+ _typeElementBrand: any;
330
+ readonly kind: ts.SyntaxKind.ConstructSignature;
331
+ readonly name?: PropertyName;
332
+ readonly parameters: ts.NodeArray<ParameterDeclaration>;
333
+ readonly parent: InterfaceDeclaration | MappedTypeNode | TypeLiteralNode;
334
+ readonly questionToken?: QuestionToken | undefined;
335
+ readonly type?: TypeNode | undefined;
336
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration> | undefined;
337
+ }
338
+ interface ContinueStatement extends ts.Node {
339
+ _flowContainerBrand: any;
340
+ _jsdocContainerBrand: any;
341
+ _statementBrand: any;
342
+ readonly kind: ts.SyntaxKind.ContinueStatement;
343
+ readonly label?: Identifier;
344
+ readonly parent: StatementParent;
345
+ }
346
+ interface DebuggerStatement extends ts.Node {
347
+ _flowContainerBrand: any;
348
+ _jsdocContainerBrand: any;
349
+ _statementBrand: any;
350
+ readonly kind: ts.SyntaxKind.DebuggerStatement;
351
+ readonly parent: StatementParent;
352
+ }
353
+ type DeclarationStatement = ClassDeclaration | EnumDeclaration | ExportAssignment | ExportDeclaration | FunctionDeclaration | ImportEqualsDeclaration | InterfaceDeclaration | MissingDeclaration | ModuleDeclaration | NamespaceExportDeclaration | TypeAliasDeclaration;
354
+ interface DeclareKeyword extends ts.Node {
355
+ readonly kind: ts.SyntaxKind.DeclareKeyword;
356
+ readonly parent: ModifierParent;
357
+ }
358
+ interface Decorator extends ts.Node {
359
+ readonly expression: LeftHandSideExpression;
360
+ readonly kind: ts.SyntaxKind.Decorator;
361
+ readonly parent: AccessorDeclaration | ClassDeclaration | ClassExpression | ConstructorDeclaration | EnumDeclaration | ExportAssignment | ExportDeclaration | FunctionDeclaration | ImportDeclaration | ImportEqualsDeclaration | IndexSignatureDeclaration | InterfaceDeclaration | JSDocNamespaceDeclaration | MethodDeclaration | ModuleDeclaration | NamespaceDeclaration | ParameterDeclaration | PropertyDeclaration | TypeAliasDeclaration | VariableStatement;
362
+ }
363
+ interface DefaultClause extends ts.Node {
364
+ readonly kind: ts.SyntaxKind.DefaultClause;
365
+ readonly parent: CaseBlock;
366
+ readonly statements: ts.NodeArray<Statement>;
367
+ }
368
+ interface DefaultKeyword extends ts.Node {
369
+ readonly kind: ts.SyntaxKind.DefaultKeyword;
370
+ readonly parent: ModifierParent;
371
+ }
372
+ interface DeleteExpression extends ts.Node {
373
+ _expressionBrand: any;
374
+ _unaryExpressionBrand: any;
375
+ readonly expression: UnaryExpression;
376
+ readonly kind: ts.SyntaxKind.DeleteExpression;
377
+ readonly parent: AwaitExpression | DeleteExpression | ExpressionParent | PrefixUnaryExpression | TypeAssertion | TypeOfExpression | VoidExpression;
378
+ }
379
+ interface DoStatement extends ts.Node {
380
+ _flowContainerBrand: any;
381
+ _jsdocContainerBrand: any;
382
+ _statementBrand: any;
383
+ readonly expression: Expression;
384
+ readonly kind: ts.SyntaxKind.DoStatement;
385
+ readonly parent: StatementParent;
386
+ readonly statement: Statement;
387
+ }
388
+ interface DotDotDotToken extends ts.Node {
389
+ readonly kind: ts.SyntaxKind.DotDotDotToken;
390
+ readonly parent: BindingElement | ParameterDeclaration;
391
+ }
392
+ interface ElementAccessExpression extends ts.Node {
393
+ _declarationBrand: any;
394
+ _expressionBrand: any;
395
+ _flowContainerBrand: any;
396
+ _jsdocContainerBrand: any;
397
+ _leftHandSideExpressionBrand: any;
398
+ _memberExpressionBrand: any;
399
+ _unaryExpressionBrand: any;
400
+ _updateExpressionBrand: any;
401
+ readonly argumentExpression: Expression;
402
+ readonly expression: LeftHandSideExpression;
403
+ readonly kind: ts.SyntaxKind.ElementAccessExpression;
404
+ readonly parent: LeftHandSideExpressionParent;
405
+ readonly questionDotToken?: QuestionDotToken;
406
+ }
407
+ interface EmptyStatement extends ts.Node {
408
+ _jsdocContainerBrand: any;
409
+ _statementBrand: any;
410
+ readonly kind: ts.SyntaxKind.EmptyStatement;
411
+ readonly parent: StatementParent;
412
+ }
413
+ type EntityName = Identifier | QualifiedName;
414
+ interface EnumDeclaration extends ts.Node {
415
+ _declarationBrand: any;
416
+ _jsdocContainerBrand: any;
417
+ _statementBrand: any;
418
+ readonly kind: ts.SyntaxKind.EnumDeclaration;
419
+ readonly members: ts.NodeArray<EnumMember>;
420
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
421
+ readonly name: Identifier;
422
+ readonly parent: StatementParent;
423
+ }
424
+ interface EnumMember extends ts.Node {
425
+ _declarationBrand: any;
426
+ _jsdocContainerBrand: any;
427
+ readonly initializer?: Expression;
428
+ readonly kind: ts.SyntaxKind.EnumMember;
429
+ readonly name: PropertyName;
430
+ readonly parent: EnumDeclaration;
431
+ }
432
+ type EqualityOperator = ts.SyntaxKind.EqualsEqualsEqualsToken | ts.SyntaxKind.EqualsEqualsToken | ts.SyntaxKind.ExclamationEqualsEqualsToken | ts.SyntaxKind.ExclamationEqualsToken;
433
+ type EqualityOperatorOrHigher = EqualityOperator | RelationalOperatorOrHigher;
434
+ interface EqualsGreaterThanToken extends ts.Node {
435
+ readonly kind: ts.SyntaxKind.EqualsGreaterThanToken;
436
+ readonly parent: ArrowFunction;
437
+ }
438
+ interface EqualsToken extends ts.Node {
439
+ readonly kind: ts.SyntaxKind.EqualsToken;
440
+ readonly parent: ShorthandPropertyAssignment;
441
+ }
442
+ interface ExclamationToken extends ts.Node {
443
+ readonly kind: ts.SyntaxKind.ExclamationToken;
444
+ readonly parent: AccessorDeclaration | ArrowFunction | ConstructorDeclaration | FunctionDeclaration | FunctionExpression | MethodDeclaration | PropertyDeclaration | VariableDeclaration;
445
+ }
446
+ type ExponentiationOperator = ts.SyntaxKind.AsteriskAsteriskToken;
447
+ interface ExportAssignment extends ts.Node {
448
+ _declarationBrand: any;
449
+ _jsdocContainerBrand: any;
450
+ _statementBrand: any;
451
+ readonly expression: Expression;
452
+ readonly isExportEquals?: boolean;
453
+ readonly kind: ts.SyntaxKind.ExportAssignment;
454
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
455
+ readonly name?: Identifier | NumericLiteral | StringLiteral;
456
+ readonly parent: StatementParent;
457
+ }
458
+ interface ExportDeclaration extends ts.Node {
459
+ readonly isTypeOnly: boolean;
460
+ readonly kind: ts.SyntaxKind.ExportDeclaration;
461
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
462
+ readonly parent: StatementParent;
463
+ /** Will not be assigned in the case of `export * from "foo";` */
464
+ readonly exportClause?: NamedExportBindings;
465
+ /** If this is not a StringLiteral it will be a grammar error. */
466
+ _declarationBrand: any;
467
+ _jsdocContainerBrand: any;
468
+ _statementBrand: any;
469
+ readonly attributes?: ImportAttributes;
470
+ readonly moduleSpecifier?: Expression;
471
+ readonly name?: Identifier | NumericLiteral | StringLiteral;
472
+ }
473
+ interface ExportKeyword extends ts.Node {
474
+ readonly kind: ts.SyntaxKind.ExportKeyword;
475
+ readonly parent: ModifierParent;
476
+ }
477
+ interface ExportSpecifier extends ts.Node {
478
+ _declarationBrand: any;
479
+ _jsdocContainerBrand: any;
480
+ readonly isTypeOnly: boolean;
481
+ readonly kind: ts.SyntaxKind.ExportSpecifier;
482
+ readonly name: ModuleExportName;
483
+ readonly parent: NamedExports;
484
+ readonly propertyName?: ModuleExportName;
485
+ }
486
+ type Expression = ArrowFunction | AsExpression | BinaryExpression | CommaListExpression | ConditionalExpression | JsxClosingFragment | JsxExpression | JsxOpeningElement | JsxOpeningFragment | OmittedExpression | SatisfiesExpression | SpreadElement | SyntheticExpression | UnaryExpression | YieldExpression;
487
+ interface ExpressionStatement extends ts.Node {
488
+ _flowContainerBrand: any;
489
+ _jsdocContainerBrand: any;
490
+ _statementBrand: any;
491
+ readonly expression: Expression;
492
+ readonly kind: ts.SyntaxKind.ExpressionStatement;
493
+ readonly parent: StatementParent;
494
+ }
495
+ interface ExpressionWithTypeArguments extends ts.Node {
496
+ _expressionBrand: any;
497
+ _leftHandSideExpressionBrand: any;
498
+ _memberExpressionBrand: any;
499
+ _typeNodeBrand: any;
500
+ _unaryExpressionBrand: any;
501
+ _updateExpressionBrand: any;
502
+ readonly expression: LeftHandSideExpression;
503
+ readonly kind: ts.SyntaxKind.ExpressionWithTypeArguments;
504
+ readonly parent: ArrayLiteralExpression | ArrayTypeNode | ArrowFunction | AsExpression | AwaitExpression | BinaryExpression | BindingElement | CallExpression | CallSignatureDeclaration | CaseClause | CommaListExpression | ComputedPropertyName | ConditionalExpression | ConditionalTypeNode | ConstructorDeclaration | ConstructSignatureDeclaration | Decorator | DeleteExpression | ElementAccessExpression | EnumMember | ExportAssignment | ExportDeclaration | ExpressionStatement | ExternalModuleReference | FunctionDeclaration | FunctionExpression | FunctionOrConstructorTypeNodeBase | HeritageClause | IfStatement | ImportAttribute | ImportDeclaration | IndexedAccessTypeNode | IndexSignatureDeclaration | IntersectionTypeNode | IterationStatement | JSDocFunctionType | JSDocNamepathType | JSDocNonNullableType | JSDocNullableType | JSDocOptionalType | JSDocTypeExpression | JSDocVariadicType | JsxExpression | JsxOpeningElement | JsxSelfClosingElement | JsxSpreadAttribute | MappedTypeNode | MethodSignature | NamedTupleMember | NewExpression | NodeWithTypeArguments | NonNullExpression | ObjectLiteralElementLike | OptionalTypeNode | ParameterDeclaration | ParenthesizedExpression | ParenthesizedTypeNode | PartiallyEmittedExpression | PostfixUnaryExpression | PrefixUnaryExpression | PropertyAccessExpression | PropertyDeclaration | PropertySignature | RestTypeNode | ReturnStatement | SatisfiesExpression | SpreadElement | SwitchStatement | TaggedTemplateExpression | TemplateLiteralTypeSpan | TemplateSpan | ThrowStatement | TupleTypeNode | TypeAliasDeclaration | TypeAssertion | TypeOfExpression | TypeOperatorNode | TypeParameterDeclaration | TypePredicateNode | UnionTypeNode | VariableDeclaration | VoidExpression | WithStatement | YieldExpression;
505
+ readonly typeArguments?: ts.NodeArray<TypeNode>;
506
+ }
507
+ interface ExternalModuleReference extends ts.Node {
508
+ readonly expression: Expression;
509
+ readonly kind: ts.SyntaxKind.ExternalModuleReference;
510
+ readonly parent: ImportEqualsDeclaration;
511
+ }
512
+ interface FalseLiteral extends ts.Node {
513
+ _expressionBrand: any;
514
+ _leftHandSideExpressionBrand: any;
515
+ _memberExpressionBrand: any;
516
+ _primaryExpressionBrand: any;
517
+ _unaryExpressionBrand: any;
518
+ _updateExpressionBrand: any;
519
+ readonly kind: ts.SyntaxKind.FalseKeyword;
520
+ readonly parent: LeftHandSideExpressionParent | LiteralTypeNode;
521
+ }
522
+ type ForInitializer = Expression | VariableDeclarationList;
523
+ interface ForInStatement extends ts.Node {
524
+ _flowContainerBrand: any;
525
+ _jsdocContainerBrand: any;
526
+ _localsContainerBrand: any;
527
+ _statementBrand: any;
528
+ readonly expression: Expression;
529
+ readonly initializer: ForInitializer;
530
+ readonly kind: ts.SyntaxKind.ForInStatement;
531
+ readonly parent: StatementParent;
532
+ readonly statement: Statement;
533
+ }
534
+ interface ForOfStatement extends ts.Node {
535
+ _flowContainerBrand: any;
536
+ _jsdocContainerBrand: any;
537
+ _localsContainerBrand: any;
538
+ _statementBrand: any;
539
+ readonly awaitModifier?: AwaitKeyword;
540
+ readonly expression: Expression;
541
+ readonly initializer: ForInitializer;
542
+ readonly kind: ts.SyntaxKind.ForOfStatement;
543
+ readonly parent: StatementParent;
544
+ readonly statement: Statement;
545
+ }
546
+ interface ForStatement extends ts.Node {
547
+ _flowContainerBrand: any;
548
+ _jsdocContainerBrand: any;
549
+ _localsContainerBrand: any;
550
+ _statementBrand: any;
551
+ readonly condition?: Expression;
552
+ readonly incrementor?: Expression;
553
+ readonly initializer?: ForInitializer;
554
+ readonly kind: ts.SyntaxKind.ForStatement;
555
+ readonly parent: StatementParent;
556
+ readonly statement: Statement;
557
+ }
558
+ type FunctionBody = Block;
559
+ interface FunctionDeclaration extends ts.Node {
560
+ _declarationBrand: any;
561
+ _functionLikeDeclarationBrand: any;
562
+ _jsdocContainerBrand: any;
563
+ _localsContainerBrand: any;
564
+ _statementBrand: any;
565
+ readonly asteriskToken?: AsteriskToken | undefined;
566
+ readonly body?: FunctionBody;
567
+ readonly exclamationToken?: ExclamationToken | undefined;
568
+ readonly kind: ts.SyntaxKind.FunctionDeclaration;
569
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
570
+ readonly name?: Identifier;
571
+ readonly parameters: ts.NodeArray<ParameterDeclaration>;
572
+ readonly parent: StatementParent;
573
+ readonly questionToken?: QuestionToken | undefined;
574
+ readonly type?: TypeNode | undefined;
575
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration> | undefined;
576
+ }
577
+ interface FunctionExpression extends ts.Node {
578
+ _declarationBrand: any;
579
+ _expressionBrand: any;
580
+ _flowContainerBrand: any;
581
+ _functionLikeDeclarationBrand: any;
582
+ _jsdocContainerBrand: any;
583
+ _leftHandSideExpressionBrand: any;
584
+ _localsContainerBrand: any;
585
+ _memberExpressionBrand: any;
586
+ _primaryExpressionBrand: any;
587
+ _unaryExpressionBrand: any;
588
+ _updateExpressionBrand: any;
589
+ readonly asteriskToken?: AsteriskToken | undefined;
590
+ readonly body: FunctionBody;
591
+ readonly exclamationToken?: ExclamationToken | undefined;
592
+ readonly kind: ts.SyntaxKind.FunctionExpression;
593
+ readonly modifiers?: ts.NodeArray<Modifier>;
594
+ readonly name?: Identifier;
595
+ readonly parameters: ts.NodeArray<ParameterDeclaration>;
596
+ readonly parent: LeftHandSideExpressionParent;
597
+ readonly questionToken?: QuestionToken | undefined;
598
+ readonly type?: TypeNode | undefined;
599
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration> | undefined;
600
+ }
601
+ type FunctionOrConstructorTypeNodeBase = ConstructorTypeNode | FunctionTypeNode;
602
+ interface FunctionTypeNode extends ts.Node {
603
+ _declarationBrand: any;
604
+ _jsdocContainerBrand: any;
605
+ _localsContainerBrand: any;
606
+ _typeNodeBrand: any;
607
+ readonly kind: ts.SyntaxKind.FunctionType;
608
+ readonly name?: PropertyName;
609
+ readonly parameters: ts.NodeArray<ParameterDeclaration>;
610
+ readonly parent: TypeNodeParent;
611
+ readonly type: TypeNode;
612
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration> | undefined;
613
+ }
614
+ interface GetAccessorDeclaration extends ts.Node {
615
+ _classElementBrand: any;
616
+ _declarationBrand: any;
617
+ _flowContainerBrand: any;
618
+ _functionLikeDeclarationBrand: any;
619
+ _jsdocContainerBrand: any;
620
+ _localsContainerBrand: any;
621
+ _objectLiteralBrand: any;
622
+ _typeElementBrand: any;
623
+ readonly asteriskToken?: AsteriskToken | undefined;
624
+ readonly body?: FunctionBody;
625
+ readonly exclamationToken?: ExclamationToken | undefined;
626
+ readonly kind: ts.SyntaxKind.GetAccessor;
627
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
628
+ readonly name: PropertyName;
629
+ readonly parameters: ts.NodeArray<ParameterDeclaration>;
630
+ readonly parent: ClassDeclaration | ClassExpression | InterfaceDeclaration | MappedTypeNode | ObjectLiteralExpressionBase | TypeLiteralNode;
631
+ readonly questionToken?: QuestionToken | undefined;
632
+ readonly type?: TypeNode | undefined;
633
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration> | undefined;
634
+ }
635
+ interface HeritageClause extends ts.Node {
636
+ readonly kind: ts.SyntaxKind.HeritageClause;
637
+ readonly parent: ClassDeclaration | ClassExpression | InterfaceDeclaration;
638
+ readonly token: ts.SyntaxKind.ExtendsKeyword | ts.SyntaxKind.ImplementsKeyword;
639
+ readonly types: ts.NodeArray<ExpressionWithTypeArguments>;
640
+ }
641
+ interface Identifier extends ts.Node {
642
+ readonly kind: ts.SyntaxKind.Identifier;
643
+ readonly parent: ArrayLiteralExpression | ArrowFunction | AsExpression | AwaitExpression | BinaryExpression | BindingElement | BreakStatement | CallExpression | CaseClause | ClassExpression | ClassStaticBlockDeclaration | CommaListExpression | ComputedPropertyName | ConditionalExpression | ConstructorDeclaration | ContinueStatement | DeclarationStatement | Decorator | DeleteExpression | ElementAccessExpression | EnumMember | ExportSpecifier | ExpressionStatement | ExternalModuleReference | FunctionExpression | FunctionOrConstructorTypeNodeBase | IfStatement | ImportAttribute | ImportClause | ImportDeclaration | ImportSpecifier | IterationStatement | JSDocFunctionType | JSDocLink | JSDocLinkCode | JSDocLinkPlain | JSDocMemberName | JSDocNamespaceDeclaration | JSDocPropertyLikeTag | JSDocReturnTag | JSDocTemplateTag | JsxAttributeLike | JsxClosingElement | JsxExpression | JsxNamespacedName | JsxOpeningElement | JsxSelfClosingElement | JsxTagNamePropertyAccess | LabeledStatement | MetaProperty | MethodDeclaration | NamedTupleMember | NamespaceDeclaration | NamespaceExport | NamespaceImport | NewExpression | NodeWithTypeArguments | NonNullExpression | ParameterDeclaration | ParenthesizedExpression | PartiallyEmittedExpression | PostfixUnaryExpression | PrefixUnaryExpression | PropertyAccessExpression | PropertyAssignment | PropertyDeclaration | QualifiedName | ReturnStatement | SatisfiesExpression | SemicolonClassElement | ShorthandPropertyAssignment | SpreadAssignment | SpreadElement | SwitchStatement | TaggedTemplateExpression | TemplateSpan | ThrowStatement | TypeAssertion | TypeElement | TypeOfExpression | TypeParameterDeclaration | TypePredicateNode | VariableDeclaration | VoidExpression | WithStatement | YieldExpression;
644
+ /**
645
+ * Prefer to use `id.unescapedText`. (Note: This is available only in services, not internally to the TypeScript compiler.)
646
+ * Text of identifier, but if the identifier begins with two underscores, this will begin with three.
647
+ */
648
+ _declarationBrand: any;
649
+ _expressionBrand: any;
650
+ _flowContainerBrand: any;
651
+ _jsdocContainerBrand: any;
652
+ _leftHandSideExpressionBrand: any;
653
+ _memberExpressionBrand: any;
654
+ _primaryExpressionBrand: any;
655
+ _unaryExpressionBrand: any;
656
+ _updateExpressionBrand: any;
657
+ readonly escapedText: ts.__String;
658
+ readonly text: string;
659
+ }
660
+ interface IfStatement extends ts.Node {
661
+ _flowContainerBrand: any;
662
+ _jsdocContainerBrand: any;
663
+ _statementBrand: any;
664
+ readonly elseStatement?: Statement;
665
+ readonly expression: Expression;
666
+ readonly kind: ts.SyntaxKind.IfStatement;
667
+ readonly parent: StatementParent;
668
+ readonly thenStatement: Statement;
669
+ }
670
+ interface ImportAttribute extends ts.Node {
671
+ readonly kind: ts.SyntaxKind.ImportAttribute;
672
+ readonly name: ImportAttributeName;
673
+ readonly parent: ImportAttributes;
674
+ readonly value: Expression;
675
+ }
676
+ type ImportAttributeName = Identifier | StringLiteral;
677
+ interface ImportAttributes extends ts.Node {
678
+ readonly elements: ts.NodeArray<ImportAttribute>;
679
+ readonly kind: ts.SyntaxKind.ImportAttributes;
680
+ readonly multiLine?: boolean;
681
+ readonly parent: ExportDeclaration | ImportDeclaration | ImportTypeNode;
682
+ readonly token: ts.SyntaxKind.AssertKeyword | ts.SyntaxKind.WithKeyword;
683
+ }
684
+ interface ImportClause extends ts.Node {
685
+ readonly kind: ts.SyntaxKind.ImportClause;
686
+ readonly parent: ImportDeclaration;
687
+ /** @deprecated Use `phaseModifier` instead */
688
+ _declarationBrand: any;
689
+ readonly isTypeOnly: boolean;
690
+ readonly name?: Identifier;
691
+ readonly namedBindings?: NamedImportBindings;
692
+ readonly phaseModifier: ImportPhaseModifierSyntaxKind | undefined;
693
+ }
694
+ interface ImportDeclaration extends ts.Node {
695
+ readonly importClause?: ImportClause;
696
+ readonly kind: ts.SyntaxKind.ImportDeclaration;
697
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
698
+ readonly parent: StatementParent;
699
+ /** If this is not a StringLiteral it will be a grammar error. */
700
+ _jsdocContainerBrand: any;
701
+ _statementBrand: any;
702
+ readonly attributes?: ImportAttributes;
703
+ readonly moduleSpecifier: Expression;
704
+ }
705
+ interface ImportEqualsDeclaration extends ts.Node {
706
+ _declarationBrand: any;
707
+ _jsdocContainerBrand: any;
708
+ _statementBrand: any;
709
+ readonly isTypeOnly: boolean;
710
+ readonly kind: ts.SyntaxKind.ImportEqualsDeclaration;
711
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
712
+ readonly moduleReference: ModuleReference;
713
+ readonly name: Identifier;
714
+ readonly parent: StatementParent;
715
+ }
716
+ interface ImportExpression extends ts.Node {
717
+ _expressionBrand: any;
718
+ _leftHandSideExpressionBrand: any;
719
+ _memberExpressionBrand: any;
720
+ _primaryExpressionBrand: any;
721
+ _unaryExpressionBrand: any;
722
+ _updateExpressionBrand: any;
723
+ readonly kind: ts.SyntaxKind.ImportKeyword;
724
+ readonly parent: LeftHandSideExpressionParent;
725
+ }
726
+ type ImportPhaseModifierSyntaxKind = ts.SyntaxKind.DeferKeyword | ts.SyntaxKind.TypeKeyword;
727
+ interface ImportSpecifier extends ts.Node {
728
+ _declarationBrand: any;
729
+ readonly isTypeOnly: boolean;
730
+ readonly kind: ts.SyntaxKind.ImportSpecifier;
731
+ readonly name: Identifier;
732
+ readonly parent: NamedImports;
733
+ readonly propertyName?: ModuleExportName;
734
+ }
735
+ interface ImportTypeNode extends ts.Node {
736
+ _typeNodeBrand: any;
737
+ readonly argument: TypeNode;
738
+ readonly attributes?: ImportAttributes;
739
+ readonly isTypeOf: boolean;
740
+ readonly kind: ts.SyntaxKind.ImportType;
741
+ readonly parent: TypeNodeParent;
742
+ readonly qualifier?: EntityName;
743
+ readonly typeArguments?: ts.NodeArray<TypeNode>;
744
+ }
745
+ interface IndexedAccessTypeNode extends ts.Node {
746
+ _typeNodeBrand: any;
747
+ readonly indexType: TypeNode;
748
+ readonly kind: ts.SyntaxKind.IndexedAccessType;
749
+ readonly objectType: TypeNode;
750
+ readonly parent: TypeNodeParent;
751
+ }
752
+ interface IndexSignatureDeclaration extends ts.Node {
753
+ _classElementBrand: any;
754
+ _declarationBrand: any;
755
+ _jsdocContainerBrand: any;
756
+ _localsContainerBrand: any;
757
+ _typeElementBrand: any;
758
+ readonly kind: ts.SyntaxKind.IndexSignature;
759
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
760
+ readonly name?: PropertyName;
761
+ readonly parameters: ts.NodeArray<ParameterDeclaration>;
762
+ readonly parent: ClassDeclaration | ClassExpression | InterfaceDeclaration | MappedTypeNode | TypeLiteralNode;
763
+ readonly questionToken?: QuestionToken | undefined;
764
+ readonly type: TypeNode;
765
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration> | undefined;
766
+ }
767
+ interface InferTypeNode extends ts.Node {
768
+ _typeNodeBrand: any;
769
+ readonly kind: ts.SyntaxKind.InferType;
770
+ readonly parent: TypeNodeParent;
771
+ readonly typeParameter: TypeParameterDeclaration;
772
+ }
773
+ interface InKeyword extends ts.Node {
774
+ readonly kind: ts.SyntaxKind.InKeyword;
775
+ readonly parent: ModifierParent;
776
+ }
777
+ interface InterfaceDeclaration extends ts.Node {
778
+ _declarationBrand: any;
779
+ _jsdocContainerBrand: any;
780
+ _statementBrand: any;
781
+ readonly heritageClauses?: ts.NodeArray<HeritageClause>;
782
+ readonly kind: ts.SyntaxKind.InterfaceDeclaration;
783
+ readonly members: ts.NodeArray<TypeElement>;
784
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
785
+ readonly name: Identifier;
786
+ readonly parent: StatementParent;
787
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration>;
788
+ }
789
+ interface IntersectionTypeNode extends ts.Node {
790
+ _typeNodeBrand: any;
791
+ readonly kind: ts.SyntaxKind.IntersectionType;
792
+ readonly parent: TypeNodeParent;
793
+ readonly types: ts.NodeArray<TypeNode>;
794
+ }
795
+ interface IntrinsicKeyword extends ts.Node {
796
+ _typeNodeBrand: any;
797
+ readonly kind: ts.SyntaxKind.IntrinsicKeyword;
798
+ readonly parent: TypeNodeParent;
799
+ }
800
+ type IterationStatement = DoStatement | ForInStatement | ForOfStatement | ForStatement | WhileStatement;
801
+ interface JSDocAllType extends ts.Node {
802
+ _jsDocTypeBrand: any;
803
+ _typeNodeBrand: any;
804
+ readonly kind: ts.SyntaxKind.JSDocAllType;
805
+ readonly parent: TypeNodeParent;
806
+ }
807
+ type JSDocComment = JSDocLink | JSDocLinkCode | JSDocLinkPlain | JSDocText;
808
+ interface JSDocFunctionType extends ts.Node {
809
+ _declarationBrand: any;
810
+ _jsdocContainerBrand: any;
811
+ _jsDocTypeBrand: any;
812
+ _localsContainerBrand: any;
813
+ _typeNodeBrand: any;
814
+ readonly kind: ts.SyntaxKind.JSDocFunctionType;
815
+ readonly name?: PropertyName;
816
+ readonly parameters: ts.NodeArray<ParameterDeclaration>;
817
+ readonly parent: TypeNodeParent;
818
+ readonly type?: TypeNode | undefined;
819
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration> | undefined;
820
+ }
821
+ interface JSDocLink extends ts.Node {
822
+ readonly kind: ts.SyntaxKind.JSDocLink;
823
+ readonly name?: EntityName | JSDocMemberName;
824
+ readonly parent: JSDocPropertyLikeTag | JSDocReturnTag | JSDocTemplateTag;
825
+ text: string;
826
+ }
827
+ interface JSDocLinkCode extends ts.Node {
828
+ readonly kind: ts.SyntaxKind.JSDocLinkCode;
829
+ readonly name?: EntityName | JSDocMemberName;
830
+ readonly parent: JSDocPropertyLikeTag | JSDocReturnTag | JSDocTemplateTag;
831
+ text: string;
832
+ }
833
+ interface JSDocLinkPlain extends ts.Node {
834
+ readonly kind: ts.SyntaxKind.JSDocLinkPlain;
835
+ readonly name?: EntityName | JSDocMemberName;
836
+ readonly parent: JSDocPropertyLikeTag | JSDocReturnTag | JSDocTemplateTag;
837
+ text: string;
838
+ }
839
+ interface JSDocMemberName extends ts.Node {
840
+ readonly kind: ts.SyntaxKind.JSDocMemberName;
841
+ readonly left: EntityName | JSDocMemberName;
842
+ readonly parent: JSDocLink | JSDocLinkCode | JSDocLinkPlain | JSDocMemberName;
843
+ readonly right: Identifier;
844
+ }
845
+ interface JSDocNamepathType extends ts.Node {
846
+ _jsDocTypeBrand: any;
847
+ _typeNodeBrand: any;
848
+ readonly kind: ts.SyntaxKind.JSDocNamepathType;
849
+ readonly parent: TypeNodeParent;
850
+ readonly type: TypeNode;
851
+ }
852
+ type JSDocNamespaceBody = Identifier | JSDocNamespaceDeclaration;
853
+ interface JSDocNamespaceDeclaration extends ts.Node {
854
+ _declarationBrand: any;
855
+ _jsdocContainerBrand: any;
856
+ _localsContainerBrand: any;
857
+ _statementBrand: any;
858
+ readonly body?: JSDocNamespaceBody;
859
+ readonly kind: ts.SyntaxKind.ModuleDeclaration;
860
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
861
+ readonly name: Identifier;
862
+ readonly parent: JSDocNamespaceDeclaration | ModuleDeclaration;
863
+ }
864
+ interface JSDocNonNullableType extends ts.Node {
865
+ _jsDocTypeBrand: any;
866
+ _typeNodeBrand: any;
867
+ readonly kind: ts.SyntaxKind.JSDocNonNullableType;
868
+ readonly parent: TypeNodeParent;
869
+ readonly postfix: boolean;
870
+ readonly type: TypeNode;
871
+ }
872
+ interface JSDocNullableType extends ts.Node {
873
+ _jsDocTypeBrand: any;
874
+ _typeNodeBrand: any;
875
+ readonly kind: ts.SyntaxKind.JSDocNullableType;
876
+ readonly parent: TypeNodeParent;
877
+ readonly postfix: boolean;
878
+ readonly type: TypeNode;
879
+ }
880
+ interface JSDocOptionalType extends ts.Node {
881
+ _jsDocTypeBrand: any;
882
+ _typeNodeBrand: any;
883
+ readonly kind: ts.SyntaxKind.JSDocOptionalType;
884
+ readonly parent: TypeNodeParent;
885
+ readonly type: TypeNode;
886
+ }
887
+ interface JSDocParameterTag extends ts.Node {
888
+ readonly kind: ts.SyntaxKind.JSDocParameterTag;
889
+ readonly name: EntityName;
890
+ readonly parent: JSDocSignature | JSDocTypeLiteral;
891
+ readonly typeExpression?: JSDocTypeExpression;
892
+ /** Whether the property name came before the type -- non-standard for JSDoc, but Typescript-like */
893
+ _declarationBrand: any;
894
+ readonly comment?: string | ts.NodeArray<JSDocComment>;
895
+ readonly isBracketed: boolean;
896
+ readonly isNameFirst: boolean;
897
+ readonly tagName: Identifier;
898
+ }
899
+ type JSDocPropertyLikeTag = JSDocParameterTag | JSDocPropertyTag;
900
+ interface JSDocPropertyTag extends ts.Node {
901
+ readonly kind: ts.SyntaxKind.JSDocPropertyTag;
902
+ readonly name: EntityName;
903
+ readonly parent: JSDocTypeLiteral;
904
+ readonly typeExpression?: JSDocTypeExpression;
905
+ /** Whether the property name came before the type -- non-standard for JSDoc, but Typescript-like */
906
+ _declarationBrand: any;
907
+ readonly comment?: string | ts.NodeArray<JSDocComment>;
908
+ readonly isBracketed: boolean;
909
+ readonly isNameFirst: boolean;
910
+ readonly tagName: Identifier;
911
+ }
912
+ interface JSDocReturnTag extends ts.Node {
913
+ readonly comment?: string | ts.NodeArray<JSDocComment>;
914
+ readonly kind: ts.SyntaxKind.JSDocReturnTag;
915
+ readonly parent: JSDocSignature;
916
+ readonly tagName: Identifier;
917
+ readonly typeExpression?: JSDocTypeExpression;
918
+ }
919
+ interface JSDocSignature extends ts.Node {
920
+ _declarationBrand: any;
921
+ _jsdocContainerBrand: any;
922
+ _jsDocTypeBrand: any;
923
+ _localsContainerBrand: any;
924
+ _typeNodeBrand: any;
925
+ readonly kind: ts.SyntaxKind.JSDocSignature;
926
+ readonly parameters: readonly JSDocParameterTag[];
927
+ readonly parent: TypeNodeParent;
928
+ readonly type: JSDocReturnTag | undefined;
929
+ readonly typeParameters?: readonly JSDocTemplateTag[];
930
+ }
931
+ interface JSDocTemplateTag extends ts.Node {
932
+ readonly comment?: string | ts.NodeArray<JSDocComment>;
933
+ readonly constraint: JSDocTypeExpression | undefined;
934
+ readonly kind: ts.SyntaxKind.JSDocTemplateTag;
935
+ readonly parent: JSDocSignature;
936
+ readonly tagName: Identifier;
937
+ readonly typeParameters: ts.NodeArray<TypeParameterDeclaration>;
938
+ }
939
+ interface JSDocText extends ts.Node {
940
+ readonly kind: ts.SyntaxKind.JSDocText;
941
+ readonly parent: JSDocPropertyLikeTag | JSDocReturnTag | JSDocTemplateTag;
942
+ text: string;
943
+ }
944
+ type JSDocType = JSDocAllType | JSDocFunctionType | JSDocNamepathType | JSDocNonNullableType | JSDocNullableType | JSDocOptionalType | JSDocSignature | JSDocTypeLiteral | JSDocUnknownType | JSDocVariadicType;
945
+ interface JSDocTypeExpression extends ts.Node {
946
+ _typeNodeBrand: any;
947
+ readonly kind: ts.SyntaxKind.JSDocTypeExpression;
948
+ readonly parent: JSDocPropertyLikeTag | JSDocReturnTag | JSDocTemplateTag | TypeNodeParent;
949
+ readonly type: TypeNode;
950
+ }
951
+ interface JSDocTypeLiteral extends ts.Node {
952
+ readonly jsDocPropertyTags?: readonly JSDocPropertyLikeTag[];
953
+ readonly kind: ts.SyntaxKind.JSDocTypeLiteral;
954
+ readonly parent: TypeNodeParent;
955
+ /** If true, then this type literal represents an *array* of its type. */
956
+ _declarationBrand: any;
957
+ _jsDocTypeBrand: any;
958
+ _typeNodeBrand: any;
959
+ readonly isArrayType: boolean;
960
+ }
961
+ interface JSDocUnknownType extends ts.Node {
962
+ _jsDocTypeBrand: any;
963
+ _typeNodeBrand: any;
964
+ readonly kind: ts.SyntaxKind.JSDocUnknownType;
965
+ readonly parent: TypeNodeParent;
966
+ }
967
+ interface JSDocVariadicType extends ts.Node {
968
+ _jsDocTypeBrand: any;
969
+ _typeNodeBrand: any;
970
+ readonly kind: ts.SyntaxKind.JSDocVariadicType;
971
+ readonly parent: TypeNodeParent;
972
+ readonly type: TypeNode;
973
+ }
974
+ interface JsxAttribute extends ts.Node {
975
+ _declarationBrand: any;
976
+ readonly initializer?: JsxAttributeValue;
977
+ readonly kind: ts.SyntaxKind.JsxAttribute;
978
+ readonly name: JsxAttributeName;
979
+ readonly parent: JsxAttributes;
980
+ }
981
+ type JsxAttributeLike = JsxAttribute | JsxSpreadAttribute;
982
+ type JsxAttributeName = Identifier | JsxNamespacedName;
983
+ interface JsxAttributes extends ts.Node {
984
+ _declarationBrand: any;
985
+ _expressionBrand: any;
986
+ _leftHandSideExpressionBrand: any;
987
+ _memberExpressionBrand: any;
988
+ _primaryExpressionBrand: any;
989
+ _unaryExpressionBrand: any;
990
+ _updateExpressionBrand: any;
991
+ readonly kind: ts.SyntaxKind.JsxAttributes;
992
+ readonly parent: JsxOpeningElement | JsxSelfClosingElement | LeftHandSideExpressionParent;
993
+ readonly properties: ts.NodeArray<JsxAttributeLike>;
994
+ }
995
+ type JsxAttributeValue = JsxElement | JsxExpression | JsxFragment | JsxSelfClosingElement | StringLiteral;
996
+ type JsxChild = JsxElement | JsxExpression | JsxFragment | JsxSelfClosingElement | JsxText;
997
+ interface JsxClosingElement extends ts.Node {
998
+ readonly kind: ts.SyntaxKind.JsxClosingElement;
999
+ readonly parent: JsxElement;
1000
+ readonly tagName: JsxTagNameExpression;
1001
+ }
1002
+ interface JsxClosingFragment extends ts.Node {
1003
+ _expressionBrand: any;
1004
+ readonly kind: ts.SyntaxKind.JsxClosingFragment;
1005
+ readonly parent: ExpressionParent | JsxFragment;
1006
+ }
1007
+ interface JsxElement extends ts.Node {
1008
+ _expressionBrand: any;
1009
+ _leftHandSideExpressionBrand: any;
1010
+ _memberExpressionBrand: any;
1011
+ _primaryExpressionBrand: any;
1012
+ _unaryExpressionBrand: any;
1013
+ _updateExpressionBrand: any;
1014
+ readonly children: ts.NodeArray<JsxChild>;
1015
+ readonly closingElement: JsxClosingElement;
1016
+ readonly kind: ts.SyntaxKind.JsxElement;
1017
+ readonly openingElement: JsxOpeningElement;
1018
+ readonly parent: ArrayLiteralExpression | ArrowFunction | AsExpression | AwaitExpression | BinaryExpression | BindingElement | CallExpression | CaseClause | CommaListExpression | ComputedPropertyName | ConditionalExpression | Decorator | DeleteExpression | ElementAccessExpression | EnumMember | ExportAssignment | ExportDeclaration | ExpressionStatement | ExpressionWithTypeArguments | ExternalModuleReference | IfStatement | ImportAttribute | ImportDeclaration | IterationStatement | JsxAttributeLike | JsxElement | JsxExpression | JsxFragment | NewExpression | NonNullExpression | ParameterDeclaration | ParenthesizedExpression | PartiallyEmittedExpression | PostfixUnaryExpression | PrefixUnaryExpression | PropertyAccessExpression | PropertyAssignment | PropertyDeclaration | ReturnStatement | SatisfiesExpression | ShorthandPropertyAssignment | SpreadAssignment | SpreadElement | SwitchStatement | TaggedTemplateExpression | TemplateSpan | ThrowStatement | TypeAssertion | TypeOfExpression | TypeParameterDeclaration | VariableDeclaration | VoidExpression | WithStatement | YieldExpression;
1019
+ }
1020
+ interface JsxExpression extends ts.Node {
1021
+ _expressionBrand: any;
1022
+ readonly dotDotDotToken?: Token<ts.SyntaxKind.DotDotDotToken, JsxExpression>;
1023
+ readonly expression?: Expression;
1024
+ readonly kind: ts.SyntaxKind.JsxExpression;
1025
+ readonly parent: ArrayLiteralExpression | ArrowFunction | AsExpression | BinaryExpression | BindingElement | CallExpression | CaseClause | CommaListExpression | ComputedPropertyName | ConditionalExpression | ElementAccessExpression | EnumMember | ExportAssignment | ExportDeclaration | ExpressionStatement | ExternalModuleReference | IfStatement | ImportAttribute | ImportDeclaration | IterationStatement | JsxAttributeLike | JsxElement | JsxExpression | JsxFragment | NewExpression | NonNullExpression | ParameterDeclaration | ParenthesizedExpression | PartiallyEmittedExpression | PropertyAssignment | PropertyDeclaration | ReturnStatement | SatisfiesExpression | ShorthandPropertyAssignment | SpreadAssignment | SpreadElement | SwitchStatement | TemplateSpan | ThrowStatement | TypeParameterDeclaration | VariableDeclaration | WithStatement | YieldExpression;
1026
+ }
1027
+ interface JsxFragment extends ts.Node {
1028
+ _expressionBrand: any;
1029
+ _leftHandSideExpressionBrand: any;
1030
+ _memberExpressionBrand: any;
1031
+ _primaryExpressionBrand: any;
1032
+ _unaryExpressionBrand: any;
1033
+ _updateExpressionBrand: any;
1034
+ readonly children: ts.NodeArray<JsxChild>;
1035
+ readonly closingFragment: JsxClosingFragment;
1036
+ readonly kind: ts.SyntaxKind.JsxFragment;
1037
+ readonly openingFragment: JsxOpeningFragment;
1038
+ readonly parent: ArrayLiteralExpression | ArrowFunction | AsExpression | AwaitExpression | BinaryExpression | BindingElement | CallExpression | CaseClause | CommaListExpression | ComputedPropertyName | ConditionalExpression | Decorator | DeleteExpression | ElementAccessExpression | EnumMember | ExportAssignment | ExportDeclaration | ExpressionStatement | ExpressionWithTypeArguments | ExternalModuleReference | IfStatement | ImportAttribute | ImportDeclaration | IterationStatement | JsxAttributeLike | JsxElement | JsxExpression | JsxFragment | NewExpression | NonNullExpression | ParameterDeclaration | ParenthesizedExpression | PartiallyEmittedExpression | PostfixUnaryExpression | PrefixUnaryExpression | PropertyAccessExpression | PropertyAssignment | PropertyDeclaration | ReturnStatement | SatisfiesExpression | ShorthandPropertyAssignment | SpreadAssignment | SpreadElement | SwitchStatement | TaggedTemplateExpression | TemplateSpan | ThrowStatement | TypeAssertion | TypeOfExpression | TypeParameterDeclaration | VariableDeclaration | VoidExpression | WithStatement | YieldExpression;
1039
+ }
1040
+ interface JsxNamespacedName extends ts.Node {
1041
+ readonly kind: ts.SyntaxKind.JsxNamespacedName;
1042
+ readonly name: Identifier;
1043
+ readonly namespace: Identifier;
1044
+ readonly parent: JsxAttribute | JsxClosingElement | JsxOpeningElement | JsxSelfClosingElement;
1045
+ }
1046
+ interface JsxOpeningElement extends ts.Node {
1047
+ _expressionBrand: any;
1048
+ readonly attributes: JsxAttributes;
1049
+ readonly kind: ts.SyntaxKind.JsxOpeningElement;
1050
+ readonly parent: ExpressionParent | JsxElement;
1051
+ readonly tagName: JsxTagNameExpression;
1052
+ readonly typeArguments?: ts.NodeArray<TypeNode>;
1053
+ }
1054
+ interface JsxOpeningFragment extends ts.Node {
1055
+ _expressionBrand: any;
1056
+ readonly kind: ts.SyntaxKind.JsxOpeningFragment;
1057
+ readonly parent: ExpressionParent | JsxFragment;
1058
+ }
1059
+ interface JsxSelfClosingElement extends ts.Node {
1060
+ _expressionBrand: any;
1061
+ _leftHandSideExpressionBrand: any;
1062
+ _memberExpressionBrand: any;
1063
+ _primaryExpressionBrand: any;
1064
+ _unaryExpressionBrand: any;
1065
+ _updateExpressionBrand: any;
1066
+ readonly attributes: JsxAttributes;
1067
+ readonly kind: ts.SyntaxKind.JsxSelfClosingElement;
1068
+ readonly parent: ArrayLiteralExpression | ArrowFunction | AsExpression | AwaitExpression | BinaryExpression | BindingElement | CallExpression | CaseClause | CommaListExpression | ComputedPropertyName | ConditionalExpression | Decorator | DeleteExpression | ElementAccessExpression | EnumMember | ExportAssignment | ExportDeclaration | ExpressionStatement | ExpressionWithTypeArguments | ExternalModuleReference | IfStatement | ImportAttribute | ImportDeclaration | IterationStatement | JsxAttributeLike | JsxElement | JsxExpression | JsxFragment | NewExpression | NonNullExpression | ParameterDeclaration | ParenthesizedExpression | PartiallyEmittedExpression | PostfixUnaryExpression | PrefixUnaryExpression | PropertyAccessExpression | PropertyAssignment | PropertyDeclaration | ReturnStatement | SatisfiesExpression | ShorthandPropertyAssignment | SpreadAssignment | SpreadElement | SwitchStatement | TaggedTemplateExpression | TemplateSpan | ThrowStatement | TypeAssertion | TypeOfExpression | TypeParameterDeclaration | VariableDeclaration | VoidExpression | WithStatement | YieldExpression;
1069
+ readonly tagName: JsxTagNameExpression;
1070
+ readonly typeArguments?: ts.NodeArray<TypeNode>;
1071
+ }
1072
+ interface JsxSpreadAttribute extends ts.Node {
1073
+ _declarationBrand: any;
1074
+ _objectLiteralBrand: any;
1075
+ readonly expression: Expression;
1076
+ readonly kind: ts.SyntaxKind.JsxSpreadAttribute;
1077
+ readonly name?: PropertyName;
1078
+ readonly parent: JsxAttributes;
1079
+ }
1080
+ type JsxTagNameExpression = Identifier | JsxNamespacedName | JsxTagNamePropertyAccess | ThisExpression;
1081
+ interface JsxTagNamePropertyAccess extends ts.Node {
1082
+ _declarationBrand: any;
1083
+ _expressionBrand: any;
1084
+ _flowContainerBrand: any;
1085
+ _jsdocContainerBrand: any;
1086
+ _leftHandSideExpressionBrand: any;
1087
+ _memberExpressionBrand: any;
1088
+ _unaryExpressionBrand: any;
1089
+ _updateExpressionBrand: any;
1090
+ readonly expression: Identifier | JsxTagNamePropertyAccess | ThisExpression;
1091
+ readonly kind: ts.SyntaxKind.PropertyAccessExpression;
1092
+ readonly name: MemberName;
1093
+ readonly parent: JsxClosingElement | JsxOpeningElement | JsxSelfClosingElement | JsxTagNamePropertyAccess;
1094
+ readonly questionDotToken?: QuestionDotToken;
1095
+ }
1096
+ interface JsxText extends ts.Node {
1097
+ readonly containsOnlyTriviaWhiteSpaces: boolean;
1098
+ hasExtendedUnicodeEscape?: boolean;
1099
+ isUnterminated?: boolean;
1100
+ readonly kind: ts.SyntaxKind.JsxText;
1101
+ readonly parent: JsxElement | JsxFragment;
1102
+ text: string;
1103
+ }
1104
+ interface LabeledStatement extends ts.Node {
1105
+ _flowContainerBrand: any;
1106
+ _jsdocContainerBrand: any;
1107
+ _statementBrand: any;
1108
+ readonly kind: ts.SyntaxKind.LabeledStatement;
1109
+ readonly label: Identifier;
1110
+ readonly parent: StatementParent;
1111
+ readonly statement: Statement;
1112
+ }
1113
+ type LeftHandSideExpression = CallExpression | MemberExpression | NonNullExpression | PartiallyEmittedExpression;
1114
+ type LiteralExpression = BigIntLiteral | NoSubstitutionTemplateLiteral | NumericLiteral | RegularExpressionLiteral | StringLiteral;
1115
+ interface LiteralTypeNode extends ts.Node {
1116
+ _typeNodeBrand: any;
1117
+ readonly kind: ts.SyntaxKind.LiteralType;
1118
+ readonly literal: BooleanLiteral | LiteralExpression | NullLiteral | PrefixUnaryExpression;
1119
+ readonly parent: TypeNodeParent;
1120
+ }
1121
+ type LogicalOperator = ts.SyntaxKind.AmpersandAmpersandToken | ts.SyntaxKind.BarBarToken;
1122
+ type LogicalOperatorOrHigher = BitwiseOperatorOrHigher | LogicalOperator;
1123
+ interface MappedTypeNode extends ts.Node {
1124
+ readonly kind: ts.SyntaxKind.MappedType;
1125
+ readonly nameType?: TypeNode;
1126
+ readonly parent: TypeNodeParent;
1127
+ readonly questionToken?: MinusToken | PlusToken | QuestionToken;
1128
+ readonly readonlyToken?: MinusToken | PlusToken | ReadonlyKeyword;
1129
+ readonly type?: TypeNode;
1130
+ readonly typeParameter: TypeParameterDeclaration;
1131
+ /** Used only to produce grammar errors */
1132
+ _declarationBrand: any;
1133
+ _localsContainerBrand: any;
1134
+ _typeNodeBrand: any;
1135
+ readonly members?: ts.NodeArray<TypeElement>;
1136
+ }
1137
+ type MemberExpression = ElementAccessExpression | ExpressionWithTypeArguments | PrimaryExpression | PropertyAccessExpression | TaggedTemplateExpression;
1138
+ type MemberName = Identifier | PrivateIdentifier;
1139
+ interface MetaProperty extends ts.Node {
1140
+ _expressionBrand: any;
1141
+ _flowContainerBrand: any;
1142
+ _leftHandSideExpressionBrand: any;
1143
+ _memberExpressionBrand: any;
1144
+ _primaryExpressionBrand: any;
1145
+ _unaryExpressionBrand: any;
1146
+ _updateExpressionBrand: any;
1147
+ readonly keywordToken: ts.SyntaxKind.ImportKeyword | ts.SyntaxKind.NewKeyword;
1148
+ readonly kind: ts.SyntaxKind.MetaProperty;
1149
+ readonly name: Identifier;
1150
+ readonly parent: LeftHandSideExpressionParent;
1151
+ }
1152
+ interface MethodDeclaration extends ts.Node {
1153
+ _classElementBrand: any;
1154
+ _declarationBrand: any;
1155
+ _flowContainerBrand: any;
1156
+ _functionLikeDeclarationBrand: any;
1157
+ _jsdocContainerBrand: any;
1158
+ _localsContainerBrand: any;
1159
+ _objectLiteralBrand: any;
1160
+ readonly asteriskToken?: AsteriskToken | undefined;
1161
+ readonly body?: FunctionBody | undefined;
1162
+ readonly exclamationToken?: ExclamationToken | undefined;
1163
+ readonly kind: ts.SyntaxKind.MethodDeclaration;
1164
+ readonly modifiers?: ts.NodeArray<ModifierLike> | undefined;
1165
+ readonly name: PropertyName;
1166
+ readonly parameters: ts.NodeArray<ParameterDeclaration>;
1167
+ readonly parent: ClassDeclaration | ClassExpression | ObjectLiteralExpressionBase;
1168
+ readonly questionToken?: QuestionToken | undefined;
1169
+ readonly type?: TypeNode | undefined;
1170
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration> | undefined;
1171
+ }
1172
+ interface MethodSignature extends ts.Node {
1173
+ _declarationBrand: any;
1174
+ _jsdocContainerBrand: any;
1175
+ _localsContainerBrand: any;
1176
+ _typeElementBrand: any;
1177
+ readonly kind: ts.SyntaxKind.MethodSignature;
1178
+ readonly modifiers?: ts.NodeArray<Modifier>;
1179
+ readonly name: PropertyName;
1180
+ readonly parameters: ts.NodeArray<ParameterDeclaration>;
1181
+ readonly parent: InterfaceDeclaration | MappedTypeNode | TypeLiteralNode;
1182
+ readonly questionToken?: QuestionToken | undefined;
1183
+ readonly type?: TypeNode | undefined;
1184
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration> | undefined;
1185
+ }
1186
+ interface MinusToken extends ts.Node {
1187
+ readonly kind: ts.SyntaxKind.MinusToken;
1188
+ readonly parent: MappedTypeNode;
1189
+ }
1190
+ interface MissingDeclaration extends ts.Node {
1191
+ _declarationBrand: any;
1192
+ _expressionBrand: any;
1193
+ _jsdocContainerBrand: any;
1194
+ _leftHandSideExpressionBrand: any;
1195
+ _memberExpressionBrand: any;
1196
+ _primaryExpressionBrand: any;
1197
+ _statementBrand: any;
1198
+ _unaryExpressionBrand: any;
1199
+ _updateExpressionBrand: any;
1200
+ readonly kind: ts.SyntaxKind.MissingDeclaration;
1201
+ readonly name?: Identifier;
1202
+ readonly parent: ArrayLiteralExpression | ArrowFunction | AsExpression | AwaitExpression | BinaryExpression | BindingElement | CallExpression | CommaListExpression | ComputedPropertyName | ConditionalExpression | Decorator | DeleteExpression | ElementAccessExpression | EnumMember | ExportAssignment | ExportDeclaration | ExpressionStatement | ExpressionWithTypeArguments | ExternalModuleReference | ImportAttribute | ImportDeclaration | JsxExpression | JsxSpreadAttribute | NewExpression | NonNullExpression | ParameterDeclaration | ParenthesizedExpression | PartiallyEmittedExpression | PostfixUnaryExpression | PrefixUnaryExpression | PropertyAccessExpression | PropertyAssignment | PropertyDeclaration | ReturnStatement | SatisfiesExpression | ShorthandPropertyAssignment | SpreadAssignment | SpreadElement | StatementParent | SwitchStatement | TaggedTemplateExpression | TemplateSpan | ThrowStatement | TypeAssertion | TypeOfExpression | TypeParameterDeclaration | VariableDeclaration | VoidExpression | YieldExpression;
1203
+ }
1204
+ type Modifier = AbstractKeyword | AccessorKeyword | AsyncKeyword | ConstKeyword | DeclareKeyword | DefaultKeyword | ExportKeyword | InKeyword | OutKeyword | OverrideKeyword | PrivateKeyword | ProtectedKeyword | PublicKeyword | ReadonlyKeyword | StaticKeyword;
1205
+ type ModifierLike = Decorator | Modifier;
1206
+ interface ModuleBlock extends ts.Node {
1207
+ _jsdocContainerBrand: any;
1208
+ _statementBrand: any;
1209
+ readonly kind: ts.SyntaxKind.ModuleBlock;
1210
+ readonly parent: Block | CaseOrDefaultClause | IfStatement | IterationStatement | LabeledStatement | ModuleDeclaration | NamespaceBody | SourceFile | WithStatement;
1211
+ readonly statements: ts.NodeArray<Statement>;
1212
+ }
1213
+ type ModuleBody = JSDocNamespaceBody | NamespaceBody;
1214
+ interface ModuleDeclaration extends ts.Node {
1215
+ _declarationBrand: any;
1216
+ _jsdocContainerBrand: any;
1217
+ _localsContainerBrand: any;
1218
+ _statementBrand: any;
1219
+ readonly body?: JSDocNamespaceDeclaration | ModuleBody;
1220
+ readonly kind: ts.SyntaxKind.ModuleDeclaration;
1221
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
1222
+ readonly name: ModuleName;
1223
+ readonly parent: StatementParent;
1224
+ }
1225
+ type ModuleExportName = Identifier | StringLiteral;
1226
+ type ModuleName = Identifier | StringLiteral;
1227
+ type ModuleReference = EntityName | ExternalModuleReference;
1228
+ type MultiplicativeOperator = ts.SyntaxKind.AsteriskToken | ts.SyntaxKind.PercentToken | ts.SyntaxKind.SlashToken;
1229
+ type MultiplicativeOperatorOrHigher = ExponentiationOperator | MultiplicativeOperator;
1230
+ type NamedExportBindings = NamedExports | NamespaceExport;
1231
+ interface NamedExports extends ts.Node {
1232
+ readonly elements: ts.NodeArray<ExportSpecifier>;
1233
+ readonly kind: ts.SyntaxKind.NamedExports;
1234
+ readonly parent: ExportDeclaration;
1235
+ }
1236
+ type NamedImportBindings = NamedImports | NamespaceImport;
1237
+ interface NamedImports extends ts.Node {
1238
+ readonly elements: ts.NodeArray<ImportSpecifier>;
1239
+ readonly kind: ts.SyntaxKind.NamedImports;
1240
+ readonly parent: ImportClause;
1241
+ }
1242
+ interface NamedTupleMember extends ts.Node {
1243
+ _declarationBrand: any;
1244
+ _jsdocContainerBrand: any;
1245
+ _typeNodeBrand: any;
1246
+ readonly dotDotDotToken?: Token<ts.SyntaxKind.DotDotDotToken, NamedTupleMember>;
1247
+ readonly kind: ts.SyntaxKind.NamedTupleMember;
1248
+ readonly name: Identifier;
1249
+ readonly parent: SyntheticExpression | TypeNodeParent;
1250
+ readonly questionToken?: Token<ts.SyntaxKind.QuestionToken, NamedTupleMember>;
1251
+ readonly type: TypeNode;
1252
+ }
1253
+ type NamespaceBody = ModuleBlock | NamespaceDeclaration;
1254
+ interface NamespaceDeclaration extends ts.Node {
1255
+ _declarationBrand: any;
1256
+ _jsdocContainerBrand: any;
1257
+ _localsContainerBrand: any;
1258
+ _statementBrand: any;
1259
+ readonly body: NamespaceBody;
1260
+ readonly kind: ts.SyntaxKind.ModuleDeclaration;
1261
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
1262
+ readonly name: Identifier;
1263
+ readonly parent: ModuleDeclaration | NamespaceDeclaration;
1264
+ }
1265
+ interface NamespaceExport extends ts.Node {
1266
+ _declarationBrand: any;
1267
+ readonly kind: ts.SyntaxKind.NamespaceExport;
1268
+ readonly name: ModuleExportName;
1269
+ readonly parent: ExportDeclaration;
1270
+ }
1271
+ interface NamespaceExportDeclaration extends ts.Node {
1272
+ _declarationBrand: any;
1273
+ _jsdocContainerBrand: any;
1274
+ _statementBrand: any;
1275
+ readonly kind: ts.SyntaxKind.NamespaceExportDeclaration;
1276
+ readonly name: Identifier;
1277
+ readonly parent: StatementParent;
1278
+ }
1279
+ interface NamespaceImport extends ts.Node {
1280
+ _declarationBrand: any;
1281
+ readonly kind: ts.SyntaxKind.NamespaceImport;
1282
+ readonly name: Identifier;
1283
+ readonly parent: ImportClause;
1284
+ }
1285
+ interface NeverKeyword extends ts.Node {
1286
+ _typeNodeBrand: any;
1287
+ readonly kind: ts.SyntaxKind.NeverKeyword;
1288
+ readonly parent: TypeNodeParent;
1289
+ }
1290
+ interface NewExpression extends ts.Node {
1291
+ _declarationBrand: any;
1292
+ _expressionBrand: any;
1293
+ _leftHandSideExpressionBrand: any;
1294
+ _memberExpressionBrand: any;
1295
+ _primaryExpressionBrand: any;
1296
+ _unaryExpressionBrand: any;
1297
+ _updateExpressionBrand: any;
1298
+ readonly arguments?: ts.NodeArray<Expression>;
1299
+ readonly expression: LeftHandSideExpression;
1300
+ readonly kind: ts.SyntaxKind.NewExpression;
1301
+ readonly parent: LeftHandSideExpressionParent;
1302
+ readonly typeArguments?: ts.NodeArray<TypeNode>;
1303
+ }
1304
+ type NodeWithTypeArguments = ExpressionWithTypeArguments | ImportTypeNode | TypeQueryNode | TypeReferenceNode;
1305
+ interface NonNullExpression extends ts.Node {
1306
+ _expressionBrand: any;
1307
+ _leftHandSideExpressionBrand: any;
1308
+ _unaryExpressionBrand: any;
1309
+ _updateExpressionBrand: any;
1310
+ readonly expression: Expression;
1311
+ readonly kind: ts.SyntaxKind.NonNullExpression;
1312
+ readonly parent: LeftHandSideExpressionParent;
1313
+ }
1314
+ interface NoSubstitutionTemplateLiteral extends ts.Node {
1315
+ _declarationBrand: any;
1316
+ _expressionBrand: any;
1317
+ _leftHandSideExpressionBrand: any;
1318
+ _literalExpressionBrand: any;
1319
+ _memberExpressionBrand: any;
1320
+ _primaryExpressionBrand: any;
1321
+ _unaryExpressionBrand: any;
1322
+ _updateExpressionBrand: any;
1323
+ hasExtendedUnicodeEscape?: boolean;
1324
+ isUnterminated?: boolean;
1325
+ readonly kind: ts.SyntaxKind.NoSubstitutionTemplateLiteral;
1326
+ readonly parent: ClassStaticBlockDeclaration | ConstructorDeclaration | FunctionOrConstructorTypeNodeBase | JSDocFunctionType | LeftHandSideExpressionParent | LiteralTypeNode | MethodDeclaration | SemicolonClassElement | TypeElement;
1327
+ rawText?: string;
1328
+ text: string;
1329
+ }
1330
+ interface NotEmittedStatement extends ts.Node {
1331
+ _jsdocContainerBrand: any;
1332
+ _statementBrand: any;
1333
+ readonly kind: ts.SyntaxKind.NotEmittedStatement;
1334
+ readonly parent: StatementParent;
1335
+ }
1336
+ interface NotEmittedTypeElement extends ts.Node {
1337
+ _declarationBrand: any;
1338
+ _typeElementBrand: any;
1339
+ readonly kind: ts.SyntaxKind.NotEmittedTypeElement;
1340
+ readonly name?: PropertyName;
1341
+ readonly parent: InterfaceDeclaration | MappedTypeNode | TypeLiteralNode;
1342
+ readonly questionToken?: QuestionToken | undefined;
1343
+ }
1344
+ interface NullLiteral extends ts.Node {
1345
+ _expressionBrand: any;
1346
+ _leftHandSideExpressionBrand: any;
1347
+ _memberExpressionBrand: any;
1348
+ _primaryExpressionBrand: any;
1349
+ _unaryExpressionBrand: any;
1350
+ _updateExpressionBrand: any;
1351
+ readonly kind: ts.SyntaxKind.NullKeyword;
1352
+ readonly parent: LeftHandSideExpressionParent | LiteralTypeNode;
1353
+ }
1354
+ interface NumberKeyword extends ts.Node {
1355
+ _typeNodeBrand: any;
1356
+ readonly kind: ts.SyntaxKind.NumberKeyword;
1357
+ readonly parent: TypeNodeParent;
1358
+ }
1359
+ interface NumericLiteral extends ts.Node {
1360
+ _declarationBrand: any;
1361
+ _expressionBrand: any;
1362
+ _leftHandSideExpressionBrand: any;
1363
+ _literalExpressionBrand: any;
1364
+ _memberExpressionBrand: any;
1365
+ _primaryExpressionBrand: any;
1366
+ _unaryExpressionBrand: any;
1367
+ _updateExpressionBrand: any;
1368
+ hasExtendedUnicodeEscape?: boolean;
1369
+ isUnterminated?: boolean;
1370
+ readonly kind: ts.SyntaxKind.NumericLiteral;
1371
+ readonly parent: ClassStaticBlockDeclaration | ConstructorDeclaration | FunctionOrConstructorTypeNodeBase | JSDocFunctionType | LeftHandSideExpressionParent | LiteralTypeNode | MethodDeclaration | SemicolonClassElement | TypeElement;
1372
+ text: string;
1373
+ }
1374
+ interface ObjectBindingPattern extends ts.Node {
1375
+ readonly elements: ts.NodeArray<BindingElement>;
1376
+ readonly kind: ts.SyntaxKind.ObjectBindingPattern;
1377
+ readonly parent: BindingElement | ParameterDeclaration | VariableDeclaration;
1378
+ }
1379
+ interface ObjectKeyword extends ts.Node {
1380
+ _typeNodeBrand: any;
1381
+ readonly kind: ts.SyntaxKind.ObjectKeyword;
1382
+ readonly parent: TypeNodeParent;
1383
+ }
1384
+ type ObjectLiteralElementLike = AccessorDeclaration | MethodDeclaration | PropertyAssignment | ShorthandPropertyAssignment | SpreadAssignment;
1385
+ interface ObjectLiteralExpression extends ts.Node {
1386
+ _declarationBrand: any;
1387
+ _expressionBrand: any;
1388
+ _jsdocContainerBrand: any;
1389
+ _leftHandSideExpressionBrand: any;
1390
+ _memberExpressionBrand: any;
1391
+ _primaryExpressionBrand: any;
1392
+ _unaryExpressionBrand: any;
1393
+ _updateExpressionBrand: any;
1394
+ readonly kind: ts.SyntaxKind.ObjectLiteralExpression;
1395
+ readonly parent: LeftHandSideExpressionParent;
1396
+ readonly properties: ts.NodeArray<ObjectLiteralElementLike>;
1397
+ }
1398
+ type ObjectLiteralExpressionBase = ObjectLiteralExpression;
1399
+ interface OmittedExpression extends ts.Node {
1400
+ _expressionBrand: any;
1401
+ readonly kind: ts.SyntaxKind.OmittedExpression;
1402
+ readonly parent: ArrayBindingPattern | ExpressionParent;
1403
+ }
1404
+ interface OptionalTypeNode extends ts.Node {
1405
+ _typeNodeBrand: any;
1406
+ readonly kind: ts.SyntaxKind.OptionalType;
1407
+ readonly parent: TypeNodeParent;
1408
+ readonly type: TypeNode;
1409
+ }
1410
+ interface OutKeyword extends ts.Node {
1411
+ readonly kind: ts.SyntaxKind.OutKeyword;
1412
+ readonly parent: ModifierParent;
1413
+ }
1414
+ interface OverrideKeyword extends ts.Node {
1415
+ readonly kind: ts.SyntaxKind.OverrideKeyword;
1416
+ readonly parent: ModifierParent;
1417
+ }
1418
+ interface ParameterDeclaration extends ts.Node {
1419
+ _declarationBrand: any;
1420
+ _jsdocContainerBrand: any;
1421
+ readonly dotDotDotToken?: DotDotDotToken;
1422
+ readonly initializer?: Expression;
1423
+ readonly kind: ts.SyntaxKind.Parameter;
1424
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
1425
+ readonly name: BindingName;
1426
+ readonly parent: AccessorDeclaration | ArrowFunction | CallSignatureDeclaration | ConstructorDeclaration | ConstructSignatureDeclaration | FunctionDeclaration | FunctionExpression | FunctionOrConstructorTypeNodeBase | IndexSignatureDeclaration | JSDocFunctionType | MethodDeclaration | MethodSignature | SyntheticExpression;
1427
+ readonly questionToken?: QuestionToken;
1428
+ readonly type?: TypeNode;
1429
+ }
1430
+ interface ParenthesizedExpression extends ts.Node {
1431
+ _expressionBrand: any;
1432
+ _jsdocContainerBrand: any;
1433
+ _leftHandSideExpressionBrand: any;
1434
+ _memberExpressionBrand: any;
1435
+ _primaryExpressionBrand: any;
1436
+ _unaryExpressionBrand: any;
1437
+ _updateExpressionBrand: any;
1438
+ readonly expression: Expression;
1439
+ readonly kind: ts.SyntaxKind.ParenthesizedExpression;
1440
+ readonly parent: LeftHandSideExpressionParent;
1441
+ }
1442
+ interface ParenthesizedTypeNode extends ts.Node {
1443
+ _typeNodeBrand: any;
1444
+ readonly kind: ts.SyntaxKind.ParenthesizedType;
1445
+ readonly parent: TypeNodeParent;
1446
+ readonly type: TypeNode;
1447
+ }
1448
+ interface PartiallyEmittedExpression extends ts.Node {
1449
+ _expressionBrand: any;
1450
+ _leftHandSideExpressionBrand: any;
1451
+ _unaryExpressionBrand: any;
1452
+ _updateExpressionBrand: any;
1453
+ readonly expression: Expression;
1454
+ readonly kind: ts.SyntaxKind.PartiallyEmittedExpression;
1455
+ readonly parent: LeftHandSideExpressionParent;
1456
+ }
1457
+ interface PlusToken extends ts.Node {
1458
+ readonly kind: ts.SyntaxKind.PlusToken;
1459
+ readonly parent: MappedTypeNode;
1460
+ }
1461
+ interface PostfixUnaryExpression extends ts.Node {
1462
+ _expressionBrand: any;
1463
+ _unaryExpressionBrand: any;
1464
+ _updateExpressionBrand: any;
1465
+ readonly kind: ts.SyntaxKind.PostfixUnaryExpression;
1466
+ readonly operand: LeftHandSideExpression;
1467
+ readonly operator: PostfixUnaryOperator;
1468
+ readonly parent: AwaitExpression | DeleteExpression | ExpressionParent | PrefixUnaryExpression | TypeAssertion | TypeOfExpression | VoidExpression;
1469
+ }
1470
+ type PostfixUnaryOperator = ts.SyntaxKind.MinusMinusToken | ts.SyntaxKind.PlusPlusToken;
1471
+ interface PrefixUnaryExpression extends ts.Node {
1472
+ _expressionBrand: any;
1473
+ _unaryExpressionBrand: any;
1474
+ _updateExpressionBrand: any;
1475
+ readonly kind: ts.SyntaxKind.PrefixUnaryExpression;
1476
+ readonly operand: UnaryExpression;
1477
+ readonly operator: PrefixUnaryOperator;
1478
+ readonly parent: AwaitExpression | DeleteExpression | ExpressionParent | LiteralTypeNode | PrefixUnaryExpression | TypeAssertion | TypeOfExpression | VoidExpression;
1479
+ }
1480
+ type PrefixUnaryOperator = ts.SyntaxKind.ExclamationToken | ts.SyntaxKind.MinusMinusToken | ts.SyntaxKind.MinusToken | ts.SyntaxKind.PlusPlusToken | ts.SyntaxKind.PlusToken | ts.SyntaxKind.TildeToken;
1481
+ type PrimaryExpression = ArrayLiteralExpression | ClassExpression | FalseLiteral | FunctionExpression | Identifier | ImportExpression | JsxAttributes | JsxElement | JsxFragment | JsxSelfClosingElement | LiteralExpression | MetaProperty | MissingDeclaration | NewExpression | NullLiteral | ObjectLiteralExpressionBase | ParenthesizedExpression | PrivateIdentifier | SuperExpression | TemplateExpression | ThisExpression | TrueLiteral;
1482
+ interface PrivateIdentifier extends ts.Node {
1483
+ _expressionBrand: any;
1484
+ _leftHandSideExpressionBrand: any;
1485
+ _memberExpressionBrand: any;
1486
+ _primaryExpressionBrand: any;
1487
+ _unaryExpressionBrand: any;
1488
+ _updateExpressionBrand: any;
1489
+ readonly escapedText: ts.__String;
1490
+ readonly kind: ts.SyntaxKind.PrivateIdentifier;
1491
+ readonly parent: ClassStaticBlockDeclaration | ConstructorDeclaration | FunctionOrConstructorTypeNodeBase | JSDocFunctionType | JsxTagNamePropertyAccess | LeftHandSideExpressionParent | MethodDeclaration | SemicolonClassElement | TypeElement;
1492
+ readonly text: string;
1493
+ }
1494
+ interface PrivateKeyword extends ts.Node {
1495
+ readonly kind: ts.SyntaxKind.PrivateKeyword;
1496
+ readonly parent: ModifierParent;
1497
+ }
1498
+ interface PropertyAccessExpression extends ts.Node {
1499
+ _declarationBrand: any;
1500
+ _expressionBrand: any;
1501
+ _flowContainerBrand: any;
1502
+ _jsdocContainerBrand: any;
1503
+ _leftHandSideExpressionBrand: any;
1504
+ _memberExpressionBrand: any;
1505
+ _unaryExpressionBrand: any;
1506
+ _updateExpressionBrand: any;
1507
+ readonly expression: LeftHandSideExpression;
1508
+ readonly kind: ts.SyntaxKind.PropertyAccessExpression;
1509
+ readonly name: MemberName;
1510
+ readonly parent: LeftHandSideExpressionParent;
1511
+ readonly questionDotToken?: QuestionDotToken;
1512
+ }
1513
+ interface PropertyAssignment extends ts.Node {
1514
+ _declarationBrand: any;
1515
+ _jsdocContainerBrand: any;
1516
+ _objectLiteralBrand: any;
1517
+ readonly initializer: Expression;
1518
+ readonly kind: ts.SyntaxKind.PropertyAssignment;
1519
+ readonly name: PropertyName;
1520
+ readonly parent: ObjectLiteralExpressionBase;
1521
+ }
1522
+ interface PropertyDeclaration extends ts.Node {
1523
+ _classElementBrand: any;
1524
+ _declarationBrand: any;
1525
+ _jsdocContainerBrand: any;
1526
+ readonly exclamationToken?: ExclamationToken;
1527
+ readonly initializer?: Expression;
1528
+ readonly kind: ts.SyntaxKind.PropertyDeclaration;
1529
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
1530
+ readonly name: PropertyName;
1531
+ readonly parent: ClassDeclaration | ClassExpression;
1532
+ readonly questionToken?: QuestionToken;
1533
+ readonly type?: TypeNode;
1534
+ }
1535
+ type PropertyName = BigIntLiteral | ComputedPropertyName | Identifier | NoSubstitutionTemplateLiteral | NumericLiteral | PrivateIdentifier | StringLiteral;
1536
+ interface PropertySignature extends ts.Node {
1537
+ _declarationBrand: any;
1538
+ _jsdocContainerBrand: any;
1539
+ _typeElementBrand: any;
1540
+ readonly kind: ts.SyntaxKind.PropertySignature;
1541
+ readonly modifiers?: ts.NodeArray<Modifier>;
1542
+ readonly name: PropertyName;
1543
+ readonly parent: InterfaceDeclaration | MappedTypeNode | TypeLiteralNode;
1544
+ readonly questionToken?: QuestionToken;
1545
+ readonly type?: TypeNode;
1546
+ }
1547
+ interface ProtectedKeyword extends ts.Node {
1548
+ readonly kind: ts.SyntaxKind.ProtectedKeyword;
1549
+ readonly parent: ModifierParent;
1550
+ }
1551
+ interface PublicKeyword extends ts.Node {
1552
+ readonly kind: ts.SyntaxKind.PublicKeyword;
1553
+ readonly parent: ModifierParent;
1554
+ }
1555
+ interface QualifiedName extends ts.Node {
1556
+ _flowContainerBrand: any;
1557
+ readonly kind: ts.SyntaxKind.QualifiedName;
1558
+ readonly left: EntityName;
1559
+ readonly parent: ImportEqualsDeclaration | ImportTypeNode | JSDocLink | JSDocLinkCode | JSDocLinkPlain | JSDocMemberName | JSDocPropertyLikeTag | QualifiedName | TypeQueryNode | TypeReferenceNode;
1560
+ readonly right: Identifier;
1561
+ }
1562
+ interface QuestionDotToken extends ts.Node {
1563
+ readonly kind: ts.SyntaxKind.QuestionDotToken;
1564
+ readonly parent: CallExpression | ElementAccessExpression | JsxTagNamePropertyAccess | PropertyAccessExpression;
1565
+ }
1566
+ interface QuestionToken extends ts.Node {
1567
+ readonly kind: ts.SyntaxKind.QuestionToken;
1568
+ readonly parent: ArrowFunction | ConditionalExpression | ConstructorDeclaration | FunctionDeclaration | FunctionExpression | MappedTypeNode | MethodDeclaration | ParameterDeclaration | PropertyDeclaration | TypeElement;
1569
+ }
1570
+ interface ReadonlyKeyword extends ts.Node {
1571
+ readonly kind: ts.SyntaxKind.ReadonlyKeyword;
1572
+ readonly parent: MappedTypeNode | ModifierParent;
1573
+ }
1574
+ interface RegularExpressionLiteral extends ts.Node {
1575
+ _expressionBrand: any;
1576
+ _leftHandSideExpressionBrand: any;
1577
+ _literalExpressionBrand: any;
1578
+ _memberExpressionBrand: any;
1579
+ _primaryExpressionBrand: any;
1580
+ _unaryExpressionBrand: any;
1581
+ _updateExpressionBrand: any;
1582
+ hasExtendedUnicodeEscape?: boolean;
1583
+ isUnterminated?: boolean;
1584
+ readonly kind: ts.SyntaxKind.RegularExpressionLiteral;
1585
+ readonly parent: LeftHandSideExpressionParent | LiteralTypeNode;
1586
+ text: string;
1587
+ }
1588
+ type RelationalOperator = ts.SyntaxKind.GreaterThanEqualsToken | ts.SyntaxKind.GreaterThanToken | ts.SyntaxKind.InKeyword | ts.SyntaxKind.InstanceOfKeyword | ts.SyntaxKind.LessThanEqualsToken | ts.SyntaxKind.LessThanToken;
1589
+ type RelationalOperatorOrHigher = RelationalOperator | ShiftOperatorOrHigher;
1590
+ interface RestTypeNode extends ts.Node {
1591
+ _typeNodeBrand: any;
1592
+ readonly kind: ts.SyntaxKind.RestType;
1593
+ readonly parent: TypeNodeParent;
1594
+ readonly type: TypeNode;
1595
+ }
1596
+ interface ReturnStatement extends ts.Node {
1597
+ _flowContainerBrand: any;
1598
+ _jsdocContainerBrand: any;
1599
+ _statementBrand: any;
1600
+ readonly expression?: Expression;
1601
+ readonly kind: ts.SyntaxKind.ReturnStatement;
1602
+ readonly parent: StatementParent;
1603
+ }
1604
+ interface SatisfiesExpression extends ts.Node {
1605
+ _expressionBrand: any;
1606
+ readonly expression: Expression;
1607
+ readonly kind: ts.SyntaxKind.SatisfiesExpression;
1608
+ readonly parent: ExpressionParent;
1609
+ readonly type: TypeNode;
1610
+ }
1611
+ interface SemicolonClassElement extends ts.Node {
1612
+ _classElementBrand: any;
1613
+ _declarationBrand: any;
1614
+ _jsdocContainerBrand: any;
1615
+ readonly kind: ts.SyntaxKind.SemicolonClassElement;
1616
+ readonly name?: PropertyName;
1617
+ readonly parent: ClassDeclaration | ClassExpression;
1618
+ }
1619
+ interface SetAccessorDeclaration extends ts.Node {
1620
+ _classElementBrand: any;
1621
+ _declarationBrand: any;
1622
+ _flowContainerBrand: any;
1623
+ _functionLikeDeclarationBrand: any;
1624
+ _jsdocContainerBrand: any;
1625
+ _localsContainerBrand: any;
1626
+ _objectLiteralBrand: any;
1627
+ _typeElementBrand: any;
1628
+ readonly asteriskToken?: AsteriskToken | undefined;
1629
+ readonly body?: FunctionBody;
1630
+ readonly exclamationToken?: ExclamationToken | undefined;
1631
+ readonly kind: ts.SyntaxKind.SetAccessor;
1632
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
1633
+ readonly name: PropertyName;
1634
+ readonly parameters: ts.NodeArray<ParameterDeclaration>;
1635
+ readonly parent: ClassDeclaration | ClassExpression | InterfaceDeclaration | MappedTypeNode | ObjectLiteralExpressionBase | TypeLiteralNode;
1636
+ readonly questionToken?: QuestionToken | undefined;
1637
+ readonly type?: TypeNode | undefined;
1638
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration> | undefined;
1639
+ }
1640
+ type ShiftOperator = ts.SyntaxKind.GreaterThanGreaterThanGreaterThanToken | ts.SyntaxKind.GreaterThanGreaterThanToken | ts.SyntaxKind.LessThanLessThanToken;
1641
+ type ShiftOperatorOrHigher = AdditiveOperatorOrHigher | ShiftOperator;
1642
+ interface ShorthandPropertyAssignment extends ts.Node {
1643
+ _declarationBrand: any;
1644
+ _jsdocContainerBrand: any;
1645
+ _objectLiteralBrand: any;
1646
+ readonly equalsToken?: EqualsToken;
1647
+ readonly kind: ts.SyntaxKind.ShorthandPropertyAssignment;
1648
+ readonly name: Identifier;
1649
+ readonly objectAssignmentInitializer?: Expression;
1650
+ readonly parent: ObjectLiteralExpressionBase;
1651
+ }
1652
+ interface SourceFile extends ts.Node {
1653
+ readonly kind: ts.SyntaxKind.SourceFile;
1654
+ amdDependencies: readonly ts.AmdDependency[];
1655
+ readonly endOfFileToken: Token<ts.SyntaxKind.EndOfFileToken, SourceFile>;
1656
+ fileName: string;
1657
+ isDeclarationFile: boolean;
1658
+ languageVariant: ts.LanguageVariant;
1659
+ libReferenceDirectives: readonly ts.FileReference[];
1660
+ moduleName?: string;
1661
+ readonly parent: NullNode;
1662
+ referencedFiles: readonly ts.FileReference[];
1663
+ readonly statements: ts.NodeArray<Statement>;
1664
+ text: string;
1665
+ typeReferenceDirectives: readonly ts.FileReference[];
1666
+ /**
1667
+ * lib.d.ts should have a reference comment like
1668
+ *
1669
+ * /// &lt;reference no-default-lib="true"/>
1670
+ *
1671
+ * If any other file has this comment, it signals not to include lib.d.ts
1672
+ * because this containing file is intended to act as a default library.
1673
+ */
1674
+ hasNoDefaultLib: boolean;
1675
+ languageVersion: ts.ScriptTarget;
1676
+ /**
1677
+ * When `module` is `Node16` or `NodeNext`, this field controls whether the
1678
+ * source file in question is an ESNext-output-format file, or a CommonJS-output-format
1679
+ * module. This is derived by the module resolver as it looks up the file, since
1680
+ * it is derived from either the file extension of the module, or the containing
1681
+ * `package.json` context, and affects both checking and emit.
1682
+ *
1683
+ * It is _public_ so that (pre)transformers can set this field,
1684
+ * since it switches the builtin `node` module transform. Generally speaking, if unset,
1685
+ * the field is treated as though it is `ModuleKind.CommonJS`.
1686
+ *
1687
+ * Note that this field is only set by the module resolution process when
1688
+ * `moduleResolution` is `Node16` or `NodeNext`, which is implied by the `module` setting
1689
+ * of `Node16` or `NodeNext`, respectively, but may be overriden (eg, by a `moduleResolution`
1690
+ * of `node`). If so, this field will be unset and source files will be considered to be
1691
+ * CommonJS-output-format by the node module transformer and type checker, regardless of extension or context.
1692
+ */
1693
+ _declarationBrand: any;
1694
+ _localsContainerBrand: any;
1695
+ getLineAndCharacterOfPosition(pos: number): ts.LineAndCharacter;
1696
+ getLineEndOfPosition(pos: number): number;
1697
+ getLineStarts(): readonly number[];
1698
+ getPositionOfLineAndCharacter(line: number, character: number): number;
1699
+ impliedNodeFormat?: ts.ResolutionMode;
1700
+ update(newText: string, textChangeRange: ts.TextChangeRange): SourceFile;
1701
+ }
1702
+ interface SpreadAssignment extends ts.Node {
1703
+ _declarationBrand: any;
1704
+ _jsdocContainerBrand: any;
1705
+ _objectLiteralBrand: any;
1706
+ readonly expression: Expression;
1707
+ readonly kind: ts.SyntaxKind.SpreadAssignment;
1708
+ readonly name?: PropertyName;
1709
+ readonly parent: ObjectLiteralExpressionBase;
1710
+ }
1711
+ interface SpreadElement extends ts.Node {
1712
+ _expressionBrand: any;
1713
+ readonly expression: Expression;
1714
+ readonly kind: ts.SyntaxKind.SpreadElement;
1715
+ readonly parent: ExpressionParent;
1716
+ }
1717
+ type Statement = Block | BreakStatement | ContinueStatement | DebuggerStatement | DeclarationStatement | EmptyStatement | ExpressionStatement | IfStatement | ImportDeclaration | IterationStatement | LabeledStatement | ModuleBlock | NotEmittedStatement | ReturnStatement | SwitchStatement | ThrowStatement | TryStatement | VariableStatement | WithStatement;
1718
+ interface StaticKeyword extends ts.Node {
1719
+ readonly kind: ts.SyntaxKind.StaticKeyword;
1720
+ readonly parent: ModifierParent;
1721
+ }
1722
+ interface StringKeyword extends ts.Node {
1723
+ _typeNodeBrand: any;
1724
+ readonly kind: ts.SyntaxKind.StringKeyword;
1725
+ readonly parent: TypeNodeParent;
1726
+ }
1727
+ interface StringLiteral extends ts.Node {
1728
+ _declarationBrand: any;
1729
+ _expressionBrand: any;
1730
+ _leftHandSideExpressionBrand: any;
1731
+ _literalExpressionBrand: any;
1732
+ _memberExpressionBrand: any;
1733
+ _primaryExpressionBrand: any;
1734
+ _unaryExpressionBrand: any;
1735
+ _updateExpressionBrand: any;
1736
+ hasExtendedUnicodeEscape?: boolean;
1737
+ isUnterminated?: boolean;
1738
+ readonly kind: ts.SyntaxKind.StringLiteral;
1739
+ readonly parent: ArrayLiteralExpression | ArrowFunction | AsExpression | AwaitExpression | BinaryExpression | BindingElement | CallExpression | CaseClause | ClassStaticBlockDeclaration | CommaListExpression | ComputedPropertyName | ConditionalExpression | ConstructorDeclaration | Decorator | DeleteExpression | ElementAccessExpression | EnumMember | ExportAssignment | ExportDeclaration | ExportSpecifier | ExpressionStatement | ExpressionWithTypeArguments | ExternalModuleReference | FunctionOrConstructorTypeNodeBase | IfStatement | ImportAttribute | ImportDeclaration | ImportSpecifier | IterationStatement | JSDocFunctionType | JsxAttributeLike | JsxExpression | LiteralTypeNode | MethodDeclaration | ModuleDeclaration | NamespaceExport | NewExpression | NonNullExpression | ParameterDeclaration | ParenthesizedExpression | PartiallyEmittedExpression | PostfixUnaryExpression | PrefixUnaryExpression | PropertyAccessExpression | PropertyAssignment | PropertyDeclaration | ReturnStatement | SatisfiesExpression | SemicolonClassElement | ShorthandPropertyAssignment | SpreadAssignment | SpreadElement | SwitchStatement | TaggedTemplateExpression | TemplateSpan | ThrowStatement | TypeAssertion | TypeElement | TypeOfExpression | TypeParameterDeclaration | VariableDeclaration | VoidExpression | WithStatement | YieldExpression;
1740
+ text: string;
1741
+ }
1742
+ interface SuperExpression extends ts.Node {
1743
+ _expressionBrand: any;
1744
+ _flowContainerBrand: any;
1745
+ _leftHandSideExpressionBrand: any;
1746
+ _memberExpressionBrand: any;
1747
+ _primaryExpressionBrand: any;
1748
+ _unaryExpressionBrand: any;
1749
+ _updateExpressionBrand: any;
1750
+ readonly kind: ts.SyntaxKind.SuperKeyword;
1751
+ readonly parent: LeftHandSideExpressionParent;
1752
+ }
1753
+ interface SwitchStatement extends ts.Node {
1754
+ _flowContainerBrand: any;
1755
+ _jsdocContainerBrand: any;
1756
+ _statementBrand: any;
1757
+ readonly caseBlock: CaseBlock;
1758
+ readonly expression: Expression;
1759
+ readonly kind: ts.SyntaxKind.SwitchStatement;
1760
+ readonly parent: StatementParent;
1761
+ possiblyExhaustive?: boolean;
1762
+ }
1763
+ interface SymbolKeyword extends ts.Node {
1764
+ _typeNodeBrand: any;
1765
+ readonly kind: ts.SyntaxKind.SymbolKeyword;
1766
+ readonly parent: TypeNodeParent;
1767
+ }
1768
+ interface SyntheticExpression extends ts.Node {
1769
+ _expressionBrand: any;
1770
+ readonly isSpread: boolean;
1771
+ readonly kind: ts.SyntaxKind.SyntheticExpression;
1772
+ readonly parent: ExpressionParent;
1773
+ readonly tupleNameSource?: NamedTupleMember | ParameterDeclaration;
1774
+ readonly type: ts.Type;
1775
+ }
1776
+ interface TaggedTemplateExpression extends ts.Node {
1777
+ _expressionBrand: any;
1778
+ _leftHandSideExpressionBrand: any;
1779
+ _memberExpressionBrand: any;
1780
+ _unaryExpressionBrand: any;
1781
+ _updateExpressionBrand: any;
1782
+ readonly kind: ts.SyntaxKind.TaggedTemplateExpression;
1783
+ readonly parent: LeftHandSideExpressionParent;
1784
+ readonly tag: LeftHandSideExpression;
1785
+ readonly template: TemplateLiteral;
1786
+ readonly typeArguments?: ts.NodeArray<TypeNode>;
1787
+ }
1788
+ interface TemplateExpression extends ts.Node {
1789
+ _expressionBrand: any;
1790
+ _leftHandSideExpressionBrand: any;
1791
+ _memberExpressionBrand: any;
1792
+ _primaryExpressionBrand: any;
1793
+ _unaryExpressionBrand: any;
1794
+ _updateExpressionBrand: any;
1795
+ readonly head: TemplateHead;
1796
+ readonly kind: ts.SyntaxKind.TemplateExpression;
1797
+ readonly parent: LeftHandSideExpressionParent;
1798
+ readonly templateSpans: ts.NodeArray<TemplateSpan>;
1799
+ }
1800
+ interface TemplateHead extends ts.Node {
1801
+ hasExtendedUnicodeEscape?: boolean;
1802
+ isUnterminated?: boolean;
1803
+ readonly kind: ts.SyntaxKind.TemplateHead;
1804
+ readonly parent: TemplateExpression | TemplateLiteralTypeNode;
1805
+ rawText?: string;
1806
+ text: string;
1807
+ }
1808
+ type TemplateLiteral = NoSubstitutionTemplateLiteral | TemplateExpression;
1809
+ interface TemplateLiteralTypeNode extends ts.Node {
1810
+ _typeNodeBrand: any;
1811
+ readonly head: TemplateHead;
1812
+ readonly kind: ts.SyntaxKind.TemplateLiteralType;
1813
+ readonly parent: TypeNodeParent;
1814
+ readonly templateSpans: ts.NodeArray<TemplateLiteralTypeSpan>;
1815
+ }
1816
+ interface TemplateLiteralTypeSpan extends ts.Node {
1817
+ _typeNodeBrand: any;
1818
+ readonly kind: ts.SyntaxKind.TemplateLiteralTypeSpan;
1819
+ readonly literal: TemplateMiddle | TemplateTail;
1820
+ readonly parent: TemplateLiteralTypeNode | TypeNodeParent;
1821
+ readonly type: TypeNode;
1822
+ }
1823
+ interface TemplateMiddle extends ts.Node {
1824
+ hasExtendedUnicodeEscape?: boolean;
1825
+ isUnterminated?: boolean;
1826
+ readonly kind: ts.SyntaxKind.TemplateMiddle;
1827
+ readonly parent: TemplateLiteralTypeSpan | TemplateSpan;
1828
+ rawText?: string;
1829
+ text: string;
1830
+ }
1831
+ interface TemplateSpan extends ts.Node {
1832
+ readonly expression: Expression;
1833
+ readonly kind: ts.SyntaxKind.TemplateSpan;
1834
+ readonly literal: TemplateMiddle | TemplateTail;
1835
+ readonly parent: TemplateExpression;
1836
+ }
1837
+ interface TemplateTail extends ts.Node {
1838
+ hasExtendedUnicodeEscape?: boolean;
1839
+ isUnterminated?: boolean;
1840
+ readonly kind: ts.SyntaxKind.TemplateTail;
1841
+ readonly parent: TemplateLiteralTypeSpan | TemplateSpan;
1842
+ rawText?: string;
1843
+ text: string;
1844
+ }
1845
+ interface ThisExpression extends ts.Node {
1846
+ _expressionBrand: any;
1847
+ _flowContainerBrand: any;
1848
+ _leftHandSideExpressionBrand: any;
1849
+ _memberExpressionBrand: any;
1850
+ _primaryExpressionBrand: any;
1851
+ _unaryExpressionBrand: any;
1852
+ _updateExpressionBrand: any;
1853
+ readonly kind: ts.SyntaxKind.ThisKeyword;
1854
+ readonly parent: JsxClosingElement | JsxOpeningElement | JsxSelfClosingElement | JsxTagNamePropertyAccess | LeftHandSideExpressionParent;
1855
+ }
1856
+ interface ThisTypeNode extends ts.Node {
1857
+ _typeNodeBrand: any;
1858
+ readonly kind: ts.SyntaxKind.ThisType;
1859
+ readonly parent: TypeNodeParent;
1860
+ }
1861
+ interface ThrowStatement extends ts.Node {
1862
+ _flowContainerBrand: any;
1863
+ _jsdocContainerBrand: any;
1864
+ _statementBrand: any;
1865
+ readonly expression: Expression;
1866
+ readonly kind: ts.SyntaxKind.ThrowStatement;
1867
+ readonly parent: StatementParent;
1868
+ }
1869
+ interface TrueLiteral extends ts.Node {
1870
+ _expressionBrand: any;
1871
+ _leftHandSideExpressionBrand: any;
1872
+ _memberExpressionBrand: any;
1873
+ _primaryExpressionBrand: any;
1874
+ _unaryExpressionBrand: any;
1875
+ _updateExpressionBrand: any;
1876
+ readonly kind: ts.SyntaxKind.TrueKeyword;
1877
+ readonly parent: LeftHandSideExpressionParent | LiteralTypeNode;
1878
+ }
1879
+ interface TryStatement extends ts.Node {
1880
+ _flowContainerBrand: any;
1881
+ _jsdocContainerBrand: any;
1882
+ _statementBrand: any;
1883
+ readonly catchClause?: CatchClause;
1884
+ readonly finallyBlock?: Block;
1885
+ readonly kind: ts.SyntaxKind.TryStatement;
1886
+ readonly parent: StatementParent;
1887
+ readonly tryBlock: Block;
1888
+ }
1889
+ interface TupleTypeNode extends ts.Node {
1890
+ _typeNodeBrand: any;
1891
+ readonly elements: ts.NodeArray<NamedTupleMember | TypeNode>;
1892
+ readonly kind: ts.SyntaxKind.TupleType;
1893
+ readonly parent: TypeNodeParent;
1894
+ }
1895
+ interface TypeAliasDeclaration extends ts.Node {
1896
+ _declarationBrand: any;
1897
+ _jsdocContainerBrand: any;
1898
+ _localsContainerBrand: any;
1899
+ _statementBrand: any;
1900
+ readonly kind: ts.SyntaxKind.TypeAliasDeclaration;
1901
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
1902
+ readonly name: Identifier;
1903
+ readonly parent: StatementParent;
1904
+ readonly type: TypeNode;
1905
+ readonly typeParameters?: ts.NodeArray<TypeParameterDeclaration>;
1906
+ }
1907
+ interface TypeAssertion extends ts.Node {
1908
+ _expressionBrand: any;
1909
+ _unaryExpressionBrand: any;
1910
+ readonly expression: UnaryExpression;
1911
+ readonly kind: ts.SyntaxKind.TypeAssertionExpression;
1912
+ readonly parent: AwaitExpression | DeleteExpression | ExpressionParent | PrefixUnaryExpression | TypeAssertion | TypeOfExpression | VoidExpression;
1913
+ readonly type: TypeNode;
1914
+ }
1915
+ type TypeElement = CallSignatureDeclaration | ConstructSignatureDeclaration | GetAccessorDeclaration | IndexSignatureDeclaration | MethodSignature | NotEmittedTypeElement | PropertySignature | SetAccessorDeclaration;
1916
+ interface TypeLiteralNode extends ts.Node {
1917
+ _declarationBrand: any;
1918
+ _typeNodeBrand: any;
1919
+ readonly kind: ts.SyntaxKind.TypeLiteral;
1920
+ readonly members: ts.NodeArray<TypeElement>;
1921
+ readonly parent: TypeNodeParent;
1922
+ }
1923
+ type TypeNode = AnyKeyword | ArrayTypeNode | BigIntKeyword | BooleanKeyword | ConditionalTypeNode | FunctionOrConstructorTypeNodeBase | IndexedAccessTypeNode | InferTypeNode | IntersectionTypeNode | IntrinsicKeyword | JSDocType | JSDocTypeExpression | LiteralTypeNode | MappedTypeNode | NamedTupleMember | NeverKeyword | NodeWithTypeArguments | NumberKeyword | ObjectKeyword | OptionalTypeNode | ParenthesizedTypeNode | RestTypeNode | StringKeyword | SymbolKeyword | TemplateLiteralTypeNode | TemplateLiteralTypeSpan | ThisTypeNode | TupleTypeNode | TypeLiteralNode | TypeOperatorNode | TypePredicateNode | UndefinedKeyword | UnionTypeNode | UnknownKeyword | VoidKeyword;
1924
+ interface TypeOfExpression extends ts.Node {
1925
+ _expressionBrand: any;
1926
+ _unaryExpressionBrand: any;
1927
+ readonly expression: UnaryExpression;
1928
+ readonly kind: ts.SyntaxKind.TypeOfExpression;
1929
+ readonly parent: AwaitExpression | DeleteExpression | ExpressionParent | PrefixUnaryExpression | TypeAssertion | TypeOfExpression | VoidExpression;
1930
+ }
1931
+ interface TypeOperatorNode extends ts.Node {
1932
+ _typeNodeBrand: any;
1933
+ readonly kind: ts.SyntaxKind.TypeOperator;
1934
+ readonly operator: ts.SyntaxKind.KeyOfKeyword | ts.SyntaxKind.ReadonlyKeyword | ts.SyntaxKind.UniqueKeyword;
1935
+ readonly parent: TypeNodeParent;
1936
+ readonly type: TypeNode;
1937
+ }
1938
+ interface TypeParameterDeclaration extends ts.Node {
1939
+ readonly kind: ts.SyntaxKind.TypeParameter;
1940
+ readonly modifiers?: ts.NodeArray<Modifier>;
1941
+ readonly name: Identifier;
1942
+ readonly parent: AccessorDeclaration | ArrowFunction | CallSignatureDeclaration | ClassDeclaration | ClassExpression | ConstructorDeclaration | ConstructSignatureDeclaration | FunctionDeclaration | FunctionExpression | FunctionOrConstructorTypeNodeBase | IndexSignatureDeclaration | InferTypeNode | InterfaceDeclaration | JSDocFunctionType | JSDocTemplateTag | MappedTypeNode | MethodDeclaration | MethodSignature | TypeAliasDeclaration;
1943
+ /** Note: Consider calling `getEffectiveConstraintOfTypeParameter` */
1944
+ _declarationBrand: any;
1945
+ _jsdocContainerBrand: any;
1946
+ readonly constraint?: TypeNode;
1947
+ readonly default?: TypeNode;
1948
+ expression?: Expression;
1949
+ }
1950
+ interface TypePredicateNode extends ts.Node {
1951
+ _typeNodeBrand: any;
1952
+ readonly assertsModifier?: AssertsKeyword;
1953
+ readonly kind: ts.SyntaxKind.TypePredicate;
1954
+ readonly parameterName: Identifier | ThisTypeNode;
1955
+ readonly parent: TypeNodeParent;
1956
+ readonly type?: TypeNode;
1957
+ }
1958
+ interface TypeQueryNode extends ts.Node {
1959
+ _typeNodeBrand: any;
1960
+ readonly exprName: EntityName;
1961
+ readonly kind: ts.SyntaxKind.TypeQuery;
1962
+ readonly parent: TypeNodeParent;
1963
+ readonly typeArguments?: ts.NodeArray<TypeNode>;
1964
+ }
1965
+ interface TypeReferenceNode extends ts.Node {
1966
+ _typeNodeBrand: any;
1967
+ readonly kind: ts.SyntaxKind.TypeReference;
1968
+ readonly parent: TypeNodeParent;
1969
+ readonly typeArguments?: ts.NodeArray<TypeNode>;
1970
+ readonly typeName: EntityName;
1971
+ }
1972
+ type UnaryExpression = AwaitExpression | DeleteExpression | TypeAssertion | TypeOfExpression | UpdateExpression | VoidExpression;
1973
+ interface UndefinedKeyword extends ts.Node {
1974
+ _typeNodeBrand: any;
1975
+ readonly kind: ts.SyntaxKind.UndefinedKeyword;
1976
+ readonly parent: TypeNodeParent;
1977
+ }
1978
+ interface UnionTypeNode extends ts.Node {
1979
+ _typeNodeBrand: any;
1980
+ readonly kind: ts.SyntaxKind.UnionType;
1981
+ readonly parent: TypeNodeParent;
1982
+ readonly types: ts.NodeArray<TypeNode>;
1983
+ }
1984
+ interface UnknownKeyword extends ts.Node {
1985
+ _typeNodeBrand: any;
1986
+ readonly kind: ts.SyntaxKind.UnknownKeyword;
1987
+ readonly parent: TypeNodeParent;
1988
+ }
1989
+ type UpdateExpression = LeftHandSideExpression | PostfixUnaryExpression | PrefixUnaryExpression;
1990
+ interface VariableDeclaration extends ts.Node {
1991
+ _declarationBrand: any;
1992
+ _jsdocContainerBrand: any;
1993
+ readonly exclamationToken?: ExclamationToken;
1994
+ readonly initializer?: Expression;
1995
+ readonly kind: ts.SyntaxKind.VariableDeclaration;
1996
+ readonly name: BindingName;
1997
+ readonly parent: CatchClause | VariableDeclarationList;
1998
+ readonly type?: TypeNode;
1999
+ }
2000
+ interface VariableDeclarationList extends ts.Node {
2001
+ readonly declarations: ts.NodeArray<VariableDeclaration>;
2002
+ readonly kind: ts.SyntaxKind.VariableDeclarationList;
2003
+ readonly parent: ForInStatement | ForOfStatement | ForStatement | VariableStatement;
2004
+ }
2005
+ interface VariableStatement extends ts.Node {
2006
+ _flowContainerBrand: any;
2007
+ _jsdocContainerBrand: any;
2008
+ _statementBrand: any;
2009
+ readonly declarationList: VariableDeclarationList;
2010
+ readonly kind: ts.SyntaxKind.VariableStatement;
2011
+ readonly modifiers?: ts.NodeArray<ModifierLike>;
2012
+ readonly parent: StatementParent;
2013
+ }
2014
+ interface VoidExpression extends ts.Node {
2015
+ _expressionBrand: any;
2016
+ _unaryExpressionBrand: any;
2017
+ readonly expression: UnaryExpression;
2018
+ readonly kind: ts.SyntaxKind.VoidExpression;
2019
+ readonly parent: AwaitExpression | DeleteExpression | ExpressionParent | PrefixUnaryExpression | TypeAssertion | TypeOfExpression | VoidExpression;
2020
+ }
2021
+ interface VoidKeyword extends ts.Node {
2022
+ _typeNodeBrand: any;
2023
+ readonly kind: ts.SyntaxKind.VoidKeyword;
2024
+ readonly parent: TypeNodeParent;
2025
+ }
2026
+ interface WhileStatement extends ts.Node {
2027
+ _flowContainerBrand: any;
2028
+ _jsdocContainerBrand: any;
2029
+ _statementBrand: any;
2030
+ readonly expression: Expression;
2031
+ readonly kind: ts.SyntaxKind.WhileStatement;
2032
+ readonly parent: StatementParent;
2033
+ readonly statement: Statement;
2034
+ }
2035
+ interface WithStatement extends ts.Node {
2036
+ _flowContainerBrand: any;
2037
+ _jsdocContainerBrand: any;
2038
+ _statementBrand: any;
2039
+ readonly expression: Expression;
2040
+ readonly kind: ts.SyntaxKind.WithStatement;
2041
+ readonly parent: StatementParent;
2042
+ readonly statement: Statement;
2043
+ }
2044
+ interface YieldExpression extends ts.Node {
2045
+ _expressionBrand: any;
2046
+ readonly asteriskToken?: AsteriskToken;
2047
+ readonly expression?: Expression;
2048
+ readonly kind: ts.SyntaxKind.YieldExpression;
2049
+ readonly parent: ExpressionParent;
2050
+ }
2051
+ interface Token<Kind extends ts.SyntaxKind, Parent extends ts.Node> extends ts.Node {
2052
+ readonly kind: Kind;
2053
+ readonly parent: Parent;
2054
+ }
2055
+ interface NullNode extends ts.Node {
2056
+ readonly kind: ts.SyntaxKind.NullKeyword;
2057
+ readonly parent: NullNode;
2058
+ }
2059
+ type ExpressionParent = ArrayLiteralExpression | ArrowFunction | AsExpression | BinaryExpression | BindingElement | CallExpression | CaseClause | CommaListExpression | ComputedPropertyName | ConditionalExpression | ElementAccessExpression | EnumMember | ExportAssignment | ExportDeclaration | ExpressionStatement | ExternalModuleReference | IfStatement | ImportAttribute | ImportDeclaration | IterationStatement | JsxExpression | JsxSpreadAttribute | NewExpression | NonNullExpression | ParameterDeclaration | ParenthesizedExpression | PartiallyEmittedExpression | PropertyAssignment | PropertyDeclaration | ReturnStatement | SatisfiesExpression | ShorthandPropertyAssignment | SpreadAssignment | SpreadElement | SwitchStatement | TemplateSpan | ThrowStatement | TypeParameterDeclaration | VariableDeclaration | WithStatement | YieldExpression;
2060
+ type LeftHandSideExpressionParent = AwaitExpression | Decorator | DeleteExpression | ExpressionParent | ExpressionWithTypeArguments | PostfixUnaryExpression | PrefixUnaryExpression | PropertyAccessExpression | TaggedTemplateExpression | TypeAssertion | TypeOfExpression | VoidExpression;
2061
+ type ModifierParent = AccessorDeclaration | ArrowFunction | ClassDeclaration | ClassExpression | ConstructorDeclaration | ConstructorTypeNode | EnumDeclaration | ExportAssignment | ExportDeclaration | FunctionDeclaration | FunctionExpression | ImportDeclaration | ImportEqualsDeclaration | IndexSignatureDeclaration | InterfaceDeclaration | JSDocNamespaceDeclaration | MethodDeclaration | MethodSignature | ModuleDeclaration | NamespaceDeclaration | ParameterDeclaration | PropertyDeclaration | PropertySignature | TypeAliasDeclaration | TypeParameterDeclaration | VariableStatement;
2062
+ type StatementParent = Block | CaseOrDefaultClause | IfStatement | IterationStatement | LabeledStatement | ModuleBlock | SourceFile | WithStatement;
2063
+ type TypeNodeParent = AccessorDeclaration | ArrayTypeNode | ArrowFunction | AsExpression | CallExpression | CallSignatureDeclaration | ConditionalTypeNode | ConstructorDeclaration | ConstructSignatureDeclaration | FunctionDeclaration | FunctionExpression | FunctionOrConstructorTypeNodeBase | IndexedAccessTypeNode | IndexSignatureDeclaration | IntersectionTypeNode | JSDocFunctionType | JSDocNamepathType | JSDocNonNullableType | JSDocNullableType | JSDocOptionalType | JSDocTypeExpression | JSDocVariadicType | JsxOpeningElement | JsxSelfClosingElement | MappedTypeNode | MethodDeclaration | MethodSignature | NamedTupleMember | NewExpression | NodeWithTypeArguments | OptionalTypeNode | ParameterDeclaration | ParenthesizedTypeNode | PropertyDeclaration | PropertySignature | RestTypeNode | SatisfiesExpression | TaggedTemplateExpression | TemplateLiteralTypeSpan | TupleTypeNode | TypeAliasDeclaration | TypeAssertion | TypeOperatorNode | TypeParameterDeclaration | TypePredicateNode | UnionTypeNode | VariableDeclaration;
2064
+ //#endregion
2065
+ export { CallExpression, Decorator, Expression, JsxOpeningElement, JsxSelfClosingElement, NewExpression, PropertyAccessExpression, TaggedTemplateExpression };
2066
+ //# sourceMappingURL=ast.d.ts.map