@exbotanical/eslint-config 1.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.
@@ -0,0 +1,2106 @@
1
+ import { Linter } from 'eslint';
2
+ import { ParserOptions } from '@typescript-eslint/parser';
3
+
4
+ /* eslint-disable */
5
+ /* prettier-ignore */
6
+
7
+
8
+ interface RuleOptions {
9
+ /**
10
+ * require a `eslint-enable` comment for every `eslint-disable` comment
11
+ * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/disable-enable-pair.html
12
+ */
13
+ 'comments/disable-enable-pair'?: Linter.RuleEntry<CommentsDisableEnablePair>
14
+ /**
15
+ * disallow a `eslint-enable` comment for multiple `eslint-disable` comments
16
+ * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-aggregating-enable.html
17
+ */
18
+ 'comments/no-aggregating-enable'?: Linter.RuleEntry<[]>
19
+ /**
20
+ * disallow duplicate `eslint-disable` comments
21
+ * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-duplicate-disable.html
22
+ */
23
+ 'comments/no-duplicate-disable'?: Linter.RuleEntry<[]>
24
+ /**
25
+ * disallow `eslint-disable` comments about specific rules
26
+ * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-restricted-disable.html
27
+ */
28
+ 'comments/no-restricted-disable'?: Linter.RuleEntry<CommentsNoRestrictedDisable>
29
+ /**
30
+ * disallow `eslint-disable` comments without rule names
31
+ * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-unlimited-disable.html
32
+ */
33
+ 'comments/no-unlimited-disable'?: Linter.RuleEntry<[]>
34
+ /**
35
+ * disallow unused `eslint-disable` comments
36
+ * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-unused-disable.html
37
+ */
38
+ 'comments/no-unused-disable'?: Linter.RuleEntry<[]>
39
+ /**
40
+ * disallow unused `eslint-enable` comments
41
+ * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-unused-enable.html
42
+ */
43
+ 'comments/no-unused-enable'?: Linter.RuleEntry<[]>
44
+ /**
45
+ * disallow ESLint directive-comments
46
+ * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-use.html
47
+ */
48
+ 'comments/no-use'?: Linter.RuleEntry<CommentsNoUse>
49
+ /**
50
+ * require include descriptions in ESLint directive-comments
51
+ * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/require-description.html
52
+ */
53
+ 'comments/require-description'?: Linter.RuleEntry<CommentsRequireDescription>
54
+ /**
55
+ * Require that function overload signatures be consecutive
56
+ * @see https://typescript-eslint.io/rules/adjacent-overload-signatures
57
+ */
58
+ 'ts/adjacent-overload-signatures'?: Linter.RuleEntry<[]>
59
+ /**
60
+ * Require consistently using either `T[]` or `Array<T>` for arrays
61
+ * @see https://typescript-eslint.io/rules/array-type
62
+ */
63
+ 'ts/array-type'?: Linter.RuleEntry<TsArrayType>
64
+ /**
65
+ * Disallow awaiting a value that is not a Thenable
66
+ * @see https://typescript-eslint.io/rules/await-thenable
67
+ */
68
+ 'ts/await-thenable'?: Linter.RuleEntry<[]>
69
+ /**
70
+ * Disallow `@ts-<directive>` comments or require descriptions after directives
71
+ * @see https://typescript-eslint.io/rules/ban-ts-comment
72
+ */
73
+ 'ts/ban-ts-comment'?: Linter.RuleEntry<TsBanTsComment>
74
+ /**
75
+ * Disallow `// tslint:<rule-flag>` comments
76
+ * @see https://typescript-eslint.io/rules/ban-tslint-comment
77
+ */
78
+ 'ts/ban-tslint-comment'?: Linter.RuleEntry<[]>
79
+ /**
80
+ * Enforce that literals on classes are exposed in a consistent style
81
+ * @see https://typescript-eslint.io/rules/class-literal-property-style
82
+ */
83
+ 'ts/class-literal-property-style'?: Linter.RuleEntry<TsClassLiteralPropertyStyle>
84
+ /**
85
+ * Enforce that class methods utilize `this`
86
+ * @see https://typescript-eslint.io/rules/class-methods-use-this
87
+ */
88
+ 'ts/class-methods-use-this'?: Linter.RuleEntry<TsClassMethodsUseThis>
89
+ /**
90
+ * Enforce specifying generic type arguments on type annotation or constructor name of a constructor call
91
+ * @see https://typescript-eslint.io/rules/consistent-generic-constructors
92
+ */
93
+ 'ts/consistent-generic-constructors'?: Linter.RuleEntry<TsConsistentGenericConstructors>
94
+ /**
95
+ * Require or disallow the `Record` type
96
+ * @see https://typescript-eslint.io/rules/consistent-indexed-object-style
97
+ */
98
+ 'ts/consistent-indexed-object-style'?: Linter.RuleEntry<TsConsistentIndexedObjectStyle>
99
+ /**
100
+ * Require `return` statements to either always or never specify values
101
+ * @see https://typescript-eslint.io/rules/consistent-return
102
+ */
103
+ 'ts/consistent-return'?: Linter.RuleEntry<TsConsistentReturn>
104
+ /**
105
+ * Enforce consistent usage of type assertions
106
+ * @see https://typescript-eslint.io/rules/consistent-type-assertions
107
+ */
108
+ 'ts/consistent-type-assertions'?: Linter.RuleEntry<TsConsistentTypeAssertions>
109
+ /**
110
+ * Enforce type definitions to consistently use either `interface` or `type`
111
+ * @see https://typescript-eslint.io/rules/consistent-type-definitions
112
+ */
113
+ 'ts/consistent-type-definitions'?: Linter.RuleEntry<TsConsistentTypeDefinitions>
114
+ /**
115
+ * Enforce consistent usage of type exports
116
+ * @see https://typescript-eslint.io/rules/consistent-type-exports
117
+ */
118
+ 'ts/consistent-type-exports'?: Linter.RuleEntry<TsConsistentTypeExports>
119
+ /**
120
+ * Enforce consistent usage of type imports
121
+ * @see https://typescript-eslint.io/rules/consistent-type-imports
122
+ */
123
+ 'ts/consistent-type-imports'?: Linter.RuleEntry<TsConsistentTypeImports>
124
+ /**
125
+ * Enforce default parameters to be last
126
+ * @see https://typescript-eslint.io/rules/default-param-last
127
+ */
128
+ 'ts/default-param-last'?: Linter.RuleEntry<[]>
129
+ /**
130
+ * Enforce dot notation whenever possible
131
+ * @see https://typescript-eslint.io/rules/dot-notation
132
+ */
133
+ 'ts/dot-notation'?: Linter.RuleEntry<TsDotNotation>
134
+ /**
135
+ * Require explicit return types on functions and class methods
136
+ * @see https://typescript-eslint.io/rules/explicit-function-return-type
137
+ */
138
+ 'ts/explicit-function-return-type'?: Linter.RuleEntry<TsExplicitFunctionReturnType>
139
+ /**
140
+ * Require explicit accessibility modifiers on class properties and methods
141
+ * @see https://typescript-eslint.io/rules/explicit-member-accessibility
142
+ */
143
+ 'ts/explicit-member-accessibility'?: Linter.RuleEntry<TsExplicitMemberAccessibility>
144
+ /**
145
+ * Require explicit return and argument types on exported functions' and classes' public class methods
146
+ * @see https://typescript-eslint.io/rules/explicit-module-boundary-types
147
+ */
148
+ 'ts/explicit-module-boundary-types'?: Linter.RuleEntry<TsExplicitModuleBoundaryTypes>
149
+ /**
150
+ * Require or disallow initialization in variable declarations
151
+ * @see https://typescript-eslint.io/rules/init-declarations
152
+ */
153
+ 'ts/init-declarations'?: Linter.RuleEntry<TsInitDeclarations>
154
+ /**
155
+ * Enforce a maximum number of parameters in function definitions
156
+ * @see https://typescript-eslint.io/rules/max-params
157
+ */
158
+ 'ts/max-params'?: Linter.RuleEntry<TsMaxParams>
159
+ /**
160
+ * Require a consistent member declaration order
161
+ * @see https://typescript-eslint.io/rules/member-ordering
162
+ */
163
+ 'ts/member-ordering'?: Linter.RuleEntry<TsMemberOrdering>
164
+ /**
165
+ * Enforce using a particular method signature syntax
166
+ * @see https://typescript-eslint.io/rules/method-signature-style
167
+ */
168
+ 'ts/method-signature-style'?: Linter.RuleEntry<TsMethodSignatureStyle>
169
+ /**
170
+ * Enforce naming conventions for everything across a codebase
171
+ * @see https://typescript-eslint.io/rules/naming-convention
172
+ */
173
+ 'ts/naming-convention'?: Linter.RuleEntry<TsNamingConvention>
174
+ /**
175
+ * Disallow generic `Array` constructors
176
+ * @see https://typescript-eslint.io/rules/no-array-constructor
177
+ */
178
+ 'ts/no-array-constructor'?: Linter.RuleEntry<[]>
179
+ /**
180
+ * Disallow using the `delete` operator on array values
181
+ * @see https://typescript-eslint.io/rules/no-array-delete
182
+ */
183
+ 'ts/no-array-delete'?: Linter.RuleEntry<[]>
184
+ /**
185
+ * Require `.toString()` and `.toLocaleString()` to only be called on objects which provide useful information when stringified
186
+ * @see https://typescript-eslint.io/rules/no-base-to-string
187
+ */
188
+ 'ts/no-base-to-string'?: Linter.RuleEntry<TsNoBaseToString>
189
+ /**
190
+ * Disallow non-null assertion in locations that may be confusing
191
+ * @see https://typescript-eslint.io/rules/no-confusing-non-null-assertion
192
+ */
193
+ 'ts/no-confusing-non-null-assertion'?: Linter.RuleEntry<[]>
194
+ /**
195
+ * Require expressions of type void to appear in statement position
196
+ * @see https://typescript-eslint.io/rules/no-confusing-void-expression
197
+ */
198
+ 'ts/no-confusing-void-expression'?: Linter.RuleEntry<TsNoConfusingVoidExpression>
199
+ /**
200
+ * Disallow using code marked as `@deprecated`
201
+ * @see https://typescript-eslint.io/rules/no-deprecated
202
+ */
203
+ 'ts/no-deprecated'?: Linter.RuleEntry<TsNoDeprecated>
204
+ /**
205
+ * Disallow duplicate class members
206
+ * @see https://typescript-eslint.io/rules/no-dupe-class-members
207
+ */
208
+ 'ts/no-dupe-class-members'?: Linter.RuleEntry<[]>
209
+ /**
210
+ * Disallow duplicate enum member values
211
+ * @see https://typescript-eslint.io/rules/no-duplicate-enum-values
212
+ */
213
+ 'ts/no-duplicate-enum-values'?: Linter.RuleEntry<[]>
214
+ /**
215
+ * Disallow duplicate constituents of union or intersection types
216
+ * @see https://typescript-eslint.io/rules/no-duplicate-type-constituents
217
+ */
218
+ 'ts/no-duplicate-type-constituents'?: Linter.RuleEntry<TsNoDuplicateTypeConstituents>
219
+ /**
220
+ * Disallow using the `delete` operator on computed key expressions
221
+ * @see https://typescript-eslint.io/rules/no-dynamic-delete
222
+ */
223
+ 'ts/no-dynamic-delete'?: Linter.RuleEntry<[]>
224
+ /**
225
+ * Disallow empty functions
226
+ * @see https://typescript-eslint.io/rules/no-empty-function
227
+ */
228
+ 'ts/no-empty-function'?: Linter.RuleEntry<TsNoEmptyFunction>
229
+ /**
230
+ * Disallow the declaration of empty interfaces
231
+ * @see https://typescript-eslint.io/rules/no-empty-interface
232
+ * @deprecated
233
+ */
234
+ 'ts/no-empty-interface'?: Linter.RuleEntry<TsNoEmptyInterface>
235
+ /**
236
+ * Disallow accidentally using the "empty object" type
237
+ * @see https://typescript-eslint.io/rules/no-empty-object-type
238
+ */
239
+ 'ts/no-empty-object-type'?: Linter.RuleEntry<TsNoEmptyObjectType>
240
+ /**
241
+ * Disallow the `any` type
242
+ * @see https://typescript-eslint.io/rules/no-explicit-any
243
+ */
244
+ 'ts/no-explicit-any'?: Linter.RuleEntry<TsNoExplicitAny>
245
+ /**
246
+ * Disallow extra non-null assertions
247
+ * @see https://typescript-eslint.io/rules/no-extra-non-null-assertion
248
+ */
249
+ 'ts/no-extra-non-null-assertion'?: Linter.RuleEntry<[]>
250
+ /**
251
+ * Disallow classes used as namespaces
252
+ * @see https://typescript-eslint.io/rules/no-extraneous-class
253
+ */
254
+ 'ts/no-extraneous-class'?: Linter.RuleEntry<TsNoExtraneousClass>
255
+ /**
256
+ * Require Promise-like statements to be handled appropriately
257
+ * @see https://typescript-eslint.io/rules/no-floating-promises
258
+ */
259
+ 'ts/no-floating-promises'?: Linter.RuleEntry<TsNoFloatingPromises>
260
+ /**
261
+ * Disallow iterating over an array with a for-in loop
262
+ * @see https://typescript-eslint.io/rules/no-for-in-array
263
+ */
264
+ 'ts/no-for-in-array'?: Linter.RuleEntry<[]>
265
+ /**
266
+ * Disallow the use of `eval()`-like functions
267
+ * @see https://typescript-eslint.io/rules/no-implied-eval
268
+ */
269
+ 'ts/no-implied-eval'?: Linter.RuleEntry<[]>
270
+ /**
271
+ * Enforce the use of top-level import type qualifier when an import only has specifiers with inline type qualifiers
272
+ * @see https://typescript-eslint.io/rules/no-import-type-side-effects
273
+ */
274
+ 'ts/no-import-type-side-effects'?: Linter.RuleEntry<[]>
275
+ /**
276
+ * Disallow explicit type declarations for variables or parameters initialized to a number, string, or boolean
277
+ * @see https://typescript-eslint.io/rules/no-inferrable-types
278
+ */
279
+ 'ts/no-inferrable-types'?: Linter.RuleEntry<TsNoInferrableTypes>
280
+ /**
281
+ * Disallow `this` keywords outside of classes or class-like objects
282
+ * @see https://typescript-eslint.io/rules/no-invalid-this
283
+ */
284
+ 'ts/no-invalid-this'?: Linter.RuleEntry<TsNoInvalidThis>
285
+ /**
286
+ * Disallow `void` type outside of generic or return types
287
+ * @see https://typescript-eslint.io/rules/no-invalid-void-type
288
+ */
289
+ 'ts/no-invalid-void-type'?: Linter.RuleEntry<TsNoInvalidVoidType>
290
+ /**
291
+ * Disallow function declarations that contain unsafe references inside loop statements
292
+ * @see https://typescript-eslint.io/rules/no-loop-func
293
+ */
294
+ 'ts/no-loop-func'?: Linter.RuleEntry<[]>
295
+ /**
296
+ * Disallow literal numbers that lose precision
297
+ * @see https://typescript-eslint.io/rules/no-loss-of-precision
298
+ * @deprecated
299
+ */
300
+ 'ts/no-loss-of-precision'?: Linter.RuleEntry<[]>
301
+ /**
302
+ * Disallow magic numbers
303
+ * @see https://typescript-eslint.io/rules/no-magic-numbers
304
+ */
305
+ 'ts/no-magic-numbers'?: Linter.RuleEntry<TsNoMagicNumbers>
306
+ /**
307
+ * Disallow the `void` operator except when used to discard a value
308
+ * @see https://typescript-eslint.io/rules/no-meaningless-void-operator
309
+ */
310
+ 'ts/no-meaningless-void-operator'?: Linter.RuleEntry<TsNoMeaninglessVoidOperator>
311
+ /**
312
+ * Enforce valid definition of `new` and `constructor`
313
+ * @see https://typescript-eslint.io/rules/no-misused-new
314
+ */
315
+ 'ts/no-misused-new'?: Linter.RuleEntry<[]>
316
+ /**
317
+ * Disallow Promises in places not designed to handle them
318
+ * @see https://typescript-eslint.io/rules/no-misused-promises
319
+ */
320
+ 'ts/no-misused-promises'?: Linter.RuleEntry<TsNoMisusedPromises>
321
+ /**
322
+ * Disallow using the spread operator when it might cause unexpected behavior
323
+ * @see https://typescript-eslint.io/rules/no-misused-spread
324
+ */
325
+ 'ts/no-misused-spread'?: Linter.RuleEntry<TsNoMisusedSpread>
326
+ /**
327
+ * Disallow enums from having both number and string members
328
+ * @see https://typescript-eslint.io/rules/no-mixed-enums
329
+ */
330
+ 'ts/no-mixed-enums'?: Linter.RuleEntry<[]>
331
+ /**
332
+ * Disallow TypeScript namespaces
333
+ * @see https://typescript-eslint.io/rules/no-namespace
334
+ */
335
+ 'ts/no-namespace'?: Linter.RuleEntry<TsNoNamespace>
336
+ /**
337
+ * Disallow non-null assertions in the left operand of a nullish coalescing operator
338
+ * @see https://typescript-eslint.io/rules/no-non-null-asserted-nullish-coalescing
339
+ */
340
+ 'ts/no-non-null-asserted-nullish-coalescing'?: Linter.RuleEntry<[]>
341
+ /**
342
+ * Disallow non-null assertions after an optional chain expression
343
+ * @see https://typescript-eslint.io/rules/no-non-null-asserted-optional-chain
344
+ */
345
+ 'ts/no-non-null-asserted-optional-chain'?: Linter.RuleEntry<[]>
346
+ /**
347
+ * Disallow non-null assertions using the `!` postfix operator
348
+ * @see https://typescript-eslint.io/rules/no-non-null-assertion
349
+ */
350
+ 'ts/no-non-null-assertion'?: Linter.RuleEntry<[]>
351
+ /**
352
+ * Disallow variable redeclaration
353
+ * @see https://typescript-eslint.io/rules/no-redeclare
354
+ */
355
+ 'ts/no-redeclare'?: Linter.RuleEntry<TsNoRedeclare>
356
+ /**
357
+ * Disallow members of unions and intersections that do nothing or override type information
358
+ * @see https://typescript-eslint.io/rules/no-redundant-type-constituents
359
+ */
360
+ 'ts/no-redundant-type-constituents'?: Linter.RuleEntry<[]>
361
+ /**
362
+ * Disallow invocation of `require()`
363
+ * @see https://typescript-eslint.io/rules/no-require-imports
364
+ */
365
+ 'ts/no-require-imports'?: Linter.RuleEntry<TsNoRequireImports>
366
+ /**
367
+ * Disallow specified modules when loaded by `import`
368
+ * @see https://typescript-eslint.io/rules/no-restricted-imports
369
+ */
370
+ 'ts/no-restricted-imports'?: Linter.RuleEntry<TsNoRestrictedImports>
371
+ /**
372
+ * Disallow certain types
373
+ * @see https://typescript-eslint.io/rules/no-restricted-types
374
+ */
375
+ 'ts/no-restricted-types'?: Linter.RuleEntry<TsNoRestrictedTypes>
376
+ /**
377
+ * Disallow variable declarations from shadowing variables declared in the outer scope
378
+ * @see https://typescript-eslint.io/rules/no-shadow
379
+ */
380
+ 'ts/no-shadow'?: Linter.RuleEntry<TsNoShadow>
381
+ /**
382
+ * Disallow aliasing `this`
383
+ * @see https://typescript-eslint.io/rules/no-this-alias
384
+ */
385
+ 'ts/no-this-alias'?: Linter.RuleEntry<TsNoThisAlias>
386
+ /**
387
+ * Disallow type aliases
388
+ * @see https://typescript-eslint.io/rules/no-type-alias
389
+ * @deprecated
390
+ */
391
+ 'ts/no-type-alias'?: Linter.RuleEntry<TsNoTypeAlias>
392
+ /**
393
+ * Disallow unnecessary equality comparisons against boolean literals
394
+ * @see https://typescript-eslint.io/rules/no-unnecessary-boolean-literal-compare
395
+ */
396
+ 'ts/no-unnecessary-boolean-literal-compare'?: Linter.RuleEntry<TsNoUnnecessaryBooleanLiteralCompare>
397
+ /**
398
+ * Disallow conditionals where the type is always truthy or always falsy
399
+ * @see https://typescript-eslint.io/rules/no-unnecessary-condition
400
+ */
401
+ 'ts/no-unnecessary-condition'?: Linter.RuleEntry<TsNoUnnecessaryCondition>
402
+ /**
403
+ * Disallow unnecessary assignment of constructor property parameter
404
+ * @see https://typescript-eslint.io/rules/no-unnecessary-parameter-property-assignment
405
+ */
406
+ 'ts/no-unnecessary-parameter-property-assignment'?: Linter.RuleEntry<[]>
407
+ /**
408
+ * Disallow unnecessary namespace qualifiers
409
+ * @see https://typescript-eslint.io/rules/no-unnecessary-qualifier
410
+ */
411
+ 'ts/no-unnecessary-qualifier'?: Linter.RuleEntry<[]>
412
+ /**
413
+ * Disallow unnecessary template expressions
414
+ * @see https://typescript-eslint.io/rules/no-unnecessary-template-expression
415
+ */
416
+ 'ts/no-unnecessary-template-expression'?: Linter.RuleEntry<[]>
417
+ /**
418
+ * Disallow type arguments that are equal to the default
419
+ * @see https://typescript-eslint.io/rules/no-unnecessary-type-arguments
420
+ */
421
+ 'ts/no-unnecessary-type-arguments'?: Linter.RuleEntry<[]>
422
+ /**
423
+ * Disallow type assertions that do not change the type of an expression
424
+ * @see https://typescript-eslint.io/rules/no-unnecessary-type-assertion
425
+ */
426
+ 'ts/no-unnecessary-type-assertion'?: Linter.RuleEntry<TsNoUnnecessaryTypeAssertion>
427
+ /**
428
+ * Disallow unnecessary constraints on generic types
429
+ * @see https://typescript-eslint.io/rules/no-unnecessary-type-constraint
430
+ */
431
+ 'ts/no-unnecessary-type-constraint'?: Linter.RuleEntry<[]>
432
+ /**
433
+ * Disallow type parameters that aren't used multiple times
434
+ * @see https://typescript-eslint.io/rules/no-unnecessary-type-parameters
435
+ */
436
+ 'ts/no-unnecessary-type-parameters'?: Linter.RuleEntry<[]>
437
+ /**
438
+ * Disallow calling a function with a value with type `any`
439
+ * @see https://typescript-eslint.io/rules/no-unsafe-argument
440
+ */
441
+ 'ts/no-unsafe-argument'?: Linter.RuleEntry<[]>
442
+ /**
443
+ * Disallow assigning a value with type `any` to variables and properties
444
+ * @see https://typescript-eslint.io/rules/no-unsafe-assignment
445
+ */
446
+ 'ts/no-unsafe-assignment'?: Linter.RuleEntry<[]>
447
+ /**
448
+ * Disallow calling a value with type `any`
449
+ * @see https://typescript-eslint.io/rules/no-unsafe-call
450
+ */
451
+ 'ts/no-unsafe-call'?: Linter.RuleEntry<[]>
452
+ /**
453
+ * Disallow unsafe declaration merging
454
+ * @see https://typescript-eslint.io/rules/no-unsafe-declaration-merging
455
+ */
456
+ 'ts/no-unsafe-declaration-merging'?: Linter.RuleEntry<[]>
457
+ /**
458
+ * Disallow comparing an enum value with a non-enum value
459
+ * @see https://typescript-eslint.io/rules/no-unsafe-enum-comparison
460
+ */
461
+ 'ts/no-unsafe-enum-comparison'?: Linter.RuleEntry<[]>
462
+ /**
463
+ * Disallow using the unsafe built-in Function type
464
+ * @see https://typescript-eslint.io/rules/no-unsafe-function-type
465
+ */
466
+ 'ts/no-unsafe-function-type'?: Linter.RuleEntry<[]>
467
+ /**
468
+ * Disallow member access on a value with type `any`
469
+ * @see https://typescript-eslint.io/rules/no-unsafe-member-access
470
+ */
471
+ 'ts/no-unsafe-member-access'?: Linter.RuleEntry<[]>
472
+ /**
473
+ * Disallow returning a value with type `any` from a function
474
+ * @see https://typescript-eslint.io/rules/no-unsafe-return
475
+ */
476
+ 'ts/no-unsafe-return'?: Linter.RuleEntry<[]>
477
+ /**
478
+ * Disallow type assertions that narrow a type
479
+ * @see https://typescript-eslint.io/rules/no-unsafe-type-assertion
480
+ */
481
+ 'ts/no-unsafe-type-assertion'?: Linter.RuleEntry<[]>
482
+ /**
483
+ * Require unary negation to take a number
484
+ * @see https://typescript-eslint.io/rules/no-unsafe-unary-minus
485
+ */
486
+ 'ts/no-unsafe-unary-minus'?: Linter.RuleEntry<[]>
487
+ /**
488
+ * Disallow unused expressions
489
+ * @see https://typescript-eslint.io/rules/no-unused-expressions
490
+ */
491
+ 'ts/no-unused-expressions'?: Linter.RuleEntry<TsNoUnusedExpressions>
492
+ /**
493
+ * Disallow unused variables
494
+ * @see https://typescript-eslint.io/rules/no-unused-vars
495
+ */
496
+ 'ts/no-unused-vars'?: Linter.RuleEntry<TsNoUnusedVars>
497
+ /**
498
+ * Disallow the use of variables before they are defined
499
+ * @see https://typescript-eslint.io/rules/no-use-before-define
500
+ */
501
+ 'ts/no-use-before-define'?: Linter.RuleEntry<TsNoUseBeforeDefine>
502
+ /**
503
+ * Disallow unnecessary constructors
504
+ * @see https://typescript-eslint.io/rules/no-useless-constructor
505
+ */
506
+ 'ts/no-useless-constructor'?: Linter.RuleEntry<[]>
507
+ /**
508
+ * Disallow empty exports that don't change anything in a module file
509
+ * @see https://typescript-eslint.io/rules/no-useless-empty-export
510
+ */
511
+ 'ts/no-useless-empty-export'?: Linter.RuleEntry<[]>
512
+ /**
513
+ * Disallow `require` statements except in import statements
514
+ * @see https://typescript-eslint.io/rules/no-var-requires
515
+ * @deprecated
516
+ */
517
+ 'ts/no-var-requires'?: Linter.RuleEntry<TsNoVarRequires>
518
+ /**
519
+ * Disallow using confusing built-in primitive class wrappers
520
+ * @see https://typescript-eslint.io/rules/no-wrapper-object-types
521
+ */
522
+ 'ts/no-wrapper-object-types'?: Linter.RuleEntry<[]>
523
+ /**
524
+ * Enforce non-null assertions over explicit type assertions
525
+ * @see https://typescript-eslint.io/rules/non-nullable-type-assertion-style
526
+ */
527
+ 'ts/non-nullable-type-assertion-style'?: Linter.RuleEntry<[]>
528
+ /**
529
+ * Disallow throwing non-`Error` values as exceptions
530
+ * @see https://typescript-eslint.io/rules/only-throw-error
531
+ */
532
+ 'ts/only-throw-error'?: Linter.RuleEntry<TsOnlyThrowError>
533
+ /**
534
+ * Require or disallow parameter properties in class constructors
535
+ * @see https://typescript-eslint.io/rules/parameter-properties
536
+ */
537
+ 'ts/parameter-properties'?: Linter.RuleEntry<TsParameterProperties>
538
+ /**
539
+ * Enforce the use of `as const` over literal type
540
+ * @see https://typescript-eslint.io/rules/prefer-as-const
541
+ */
542
+ 'ts/prefer-as-const'?: Linter.RuleEntry<[]>
543
+ /**
544
+ * Require destructuring from arrays and/or objects
545
+ * @see https://typescript-eslint.io/rules/prefer-destructuring
546
+ */
547
+ 'ts/prefer-destructuring'?: Linter.RuleEntry<TsPreferDestructuring>
548
+ /**
549
+ * Require each enum member value to be explicitly initialized
550
+ * @see https://typescript-eslint.io/rules/prefer-enum-initializers
551
+ */
552
+ 'ts/prefer-enum-initializers'?: Linter.RuleEntry<[]>
553
+ /**
554
+ * Enforce the use of Array.prototype.find() over Array.prototype.filter() followed by [0] when looking for a single result
555
+ * @see https://typescript-eslint.io/rules/prefer-find
556
+ */
557
+ 'ts/prefer-find'?: Linter.RuleEntry<[]>
558
+ /**
559
+ * Enforce the use of `for-of` loop over the standard `for` loop where possible
560
+ * @see https://typescript-eslint.io/rules/prefer-for-of
561
+ */
562
+ 'ts/prefer-for-of'?: Linter.RuleEntry<[]>
563
+ /**
564
+ * Enforce using function types instead of interfaces with call signatures
565
+ * @see https://typescript-eslint.io/rules/prefer-function-type
566
+ */
567
+ 'ts/prefer-function-type'?: Linter.RuleEntry<[]>
568
+ /**
569
+ * Enforce `includes` method over `indexOf` method
570
+ * @see https://typescript-eslint.io/rules/prefer-includes
571
+ */
572
+ 'ts/prefer-includes'?: Linter.RuleEntry<[]>
573
+ /**
574
+ * Require all enum members to be literal values
575
+ * @see https://typescript-eslint.io/rules/prefer-literal-enum-member
576
+ */
577
+ 'ts/prefer-literal-enum-member'?: Linter.RuleEntry<TsPreferLiteralEnumMember>
578
+ /**
579
+ * Require using `namespace` keyword over `module` keyword to declare custom TypeScript modules
580
+ * @see https://typescript-eslint.io/rules/prefer-namespace-keyword
581
+ */
582
+ 'ts/prefer-namespace-keyword'?: Linter.RuleEntry<[]>
583
+ /**
584
+ * Enforce using the nullish coalescing operator instead of logical assignments or chaining
585
+ * @see https://typescript-eslint.io/rules/prefer-nullish-coalescing
586
+ */
587
+ 'ts/prefer-nullish-coalescing'?: Linter.RuleEntry<TsPreferNullishCoalescing>
588
+ /**
589
+ * Enforce using concise optional chain expressions instead of chained logical ands, negated logical ors, or empty objects
590
+ * @see https://typescript-eslint.io/rules/prefer-optional-chain
591
+ */
592
+ 'ts/prefer-optional-chain'?: Linter.RuleEntry<TsPreferOptionalChain>
593
+ /**
594
+ * Require using Error objects as Promise rejection reasons
595
+ * @see https://typescript-eslint.io/rules/prefer-promise-reject-errors
596
+ */
597
+ 'ts/prefer-promise-reject-errors'?: Linter.RuleEntry<TsPreferPromiseRejectErrors>
598
+ /**
599
+ * Require private members to be marked as `readonly` if they're never modified outside of the constructor
600
+ * @see https://typescript-eslint.io/rules/prefer-readonly
601
+ */
602
+ 'ts/prefer-readonly'?: Linter.RuleEntry<TsPreferReadonly>
603
+ /**
604
+ * Require function parameters to be typed as `readonly` to prevent accidental mutation of inputs
605
+ * @see https://typescript-eslint.io/rules/prefer-readonly-parameter-types
606
+ */
607
+ 'ts/prefer-readonly-parameter-types'?: Linter.RuleEntry<TsPreferReadonlyParameterTypes>
608
+ /**
609
+ * Enforce using type parameter when calling `Array#reduce` instead of using a type assertion
610
+ * @see https://typescript-eslint.io/rules/prefer-reduce-type-parameter
611
+ */
612
+ 'ts/prefer-reduce-type-parameter'?: Linter.RuleEntry<[]>
613
+ /**
614
+ * Enforce `RegExp#exec` over `String#match` if no global flag is provided
615
+ * @see https://typescript-eslint.io/rules/prefer-regexp-exec
616
+ */
617
+ 'ts/prefer-regexp-exec'?: Linter.RuleEntry<[]>
618
+ /**
619
+ * Enforce that `this` is used when only `this` type is returned
620
+ * @see https://typescript-eslint.io/rules/prefer-return-this-type
621
+ */
622
+ 'ts/prefer-return-this-type'?: Linter.RuleEntry<[]>
623
+ /**
624
+ * Enforce using `String#startsWith` and `String#endsWith` over other equivalent methods of checking substrings
625
+ * @see https://typescript-eslint.io/rules/prefer-string-starts-ends-with
626
+ */
627
+ 'ts/prefer-string-starts-ends-with'?: Linter.RuleEntry<TsPreferStringStartsEndsWith>
628
+ /**
629
+ * Enforce using `@ts-expect-error` over `@ts-ignore`
630
+ * @see https://typescript-eslint.io/rules/prefer-ts-expect-error
631
+ * @deprecated
632
+ */
633
+ 'ts/prefer-ts-expect-error'?: Linter.RuleEntry<[]>
634
+ /**
635
+ * Require any function or method that returns a Promise to be marked async
636
+ * @see https://typescript-eslint.io/rules/promise-function-async
637
+ */
638
+ 'ts/promise-function-async'?: Linter.RuleEntry<TsPromiseFunctionAsync>
639
+ /**
640
+ * Enforce that `get()` types should be assignable to their equivalent `set()` type
641
+ * @see https://typescript-eslint.io/rules/related-getter-setter-pairs
642
+ */
643
+ 'ts/related-getter-setter-pairs'?: Linter.RuleEntry<[]>
644
+ /**
645
+ * Require `Array#sort` and `Array#toSorted` calls to always provide a `compareFunction`
646
+ * @see https://typescript-eslint.io/rules/require-array-sort-compare
647
+ */
648
+ 'ts/require-array-sort-compare'?: Linter.RuleEntry<TsRequireArraySortCompare>
649
+ /**
650
+ * Disallow async functions which do not return promises and have no `await` expression
651
+ * @see https://typescript-eslint.io/rules/require-await
652
+ */
653
+ 'ts/require-await'?: Linter.RuleEntry<[]>
654
+ /**
655
+ * Require both operands of addition to be the same type and be `bigint`, `number`, or `string`
656
+ * @see https://typescript-eslint.io/rules/restrict-plus-operands
657
+ */
658
+ 'ts/restrict-plus-operands'?: Linter.RuleEntry<TsRestrictPlusOperands>
659
+ /**
660
+ * Enforce template literal expressions to be of `string` type
661
+ * @see https://typescript-eslint.io/rules/restrict-template-expressions
662
+ */
663
+ 'ts/restrict-template-expressions'?: Linter.RuleEntry<TsRestrictTemplateExpressions>
664
+ /**
665
+ * Enforce consistent awaiting of returned promises
666
+ * @see https://typescript-eslint.io/rules/return-await
667
+ */
668
+ 'ts/return-await'?: Linter.RuleEntry<TsReturnAwait>
669
+ /**
670
+ * Enforce constituents of a type union/intersection to be sorted alphabetically
671
+ * @see https://typescript-eslint.io/rules/sort-type-constituents
672
+ * @deprecated
673
+ */
674
+ 'ts/sort-type-constituents'?: Linter.RuleEntry<TsSortTypeConstituents>
675
+ /**
676
+ * Disallow certain types in boolean expressions
677
+ * @see https://typescript-eslint.io/rules/strict-boolean-expressions
678
+ */
679
+ 'ts/strict-boolean-expressions'?: Linter.RuleEntry<TsStrictBooleanExpressions>
680
+ /**
681
+ * Require switch-case statements to be exhaustive
682
+ * @see https://typescript-eslint.io/rules/switch-exhaustiveness-check
683
+ */
684
+ 'ts/switch-exhaustiveness-check'?: Linter.RuleEntry<TsSwitchExhaustivenessCheck>
685
+ /**
686
+ * Disallow certain triple slash directives in favor of ES6-style import declarations
687
+ * @see https://typescript-eslint.io/rules/triple-slash-reference
688
+ */
689
+ 'ts/triple-slash-reference'?: Linter.RuleEntry<TsTripleSlashReference>
690
+ /**
691
+ * Require type annotations in certain places
692
+ * @see https://typescript-eslint.io/rules/typedef
693
+ */
694
+ 'ts/typedef'?: Linter.RuleEntry<TsTypedef>
695
+ /**
696
+ * Enforce unbound methods are called with their expected scope
697
+ * @see https://typescript-eslint.io/rules/unbound-method
698
+ */
699
+ 'ts/unbound-method'?: Linter.RuleEntry<TsUnboundMethod>
700
+ /**
701
+ * Disallow two overloads that could be unified into one with a union or an optional/rest parameter
702
+ * @see https://typescript-eslint.io/rules/unified-signatures
703
+ */
704
+ 'ts/unified-signatures'?: Linter.RuleEntry<TsUnifiedSignatures>
705
+ /**
706
+ * Enforce typing arguments in Promise rejection callbacks as `unknown`
707
+ * @see https://typescript-eslint.io/rules/use-unknown-in-catch-callback-variable
708
+ */
709
+ 'ts/use-unknown-in-catch-callback-variable'?: Linter.RuleEntry<[]>
710
+ /**
711
+ * Disallow unused variables
712
+ * @see https://github.com/sweepline/eslint-plugin-unused-imports/blob/master/docs/rules/no-unused-imports.md
713
+ */
714
+ 'unused-imports/no-unused-imports'?: Linter.RuleEntry<UnusedImportsNoUnusedImports>
715
+ /**
716
+ * Disallow unused variables
717
+ * @see https://github.com/sweepline/eslint-plugin-unused-imports/blob/master/docs/rules/no-unused-vars.md
718
+ */
719
+ 'unused-imports/no-unused-vars'?: Linter.RuleEntry<UnusedImportsNoUnusedVars>
720
+ }
721
+
722
+ /* ======= Declarations ======= */
723
+ // ----- comments/disable-enable-pair -----
724
+ type CommentsDisableEnablePair = []|[{
725
+ allowWholeFile?: boolean
726
+ }]
727
+ // ----- comments/no-restricted-disable -----
728
+ type CommentsNoRestrictedDisable = string[]
729
+ // ----- comments/no-use -----
730
+ type CommentsNoUse = []|[{
731
+ allow?: ("eslint" | "eslint-disable" | "eslint-disable-line" | "eslint-disable-next-line" | "eslint-enable" | "eslint-env" | "exported" | "global" | "globals")[]
732
+ }]
733
+ // ----- comments/require-description -----
734
+ type CommentsRequireDescription = []|[{
735
+ ignore?: ("eslint" | "eslint-disable" | "eslint-disable-line" | "eslint-disable-next-line" | "eslint-enable" | "eslint-env" | "exported" | "global" | "globals")[]
736
+ }]
737
+ // ----- ts/array-type -----
738
+ type TsArrayType = []|[{
739
+
740
+ default?: ("array" | "generic" | "array-simple")
741
+
742
+ readonly?: ("array" | "generic" | "array-simple")
743
+ }]
744
+ // ----- ts/ban-ts-comment -----
745
+ type TsBanTsComment = []|[{
746
+
747
+ minimumDescriptionLength?: number
748
+ "ts-check"?: (boolean | "allow-with-description" | {
749
+ descriptionFormat?: string
750
+ })
751
+ "ts-expect-error"?: (boolean | "allow-with-description" | {
752
+ descriptionFormat?: string
753
+ })
754
+ "ts-ignore"?: (boolean | "allow-with-description" | {
755
+ descriptionFormat?: string
756
+ })
757
+ "ts-nocheck"?: (boolean | "allow-with-description" | {
758
+ descriptionFormat?: string
759
+ })
760
+ }]
761
+ // ----- ts/class-literal-property-style -----
762
+ type TsClassLiteralPropertyStyle = []|[("fields" | "getters")]
763
+ // ----- ts/class-methods-use-this -----
764
+ type TsClassMethodsUseThis = []|[{
765
+
766
+ enforceForClassFields?: boolean
767
+
768
+ exceptMethods?: string[]
769
+
770
+ ignoreClassesThatImplementAnInterface?: (boolean | "public-fields")
771
+
772
+ ignoreOverrideMethods?: boolean
773
+ }]
774
+ // ----- ts/consistent-generic-constructors -----
775
+ type TsConsistentGenericConstructors = []|[("type-annotation" | "constructor")]
776
+ // ----- ts/consistent-indexed-object-style -----
777
+ type TsConsistentIndexedObjectStyle = []|[("record" | "index-signature")]
778
+ // ----- ts/consistent-return -----
779
+ type TsConsistentReturn = []|[{
780
+ treatUndefinedAsUnspecified?: boolean
781
+ }]
782
+ // ----- ts/consistent-type-assertions -----
783
+ type TsConsistentTypeAssertions = []|[({
784
+
785
+ assertionStyle: "never"
786
+ } | {
787
+
788
+ arrayLiteralTypeAssertions?: ("allow" | "allow-as-parameter" | "never")
789
+
790
+ assertionStyle?: ("as" | "angle-bracket")
791
+
792
+ objectLiteralTypeAssertions?: ("allow" | "allow-as-parameter" | "never")
793
+ })]
794
+ // ----- ts/consistent-type-definitions -----
795
+ type TsConsistentTypeDefinitions = []|[("interface" | "type")]
796
+ // ----- ts/consistent-type-exports -----
797
+ type TsConsistentTypeExports = []|[{
798
+
799
+ fixMixedExportsWithInlineTypeSpecifier?: boolean
800
+ }]
801
+ // ----- ts/consistent-type-imports -----
802
+ type TsConsistentTypeImports = []|[{
803
+
804
+ disallowTypeAnnotations?: boolean
805
+
806
+ fixStyle?: ("separate-type-imports" | "inline-type-imports")
807
+
808
+ prefer?: ("type-imports" | "no-type-imports")
809
+ }]
810
+ // ----- ts/dot-notation -----
811
+ type TsDotNotation = []|[{
812
+
813
+ allowIndexSignaturePropertyAccess?: boolean
814
+
815
+ allowKeywords?: boolean
816
+
817
+ allowPattern?: string
818
+
819
+ allowPrivateClassPropertyAccess?: boolean
820
+
821
+ allowProtectedClassPropertyAccess?: boolean
822
+ }]
823
+ // ----- ts/explicit-function-return-type -----
824
+ type TsExplicitFunctionReturnType = []|[{
825
+
826
+ allowConciseArrowFunctionExpressionsStartingWithVoid?: boolean
827
+
828
+ allowDirectConstAssertionInArrowFunctions?: boolean
829
+
830
+ allowedNames?: string[]
831
+
832
+ allowExpressions?: boolean
833
+
834
+ allowFunctionsWithoutTypeParameters?: boolean
835
+
836
+ allowHigherOrderFunctions?: boolean
837
+
838
+ allowIIFEs?: boolean
839
+
840
+ allowTypedFunctionExpressions?: boolean
841
+ }]
842
+ // ----- ts/explicit-member-accessibility -----
843
+ type TsExplicitMemberAccessibility = []|[{
844
+
845
+ accessibility?: ("explicit" | "no-public" | "off")
846
+
847
+ ignoredMethodNames?: string[]
848
+
849
+ overrides?: {
850
+ accessors?: ("explicit" | "no-public" | "off")
851
+ constructors?: ("explicit" | "no-public" | "off")
852
+ methods?: ("explicit" | "no-public" | "off")
853
+ parameterProperties?: ("explicit" | "no-public" | "off")
854
+ properties?: ("explicit" | "no-public" | "off")
855
+ }
856
+ }]
857
+ // ----- ts/explicit-module-boundary-types -----
858
+ type TsExplicitModuleBoundaryTypes = []|[{
859
+
860
+ allowArgumentsExplicitlyTypedAsAny?: boolean
861
+
862
+ allowDirectConstAssertionInArrowFunctions?: boolean
863
+
864
+ allowedNames?: string[]
865
+
866
+ allowHigherOrderFunctions?: boolean
867
+
868
+ allowOverloadFunctions?: boolean
869
+
870
+ allowTypedFunctionExpressions?: boolean
871
+ }]
872
+ // ----- ts/init-declarations -----
873
+ type TsInitDeclarations = ([]|["always"] | []|["never"]|["never", {
874
+ ignoreForLoopInit?: boolean
875
+ }])
876
+ // ----- ts/max-params -----
877
+ type TsMaxParams = []|[{
878
+
879
+ countVoidThis?: boolean
880
+
881
+ max?: number
882
+
883
+ maximum?: number
884
+ }]
885
+ // ----- ts/member-ordering -----
886
+ type TsMemberOrdering = []|[{
887
+ classes?: ("never" | (("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization") | ("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization")[])[] | {
888
+ memberTypes?: ((("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization") | ("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization")[])[] | "never")
889
+ optionalityOrder?: ("optional-first" | "required-first")
890
+ order?: ("alphabetically" | "alphabetically-case-insensitive" | "as-written" | "natural" | "natural-case-insensitive")
891
+ })
892
+ classExpressions?: ("never" | (("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization") | ("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization")[])[] | {
893
+ memberTypes?: ((("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization") | ("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization")[])[] | "never")
894
+ optionalityOrder?: ("optional-first" | "required-first")
895
+ order?: ("alphabetically" | "alphabetically-case-insensitive" | "as-written" | "natural" | "natural-case-insensitive")
896
+ })
897
+ default?: ("never" | (("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization") | ("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization")[])[] | {
898
+ memberTypes?: ((("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization") | ("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization")[])[] | "never")
899
+ optionalityOrder?: ("optional-first" | "required-first")
900
+ order?: ("alphabetically" | "alphabetically-case-insensitive" | "as-written" | "natural" | "natural-case-insensitive")
901
+ })
902
+ interfaces?: ("never" | (("readonly-signature" | "signature" | "readonly-field" | "field" | "method" | "constructor") | ("readonly-signature" | "signature" | "readonly-field" | "field" | "method" | "constructor")[])[] | {
903
+ memberTypes?: ((("readonly-signature" | "signature" | "readonly-field" | "field" | "method" | "constructor") | ("readonly-signature" | "signature" | "readonly-field" | "field" | "method" | "constructor")[])[] | "never")
904
+ optionalityOrder?: ("optional-first" | "required-first")
905
+ order?: ("alphabetically" | "alphabetically-case-insensitive" | "as-written" | "natural" | "natural-case-insensitive")
906
+ })
907
+ typeLiterals?: ("never" | (("readonly-signature" | "signature" | "readonly-field" | "field" | "method" | "constructor") | ("readonly-signature" | "signature" | "readonly-field" | "field" | "method" | "constructor")[])[] | {
908
+ memberTypes?: ((("readonly-signature" | "signature" | "readonly-field" | "field" | "method" | "constructor") | ("readonly-signature" | "signature" | "readonly-field" | "field" | "method" | "constructor")[])[] | "never")
909
+ optionalityOrder?: ("optional-first" | "required-first")
910
+ order?: ("alphabetically" | "alphabetically-case-insensitive" | "as-written" | "natural" | "natural-case-insensitive")
911
+ })
912
+ }]
913
+ // ----- ts/method-signature-style -----
914
+ type TsMethodSignatureStyle = []|[("property" | "method")]
915
+ // ----- ts/naming-convention -----
916
+ type _TsNamingConventionFormatOptionsConfig = (_TsNamingConventionPredefinedFormats[] | null)
917
+ type _TsNamingConventionPredefinedFormats = ("camelCase" | "strictCamelCase" | "PascalCase" | "StrictPascalCase" | "snake_case" | "UPPER_CASE")
918
+ type _TsNamingConventionUnderscoreOptions = ("forbid" | "allow" | "require" | "requireDouble" | "allowDouble" | "allowSingleOrDouble")
919
+ type _TsNamingConvention_PrefixSuffixConfig = string[]
920
+ type _TsNamingConventionTypeModifiers = ("boolean" | "string" | "number" | "function" | "array")
921
+ type TsNamingConvention = ({
922
+ custom?: _TsNamingConvention_MatchRegexConfig
923
+ failureMessage?: string
924
+ format: _TsNamingConventionFormatOptionsConfig
925
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
926
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
927
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
928
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
929
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
930
+ modifiers?: ("const" | "readonly" | "static" | "public" | "protected" | "private" | "#private" | "abstract" | "destructured" | "global" | "exported" | "unused" | "requiresQuotes" | "override" | "async" | "default" | "namespace")[]
931
+ selector: ("default" | "variableLike" | "memberLike" | "typeLike" | "method" | "property" | "accessor" | "variable" | "function" | "parameter" | "parameterProperty" | "classicAccessor" | "enumMember" | "classMethod" | "objectLiteralMethod" | "typeMethod" | "classProperty" | "objectLiteralProperty" | "typeProperty" | "autoAccessor" | "class" | "interface" | "typeAlias" | "enum" | "typeParameter" | "import")[]
932
+ types?: _TsNamingConventionTypeModifiers[]
933
+ } | {
934
+ custom?: _TsNamingConvention_MatchRegexConfig
935
+ failureMessage?: string
936
+ format: _TsNamingConventionFormatOptionsConfig
937
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
938
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
939
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
940
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
941
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
942
+ selector: "default"
943
+ modifiers?: ("const" | "readonly" | "static" | "public" | "protected" | "private" | "#private" | "abstract" | "destructured" | "global" | "exported" | "unused" | "requiresQuotes" | "override" | "async" | "default" | "namespace")[]
944
+ } | {
945
+ custom?: _TsNamingConvention_MatchRegexConfig
946
+ failureMessage?: string
947
+ format: _TsNamingConventionFormatOptionsConfig
948
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
949
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
950
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
951
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
952
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
953
+ selector: "variableLike"
954
+ modifiers?: ("unused" | "async")[]
955
+ } | {
956
+ custom?: _TsNamingConvention_MatchRegexConfig
957
+ failureMessage?: string
958
+ format: _TsNamingConventionFormatOptionsConfig
959
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
960
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
961
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
962
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
963
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
964
+ selector: "variable"
965
+ modifiers?: ("const" | "destructured" | "exported" | "global" | "unused" | "async")[]
966
+ types?: _TsNamingConventionTypeModifiers[]
967
+ } | {
968
+ custom?: _TsNamingConvention_MatchRegexConfig
969
+ failureMessage?: string
970
+ format: _TsNamingConventionFormatOptionsConfig
971
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
972
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
973
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
974
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
975
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
976
+ selector: "function"
977
+ modifiers?: ("exported" | "global" | "unused" | "async")[]
978
+ } | {
979
+ custom?: _TsNamingConvention_MatchRegexConfig
980
+ failureMessage?: string
981
+ format: _TsNamingConventionFormatOptionsConfig
982
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
983
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
984
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
985
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
986
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
987
+ selector: "parameter"
988
+ modifiers?: ("destructured" | "unused")[]
989
+ types?: _TsNamingConventionTypeModifiers[]
990
+ } | {
991
+ custom?: _TsNamingConvention_MatchRegexConfig
992
+ failureMessage?: string
993
+ format: _TsNamingConventionFormatOptionsConfig
994
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
995
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
996
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
997
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
998
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
999
+ selector: "memberLike"
1000
+ modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "readonly" | "requiresQuotes" | "static" | "override" | "async")[]
1001
+ } | {
1002
+ custom?: _TsNamingConvention_MatchRegexConfig
1003
+ failureMessage?: string
1004
+ format: _TsNamingConventionFormatOptionsConfig
1005
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1006
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1007
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1008
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1009
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1010
+ selector: "classProperty"
1011
+ modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "readonly" | "requiresQuotes" | "static" | "override")[]
1012
+ types?: _TsNamingConventionTypeModifiers[]
1013
+ } | {
1014
+ custom?: _TsNamingConvention_MatchRegexConfig
1015
+ failureMessage?: string
1016
+ format: _TsNamingConventionFormatOptionsConfig
1017
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1018
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1019
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1020
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1021
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1022
+ selector: "objectLiteralProperty"
1023
+ modifiers?: ("public" | "requiresQuotes")[]
1024
+ types?: _TsNamingConventionTypeModifiers[]
1025
+ } | {
1026
+ custom?: _TsNamingConvention_MatchRegexConfig
1027
+ failureMessage?: string
1028
+ format: _TsNamingConventionFormatOptionsConfig
1029
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1030
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1031
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1032
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1033
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1034
+ selector: "typeProperty"
1035
+ modifiers?: ("public" | "readonly" | "requiresQuotes")[]
1036
+ types?: _TsNamingConventionTypeModifiers[]
1037
+ } | {
1038
+ custom?: _TsNamingConvention_MatchRegexConfig
1039
+ failureMessage?: string
1040
+ format: _TsNamingConventionFormatOptionsConfig
1041
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1042
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1043
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1044
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1045
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1046
+ selector: "parameterProperty"
1047
+ modifiers?: ("private" | "protected" | "public" | "readonly")[]
1048
+ types?: _TsNamingConventionTypeModifiers[]
1049
+ } | {
1050
+ custom?: _TsNamingConvention_MatchRegexConfig
1051
+ failureMessage?: string
1052
+ format: _TsNamingConventionFormatOptionsConfig
1053
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1054
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1055
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1056
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1057
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1058
+ selector: "property"
1059
+ modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "readonly" | "requiresQuotes" | "static" | "override" | "async")[]
1060
+ types?: _TsNamingConventionTypeModifiers[]
1061
+ } | {
1062
+ custom?: _TsNamingConvention_MatchRegexConfig
1063
+ failureMessage?: string
1064
+ format: _TsNamingConventionFormatOptionsConfig
1065
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1066
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1067
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1068
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1069
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1070
+ selector: "classMethod"
1071
+ modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "requiresQuotes" | "static" | "override" | "async")[]
1072
+ } | {
1073
+ custom?: _TsNamingConvention_MatchRegexConfig
1074
+ failureMessage?: string
1075
+ format: _TsNamingConventionFormatOptionsConfig
1076
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1077
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1078
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1079
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1080
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1081
+ selector: "objectLiteralMethod"
1082
+ modifiers?: ("public" | "requiresQuotes" | "async")[]
1083
+ } | {
1084
+ custom?: _TsNamingConvention_MatchRegexConfig
1085
+ failureMessage?: string
1086
+ format: _TsNamingConventionFormatOptionsConfig
1087
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1088
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1089
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1090
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1091
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1092
+ selector: "typeMethod"
1093
+ modifiers?: ("public" | "requiresQuotes")[]
1094
+ } | {
1095
+ custom?: _TsNamingConvention_MatchRegexConfig
1096
+ failureMessage?: string
1097
+ format: _TsNamingConventionFormatOptionsConfig
1098
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1099
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1100
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1101
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1102
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1103
+ selector: "method"
1104
+ modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "requiresQuotes" | "static" | "override" | "async")[]
1105
+ } | {
1106
+ custom?: _TsNamingConvention_MatchRegexConfig
1107
+ failureMessage?: string
1108
+ format: _TsNamingConventionFormatOptionsConfig
1109
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1110
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1111
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1112
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1113
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1114
+ selector: "classicAccessor"
1115
+ modifiers?: ("abstract" | "private" | "protected" | "public" | "requiresQuotes" | "static" | "override")[]
1116
+ types?: _TsNamingConventionTypeModifiers[]
1117
+ } | {
1118
+ custom?: _TsNamingConvention_MatchRegexConfig
1119
+ failureMessage?: string
1120
+ format: _TsNamingConventionFormatOptionsConfig
1121
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1122
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1123
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1124
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1125
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1126
+ selector: "autoAccessor"
1127
+ modifiers?: ("abstract" | "private" | "protected" | "public" | "requiresQuotes" | "static" | "override")[]
1128
+ types?: _TsNamingConventionTypeModifiers[]
1129
+ } | {
1130
+ custom?: _TsNamingConvention_MatchRegexConfig
1131
+ failureMessage?: string
1132
+ format: _TsNamingConventionFormatOptionsConfig
1133
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1134
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1135
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1136
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1137
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1138
+ selector: "accessor"
1139
+ modifiers?: ("abstract" | "private" | "protected" | "public" | "requiresQuotes" | "static" | "override")[]
1140
+ types?: _TsNamingConventionTypeModifiers[]
1141
+ } | {
1142
+ custom?: _TsNamingConvention_MatchRegexConfig
1143
+ failureMessage?: string
1144
+ format: _TsNamingConventionFormatOptionsConfig
1145
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1146
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1147
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1148
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1149
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1150
+ selector: "enumMember"
1151
+ modifiers?: ("requiresQuotes")[]
1152
+ } | {
1153
+ custom?: _TsNamingConvention_MatchRegexConfig
1154
+ failureMessage?: string
1155
+ format: _TsNamingConventionFormatOptionsConfig
1156
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1157
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1158
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1159
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1160
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1161
+ selector: "typeLike"
1162
+ modifiers?: ("abstract" | "exported" | "unused")[]
1163
+ } | {
1164
+ custom?: _TsNamingConvention_MatchRegexConfig
1165
+ failureMessage?: string
1166
+ format: _TsNamingConventionFormatOptionsConfig
1167
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1168
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1169
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1170
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1171
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1172
+ selector: "class"
1173
+ modifiers?: ("abstract" | "exported" | "unused")[]
1174
+ } | {
1175
+ custom?: _TsNamingConvention_MatchRegexConfig
1176
+ failureMessage?: string
1177
+ format: _TsNamingConventionFormatOptionsConfig
1178
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1179
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1180
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1181
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1182
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1183
+ selector: "interface"
1184
+ modifiers?: ("exported" | "unused")[]
1185
+ } | {
1186
+ custom?: _TsNamingConvention_MatchRegexConfig
1187
+ failureMessage?: string
1188
+ format: _TsNamingConventionFormatOptionsConfig
1189
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1190
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1191
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1192
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1193
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1194
+ selector: "typeAlias"
1195
+ modifiers?: ("exported" | "unused")[]
1196
+ } | {
1197
+ custom?: _TsNamingConvention_MatchRegexConfig
1198
+ failureMessage?: string
1199
+ format: _TsNamingConventionFormatOptionsConfig
1200
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1201
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1202
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1203
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1204
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1205
+ selector: "enum"
1206
+ modifiers?: ("exported" | "unused")[]
1207
+ } | {
1208
+ custom?: _TsNamingConvention_MatchRegexConfig
1209
+ failureMessage?: string
1210
+ format: _TsNamingConventionFormatOptionsConfig
1211
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1212
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1213
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1214
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1215
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1216
+ selector: "typeParameter"
1217
+ modifiers?: ("unused")[]
1218
+ } | {
1219
+ custom?: _TsNamingConvention_MatchRegexConfig
1220
+ failureMessage?: string
1221
+ format: _TsNamingConventionFormatOptionsConfig
1222
+ leadingUnderscore?: _TsNamingConventionUnderscoreOptions
1223
+ prefix?: _TsNamingConvention_PrefixSuffixConfig
1224
+ suffix?: _TsNamingConvention_PrefixSuffixConfig
1225
+ trailingUnderscore?: _TsNamingConventionUnderscoreOptions
1226
+ filter?: (string | _TsNamingConvention_MatchRegexConfig)
1227
+ selector: "import"
1228
+ modifiers?: ("default" | "namespace")[]
1229
+ })[]
1230
+ interface _TsNamingConvention_MatchRegexConfig {
1231
+ match: boolean
1232
+ regex: string
1233
+ }
1234
+ // ----- ts/no-base-to-string -----
1235
+ type TsNoBaseToString = []|[{
1236
+
1237
+ ignoredTypeNames?: string[]
1238
+ }]
1239
+ // ----- ts/no-confusing-void-expression -----
1240
+ type TsNoConfusingVoidExpression = []|[{
1241
+
1242
+ ignoreArrowShorthand?: boolean
1243
+
1244
+ ignoreVoidOperator?: boolean
1245
+
1246
+ ignoreVoidReturningFunctions?: boolean
1247
+ }]
1248
+ // ----- ts/no-deprecated -----
1249
+ type TsNoDeprecated = []|[{
1250
+
1251
+ allow?: (string | {
1252
+ from: "file"
1253
+ name: (string | [string, ...(string)[]])
1254
+ path?: string
1255
+ } | {
1256
+ from: "lib"
1257
+ name: (string | [string, ...(string)[]])
1258
+ } | {
1259
+ from: "package"
1260
+ name: (string | [string, ...(string)[]])
1261
+ package: string
1262
+ })[]
1263
+ }]
1264
+ // ----- ts/no-duplicate-type-constituents -----
1265
+ type TsNoDuplicateTypeConstituents = []|[{
1266
+
1267
+ ignoreIntersections?: boolean
1268
+
1269
+ ignoreUnions?: boolean
1270
+ }]
1271
+ // ----- ts/no-empty-function -----
1272
+ type TsNoEmptyFunction = []|[{
1273
+
1274
+ allow?: ("functions" | "arrowFunctions" | "generatorFunctions" | "methods" | "generatorMethods" | "getters" | "setters" | "constructors" | "private-constructors" | "protected-constructors" | "asyncFunctions" | "asyncMethods" | "decoratedFunctions" | "overrideMethods")[]
1275
+ }]
1276
+ // ----- ts/no-empty-interface -----
1277
+ type TsNoEmptyInterface = []|[{
1278
+
1279
+ allowSingleExtends?: boolean
1280
+ }]
1281
+ // ----- ts/no-empty-object-type -----
1282
+ type TsNoEmptyObjectType = []|[{
1283
+
1284
+ allowInterfaces?: ("always" | "never" | "with-single-extends")
1285
+
1286
+ allowObjectTypes?: ("always" | "never")
1287
+
1288
+ allowWithName?: string
1289
+ }]
1290
+ // ----- ts/no-explicit-any -----
1291
+ type TsNoExplicitAny = []|[{
1292
+
1293
+ fixToUnknown?: boolean
1294
+
1295
+ ignoreRestArgs?: boolean
1296
+ }]
1297
+ // ----- ts/no-extraneous-class -----
1298
+ type TsNoExtraneousClass = []|[{
1299
+
1300
+ allowConstructorOnly?: boolean
1301
+
1302
+ allowEmpty?: boolean
1303
+
1304
+ allowStaticOnly?: boolean
1305
+
1306
+ allowWithDecorator?: boolean
1307
+ }]
1308
+ // ----- ts/no-floating-promises -----
1309
+ type TsNoFloatingPromises = []|[{
1310
+
1311
+ allowForKnownSafeCalls?: (string | {
1312
+ from: "file"
1313
+ name: (string | [string, ...(string)[]])
1314
+ path?: string
1315
+ } | {
1316
+ from: "lib"
1317
+ name: (string | [string, ...(string)[]])
1318
+ } | {
1319
+ from: "package"
1320
+ name: (string | [string, ...(string)[]])
1321
+ package: string
1322
+ })[]
1323
+
1324
+ allowForKnownSafePromises?: (string | {
1325
+ from: "file"
1326
+ name: (string | [string, ...(string)[]])
1327
+ path?: string
1328
+ } | {
1329
+ from: "lib"
1330
+ name: (string | [string, ...(string)[]])
1331
+ } | {
1332
+ from: "package"
1333
+ name: (string | [string, ...(string)[]])
1334
+ package: string
1335
+ })[]
1336
+
1337
+ checkThenables?: boolean
1338
+
1339
+ ignoreIIFE?: boolean
1340
+
1341
+ ignoreVoid?: boolean
1342
+ }]
1343
+ // ----- ts/no-inferrable-types -----
1344
+ type TsNoInferrableTypes = []|[{
1345
+
1346
+ ignoreParameters?: boolean
1347
+
1348
+ ignoreProperties?: boolean
1349
+ }]
1350
+ // ----- ts/no-invalid-this -----
1351
+ type TsNoInvalidThis = []|[{
1352
+ capIsConstructor?: boolean
1353
+ }]
1354
+ // ----- ts/no-invalid-void-type -----
1355
+ type TsNoInvalidVoidType = []|[{
1356
+
1357
+ allowAsThisParameter?: boolean
1358
+
1359
+ allowInGenericTypeArguments?: (boolean | [string, ...(string)[]])
1360
+ }]
1361
+ // ----- ts/no-magic-numbers -----
1362
+ type TsNoMagicNumbers = []|[{
1363
+ detectObjects?: boolean
1364
+ enforceConst?: boolean
1365
+ ignore?: (number | string)[]
1366
+ ignoreArrayIndexes?: boolean
1367
+ ignoreDefaultValues?: boolean
1368
+ ignoreClassFieldInitialValues?: boolean
1369
+
1370
+ ignoreEnums?: boolean
1371
+
1372
+ ignoreNumericLiteralTypes?: boolean
1373
+
1374
+ ignoreReadonlyClassProperties?: boolean
1375
+
1376
+ ignoreTypeIndexes?: boolean
1377
+ }]
1378
+ // ----- ts/no-meaningless-void-operator -----
1379
+ type TsNoMeaninglessVoidOperator = []|[{
1380
+
1381
+ checkNever?: boolean
1382
+ }]
1383
+ // ----- ts/no-misused-promises -----
1384
+ type TsNoMisusedPromises = []|[{
1385
+
1386
+ checksConditionals?: boolean
1387
+
1388
+ checksSpreads?: boolean
1389
+
1390
+ checksVoidReturn?: (boolean | {
1391
+
1392
+ arguments?: boolean
1393
+
1394
+ attributes?: boolean
1395
+
1396
+ inheritedMethods?: boolean
1397
+
1398
+ properties?: boolean
1399
+
1400
+ returns?: boolean
1401
+
1402
+ variables?: boolean
1403
+ })
1404
+ }]
1405
+ // ----- ts/no-misused-spread -----
1406
+ type TsNoMisusedSpread = []|[{
1407
+
1408
+ allow?: (string | {
1409
+ from: "file"
1410
+ name: (string | [string, ...(string)[]])
1411
+ path?: string
1412
+ } | {
1413
+ from: "lib"
1414
+ name: (string | [string, ...(string)[]])
1415
+ } | {
1416
+ from: "package"
1417
+ name: (string | [string, ...(string)[]])
1418
+ package: string
1419
+ })[]
1420
+ }]
1421
+ // ----- ts/no-namespace -----
1422
+ type TsNoNamespace = []|[{
1423
+
1424
+ allowDeclarations?: boolean
1425
+
1426
+ allowDefinitionFiles?: boolean
1427
+ }]
1428
+ // ----- ts/no-redeclare -----
1429
+ type TsNoRedeclare = []|[{
1430
+
1431
+ builtinGlobals?: boolean
1432
+
1433
+ ignoreDeclarationMerge?: boolean
1434
+ }]
1435
+ // ----- ts/no-require-imports -----
1436
+ type TsNoRequireImports = []|[{
1437
+
1438
+ allow?: string[]
1439
+
1440
+ allowAsImport?: boolean
1441
+ }]
1442
+ // ----- ts/no-restricted-imports -----
1443
+ type TsNoRestrictedImports = ((string | {
1444
+ name: string
1445
+ message?: string
1446
+ importNames?: string[]
1447
+ allowImportNames?: string[]
1448
+
1449
+ allowTypeImports?: boolean
1450
+ })[] | []|[{
1451
+ paths?: (string | {
1452
+ name: string
1453
+ message?: string
1454
+ importNames?: string[]
1455
+ allowImportNames?: string[]
1456
+
1457
+ allowTypeImports?: boolean
1458
+ })[]
1459
+ patterns?: (string[] | {
1460
+
1461
+ importNames?: [string, ...(string)[]]
1462
+
1463
+ allowImportNames?: [string, ...(string)[]]
1464
+
1465
+ group?: [string, ...(string)[]]
1466
+ regex?: string
1467
+ importNamePattern?: string
1468
+ allowImportNamePattern?: string
1469
+ message?: string
1470
+ caseSensitive?: boolean
1471
+
1472
+ allowTypeImports?: boolean
1473
+ }[])
1474
+ }])
1475
+ // ----- ts/no-restricted-types -----
1476
+ type TsNoRestrictedTypes = []|[{
1477
+
1478
+ types?: {
1479
+ [k: string]: (true | string | {
1480
+
1481
+ fixWith?: string
1482
+
1483
+ message?: string
1484
+
1485
+ suggest?: string[]
1486
+ }) | undefined
1487
+ }
1488
+ }]
1489
+ // ----- ts/no-shadow -----
1490
+ type TsNoShadow = []|[{
1491
+
1492
+ allow?: string[]
1493
+
1494
+ builtinGlobals?: boolean
1495
+
1496
+ hoist?: ("all" | "functions" | "functions-and-types" | "never" | "types")
1497
+
1498
+ ignoreFunctionTypeParameterNameValueShadow?: boolean
1499
+
1500
+ ignoreOnInitialization?: boolean
1501
+
1502
+ ignoreTypeValueShadow?: boolean
1503
+ }]
1504
+ // ----- ts/no-this-alias -----
1505
+ type TsNoThisAlias = []|[{
1506
+
1507
+ allowDestructuring?: boolean
1508
+
1509
+ allowedNames?: string[]
1510
+ }]
1511
+ // ----- ts/no-type-alias -----
1512
+ type TsNoTypeAlias = []|[{
1513
+
1514
+ allowAliases?: ("always" | "never" | "in-unions" | "in-intersections" | "in-unions-and-intersections")
1515
+
1516
+ allowCallbacks?: ("always" | "never")
1517
+
1518
+ allowConditionalTypes?: ("always" | "never")
1519
+
1520
+ allowConstructors?: ("always" | "never")
1521
+
1522
+ allowGenerics?: ("always" | "never")
1523
+
1524
+ allowLiterals?: ("always" | "never" | "in-unions" | "in-intersections" | "in-unions-and-intersections")
1525
+
1526
+ allowMappedTypes?: ("always" | "never" | "in-unions" | "in-intersections" | "in-unions-and-intersections")
1527
+
1528
+ allowTupleTypes?: ("always" | "never" | "in-unions" | "in-intersections" | "in-unions-and-intersections")
1529
+ }]
1530
+ // ----- ts/no-unnecessary-boolean-literal-compare -----
1531
+ type TsNoUnnecessaryBooleanLiteralCompare = []|[{
1532
+
1533
+ allowComparingNullableBooleansToFalse?: boolean
1534
+
1535
+ allowComparingNullableBooleansToTrue?: boolean
1536
+
1537
+ allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean
1538
+ }]
1539
+ // ----- ts/no-unnecessary-condition -----
1540
+ type TsNoUnnecessaryCondition = []|[{
1541
+
1542
+ allowConstantLoopConditions?: (boolean | ("always" | "never" | "only-allowed-literals"))
1543
+
1544
+ allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean
1545
+
1546
+ checkTypePredicates?: boolean
1547
+ }]
1548
+ // ----- ts/no-unnecessary-type-assertion -----
1549
+ type TsNoUnnecessaryTypeAssertion = []|[{
1550
+
1551
+ typesToIgnore?: string[]
1552
+ }]
1553
+ // ----- ts/no-unused-expressions -----
1554
+ type TsNoUnusedExpressions = []|[{
1555
+ allowShortCircuit?: boolean
1556
+ allowTernary?: boolean
1557
+ allowTaggedTemplates?: boolean
1558
+ enforceForJSX?: boolean
1559
+ }]
1560
+ // ----- ts/no-unused-vars -----
1561
+ type TsNoUnusedVars = []|[(("all" | "local") | {
1562
+
1563
+ args?: ("all" | "after-used" | "none")
1564
+
1565
+ argsIgnorePattern?: string
1566
+
1567
+ caughtErrors?: ("all" | "none")
1568
+
1569
+ caughtErrorsIgnorePattern?: string
1570
+
1571
+ destructuredArrayIgnorePattern?: string
1572
+
1573
+ ignoreClassWithStaticInitBlock?: boolean
1574
+
1575
+ ignoreRestSiblings?: boolean
1576
+
1577
+ reportUsedIgnorePattern?: boolean
1578
+
1579
+ vars?: ("all" | "local")
1580
+
1581
+ varsIgnorePattern?: string
1582
+ })]
1583
+ // ----- ts/no-use-before-define -----
1584
+ type TsNoUseBeforeDefine = []|[("nofunc" | {
1585
+
1586
+ allowNamedExports?: boolean
1587
+
1588
+ classes?: boolean
1589
+
1590
+ enums?: boolean
1591
+
1592
+ functions?: boolean
1593
+
1594
+ ignoreTypeReferences?: boolean
1595
+
1596
+ typedefs?: boolean
1597
+
1598
+ variables?: boolean
1599
+ })]
1600
+ // ----- ts/no-var-requires -----
1601
+ type TsNoVarRequires = []|[{
1602
+
1603
+ allow?: string[]
1604
+ }]
1605
+ // ----- ts/only-throw-error -----
1606
+ type TsOnlyThrowError = []|[{
1607
+
1608
+ allow?: (string | {
1609
+ from: "file"
1610
+ name: (string | [string, ...(string)[]])
1611
+ path?: string
1612
+ } | {
1613
+ from: "lib"
1614
+ name: (string | [string, ...(string)[]])
1615
+ } | {
1616
+ from: "package"
1617
+ name: (string | [string, ...(string)[]])
1618
+ package: string
1619
+ })[]
1620
+
1621
+ allowThrowingAny?: boolean
1622
+
1623
+ allowThrowingUnknown?: boolean
1624
+ }]
1625
+ // ----- ts/parameter-properties -----
1626
+ type TsParameterProperties = []|[{
1627
+
1628
+ allow?: ("readonly" | "private" | "protected" | "public" | "private readonly" | "protected readonly" | "public readonly")[]
1629
+
1630
+ prefer?: ("class-property" | "parameter-property")
1631
+ }]
1632
+ // ----- ts/prefer-destructuring -----
1633
+ type TsPreferDestructuring = []|[({
1634
+ AssignmentExpression?: {
1635
+ array?: boolean
1636
+ object?: boolean
1637
+ }
1638
+ VariableDeclarator?: {
1639
+ array?: boolean
1640
+ object?: boolean
1641
+ }
1642
+ } | {
1643
+ array?: boolean
1644
+ object?: boolean
1645
+ })]|[({
1646
+ AssignmentExpression?: {
1647
+ array?: boolean
1648
+ object?: boolean
1649
+ }
1650
+ VariableDeclarator?: {
1651
+ array?: boolean
1652
+ object?: boolean
1653
+ }
1654
+ } | {
1655
+ array?: boolean
1656
+ object?: boolean
1657
+ }), {
1658
+
1659
+ enforceForDeclarationWithTypeAnnotation?: boolean
1660
+
1661
+ enforceForRenamedProperties?: boolean
1662
+ [k: string]: unknown | undefined
1663
+ }]
1664
+ // ----- ts/prefer-literal-enum-member -----
1665
+ type TsPreferLiteralEnumMember = []|[{
1666
+
1667
+ allowBitwiseExpressions?: boolean
1668
+ }]
1669
+ // ----- ts/prefer-nullish-coalescing -----
1670
+ type TsPreferNullishCoalescing = []|[{
1671
+
1672
+ allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean
1673
+
1674
+ ignoreBooleanCoercion?: boolean
1675
+
1676
+ ignoreConditionalTests?: boolean
1677
+
1678
+ ignoreMixedLogicalExpressions?: boolean
1679
+
1680
+ ignorePrimitives?: ({
1681
+
1682
+ bigint?: boolean
1683
+
1684
+ boolean?: boolean
1685
+
1686
+ number?: boolean
1687
+
1688
+ string?: boolean
1689
+ [k: string]: unknown | undefined
1690
+ } | true)
1691
+
1692
+ ignoreTernaryTests?: boolean
1693
+ }]
1694
+ // ----- ts/prefer-optional-chain -----
1695
+ type TsPreferOptionalChain = []|[{
1696
+
1697
+ allowPotentiallyUnsafeFixesThatModifyTheReturnTypeIKnowWhatImDoing?: boolean
1698
+
1699
+ checkAny?: boolean
1700
+
1701
+ checkBigInt?: boolean
1702
+
1703
+ checkBoolean?: boolean
1704
+
1705
+ checkNumber?: boolean
1706
+
1707
+ checkString?: boolean
1708
+
1709
+ checkUnknown?: boolean
1710
+
1711
+ requireNullish?: boolean
1712
+ }]
1713
+ // ----- ts/prefer-promise-reject-errors -----
1714
+ type TsPreferPromiseRejectErrors = []|[{
1715
+
1716
+ allowEmptyReject?: boolean
1717
+
1718
+ allowThrowingAny?: boolean
1719
+
1720
+ allowThrowingUnknown?: boolean
1721
+ }]
1722
+ // ----- ts/prefer-readonly -----
1723
+ type TsPreferReadonly = []|[{
1724
+
1725
+ onlyInlineLambdas?: boolean
1726
+ }]
1727
+ // ----- ts/prefer-readonly-parameter-types -----
1728
+ type TsPreferReadonlyParameterTypes = []|[{
1729
+
1730
+ allow?: (string | {
1731
+ from: "file"
1732
+ name: (string | [string, ...(string)[]])
1733
+ path?: string
1734
+ } | {
1735
+ from: "lib"
1736
+ name: (string | [string, ...(string)[]])
1737
+ } | {
1738
+ from: "package"
1739
+ name: (string | [string, ...(string)[]])
1740
+ package: string
1741
+ })[]
1742
+
1743
+ checkParameterProperties?: boolean
1744
+
1745
+ ignoreInferredTypes?: boolean
1746
+
1747
+ treatMethodsAsReadonly?: boolean
1748
+ }]
1749
+ // ----- ts/prefer-string-starts-ends-with -----
1750
+ type TsPreferStringStartsEndsWith = []|[{
1751
+
1752
+ allowSingleElementEquality?: ("always" | "never")
1753
+ }]
1754
+ // ----- ts/promise-function-async -----
1755
+ type TsPromiseFunctionAsync = []|[{
1756
+
1757
+ allowAny?: boolean
1758
+
1759
+ allowedPromiseNames?: string[]
1760
+
1761
+ checkArrowFunctions?: boolean
1762
+
1763
+ checkFunctionDeclarations?: boolean
1764
+
1765
+ checkFunctionExpressions?: boolean
1766
+
1767
+ checkMethodDeclarations?: boolean
1768
+ }]
1769
+ // ----- ts/require-array-sort-compare -----
1770
+ type TsRequireArraySortCompare = []|[{
1771
+
1772
+ ignoreStringArrays?: boolean
1773
+ }]
1774
+ // ----- ts/restrict-plus-operands -----
1775
+ type TsRestrictPlusOperands = []|[{
1776
+
1777
+ allowAny?: boolean
1778
+
1779
+ allowBoolean?: boolean
1780
+
1781
+ allowNullish?: boolean
1782
+
1783
+ allowNumberAndString?: boolean
1784
+
1785
+ allowRegExp?: boolean
1786
+
1787
+ skipCompoundAssignments?: boolean
1788
+ }]
1789
+ // ----- ts/restrict-template-expressions -----
1790
+ type TsRestrictTemplateExpressions = []|[{
1791
+
1792
+ allowAny?: boolean
1793
+
1794
+ allowArray?: boolean
1795
+
1796
+ allowBoolean?: boolean
1797
+
1798
+ allowNullish?: boolean
1799
+
1800
+ allowNumber?: boolean
1801
+
1802
+ allowRegExp?: boolean
1803
+
1804
+ allowNever?: boolean
1805
+
1806
+ allow?: (string | {
1807
+ from: "file"
1808
+ name: (string | [string, ...(string)[]])
1809
+ path?: string
1810
+ } | {
1811
+ from: "lib"
1812
+ name: (string | [string, ...(string)[]])
1813
+ } | {
1814
+ from: "package"
1815
+ name: (string | [string, ...(string)[]])
1816
+ package: string
1817
+ })[]
1818
+ }]
1819
+ // ----- ts/return-await -----
1820
+ type TsReturnAwait = []|[(("always" | "error-handling-correctness-only" | "in-try-catch" | "never") & string)]
1821
+ // ----- ts/sort-type-constituents -----
1822
+ type TsSortTypeConstituents = []|[{
1823
+
1824
+ caseSensitive?: boolean
1825
+
1826
+ checkIntersections?: boolean
1827
+
1828
+ checkUnions?: boolean
1829
+
1830
+ groupOrder?: ("conditional" | "function" | "import" | "intersection" | "keyword" | "nullish" | "literal" | "named" | "object" | "operator" | "tuple" | "union")[]
1831
+ }]
1832
+ // ----- ts/strict-boolean-expressions -----
1833
+ type TsStrictBooleanExpressions = []|[{
1834
+
1835
+ allowAny?: boolean
1836
+
1837
+ allowNullableBoolean?: boolean
1838
+
1839
+ allowNullableEnum?: boolean
1840
+
1841
+ allowNullableNumber?: boolean
1842
+
1843
+ allowNullableObject?: boolean
1844
+
1845
+ allowNullableString?: boolean
1846
+
1847
+ allowNumber?: boolean
1848
+
1849
+ allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean
1850
+
1851
+ allowString?: boolean
1852
+ }]
1853
+ // ----- ts/switch-exhaustiveness-check -----
1854
+ type TsSwitchExhaustivenessCheck = []|[{
1855
+
1856
+ allowDefaultCaseForExhaustiveSwitch?: boolean
1857
+
1858
+ considerDefaultExhaustiveForUnions?: boolean
1859
+
1860
+ defaultCaseCommentPattern?: string
1861
+
1862
+ requireDefaultForNonUnion?: boolean
1863
+ }]
1864
+ // ----- ts/triple-slash-reference -----
1865
+ type TsTripleSlashReference = []|[{
1866
+
1867
+ lib?: ("always" | "never")
1868
+
1869
+ path?: ("always" | "never")
1870
+
1871
+ types?: ("always" | "never" | "prefer-import")
1872
+ }]
1873
+ // ----- ts/typedef -----
1874
+ type TsTypedef = []|[{
1875
+
1876
+ arrayDestructuring?: boolean
1877
+
1878
+ arrowParameter?: boolean
1879
+
1880
+ memberVariableDeclaration?: boolean
1881
+
1882
+ objectDestructuring?: boolean
1883
+
1884
+ parameter?: boolean
1885
+
1886
+ propertyDeclaration?: boolean
1887
+
1888
+ variableDeclaration?: boolean
1889
+
1890
+ variableDeclarationIgnoreFunction?: boolean
1891
+ }]
1892
+ // ----- ts/unbound-method -----
1893
+ type TsUnboundMethod = []|[{
1894
+
1895
+ ignoreStatic?: boolean
1896
+ }]
1897
+ // ----- ts/unified-signatures -----
1898
+ type TsUnifiedSignatures = []|[{
1899
+
1900
+ ignoreDifferentlyNamedParameters?: boolean
1901
+
1902
+ ignoreOverloadsWithDifferentJSDoc?: boolean
1903
+ }]
1904
+ // ----- unused-imports/no-unused-imports -----
1905
+ type UnusedImportsNoUnusedImports = []|[(("all" | "local") | {
1906
+
1907
+ args?: ("all" | "after-used" | "none")
1908
+
1909
+ argsIgnorePattern?: string
1910
+
1911
+ caughtErrors?: ("all" | "none")
1912
+
1913
+ caughtErrorsIgnorePattern?: string
1914
+
1915
+ destructuredArrayIgnorePattern?: string
1916
+
1917
+ ignoreClassWithStaticInitBlock?: boolean
1918
+
1919
+ ignoreRestSiblings?: boolean
1920
+
1921
+ reportUsedIgnorePattern?: boolean
1922
+
1923
+ vars?: ("all" | "local")
1924
+
1925
+ varsIgnorePattern?: string
1926
+ })]
1927
+ // ----- unused-imports/no-unused-vars -----
1928
+ type UnusedImportsNoUnusedVars = []|[(("all" | "local") | {
1929
+
1930
+ args?: ("all" | "after-used" | "none")
1931
+
1932
+ argsIgnorePattern?: string
1933
+
1934
+ caughtErrors?: ("all" | "none")
1935
+
1936
+ caughtErrorsIgnorePattern?: string
1937
+
1938
+ destructuredArrayIgnorePattern?: string
1939
+
1940
+ ignoreClassWithStaticInitBlock?: boolean
1941
+
1942
+ ignoreRestSiblings?: boolean
1943
+
1944
+ reportUsedIgnorePattern?: boolean
1945
+
1946
+ vars?: ("all" | "local")
1947
+
1948
+ varsIgnorePattern?: string
1949
+ })]
1950
+
1951
+ type Rules = RuleOptions;
1952
+ type FlatConfigRecord = Omit<Linter.Config<Linter.RulesRecord & Rules>, 'plugins'> & {
1953
+ plugins?: Record<string, any>;
1954
+ };
1955
+
1956
+ interface OptionsIgnores extends AllOptions {
1957
+ files?: string[];
1958
+ }
1959
+
1960
+ interface OptionsJsonc extends AllOptions {
1961
+ }
1962
+
1963
+ type Runner = 'vitest' | 'jest' | 'tap';
1964
+ interface OptionsTest extends AllOptions {
1965
+ /**
1966
+ * Specifies which test runner is being used (and therefore which rules will be applied).
1967
+ */
1968
+ runner: Runner;
1969
+ }
1970
+
1971
+ interface OptionsToml extends AllOptions {
1972
+ }
1973
+
1974
+ interface OptionsTypescript extends AllOptions, OptionsTypeScriptParser {
1975
+ /**
1976
+ * Overrides type aware rules.
1977
+ */
1978
+ typeAwareOverrides?: FlatConfigRecord['rules'];
1979
+ }
1980
+
1981
+ interface OptionsOverrides {
1982
+ overrides?: FlatConfigRecord['rules'];
1983
+ }
1984
+ interface OptionsProjectType {
1985
+ /**
1986
+ * Type of the project. `lib` will enable more strict rules for libraries.
1987
+ * @default 'app'
1988
+ */
1989
+ type?: 'app' | 'lib';
1990
+ }
1991
+ interface OptionsFiles {
1992
+ /**
1993
+ * Overrides the `files` option to provide custom globs.
1994
+ */
1995
+ files?: string[];
1996
+ }
1997
+ interface OptionsHasTypeScript {
1998
+ typescript?: boolean;
1999
+ }
2000
+ interface OptionsTypeScriptParser {
2001
+ /**
2002
+ * Specifies the tsconfig path. Enables type-aware rules.
2003
+ */
2004
+ tsconfigPath?: string;
2005
+ /**
2006
+ * Glob patterns for files that should be type aware.
2007
+ * @default ['**\/*.{ts,tsx}']
2008
+ */
2009
+ filesTypeAware?: string[];
2010
+ /**
2011
+ * Glob patterns for files that should not be type aware.
2012
+ * @default ['**\/*.md\/**', '**\/*.astro/*.ts']
2013
+ */
2014
+ ignoresTypeAware?: string[];
2015
+ /**
2016
+ * Additional parser options for TypeScript.
2017
+ */
2018
+ parserOptions?: Partial<ParserOptions>;
2019
+ }
2020
+ type AllOptions = OptionsOverrides & OptionsFiles & OptionsProjectType;
2021
+ interface OptionsConfig extends OptionsProjectType {
2022
+ /**
2023
+ * Core ruleset. Cannot be disabled.
2024
+ */
2025
+ javascript?: OptionsOverrides;
2026
+ /**
2027
+ * Enables TypeScript support.
2028
+ *
2029
+ * @default auto-detect based on local dependencies
2030
+ */
2031
+ typescript?: boolean | OptionsTypescript;
2032
+ /**
2033
+ * Enables test rules.
2034
+ *
2035
+ * @default true - vitest
2036
+ */
2037
+ test?: boolean | OptionsTest;
2038
+ /**
2039
+ * Enables Vue rules.
2040
+ *
2041
+ * Requires installing:
2042
+ * - `eslint-plugin-vue`
2043
+ * - `vue-eslint-parser`
2044
+ *
2045
+ * @default false
2046
+ */
2047
+ vue?: boolean | OptionsOverrides;
2048
+ /**
2049
+ * Enables React rules.
2050
+ *
2051
+ * Requires installing:
2052
+ * - `@eslint-react/eslint-plugin`
2053
+ * - `eslint-plugin-react-hooks`
2054
+ * - `eslint-plugin-react-refresh`
2055
+ *
2056
+ * @default false
2057
+ */
2058
+ react?: boolean | OptionsOverrides;
2059
+ /**
2060
+ * Enables JSONC support.
2061
+ */
2062
+ jsonc?: boolean | OptionsJsonc;
2063
+ /**
2064
+ * Enables YAML support.
2065
+ *
2066
+ * @default true
2067
+ */
2068
+ yaml?: boolean | OptionsOverrides;
2069
+ /**
2070
+ * Enables TOML support.
2071
+ *
2072
+ * @default true
2073
+ */
2074
+ toml?: boolean | OptionsToml;
2075
+ /**
2076
+ * Enables linting for Markdown and Markdown code snippets.
2077
+ * TODO: update rules
2078
+ * @default true
2079
+ */
2080
+ markdown?: boolean | OptionsOverrides;
2081
+ /**
2082
+ * Configurable global ignores.
2083
+ */
2084
+ ignores?: OptionsIgnores;
2085
+ /**
2086
+ * Style settings.
2087
+ */
2088
+ style?: OptionsStyle;
2089
+ /**
2090
+ * Disables certain rules to accommodate prettier.
2091
+ *
2092
+ * @default true
2093
+ */
2094
+ formatter?: boolean;
2095
+ }
2096
+ interface OptionsStyle {
2097
+ indent?: number | 'tab';
2098
+ quotes?: 'single' | 'double' | 'backtick';
2099
+ semi?: boolean;
2100
+ jsx?: boolean;
2101
+ }
2102
+
2103
+ type LinterOptions = OptionsConfig;
2104
+ declare function exbotanical({ javascript: optionsJavascript, ignores: optionsIgnore, jsonc: optionsJsonc, markdown: optionsMarkdown, toml: optionsToml, yaml: optionsYaml, test: optionsTest, formatter, typescript: optionsTypescript, style: optionsStyle, react: optionsReact, vue: optionsVue, ...otherOptions }: LinterOptions): Promise<FlatConfigRecord[]>;
2105
+
2106
+ export { type AllOptions, type FlatConfigRecord, type OptionsConfig, type OptionsFiles, type OptionsHasTypeScript, type OptionsOverrides, type OptionsProjectType, type OptionsStyle, type OptionsTypeScriptParser, type Rules, exbotanical as default };