@flint.fyi/ts 0.23.1 → 0.23.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.d.mts +301 -1202
  2. package/dist/index.mjs +193 -238
  3. package/package.json +11 -10
package/dist/index.d.mts CHANGED
@@ -1,1052 +1,617 @@
1
1
  //#region src/plugin.d.ts
2
- declare const ts: import("@flint.fyi/core").Plugin<import("@flint.fyi/core").RuleAbout<string>, "javascript" | "all" | "typescript", [import("@flint.fyi/core").Rule<{
2
+ export declare const ts: import("@flint.fyi/core").Plugin<import("@flint.fyi/core").RuleAbout<string>, "javascript" | "all" | "typescript", [import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
3
3
  readonly description: "Reports getter and setter accessors for the same property that are not adjacent.";
4
4
  readonly id: "accessorPairGroups";
5
5
  readonly presets: readonly ["stylistic", "stylisticStrict"];
6
- } & {
7
- readonly pluginId: string;
8
- readonly url: string;
9
- }, "notGrouped", undefined>, import("@flint.fyi/core").Rule<{
6
+ }, "notGrouped", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
10
7
  readonly description: "Reports mismatched types between getter and setter accessor pairs.";
11
8
  readonly id: "accessorPairTypes";
12
9
  readonly presets: readonly ["logical", "logicalStrict"];
13
- } & {
14
- readonly pluginId: string;
15
- readonly url: string;
16
- }, "mismatchedTypes", undefined>, import("@flint.fyi/core").Rule<{
10
+ }, "mismatchedTypes", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
17
11
  readonly description: "Reports recursive access to this within getters and setters.";
18
12
  readonly id: "accessorThisRecursion";
19
13
  readonly presets: readonly ["logical", "logicalStrict"];
20
- } & {
21
- readonly pluginId: string;
22
- readonly url: string;
23
- }, "noGetterRecursion" | "noSetterRecursion", undefined>, import("@flint.fyi/core").Rule<{
14
+ }, "noGetterRecursion" | "noSetterRecursion", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
24
15
  readonly description: "Reports calling a function with a value typed as `any` as an argument.";
25
16
  readonly id: "anyArguments";
26
17
  readonly presets: readonly ["logical", "logicalStrict"];
27
- } & {
28
- readonly pluginId: string;
29
- readonly url: string;
30
- }, "unsafeArgument" | "unsafeSpread" | "unsafeTupleSpread", undefined>, import("@flint.fyi/core").Rule<{
18
+ }, "unsafeArgument" | "unsafeSpread" | "unsafeTupleSpread", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
31
19
  readonly description: "Reports assigning a value with type `any` to variables and properties.";
32
20
  readonly id: "anyAssignments";
33
21
  readonly presets: readonly ["logical", "logicalStrict"];
34
- } & {
35
- readonly pluginId: string;
36
- readonly url: string;
37
- }, "unsafeArrayDestructure" | "unsafeArrayPatternFromTuple" | "unsafeArraySpread" | "unsafeAssignment" | "unsafeAssignmentToVariable" | "unsafeObjectPattern", undefined>, import("@flint.fyi/core").Rule<{
22
+ }, "unsafeArrayDestructure" | "unsafeArrayPatternFromTuple" | "unsafeArraySpread" | "unsafeAssignment" | "unsafeAssignmentToVariable" | "unsafeObjectPattern", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
38
23
  readonly description: "Reports calling a value with type `any`.";
39
24
  readonly id: "anyCalls";
40
25
  readonly presets: readonly ["logical", "logicalStrict"];
41
- } & {
42
- readonly pluginId: string;
43
- readonly url: string;
44
- }, "unsafeCall" | "unsafeNew" | "unsafeTemplateTag", undefined>, import("@flint.fyi/core").Rule<{
26
+ }, "unsafeCall" | "unsafeNew" | "unsafeTemplateTag", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
45
27
  readonly description: "Reports member access on a value with type `any`.";
46
28
  readonly id: "anyMemberAccess";
47
29
  readonly presets: readonly ["logical", "logicalStrict"];
48
- } & {
49
- readonly pluginId: string;
50
- readonly url: string;
51
- }, "unsafeComputedMemberAccess" | "unsafeMemberAccess", undefined>, import("@flint.fyi/core").Rule<{
30
+ }, "unsafeComputedMemberAccess" | "unsafeMemberAccess", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
52
31
  readonly description: "Reports returning a value with type `any` from a function.";
53
32
  readonly id: "anyReturns";
54
33
  readonly presets: readonly ["logical", "logicalStrict"];
55
- } & {
56
- readonly pluginId: string;
57
- readonly url: string;
58
- }, "unsafeReturn" | "unsafeReturnAssignment" | "unsafeReturnThis", undefined>, import("@flint.fyi/core").Rule<{
34
+ }, "unsafeReturn" | "unsafeReturnAssignment" | "unsafeReturnThis", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
59
35
  readonly description: "Reports using the arguments object instead of rest parameters.";
60
36
  readonly id: "arguments";
61
37
  readonly presets: readonly ["logical", "logicalStrict"];
62
- } & {
63
- readonly pluginId: string;
64
- readonly url: string;
65
- }, "preferRestParameters", undefined>, import("@flint.fyi/core").Rule<{
38
+ }, "preferRestParameters", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
66
39
  readonly description: "Reports missing return statements in callbacks of array methods.";
67
40
  readonly id: "arrayCallbackReturns";
68
41
  readonly presets: readonly ["javascript"];
69
- } & {
70
- readonly pluginId: string;
71
- readonly url: string;
72
- }, "missingReturn", undefined>, import("@flint.fyi/core").Rule<{
42
+ }, "missingReturn", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
73
43
  readonly description: "Reports using the `Array` constructor to create arrays instead of array literal syntax.";
74
44
  readonly id: "arrayConstructors";
75
45
  readonly presets: readonly ["logical", "logicalStrict"];
76
- } & {
77
- readonly pluginId: string;
78
- readonly url: string;
79
- }, "preferLiteral", undefined>, import("@flint.fyi/core").Rule<{
46
+ }, "preferLiteral", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
80
47
  readonly description: "Reports using `.length` or `Infinity` as the `deleteCount` or `skipCount` argument of `Array#splice()` or `Array#toSpliced()`.";
81
48
  readonly id: "arrayDeleteUnnecessaryCounts";
82
49
  readonly presets: readonly ["stylistic", "stylisticStrict"];
83
- } & {
84
- readonly pluginId: string;
85
- readonly url: string;
86
- }, "unnecessaryCount", undefined>, import("@flint.fyi/core").Rule<{
50
+ }, "unnecessaryCount", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
87
51
  readonly description: "Reports using the `delete` operator on array values.";
88
52
  readonly id: "arrayElementDeletions";
89
53
  readonly presets: readonly ["logical", "logicalStrict"];
90
- } & {
91
- readonly pluginId: string;
92
- readonly url: string;
93
- }, "noArrayDelete", undefined>, import("@flint.fyi/core").Rule<{
54
+ }, "noArrayDelete", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
94
55
  readonly description: "Reports array methods with callbacks that will never be invoked on arrays with empty slots.";
95
56
  readonly id: "arrayEmptyCallbackSlots";
96
57
  readonly presets: readonly ["logical", "logicalStrict"];
97
- } & {
98
- readonly pluginId: string;
99
- readonly url: string;
100
- }, "neverInvoked", undefined>, import("@flint.fyi/core").Rule<{
58
+ }, "neverInvoked", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
101
59
  readonly description: "Reports inconsistent styles for checking element existence using index methods.";
102
60
  readonly id: "arrayExistenceChecksConsistency";
103
61
  readonly presets: readonly ["stylistic", "stylisticStrict"];
104
- } & {
105
- readonly pluginId: string;
106
- readonly url: string;
107
- }, "preferEqualsMinusOne" | "preferNotEqualsMinusOne", undefined>, import("@flint.fyi/core").Rule<{
62
+ }, "preferEqualsMinusOne" | "preferNotEqualsMinusOne", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
108
63
  readonly description: "Reports using `.filter()` when only the first or last matching element is needed.";
109
64
  readonly id: "arrayFilteredFinds";
110
65
  readonly presets: readonly ["logical", "logicalStrict"];
111
- } & {
112
- readonly pluginId: string;
113
- readonly url: string;
114
- }, "preferFind" | "preferFindLast", undefined>, import("@flint.fyi/core").Rule<{
66
+ }, "preferFind" | "preferFindLast", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
115
67
  readonly description: "Reports using `.filter()[0]` instead of `.find()` when looking for a single element.";
116
68
  readonly id: "arrayFinds";
117
69
  readonly presets: readonly ["stylistic", "stylisticStrict"];
118
- } & {
119
- readonly pluginId: string;
120
- readonly url: string;
121
- }, "preferFind", undefined>, import("@flint.fyi/core").Rule<{
70
+ }, "preferFind", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
122
71
  readonly description: "Reports using `.map().flat()` when `.flatMap()` can be used.";
123
72
  readonly id: "arrayFlatMapMethods";
124
73
  readonly presets: readonly ["stylistic", "stylisticStrict"];
125
- } & {
126
- readonly pluginId: string;
127
- readonly url: string;
128
- }, "preferFlatMap", undefined>, import("@flint.fyi/core").Rule<{
74
+ }, "preferFlatMap", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
129
75
  readonly description: "Reports legacy techniques to flatten arrays instead of using `.flat()`.";
130
76
  readonly id: "arrayFlatMethods";
131
77
  readonly presets: readonly ["stylistic", "stylisticStrict"];
132
- } & {
133
- readonly pluginId: string;
134
- readonly url: string;
135
- }, "preferFlat", undefined>, import("@flint.fyi/core").Rule<{
78
+ }, "preferFlat", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
136
79
  readonly description: "Reports using `1` as the depth argument of `.flat()` since it is the default.";
137
80
  readonly id: "arrayFlatUnnecessaryDepths";
138
81
  readonly presets: readonly ["stylistic", "stylisticStrict"];
139
- } & {
140
- readonly pluginId: string;
141
- readonly url: string;
142
- }, "unnecessaryDepth", undefined>, import("@flint.fyi/core").Rule<{
82
+ }, "unnecessaryDepth", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
143
83
  readonly description: "Reports using `.indexOf()` comparisons that can be replaced with `.includes()`.";
144
84
  readonly id: "arrayIncludes";
145
85
  readonly presets: readonly ["stylistic", "stylisticStrict"];
146
- } & {
147
- readonly pluginId: string;
148
- readonly url: string;
149
- }, "preferIncludes", undefined>, import("@flint.fyi/core").Rule<{
86
+ }, "preferIncludes", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
150
87
  readonly description: "Reports using `Array#some()` with simple equality checks that can be replaced with `.includes()`.";
151
88
  readonly id: "arrayIncludesMethods";
152
89
  readonly presets: readonly ["stylistic", "stylisticStrict"];
153
- } & {
154
- readonly pluginId: string;
155
- readonly url: string;
156
- }, "preferIncludes", undefined>, import("@flint.fyi/core").Rule<{
90
+ }, "preferIncludes", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
157
91
  readonly description: "Reports using `.findIndex()` or `.findLastIndex()` with simple equality checks that can be replaced with `.indexOf()` or `.lastIndexOf()`.";
158
92
  readonly id: "arrayIndexOfMethods";
159
93
  readonly presets: readonly ["stylistic", "stylisticStrict"];
160
- } & {
161
- readonly pluginId: string;
162
- readonly url: string;
163
- }, "preferIndexOf" | "preferLastIndexOf", undefined>, import("@flint.fyi/core").Rule<{
94
+ }, "preferIndexOf" | "preferLastIndexOf", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
164
95
  readonly description: "Reports using `.forEach()` when a for-of loop can be used.";
165
96
  readonly id: "arrayLoops";
166
97
  readonly presets: readonly ["stylistic", "stylisticStrict"];
167
- } & {
168
- readonly pluginId: string;
169
- readonly url: string;
170
- }, "preferForOf", undefined>, import("@flint.fyi/core").Rule<{
98
+ }, "preferForOf", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
171
99
  readonly description: "Reports using `.flatMap()` with an identity function that returns its argument unchanged.";
172
100
  readonly id: "arrayMapIdentities";
173
101
  readonly presets: readonly ["logical", "logicalStrict"];
174
- } & {
175
- readonly pluginId: string;
176
- readonly url: string;
177
- }, "identityFlatMap", undefined>, import("@flint.fyi/core").Rule<{
102
+ }, "identityFlatMap", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
178
103
  readonly description: "Reports `.reverse()` calls on arrays that mutate the original array.";
179
104
  readonly id: "arrayMutableReverses";
180
105
  readonly presets: readonly ["stylistic", "stylisticStrict"];
181
- } & {
182
- readonly pluginId: string;
183
- readonly url: string;
184
- }, "preferToReversed", undefined>, import("@flint.fyi/core").Rule<{
106
+ }, "preferToReversed", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
185
107
  readonly description: "Reports `.sort()` calls on arrays that mutate the original array.";
186
108
  readonly id: "arrayMutableSorts";
187
109
  readonly presets: readonly ["stylistic", "stylisticStrict"];
188
- } & {
189
- readonly pluginId: string;
190
- readonly url: string;
191
- }, "preferToSorted", undefined>, import("@flint.fyi/core").Rule<{
110
+ }, "preferToSorted", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
192
111
  readonly description: "Reports `Array#reduce` calls using type assertions on initial values instead of type arguments.";
193
112
  readonly id: "arrayReduceTypeArguments";
194
113
  readonly presets: readonly ["logicalStrict"];
195
- } & {
196
- readonly pluginId: string;
197
- readonly url: string;
198
- }, "preferTypeParameter", undefined>, import("@flint.fyi/core").Rule<{
114
+ }, "preferTypeParameter", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
199
115
  readonly description: "Reports unnecessary `end` argument in `.slice()` calls when it equals the length or is `Infinity`.";
200
116
  readonly id: "arraySliceUnnecessaryEnd";
201
117
  readonly presets: readonly ["stylistic", "stylisticStrict"];
202
- } & {
203
- readonly pluginId: string;
204
- readonly url: string;
205
- }, "unnecessaryEnd", undefined>, import("@flint.fyi/core").Rule<{
118
+ }, "unnecessaryEnd", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
206
119
  readonly description: "Reports patterns that can be replaced with `.some()` for checking array element existence.";
207
120
  readonly id: "arraySomeMethods";
208
121
  readonly presets: readonly ["stylistic", "stylisticStrict"];
209
- } & {
210
- readonly pluginId: string;
211
- readonly url: string;
212
- }, "preferSome", undefined>, import("@flint.fyi/core").Rule<{
122
+ }, "preferSome", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
213
123
  readonly description: "Reports inconsistent types when spreading a ternary in an array literal.";
214
124
  readonly id: "arrayTernarySpreadingConsistency";
215
125
  readonly presets: readonly ["stylistic", "stylisticStrict"];
216
- } & {
217
- readonly pluginId: string;
218
- readonly url: string;
219
- }, "inconsistentTypes", undefined>, import("@flint.fyi/core").Rule<{
126
+ }, "inconsistentTypes", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
220
127
  readonly description: "Reports array type syntax that doesn't match the configured style.";
221
128
  readonly id: "arrayTypes";
222
129
  readonly presets: readonly ["stylistic", "stylisticStrict"];
223
- } & {
224
- readonly pluginId: string;
225
- readonly url: string;
226
130
  }, "preferArraySyntax" | "preferGenericSyntax" | "preferReadonlyArraySyntax" | "preferReadonlyGenericSyntax", {
227
131
  style: import("zod/v4").ZodDefault<import("zod/v4").ZodEnum<{
228
132
  array: "array";
229
133
  "array-simple": "array-simple";
230
134
  generic: "generic";
231
135
  }>>;
232
- }>, import("@flint.fyi/core").Rule<{
136
+ }>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
233
137
  readonly description: "Reports unnecessary array length checks before `.some()` or `.every()` calls.";
234
138
  readonly id: "arrayUnnecessaryLengthChecks";
235
139
  readonly presets: readonly ["logical"];
236
- } & {
237
- readonly pluginId: string;
238
- readonly url: string;
239
- }, "unnecessaryLengthCheckEvery" | "unnecessaryLengthCheckSome", undefined>, import("@flint.fyi/core").Rule<{
140
+ }, "unnecessaryLengthCheckEvery" | "unnecessaryLengthCheckSome", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
240
141
  readonly description: "Reports using explicit literal types when `as const` can be used.";
241
142
  readonly id: "asConstAssertions";
242
143
  readonly presets: readonly ["stylistic", "stylisticStrict"];
243
- } & {
244
- readonly pluginId: string;
245
- readonly url: string;
246
- }, "preferAsConst" | "preferAsConstAnnotation", undefined>, import("@flint.fyi/core").Rule<{
144
+ }, "preferAsConst" | "preferAsConstAnnotation", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
247
145
  readonly description: "Prefer logical assignment operator shorthand expressions.";
248
146
  readonly id: "assignmentOperatorShorthands";
249
147
  readonly presets: readonly ["stylistic", "stylisticStrict"];
250
- } & {
251
- readonly pluginId: string;
252
- readonly url: string;
253
- }, "preferShorthand", undefined>, import("@flint.fyi/core").Rule<{
148
+ }, "preferShorthand", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
254
149
  readonly description: "Reports async functions that do not use await.";
255
150
  readonly id: "asyncFunctionAwaits";
256
151
  readonly presets: readonly ["logicalStrict"];
257
- } & {
258
- readonly pluginId: string;
259
- readonly url: string;
260
- }, "missingAwait", undefined>, import("@flint.fyi/core").Rule<{
152
+ }, "missingAwait", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
261
153
  readonly description: "Reports using async functions as Promise executor functions.";
262
154
  readonly id: "asyncPromiseExecutors";
263
155
  readonly presets: readonly ["logical", "logicalStrict"];
264
- } & {
265
- readonly pluginId: string;
266
- readonly url: string;
267
- }, "asyncPromiseExecutor", undefined>, import("@flint.fyi/core").Rule<{
156
+ }, "asyncPromiseExecutor", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
268
157
  readonly description: "Reports unnecessary `Promise.resolve()` or `Promise.reject()` in async contexts.";
269
158
  readonly id: "asyncUnnecessaryPromiseWrappers";
270
159
  readonly presets: readonly ["logical", "logicalStrict"];
271
- } & {
272
- readonly pluginId: string;
273
- readonly url: string;
274
- }, "unnecessaryReject" | "unnecessaryResolve", undefined>, import("@flint.fyi/core").Rule<{
160
+ }, "unnecessaryReject" | "unnecessaryResolve", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
275
161
  readonly description: "Prefer using .at() for accessing elements at negative indices.";
276
162
  readonly id: "atAccesses";
277
163
  readonly presets: readonly ["stylistic", "stylisticStrict"];
278
- } & {
279
- readonly pluginId: string;
280
- readonly url: string;
281
- }, "preferAt", undefined>, import("@flint.fyi/core").Rule<{
164
+ }, "preferAt", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
282
165
  readonly description: "Reports functions that wrap native coercion functions like `String`, `Number`, `BigInt`, `Boolean`, or `Symbol`.";
283
166
  readonly id: "builtinCoercions";
284
167
  readonly presets: readonly ["stylistic", "stylisticStrict"];
285
- } & {
286
- readonly pluginId: string;
287
- readonly url: string;
288
- }, "useBuiltin", undefined>, import("@flint.fyi/core").Rule<{
168
+ }, "useBuiltin", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
289
169
  readonly description: "Enforces using new for constructors that require it, and disallows new for primitive coercion functions.";
290
170
  readonly id: "builtinConstructorNews";
291
171
  readonly presets: readonly ["stylistic", "stylisticStrict"];
292
- } & {
293
- readonly pluginId: string;
294
- readonly url: string;
295
- }, "disallowedNew" | "missingNew", undefined>, import("@flint.fyi/core").Rule<{
172
+ }, "disallowedNew" | "missingNew", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
296
173
  readonly description: "Reports lexical declarations in case clauses without wrapping them in blocks.";
297
174
  readonly id: "caseDeclarations";
298
175
  readonly presets: readonly ["javascript"];
299
- } & {
300
- readonly pluginId: string;
301
- readonly url: string;
302
- }, "unexpectedLexicalDeclaration", undefined>, import("@flint.fyi/core").Rule<{
176
+ }, "unexpectedLexicalDeclaration", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
303
177
  readonly description: "Reports switch statements with duplicate case clause test expressions.";
304
178
  readonly id: "caseDuplicates";
305
179
  readonly presets: readonly ["logical", "logicalStrict"];
306
- } & {
307
- readonly pluginId: string;
308
- readonly url: string;
309
- }, "duplicateCase", undefined>, import("@flint.fyi/core").Rule<{
180
+ }, "duplicateCase", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
310
181
  readonly description: "Reports switch case clauses that fall through unexpectedly.";
311
182
  readonly id: "caseFallthroughs";
312
183
  readonly presets: readonly ["logical", "logicalStrict"];
313
- } & {
314
- readonly pluginId: string;
315
- readonly url: string;
316
- }, "unexpectedFallthrough", undefined>, import("@flint.fyi/core").Rule<{
184
+ }, "unexpectedFallthrough", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
317
185
  readonly description: "Reports `Promise` catch callback parameters that are not typed as unknown.";
318
186
  readonly id: "catchCallbackTypes";
319
187
  readonly presets: readonly ["logical", "logicalStrict"];
320
- } & {
321
- readonly pluginId: string;
322
- readonly url: string;
323
- }, "preferUnknown", undefined>, import("@flint.fyi/core").Rule<{
188
+ }, "preferUnknown", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
324
189
  readonly description: "Enforces a consistent naming convention for catch clause error variables.";
325
190
  readonly id: "caughtVariableNames";
326
191
  readonly presets: readonly ["stylisticStrict"];
327
- } & {
328
- readonly pluginId: string;
329
- readonly url: string;
330
- }, "preferErrorName", undefined>, import("@flint.fyi/core").Rule<{
192
+ }, "preferErrorName", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
331
193
  readonly description: "Reports using chained assignment expressions (e.g., a = b = c).";
332
194
  readonly id: "chainedAssignments";
333
195
  readonly presets: readonly ["stylistic", "stylisticStrict"];
334
- } & {
335
- readonly pluginId: string;
336
- readonly url: string;
337
- }, "noChainedAssignment", undefined>, import("@flint.fyi/core").Rule<{
196
+ }, "noChainedAssignment", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
338
197
  readonly description: "Reports comparing charAt() results with strings longer than one character.";
339
198
  readonly id: "charAtComparisons";
340
199
  readonly presets: readonly ["logical", "logicalStrict"];
341
- } & {
342
- readonly pluginId: string;
343
- readonly url: string;
344
- }, "invalidComparison", undefined>, import("@flint.fyi/core").Rule<{
200
+ }, "invalidComparison", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
345
201
  readonly description: "Reports reassigning class declarations.";
346
202
  readonly id: "classAssignments";
347
203
  readonly presets: readonly ["javascript"];
348
- } & {
349
- readonly pluginId: string;
350
- readonly url: string;
351
- }, "noClassAssign", undefined>, import("@flint.fyi/core").Rule<{
204
+ }, "noClassAssign", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
352
205
  readonly description: "Reports assigning literal values to `this` in constructors instead of using class field declarations.";
353
206
  readonly id: "classFieldDeclarations";
354
207
  readonly presets: readonly ["javascript"];
355
- } & {
356
- readonly pluginId: string;
357
- readonly url: string;
358
- }, "preferClassField", undefined>, import("@flint.fyi/core").Rule<{
208
+ }, "preferClassField", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
359
209
  readonly description: "Reports getters that return literal values instead of using readonly class fields.";
360
210
  readonly id: "classLiteralProperties";
361
211
  readonly presets: readonly ["stylistic", "stylisticStrict"];
362
- } & {
363
- readonly pluginId: string;
364
- readonly url: string;
365
- }, "preferField", undefined>, import("@flint.fyi/core").Rule<{
212
+ }, "preferField", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
366
213
  readonly description: "Reports duplicate class member names that will be overwritten.";
367
214
  readonly id: "classMemberDuplicates";
368
215
  readonly presets: readonly ["javascript"];
369
- } & {
370
- readonly pluginId: string;
371
- readonly url: string;
372
- }, "duplicateMember", undefined>, import("@flint.fyi/core").Rule<{
216
+ }, "duplicateMember", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
373
217
  readonly description: "Reports class methods that do not use `this`.";
374
218
  readonly id: "classMethodsThis";
375
219
  readonly presets: readonly ["stylistic", "stylisticStrict"];
376
- } & {
377
- readonly pluginId: string;
378
- readonly url: string;
379
220
  }, "missingThis", {
380
221
  ignoreClassesThatImplementAnInterface: import("zod/v4").ZodDefault<import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodBoolean, import("zod/v4").ZodLiteral<"public-fields">]>>;
381
222
  ignoreOverrideMethods: import("zod/v4").ZodDefault<import("zod/v4").ZodBoolean>;
382
- }>, import("@flint.fyi/core").Rule<{
223
+ }>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
383
224
  readonly description: "Reports consecutive array.push() calls that could be combined into a single call.";
384
225
  readonly id: "combinedPushes";
385
226
  readonly presets: readonly ["stylistic", "stylisticStrict"];
386
- } & {
387
- readonly pluginId: string;
388
- readonly url: string;
389
- }, "combinePushes", undefined>, import("@flint.fyi/core").Rule<{
227
+ }, "combinePushes", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
390
228
  readonly description: "Reports unnecessary extra non-null assertions.";
391
229
  readonly id: "consecutiveNonNullAssertions";
392
230
  readonly presets: readonly ["logical"];
393
- } & {
394
- readonly pluginId: string;
395
- readonly url: string;
396
- }, "consecutiveNonNullAssertion", undefined>, import("@flint.fyi/core").Rule<{
231
+ }, "consecutiveNonNullAssertion", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
397
232
  readonly description: "Reports calls to console methods.";
398
233
  readonly id: "consoleCalls";
399
- } & {
400
- readonly pluginId: string;
401
- readonly url: string;
402
- }, "noConsole", undefined>, import("@flint.fyi/core").Rule<{
234
+ }, "noConsole", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
403
235
  readonly description: "Reports attempting to reassign variables declared with const.";
404
236
  readonly id: "constantAssignments";
405
237
  readonly presets: readonly ["javascript"];
406
- } & {
407
- readonly pluginId: string;
408
- readonly url: string;
409
- }, "noConstAssign", undefined>, import("@flint.fyi/core").Rule<{
238
+ }, "noConstAssign", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
410
239
  readonly description: "Reports inconsistent placement of type arguments in constructor calls.";
411
240
  readonly id: "constructorGenericCalls";
412
241
  readonly presets: readonly ["stylistic", "stylisticStrict"];
413
- } & {
414
- readonly pluginId: string;
415
- readonly url: string;
416
242
  }, "preferConstructor" | "preferTypeAnnotation", {
417
243
  style: import("zod/v4").ZodDefault<import("zod/v4").ZodEnum<{
418
244
  constructor: "constructor";
419
245
  "type-annotation": "type-annotation";
420
246
  }>>;
421
- }>, import("@flint.fyi/core").Rule<{
247
+ }>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
422
248
  readonly description: "Reports returning values from constructor functions.";
423
249
  readonly id: "constructorReturns";
424
250
  readonly presets: readonly ["javascript"];
425
- } & {
426
- readonly pluginId: string;
427
- readonly url: string;
428
- }, "noConstructorReturn", undefined>, import("@flint.fyi/core").Rule<{
251
+ }, "noConstructorReturn", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
429
252
  readonly description: "Reports constructors of derived classes that do not call `super()`, and constructors of non-derived classes that call `super()`.";
430
253
  readonly id: "constructorSupers";
431
254
  readonly presets: readonly ["javascript"];
432
- } & {
433
- readonly pluginId: string;
434
- readonly url: string;
435
- }, "missingSuperCall" | "unexpectedSuperCall", undefined>, import("@flint.fyi/core").Rule<{
255
+ }, "missingSuperCall" | "unexpectedSuperCall", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
436
256
  readonly description: "Prefer passing a `Date` directly to the `Date` constructor when cloning, rather than calling `getTime()`.";
437
257
  readonly id: "dateConstructorClones";
438
258
  readonly presets: readonly ["logical"];
439
- } & {
440
- readonly pluginId: string;
441
- readonly url: string;
442
- }, "unnecessaryGetTime", undefined>, import("@flint.fyi/core").Rule<{
259
+ }, "unnecessaryGetTime", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
443
260
  readonly description: "Prefer the shorter `Date.now()` to get the number of milliseconds since the Unix Epoch.";
444
261
  readonly id: "dateNowTimestamps";
445
262
  readonly presets: readonly ["logical", "logicalStrict"];
446
- } & {
447
- readonly pluginId: string;
448
- readonly url: string;
449
- }, "preferDateNow", undefined>, import("@flint.fyi/core").Rule<{
263
+ }, "preferDateNow", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
450
264
  readonly description: "Reports using debugger statements.";
451
265
  readonly id: "debuggerStatements";
452
266
  readonly presets: readonly ["logical", "logicalStrict"];
453
- } & {
454
- readonly pluginId: string;
455
- readonly url: string;
456
- }, "noDebugger", undefined>, import("@flint.fyi/core").Rule<{
267
+ }, "noDebugger", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
457
268
  readonly description: "Reports switch statements where the default clause is not last.";
458
269
  readonly id: "defaultCaseLast";
459
270
  readonly presets: readonly ["logical", "logicalStrict"];
460
- } & {
461
- readonly pluginId: string;
462
- readonly url: string;
463
- }, "defaultCaseShouldBeLast", undefined>, import("@flint.fyi/core").Rule<{
271
+ }, "defaultCaseShouldBeLast", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
464
272
  readonly description: "Enforce default parameters to be last.";
465
273
  readonly id: "defaultParameterLast";
466
274
  readonly presets: readonly ["javascript"];
467
- } & {
468
- readonly pluginId: string;
469
- readonly url: string;
470
- }, "defaultParameterLast", undefined>, import("@flint.fyi/core").Rule<{
275
+ }, "defaultParameterLast", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
471
276
  readonly description: "Disallow using code marked as @deprecated.";
472
277
  readonly id: "deprecated";
473
278
  readonly presets: readonly ["logical", "logicalStrict"];
474
- } & {
475
- readonly pluginId: string;
476
- readonly url: string;
477
- }, "deprecated", undefined>, import("@flint.fyi/core").Rule<{
279
+ }, "deprecated", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
478
280
  readonly description: "Use destructured variables over properties for consistency.";
479
281
  readonly id: "destructuringConsistency";
480
282
  readonly presets: readonly ["stylistic", "stylisticStrict"];
481
- } & {
482
- readonly pluginId: string;
483
- readonly url: string;
484
- }, "useDestructured", undefined>, import("@flint.fyi/core").Rule<{
283
+ }, "useDestructured", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
485
284
  readonly description: "Reports functions with duplicate parameter names in their signatures.";
486
285
  readonly id: "duplicateArguments";
487
286
  readonly presets: readonly ["javascript"];
488
- } & {
489
- readonly pluginId: string;
490
- readonly url: string;
491
- }, "duplicateParam", undefined>, import("@flint.fyi/core").Rule<{
287
+ }, "duplicateParam", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
492
288
  readonly description: "Disallow using the delete operator on computed key expressions.";
493
289
  readonly id: "dynamicDeletes";
494
290
  readonly presets: readonly ["logical", "logicalStrict"];
495
- } & {
496
- readonly pluginId: string;
497
- readonly url: string;
498
- }, "dynamicDelete", undefined>, import("@flint.fyi/core").Rule<{
291
+ }, "dynamicDelete", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
499
292
  readonly description: "Reports duplicate conditions in if-else-if chains that make code unreachable.";
500
293
  readonly id: "elseIfDuplicates";
501
294
  readonly presets: readonly ["logical", "logicalStrict"];
502
- } & {
503
- readonly pluginId: string;
504
- readonly url: string;
505
- }, "duplicateCondition", undefined>, import("@flint.fyi/core").Rule<{
295
+ }, "duplicateCondition", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
506
296
  readonly description: "Reports unnecessary `else` blocks following `if` statements that always return or throw.";
507
297
  readonly id: "elseReturns";
508
298
  readonly presets: readonly ["stylisticStrict"];
509
- } & {
510
- readonly pluginId: string;
511
- readonly url: string;
512
- }, "unnecessaryElse", undefined>, import("@flint.fyi/core").Rule<{
299
+ }, "unnecessaryElse", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
513
300
  readonly description: "Reports empty block statements that should contain code.";
514
301
  readonly id: "emptyBlocks";
515
302
  readonly presets: readonly ["stylistic", "stylisticStrict"];
516
- } & {
517
- readonly pluginId: string;
518
- readonly url: string;
519
- }, "emptyBlock", undefined>, import("@flint.fyi/core").Rule<{
303
+ }, "emptyBlock", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
520
304
  readonly description: "Reports using empty destructuring patterns that destructure no values.";
521
305
  readonly id: "emptyDestructures";
522
306
  readonly presets: readonly ["logical", "logicalStrict"];
523
- } & {
524
- readonly pluginId: string;
525
- readonly url: string;
526
- }, "emptyPattern", undefined>, import("@flint.fyi/core").Rule<{
307
+ }, "emptyPattern", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
527
308
  readonly description: "Reports empty enum declarations with no members.";
528
309
  readonly id: "emptyEnums";
529
310
  readonly presets: readonly ["logical"];
530
- } & {
531
- readonly pluginId: string;
532
- readonly url: string;
533
- }, "emptyEnum", undefined>, import("@flint.fyi/core").Rule<{
311
+ }, "emptyEnum", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
534
312
  readonly description: "Reports empty export statements that don't make a file a module.";
535
313
  readonly id: "emptyExports";
536
314
  readonly presets: readonly ["logical", "logicalStrict"];
537
- } & {
538
- readonly pluginId: string;
539
- readonly url: string;
540
- }, "uselessExport", undefined>, import("@flint.fyi/core").Rule<{
315
+ }, "uselessExport", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
541
316
  readonly description: "Reports files that contain no meaningful code.";
542
317
  readonly id: "emptyFiles";
543
318
  readonly presets: readonly ["stylistic", "stylisticStrict"];
544
- } & {
545
- readonly pluginId: string;
546
- readonly url: string;
547
- }, "emptyFile", undefined>, import("@flint.fyi/core").Rule<{
319
+ }, "emptyFile", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
548
320
  readonly description: "Reports empty functions that should contain code or a comment.";
549
321
  readonly id: "emptyFunctions";
550
322
  readonly presets: readonly ["stylistic", "stylisticStrict"];
551
- } & {
552
- readonly pluginId: string;
553
- readonly url: string;
554
- }, "emptyFunction", undefined>, import("@flint.fyi/core").Rule<{
323
+ }, "emptyFunction", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
555
324
  readonly description: "Reports empty import/export attributes that serve no purpose.";
556
325
  readonly id: "emptyModuleAttributes";
557
326
  readonly presets: readonly ["stylistic", "stylisticStrict"];
558
- } & {
559
- readonly pluginId: string;
560
- readonly url: string;
561
- }, "emptyAttributes", undefined>, import("@flint.fyi/core").Rule<{
327
+ }, "emptyAttributes", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
562
328
  readonly description: "Reports empty object type literals and empty interfaces that are often used incorrectly.";
563
329
  readonly id: "emptyObjectTypes";
564
330
  readonly presets: readonly ["logical", "logicalStrict"];
565
- } & {
566
- readonly pluginId: string;
567
- readonly url: string;
568
- }, "emptyInterface" | "emptyObjectType", undefined>, import("@flint.fyi/core").Rule<{
331
+ }, "emptyInterface" | "emptyObjectType", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
569
332
  readonly description: "Reports empty static initialization blocks within class declarations.";
570
333
  readonly id: "emptyStaticBlocks";
571
334
  readonly presets: readonly ["stylistic", "stylisticStrict"];
572
- } & {
573
- readonly pluginId: string;
574
- readonly url: string;
575
- }, "emptyStaticBlock", undefined>, import("@flint.fyi/core").Rule<{
335
+ }, "emptyStaticBlock", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
576
336
  readonly description: "Reports empty type parameter lists in type aliases and interfaces.";
577
337
  readonly id: "emptyTypeParameterLists";
578
338
  readonly presets: readonly ["stylistic", "stylisticStrict"];
579
- } & {
580
- readonly pluginId: string;
581
- readonly url: string;
582
- }, "emptyTypeParameters", undefined>, import("@flint.fyi/core").Rule<{
339
+ }, "emptyTypeParameters", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
583
340
  readonly description: "Reports enum members without explicit initial values.";
584
341
  readonly id: "enumInitializers";
585
342
  readonly presets: readonly ["logical", "logicalStrict"];
586
- } & {
587
- readonly pluginId: string;
588
- readonly url: string;
589
- }, "defineInitializer", undefined>, import("@flint.fyi/core").Rule<{
343
+ }, "defineInitializer", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
590
344
  readonly description: "Requires all enum members to be literal values.";
591
345
  readonly id: "enumMemberLiterals";
592
346
  readonly presets: readonly ["logicalStrict"];
593
- } & {
594
- readonly pluginId: string;
595
- readonly url: string;
596
- }, "requireLiteral", undefined>, import("@flint.fyi/core").Rule<{
347
+ }, "requireLiteral", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
597
348
  readonly description: "Reports enums that contain both string and number members.";
598
349
  readonly id: "enumValueConsistency";
599
350
  readonly presets: readonly ["logical", "logicalStrict"];
600
- } & {
601
- readonly pluginId: string;
602
- readonly url: string;
603
- }, "mixedTypes", undefined>, import("@flint.fyi/core").Rule<{
351
+ }, "mixedTypes", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
604
352
  readonly description: "Reports enum members with duplicate values.";
605
353
  readonly id: "enumValueDuplicates";
606
354
  readonly presets: readonly ["logical", "logicalStrict"];
607
- } & {
608
- readonly pluginId: string;
609
- readonly url: string;
610
- }, "duplicateValue", undefined>, import("@flint.fyi/core").Rule<{
355
+ }, "duplicateValue", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
611
356
  readonly description: "Reports negated expressions on the left side of equality checks.";
612
357
  readonly id: "equalityOperatorNegations";
613
- } & {
614
- readonly pluginId: string;
615
- readonly url: string;
616
- }, "negatedEquality", undefined>, import("@flint.fyi/core").Rule<{
358
+ }, "negatedEquality", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
617
359
  readonly description: "Enforces consistent use of strict equality operators (=== and !==) over loose equality operators (== and !=) for non-nullish comparisons.";
618
360
  readonly id: "equalityOperators";
619
361
  readonly presets: readonly ["logical", "logicalStrict"];
620
- } & {
621
- readonly pluginId: string;
622
- readonly url: string;
623
- }, "preferStrictEquality", undefined>, import("@flint.fyi/core").Rule<{
362
+ }, "preferStrictEquality", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
624
363
  readonly description: "Requires a message value when creating a built-in error.";
625
364
  readonly id: "errorMessages";
626
365
  readonly presets: readonly ["logicalStrict"];
627
- } & {
628
- readonly pluginId: string;
629
- readonly url: string;
630
- }, "missingMessage", undefined>, import("@flint.fyi/core").Rule<{
366
+ }, "missingMessage", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
631
367
  readonly description: "Reports incorrect Error subclass definitions that don't follow best practices.";
632
368
  readonly id: "errorSubclassProperties";
633
369
  readonly presets: readonly ["logicalStrict"];
634
- } & {
635
- readonly pluginId: string;
636
- readonly url: string;
637
- }, "invalidClassName" | "missingName" | "redundantMessage" | "useConstructorName" | "wrongName", undefined>, import("@flint.fyi/core").Rule<{
370
+ }, "invalidClassName" | "missingName" | "redundantMessage" | "useConstructorName" | "wrongName", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
638
371
  readonly description: "Reports unnecessary Error.captureStackTrace() calls in Error subclass constructors.";
639
372
  readonly id: "errorUnnecessaryCaptureStackTraces";
640
373
  readonly presets: readonly ["logical", "logicalStrict"];
641
- } & {
642
- readonly pluginId: string;
643
- readonly url: string;
644
- }, "unnecessaryCaptureStackTrace", undefined>, import("@flint.fyi/core").Rule<{
374
+ }, "unnecessaryCaptureStackTrace", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
645
375
  readonly description: "Reports escape sequences with lowercase hexadecimal characters.";
646
376
  readonly id: "escapeSequenceCasing";
647
377
  readonly presets: readonly ["stylisticStrict"];
648
- } & {
649
- readonly pluginId: string;
650
- readonly url: string;
651
- }, "useUppercase", undefined>, import("@flint.fyi/core").Rule<{
378
+ }, "useUppercase", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
652
379
  readonly description: "Reports uses of the eval function.";
653
380
  readonly id: "evals";
654
381
  readonly presets: readonly ["logical", "logicalStrict"];
655
- } & {
656
- readonly pluginId: string;
657
- readonly url: string;
658
- }, "noEval", undefined>, import("@flint.fyi/core").Rule<{
382
+ }, "noEval", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
659
383
  readonly description: "Reports variables declared without type annotation or initializer.";
660
384
  readonly id: "evolvingVariableTypes";
661
385
  readonly presets: readonly ["stylisticStrict"];
662
- } & {
663
- readonly pluginId: string;
664
- readonly url: string;
665
- }, "implicitAny", undefined>, import("@flint.fyi/core").Rule<{
386
+ }, "implicitAny", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
666
387
  readonly description: "Reports reassigning exception parameters in catch clauses.";
667
388
  readonly id: "exceptionAssignments";
668
389
  readonly presets: readonly ["logical", "logicalStrict"];
669
- } & {
670
- readonly pluginId: string;
671
- readonly url: string;
672
- }, "noExAssign", undefined>, import("@flint.fyi/core").Rule<{
390
+ }, "noExAssign", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
673
391
  readonly description: "Reports explicit uses of the any type.";
674
392
  readonly id: "explicitAnys";
675
393
  readonly presets: readonly ["logical", "logicalStrict"];
676
- } & {
677
- readonly pluginId: string;
678
- readonly url: string;
679
- }, "noExplicitAny", undefined>, import("@flint.fyi/core").Rule<{
394
+ }, "noExplicitAny", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
680
395
  readonly description: "Prefers the ** operator over Math.pow().";
681
396
  readonly id: "exponentiationOperators";
682
397
  readonly presets: readonly ["stylistic", "stylisticStrict"];
683
- } & {
684
- readonly pluginId: string;
685
- readonly url: string;
686
- }, "preferOperator", undefined>, import("@flint.fyi/core").Rule<{
398
+ }, "preferOperator", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
687
399
  readonly description: "Reports imports that are re-exported and could use export...from syntax instead.";
688
400
  readonly id: "exportFromImports";
689
401
  readonly presets: readonly ["stylistic", "stylisticStrict"];
690
- } & {
691
- readonly pluginId: string;
692
- readonly url: string;
693
- }, "preferExportDefaultFrom" | "preferExportFrom" | "preferExportNamespaceFrom", undefined>, import("@flint.fyi/core").Rule<{
402
+ }, "preferExportDefaultFrom" | "preferExportFrom" | "preferExportNamespaceFrom", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
694
403
  readonly description: "Reports exporting mutable bindings (let or var).";
695
404
  readonly id: "exportMutables";
696
405
  readonly presets: readonly ["logical", "logicalStrict"];
697
- } & {
698
- readonly pluginId: string;
699
- readonly url: string;
700
- }, "noMutableExport", undefined>, import("@flint.fyi/core").Rule<{
406
+ }, "noMutableExport", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
701
407
  readonly description: "Reports duplicate export names in a module.";
702
408
  readonly id: "exportUniqueNames";
703
409
  readonly presets: readonly ["javascript"];
704
- } & {
705
- readonly pluginId: string;
706
- readonly url: string;
707
- }, "duplicateExport", undefined>, import("@flint.fyi/core").Rule<{
410
+ }, "duplicateExport", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
708
411
  readonly description: "Reports classes used as static namespaces.";
709
412
  readonly id: "extraneousClasses";
710
413
  readonly presets: readonly ["logicalStrict"];
711
- } & {
712
- readonly pluginId: string;
713
- readonly url: string;
714
414
  }, "empty" | "onlyConstructor" | "onlyStatic", {
715
415
  allowConstructorOnly: import("zod/v4").ZodDefault<import("zod/v4").ZodBoolean>;
716
416
  allowEmpty: import("zod/v4").ZodDefault<import("zod/v4").ZodBoolean>;
717
417
  allowStaticOnly: import("zod/v4").ZodDefault<import("zod/v4").ZodBoolean>;
718
418
  allowWithDecorator: import("zod/v4").ZodDefault<import("zod/v4").ZodBoolean>;
719
- }>, import("@flint.fyi/core").Rule<{
419
+ }>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
720
420
  readonly description: "Disallow providing a body with GET or HEAD fetch requests.";
721
421
  readonly id: "fetchMethodBodies";
722
422
  readonly presets: readonly ["logical", "logicalStrict"];
723
- } & {
724
- readonly pluginId: string;
725
- readonly url: string;
726
- }, "noBody", undefined>, import("@flint.fyi/core").Rule<{
423
+ }, "noBody", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
727
424
  readonly description: "Reports control flow statements in `finally` blocks that can override control flow in `try`/`catch` blocks.";
728
425
  readonly id: "finallyStatementSafety";
729
426
  readonly presets: readonly ["logical", "logicalStrict"];
730
- } & {
731
- readonly pluginId: string;
732
- readonly url: string;
733
- }, "unsafeFinally", undefined>, import("@flint.fyi/core").Rule<{
427
+ }, "unsafeFinally", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
734
428
  readonly description: "Reports for loops with counter variables that move in the wrong direction.";
735
429
  readonly id: "forDirections";
736
430
  readonly presets: readonly ["stylistic", "stylisticStrict"];
737
- } & {
738
- readonly pluginId: string;
739
- readonly url: string;
740
- }, "wrongDirection", undefined>, import("@flint.fyi/core").Rule<{
431
+ }, "wrongDirection", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
741
432
  readonly description: "Reports iterating over an array with a for-in loop.";
742
433
  readonly id: "forInArrays";
743
434
  readonly presets: readonly ["logical", "logicalStrict"];
744
- } & {
745
- readonly pluginId: string;
746
- readonly url: string;
747
- }, "forIn", undefined>, import("@flint.fyi/core").Rule<{
435
+ }, "forIn", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
748
436
  readonly description: "Reports for-in loops without an if statement to filter inherited properties.";
749
437
  readonly id: "forInGuards";
750
- } & {
751
- readonly pluginId: string;
752
- readonly url: string;
753
- }, "missingGuard", undefined>, import("@flint.fyi/core").Rule<{
438
+ }, "missingGuard", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
754
439
  readonly description: "Prefer the spread operator over `.apply()` calls.";
755
440
  readonly id: "functionApplySpreads";
756
441
  readonly presets: readonly ["stylistic", "stylisticStrict"];
757
- } & {
758
- readonly pluginId: string;
759
- readonly url: string;
760
- }, "preferSpread", undefined>, import("@flint.fyi/core").Rule<{
442
+ }, "preferSpread", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
761
443
  readonly description: "Reports reassigning variables declared with function declarations.";
762
444
  readonly id: "functionAssignments";
763
445
  readonly presets: readonly ["javascript"];
764
- } & {
765
- readonly pluginId: string;
766
- readonly url: string;
767
- }, "noFunctionAssignment", undefined>, import("@flint.fyi/core").Rule<{
446
+ }, "noFunctionAssignment", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
768
447
  readonly description: "Reports using `.apply()` or `.call()` or when the context (`this` value) provides no benefit.";
769
448
  readonly id: "functionCurryingRedundancy";
770
449
  readonly presets: readonly ["logical", "logicalStrict"];
771
- } & {
772
- readonly pluginId: string;
773
- readonly url: string;
774
- }, "unnecessaryCall", undefined>, import("@flint.fyi/core").Rule<{
450
+ }, "unnecessaryCall", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
775
451
  readonly description: "Reports functions that don't match the configured style (declaration vs expression).";
776
452
  readonly id: "functionDeclarationStyles";
777
- } & {
778
- readonly pluginId: string;
779
- readonly url: string;
780
453
  }, "preferDeclaration" | "preferExpression", {
781
454
  allowArrowFunctions: import("zod/v4").ZodDefault<import("zod/v4").ZodBoolean>;
782
455
  style: import("zod/v4").ZodDefault<import("zod/v4").ZodEnum<{
783
456
  expression: "expression";
784
457
  declaration: "declaration";
785
458
  }>>;
786
- }>, import("@flint.fyi/core").Rule<{
459
+ }>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
787
460
  readonly description: "Reports function names that don't match the variable or property they're assigned to.";
788
461
  readonly id: "functionNameMatches";
789
462
  readonly presets: readonly ["stylistic", "stylisticStrict"];
790
- } & {
791
- readonly pluginId: string;
792
- readonly url: string;
793
- }, "mismatch", undefined>, import("@flint.fyi/core").Rule<{
463
+ }, "mismatch", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
794
464
  readonly description: "Reports using the Function constructor to create functions from strings.";
795
465
  readonly id: "functionNewCalls";
796
466
  readonly presets: readonly ["logical"];
797
- } & {
798
- readonly pluginId: string;
799
- readonly url: string;
800
- }, "noFunctionConstructor", undefined>, import("@flint.fyi/core").Rule<{
467
+ }, "noFunctionConstructor", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
801
468
  readonly description: "Reports generator functions that do not yield values.";
802
469
  readonly id: "generatorFunctionYields";
803
470
  readonly presets: readonly ["logical"];
804
- } & {
805
- readonly pluginId: string;
806
- readonly url: string;
807
- }, "missingYield", undefined>, import("@flint.fyi/core").Rule<{
471
+ }, "missingYield", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
808
472
  readonly description: "Reports getter functions that do not return values.";
809
473
  readonly id: "getterReturns";
810
474
  readonly presets: readonly ["javascript"];
811
- } & {
812
- readonly pluginId: string;
813
- readonly url: string;
814
- }, "missingReturn", undefined>, import("@flint.fyi/core").Rule<{
475
+ }, "missingReturn", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
815
476
  readonly description: "Reports attempting to assign to read-only global variables such as undefined, NaN, Infinity, Object, etc.";
816
477
  readonly id: "globalAssignments";
817
478
  readonly presets: readonly ["javascript"];
818
- } & {
819
- readonly pluginId: string;
820
- readonly url: string;
821
- }, "noGlobalAssign", undefined>, import("@flint.fyi/core").Rule<{
479
+ }, "noGlobalAssign", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
822
480
  readonly description: "Reports calling global objects like Math, JSON, or Reflect as functions.";
823
481
  readonly id: "globalObjectCalls";
824
482
  readonly presets: readonly ["javascript"];
825
- } & {
826
- readonly pluginId: string;
827
- readonly url: string;
828
- }, "noGlobalObjectCall", undefined>, import("@flint.fyi/core").Rule<{
483
+ }, "noGlobalObjectCall", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
829
484
  readonly description: "Reports using window, self, or global instead of globalThis.";
830
485
  readonly id: "globalThisAliases";
831
486
  readonly presets: readonly ["stylisticStrict"];
832
- } & {
833
- readonly pluginId: string;
834
- readonly url: string;
835
- }, "preferGlobalThis", undefined>, import("@flint.fyi/core").Rule<{
487
+ }, "preferGlobalThis", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
836
488
  readonly description: "Reports using string arguments in setTimeout, setInterval, setImmediate, execScript, or the Function constructor.";
837
489
  readonly id: "impliedEvals";
838
490
  readonly presets: readonly ["logical", "logicalStrict"];
839
- } & {
840
- readonly pluginId: string;
841
- readonly url: string;
842
- }, "functionConstructor" | "impliedEval", undefined>, import("@flint.fyi/core").Rule<{
491
+ }, "functionConstructor" | "impliedEval", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
843
492
  readonly description: "Reports empty named import blocks.";
844
493
  readonly id: "importEmptyBlocks";
845
494
  readonly presets: readonly ["logical", "logicalStrict"];
846
- } & {
847
- readonly pluginId: string;
848
- readonly url: string;
849
- }, "noEmptyNamedBlocksOnly" | "noEmptyNamedBlocksWithOther", undefined>, import("@flint.fyi/core").Rule<{
495
+ }, "noEmptyNamedBlocksOnly" | "noEmptyNamedBlocksWithOther", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
850
496
  readonly description: "Reports imports that use inline type qualifiers on all specifiers when a top-level type qualifier should be used instead.";
851
497
  readonly id: "importTypeSideEffects";
852
498
  readonly presets: readonly ["logical"];
853
- } & {
854
- readonly pluginId: string;
855
- readonly url: string;
856
- }, "useTopLevelQualifier", undefined>, import("@flint.fyi/core").Rule<{
499
+ }, "useTopLevelQualifier", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
857
500
  readonly description: "Reports indexed object types that don't match the configured style.";
858
501
  readonly id: "indexedObjectTypes";
859
502
  readonly presets: readonly ["stylistic", "stylisticStrict"];
860
- } & {
861
- readonly pluginId: string;
862
- readonly url: string;
863
503
  }, "preferIndexSignature" | "preferRecord", {
864
504
  style: import("zod/v4").ZodDefault<import("zod/v4").ZodEnum<{
865
505
  record: "record";
866
506
  "index-signature": "index-signature";
867
507
  }>>;
868
- }>, import("@flint.fyi/core").Rule<{
508
+ }>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
869
509
  readonly description: "Reports using `instanceof Array` instead of `Array.isArray()`.";
870
510
  readonly id: "instanceOfArrays";
871
511
  readonly presets: readonly ["logical", "logicalStrict"];
872
- } & {
873
- readonly pluginId: string;
874
- readonly url: string;
875
- }, "useArrayIsArray", undefined>, import("@flint.fyi/core").Rule<{
512
+ }, "useArrayIsArray", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
876
513
  readonly description: "Reports irregular whitespace characters that can cause issues with code parsing and display.";
877
514
  readonly id: "irregularWhitespaces";
878
515
  readonly presets: readonly ["logical"];
879
- } & {
880
- readonly pluginId: string;
881
- readonly url: string;
882
516
  }, "irregularWhitespace", {
883
517
  skipComments: import("zod/v4").ZodDefault<import("zod/v4").ZodBoolean>;
884
518
  skipJSXText: import("zod/v4").ZodDefault<import("zod/v4").ZodBoolean>;
885
519
  skipRegularExpressions: import("zod/v4").ZodDefault<import("zod/v4").ZodBoolean>;
886
520
  skipTemplates: import("zod/v4").ZodDefault<import("zod/v4").ZodBoolean>;
887
- }>, import("@flint.fyi/core").Rule<{
521
+ }>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
888
522
  readonly description: "Reports comparisons with NaN, which should use Number.isNaN() instead.";
889
523
  readonly id: "isNaNComparisons";
890
524
  readonly presets: readonly ["logical", "logicalStrict"];
891
- } & {
892
- readonly pluginId: string;
893
- readonly url: string;
894
- }, "useIsNaN", undefined>, import("@flint.fyi/core").Rule<{
525
+ }, "useIsNaN", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
895
526
  readonly description: "Prefers literal syntax over constructor function calls for primitive values.";
896
527
  readonly id: "literalConstructorWrappers";
897
528
  readonly presets: readonly ["stylistic", "stylisticStrict"];
898
- } & {
899
- readonly pluginId: string;
900
- readonly url: string;
901
- }, "preferLiteral", undefined>, import("@flint.fyi/core").Rule<{
529
+ }, "preferLiteral", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
902
530
  readonly description: "Prefer modern Math methods over legacy patterns.";
903
531
  readonly id: "mathMethods";
904
532
  readonly presets: readonly ["stylisticStrict"];
905
- } & {
906
- readonly pluginId: string;
907
- readonly url: string;
908
- }, "preferModernMath", undefined>, import("@flint.fyi/core").Rule<{
533
+ }, "preferModernMath", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
909
534
  readonly description: "Reports using the void operator on expressions that are already void or undefined.";
910
535
  readonly id: "meaninglessVoidOperators";
911
536
  readonly presets: readonly ["logical", "logicalStrict"];
912
- } & {
913
- readonly pluginId: string;
914
- readonly url: string;
915
- }, "meaninglessVoid", undefined>, import("@flint.fyi/core").Rule<{
537
+ }, "meaninglessVoid", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
916
538
  readonly description: "Require expressions of type void to appear in statement position.";
917
539
  readonly id: "misleadingVoidExpressions";
918
540
  readonly presets: readonly ["logical", "logicalStrict"];
919
- } & {
920
- readonly pluginId: string;
921
- readonly url: string;
922
- }, "voidExpressionArrow" | "voidExpressionReturn" | "voidExpressionValue", undefined>, import("@flint.fyi/core").Rule<{
541
+ }, "voidExpressionArrow" | "voidExpressionReturn" | "voidExpressionValue", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
923
542
  readonly description: "Require non-empty specifier lists in import and export statements.";
924
543
  readonly id: "moduleSpecifierLists";
925
544
  readonly presets: readonly ["logical", "logicalStrict"];
926
- } & {
927
- readonly pluginId: string;
928
- readonly url: string;
929
- }, "emptyExportSpecifiers" | "emptyImportSpecifiers", undefined>, import("@flint.fyi/core").Rule<{
545
+ }, "emptyExportSpecifiers" | "emptyImportSpecifiers", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
930
546
  readonly description: "Reports ambiguous multiline expressions that could be misinterpreted.";
931
547
  readonly id: "multilineAmbiguities";
932
548
  readonly presets: readonly ["stylistic", "stylisticStrict"];
933
- } & {
934
- readonly pluginId: string;
935
- readonly url: string;
936
- }, "ambiguity", undefined>, import("@flint.fyi/core").Rule<{
549
+ }, "ambiguity", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
937
550
  readonly description: "Reports anonymous functions and classes as the default export.";
938
551
  readonly id: "namedDefaultExports";
939
552
  readonly presets: readonly ["stylisticStrict"];
940
- } & {
941
- readonly pluginId: string;
942
- readonly url: string;
943
- }, "anonymousClass" | "anonymousFunction", undefined>, import("@flint.fyi/core").Rule<{
553
+ }, "anonymousClass" | "anonymousFunction", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
944
554
  readonly description: "Reports using legacy `namespace` declarations.";
945
555
  readonly id: "namespaceDeclarations";
946
556
  readonly presets: readonly ["logical", "logicalStrict"];
947
- } & {
948
- readonly pluginId: string;
949
- readonly url: string;
950
557
  }, "preferModules", {
951
558
  allowDeclarations: import("zod/v4").ZodDefault<import("zod/v4").ZodBoolean>;
952
559
  allowDefinitionFiles: import("zod/v4").ZodDefault<import("zod/v4").ZodBoolean>;
953
- }>, import("@flint.fyi/core").Rule<{
560
+ }>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
954
561
  readonly description: "Reports declared namespaces that implicitly export all members.";
955
562
  readonly id: "namespaceImplicitAmbientImports";
956
563
  readonly presets: readonly ["stylisticStrict"];
957
- } & {
958
- readonly pluginId: string;
959
- readonly url: string;
960
- }, "implicitExports", undefined>, import("@flint.fyi/core").Rule<{
564
+ }, "implicitExports", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
961
565
  readonly description: "Reports extending the prototype of native JavaScript objects.";
962
566
  readonly id: "nativeObjectExtensions";
963
567
  readonly presets: readonly ["javascript"];
964
- } & {
965
- readonly pluginId: string;
966
- readonly url: string;
967
- }, "noExtendNative", undefined>, import("@flint.fyi/core").Rule<{
568
+ }, "noExtendNative", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
968
569
  readonly description: "Prefer negative index over `.length - index` for `at`, `slice`, `splice`, and similar methods.";
969
570
  readonly id: "negativeIndexLengthMethods";
970
571
  readonly presets: readonly ["stylisticStrict"];
971
- } & {
972
- readonly pluginId: string;
973
- readonly url: string;
974
- }, "preferNegativeIndex", undefined>, import("@flint.fyi/core").Rule<{
572
+ }, "preferNegativeIndex", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
975
573
  readonly description: "Reports comparisons with -0 that may not behave as expected.";
976
574
  readonly id: "negativeZeroComparisons";
977
575
  readonly presets: readonly ["logical", "logicalStrict"];
978
- } & {
979
- readonly pluginId: string;
980
- readonly url: string;
981
- }, "unexpectedNegativeZeroComparison", undefined>, import("@flint.fyi/core").Rule<{
576
+ }, "unexpectedNegativeZeroComparison", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
982
577
  readonly description: "Reports `if` statements that are the only statement inside an `else` block or inside another `if` without an `else`.";
983
578
  readonly id: "nestedStandaloneIfs";
984
579
  readonly presets: readonly ["stylistic", "stylisticStrict"];
985
- } & {
986
- readonly pluginId: string;
987
- readonly url: string;
988
- }, "lonelyIfInElse" | "lonelyIfInIf", undefined>, import("@flint.fyi/core").Rule<{
580
+ }, "lonelyIfInElse" | "lonelyIfInIf", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
989
581
  readonly description: "Reports misleading constructor and `new` definitions in interfaces and classes.";
990
582
  readonly id: "newDefinitions";
991
583
  readonly presets: readonly ["logical", "logicalStrict"];
992
- } & {
993
- readonly pluginId: string;
994
- readonly url: string;
995
- }, "classMethodNamedNew" | "interfaceConstructSignature" | "interfaceMethodNamedConstructor", undefined>, import("@flint.fyi/core").Rule<{
584
+ }, "classMethodNamedNew" | "interfaceConstructSignature" | "interfaceMethodNamedConstructor", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
996
585
  readonly description: "Reports standalone new expressions that don't use the constructed object.";
997
586
  readonly id: "newExpressions";
998
587
  readonly presets: readonly ["logical", "logicalStrict"];
999
- } & {
1000
- readonly pluginId: string;
1001
- readonly url: string;
1002
- }, "noStandaloneNew", undefined>, import("@flint.fyi/core").Rule<{
588
+ }, "noStandaloneNew", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1003
589
  readonly description: "Disallows using `new` with global non-constructor functions like Symbol and BigInt.";
1004
590
  readonly id: "newNativeNonConstructors";
1005
591
  readonly presets: readonly ["javascript"];
1006
- } & {
1007
- readonly pluginId: string;
1008
- readonly url: string;
1009
- }, "noNewNonConstructor", undefined>, import("@flint.fyi/core").Rule<{
592
+ }, "noNewNonConstructor", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1010
593
  readonly description: "Reports type assertions that can be replaced with non-null assertions.";
1011
594
  readonly id: "nonNullableTypeAssertions";
1012
595
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1013
- } & {
1014
- readonly pluginId: string;
1015
- readonly url: string;
1016
- }, "preferNonNullAssertion", undefined>, import("@flint.fyi/core").Rule<{
596
+ }, "preferNonNullAssertion", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1017
597
  readonly description: "Reports non-null assertions on the left side of nullish coalescing operators.";
1018
598
  readonly id: "nonNullAssertedNullishCoalesces";
1019
599
  readonly presets: readonly ["logicalStrict"];
1020
- } & {
1021
- readonly pluginId: string;
1022
- readonly url: string;
1023
- }, "unnecessaryNonNullAssertion", undefined>, import("@flint.fyi/core").Rule<{
600
+ }, "unnecessaryNonNullAssertion", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1024
601
  readonly description: "Reports non-null assertions on optional chain expressions.";
1025
602
  readonly id: "nonNullAssertedOptionalChains";
1026
603
  readonly presets: readonly ["logical", "logicalStrict"];
1027
- } & {
1028
- readonly pluginId: string;
1029
- readonly url: string;
1030
- }, "nonNullOptionalChain", undefined>, import("@flint.fyi/core").Rule<{
604
+ }, "nonNullOptionalChain", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1031
605
  readonly description: "Reports confusing placement of non-null assertions next to comparison or assignment operators.";
1032
606
  readonly id: "nonNullAssertionPlacement";
1033
607
  readonly presets: readonly ["stylisticStrict"];
1034
- } & {
1035
- readonly pluginId: string;
1036
- readonly url: string;
1037
- }, "confusingAssign" | "confusingEqual" | "confusingOperator", undefined>, import("@flint.fyi/core").Rule<{
608
+ }, "confusingAssign" | "confusingEqual" | "confusingOperator", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1038
609
  readonly description: "Reports non-octal decimal escape sequences (\\8 and \\9) in string literals.";
1039
610
  readonly id: "nonOctalDecimalEscapes";
1040
611
  readonly presets: readonly ["logical", "logicalStrict"];
1041
- } & {
1042
- readonly pluginId: string;
1043
- readonly url: string;
1044
- }, "unexpectedEscape", undefined>, import("@flint.fyi/core").Rule<{
612
+ }, "unexpectedEscape", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1045
613
  readonly description: "Enforces consistent equality operator usage when comparing with null or undefined.";
1046
614
  readonly id: "nullishCheckStyle";
1047
- } & {
1048
- readonly pluginId: string;
1049
- readonly url: string;
1050
615
  }, "preferLooseNull" | "preferLooseNullish" | "preferLooseUndefined" | "preferStrictNullish", {
1051
616
  looseNullishComparisonStyle: import("zod/v4").ZodDefault<import("zod/v4").ZodEnum<{
1052
617
  "prefer-null": "prefer-null";
@@ -1058,13 +623,10 @@ declare const ts: import("@flint.fyi/core").Plugin<import("@flint.fyi/core").Rul
1058
623
  "double-equals": "double-equals";
1059
624
  "triple-equals": "triple-equals";
1060
625
  }>>;
1061
- }>, import("@flint.fyi/core").Rule<{
626
+ }>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1062
627
  readonly description: "Prefer nullish coalescing operator (??) over logical OR (||) for nullish values.";
1063
628
  readonly id: "nullishCoalescingOperators";
1064
629
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1065
- } & {
1066
- readonly pluginId: string;
1067
- readonly url: string;
1068
630
  }, "preferNullish" | "preferNullishAssignment" | "preferNullishTernary", {
1069
631
  ignoreConditionalTests: import("zod/v4").ZodDefault<import("zod/v4").ZodBoolean>;
1070
632
  ignoreIfStatements: import("zod/v4").ZodDefault<import("zod/v4").ZodBoolean>;
@@ -1076,741 +638,426 @@ declare const ts: import("@flint.fyi/core").Plugin<import("@flint.fyi/core").Rul
1076
638
  boolean: "boolean";
1077
639
  }>, import("zod/v4").ZodBoolean>]>>;
1078
640
  ignoreTernaryTests: import("zod/v4").ZodDefault<import("zod/v4").ZodBoolean>;
1079
- }>, import("@flint.fyi/core").Rule<{
641
+ }>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1080
642
  readonly description: "Reports when number method arguments are outside their valid range.";
1081
643
  readonly id: "numberMethodRanges";
1082
644
  readonly presets: readonly ["logical", "logicalStrict"];
1083
- } & {
1084
- readonly pluginId: string;
1085
- readonly url: string;
1086
- }, "outOfRange", undefined>, import("@flint.fyi/core").Rule<{
645
+ }, "outOfRange", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1087
646
  readonly description: "Reports using legacy global functions instead of `Number` static methods.";
1088
647
  readonly id: "numberStaticMethods";
1089
648
  readonly presets: readonly ["logicalStrict"];
1090
- } & {
1091
- readonly pluginId: string;
1092
- readonly url: string;
1093
- }, "preferNumberMethod", undefined>, import("@flint.fyi/core").Rule<{
649
+ }, "preferNumberMethod", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1094
650
  readonly description: "Reports operations that always result in zero, such as multiplication by zero.";
1095
651
  readonly id: "numericErasingOperations";
1096
652
  readonly presets: readonly ["logicalStrict"];
1097
- } & {
1098
- readonly pluginId: string;
1099
- readonly url: string;
1100
- }, "erasingOperation", undefined>, import("@flint.fyi/core").Rule<{
653
+ }, "erasingOperation", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1101
654
  readonly description: "Reports parseInt calls with binary, hexadecimal, or octal strings that can be replaced with numeric literals.";
1102
655
  readonly id: "numericLiteralParsing";
1103
656
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1104
- } & {
1105
- readonly pluginId: string;
1106
- readonly url: string;
1107
- }, "preferLiteral", undefined>, import("@flint.fyi/core").Rule<{
657
+ }, "preferLiteral", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1108
658
  readonly description: "Reports numeric literals that lose precision when converted to JavaScript numbers.";
1109
659
  readonly id: "numericPrecision";
1110
660
  readonly presets: readonly ["logicalStrict"];
1111
- } & {
1112
- readonly pluginId: string;
1113
- readonly url: string;
1114
- }, "lossOfPrecision", undefined>, import("@flint.fyi/core").Rule<{
661
+ }, "lossOfPrecision", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1115
662
  readonly description: "Reports numeric literals with inconsistent separator grouping.";
1116
663
  readonly id: "numericSeparatorGroups";
1117
664
  readonly presets: readonly ["stylisticStrict"];
1118
- } & {
1119
- readonly pluginId: string;
1120
- readonly url: string;
1121
- }, "invalidGrouping", undefined>, import("@flint.fyi/core").Rule<{
665
+ }, "invalidGrouping", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1122
666
  readonly description: "Prefer object spread syntax over `Object.assign()` when the first argument is an object literal.";
1123
667
  readonly id: "objectAssignSpreads";
1124
668
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1125
- } & {
1126
- readonly pluginId: string;
1127
- readonly url: string;
1128
- }, "preferObjectLiteral" | "preferObjectSpread", undefined>, import("@flint.fyi/core").Rule<{
669
+ }, "preferObjectLiteral" | "preferObjectSpread", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1129
670
  readonly description: "Prefer `{}` object literal notation or `Object.create` instead of calling or constructing `Object`.";
1130
671
  readonly id: "objectCalls";
1131
672
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1132
- } & {
1133
- readonly pluginId: string;
1134
- readonly url: string;
1135
- }, "preferObjectLiteral", undefined>, import("@flint.fyi/core").Rule<{
673
+ }, "preferObjectLiteral", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1136
674
  readonly description: "Prefer Object.fromEntries() over reduce patterns that build objects from key-value pairs.";
1137
675
  readonly id: "objectEntriesMethods";
1138
676
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1139
- } & {
1140
- readonly pluginId: string;
1141
- readonly url: string;
1142
- }, "preferFromEntries", undefined>, import("@flint.fyi/core").Rule<{
677
+ }, "preferFromEntries", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1143
678
  readonly description: "Prefer Object.hasOwn() over Object.prototype.hasOwnProperty.call() for checking own properties.";
1144
679
  readonly id: "objectHasOwns";
1145
680
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1146
- } & {
1147
- readonly pluginId: string;
1148
- readonly url: string;
1149
- }, "preferHasOwn", undefined>, import("@flint.fyi/core").Rule<{
681
+ }, "preferHasOwn", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1150
682
  readonly description: "Reports unnecessary duplicate keys that override previous values.";
1151
683
  readonly id: "objectKeyDuplicates";
1152
684
  readonly presets: readonly ["javascript"];
1153
- } & {
1154
- readonly pluginId: string;
1155
- readonly url: string;
1156
- }, "duplicateKey", undefined>, import("@flint.fyi/core").Rule<{
685
+ }, "duplicateKey", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1157
686
  readonly description: "Reports using the deprecated __proto__ property to access or modify an object's prototype.";
1158
687
  readonly id: "objectProto";
1159
688
  readonly presets: readonly ["javascript"];
1160
- } & {
1161
- readonly pluginId: string;
1162
- readonly url: string;
1163
- }, "noProto", undefined>, import("@flint.fyi/core").Rule<{
689
+ }, "noProto", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1164
690
  readonly description: "Reports direct calls to Object.prototype methods on object instances.";
1165
691
  readonly id: "objectPrototypeBuiltIns";
1166
692
  readonly presets: readonly ["logical", "logicalStrict"];
1167
- } & {
1168
- readonly pluginId: string;
1169
- readonly url: string;
1170
- }, "prototypeBuiltIn", undefined>, import("@flint.fyi/core").Rule<{
693
+ }, "prototypeBuiltIn", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1171
694
  readonly description: "Object property and method definitions can use shorthand syntax when the key matches the value identifier or when a function expression is assigned.";
1172
695
  readonly id: "objectShorthand";
1173
696
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1174
- } & {
1175
- readonly pluginId: string;
1176
- readonly url: string;
1177
- }, "expectedMethodShorthand" | "expectedPropertyShorthand", undefined>, import("@flint.fyi/core").Rule<{
697
+ }, "expectedMethodShorthand" | "expectedPropertyShorthand", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1178
698
  readonly description: "Reports empty object fallbacks in object spread expressions that have no effect.";
1179
699
  readonly id: "objectSpreadUnnecessaryFallbacks";
1180
700
  readonly presets: readonly ["logical", "logicalStrict"];
1181
- } & {
1182
- readonly pluginId: string;
1183
- readonly url: string;
1184
- }, "unnecessaryFallback", undefined>, import("@flint.fyi/core").Rule<{
701
+ }, "unnecessaryFallback", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1185
702
  readonly description: "Prefer interface declarations over type aliases for object types.";
1186
703
  readonly id: "objectTypeDefinitions";
1187
704
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1188
- } & {
1189
- readonly pluginId: string;
1190
- readonly url: string;
1191
- }, "preferInterface", undefined>, import("@flint.fyi/core").Rule<{
705
+ }, "preferInterface", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1192
706
  readonly description: "Reports using octal escape sequences in string literals.";
1193
707
  readonly id: "octalEscapes";
1194
708
  readonly presets: readonly ["javascript"];
1195
- } & {
1196
- readonly pluginId: string;
1197
- readonly url: string;
1198
- }, "noOctalEscape", undefined>, import("@flint.fyi/core").Rule<{
709
+ }, "noOctalEscape", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1199
710
  readonly description: "Prefer assignment operator shorthand where possible.";
1200
711
  readonly id: "operatorAssignmentShorthand";
1201
712
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1202
- } & {
1203
- readonly pluginId: string;
1204
- readonly url: string;
1205
- }, "preferShorthand", undefined>, import("@flint.fyi/core").Rule<{
713
+ }, "preferShorthand", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1206
714
  readonly description: "Require that function overload signatures be consecutive.";
1207
715
  readonly id: "overloadSignaturesAdjacent";
1208
716
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1209
- } & {
1210
- readonly pluginId: string;
1211
- readonly url: string;
1212
- }, "overloadSignatureSeparated", undefined>, import("@flint.fyi/core").Rule<{
717
+ }, "overloadSignatureSeparated", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1213
718
  readonly description: "Disallow reassignment of function parameters.";
1214
719
  readonly id: "parameterReassignments";
1215
720
  readonly presets: readonly ["logical"];
1216
- } & {
1217
- readonly pluginId: string;
1218
- readonly url: string;
1219
- }, "parameterReassignment", undefined>, import("@flint.fyi/core").Rule<{
721
+ }, "parameterReassignment", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1220
722
  readonly description: "Reports parseInt calls that are missing or have an invalid radix parameter.";
1221
723
  readonly id: "parseIntRadixes";
1222
724
  readonly presets: readonly ["logical", "logicalStrict"];
1223
- } & {
1224
- readonly pluginId: string;
1225
- readonly url: string;
1226
- }, "invalidRadix" | "missingRadix", undefined>, import("@flint.fyi/core").Rule<{
725
+ }, "invalidRadix" | "missingRadix", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1227
726
  readonly description: "Reports bracket notation property access when dot notation can be used.";
1228
727
  readonly id: "propertyAccessNotation";
1229
728
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1230
- } & {
1231
- readonly pluginId: string;
1232
- readonly url: string;
1233
729
  }, "preferDotNotation", {
1234
730
  allowIndexSignaturePropertyAccess: import("zod/v4").ZodDefault<import("zod/v4").ZodBoolean>;
1235
- }>, import("@flint.fyi/core").Rule<{
731
+ }>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1236
732
  readonly description: "Reports function parameters that are only used in recursive calls.";
1237
733
  readonly id: "recursionOnlyArguments";
1238
734
  readonly presets: readonly ["logical", "logicalStrict"];
1239
- } & {
1240
- readonly pluginId: string;
1241
- readonly url: string;
1242
- }, "onlyUsedInRecursion", undefined>, import("@flint.fyi/core").Rule<{
735
+ }, "onlyUsedInRecursion", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1243
736
  readonly description: "Reports union and intersection type constituents that are redundant or override other types.";
1244
737
  readonly id: "redundantTypeConstituents";
1245
738
  readonly presets: readonly ["logical", "logicalStrict"];
1246
- } & {
1247
- readonly pluginId: string;
1248
- readonly url: string;
1249
- }, "errorTypeOverrides" | "literalOverridden" | "overridden" | "overrides" | "primitiveOverridden", undefined>, import("@flint.fyi/core").Rule<{
739
+ }, "errorTypeOverrides" | "literalOverridden" | "overridden" | "overrides" | "primitiveOverridden", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1250
740
  readonly description: "Reports `matchAll()` and `replaceAll()` calls with regex arguments missing the global flag.";
1251
741
  readonly id: "regexAllGlobalFlags";
1252
742
  readonly presets: readonly ["logical"];
1253
- } & {
1254
- readonly pluginId: string;
1255
- readonly url: string;
1256
- }, "missingGlobalFlag", undefined>, import("@flint.fyi/core").Rule<{
743
+ }, "missingGlobalFlag", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1257
744
  readonly description: "Reports regex patterns that use ambiguous or invalid syntax from Annex B.";
1258
745
  readonly id: "regexAmbiguousInvalidity";
1259
746
  readonly presets: readonly ["logical", "logicalStrict"];
1260
- } & {
1261
- readonly pluginId: string;
1262
- readonly url: string;
1263
- }, "incompleteBackreference" | "incompleteEscapeSequence" | "invalidControlEscape" | "invalidPropertyEscape" | "invalidRange" | "octalEscape" | "quantifiedAssertion" | "regexMessage" | "unescapedSourceCharacter" | "uselessEscape", undefined>, import("@flint.fyi/core").Rule<{
747
+ }, "incompleteBackreference" | "incompleteEscapeSequence" | "invalidControlEscape" | "invalidPropertyEscape" | "invalidRange" | "octalEscape" | "quantifiedAssertion" | "regexMessage" | "unescapedSourceCharacter" | "uselessEscape", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1264
748
  readonly description: "Reports regex alternations that can be simplified to character classes.";
1265
749
  readonly id: "regexCharacterClasses";
1266
750
  readonly presets: readonly ["stylisticStrict"];
1267
- } & {
1268
- readonly pluginId: string;
1269
- readonly url: string;
1270
- }, "preferCharacterClass", undefined>, import("@flint.fyi/core").Rule<{
751
+ }, "preferCharacterClass", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1271
752
  readonly description: "Reports character class elements that can be simplified to ranges.";
1272
753
  readonly id: "regexCharacterClassRanges";
1273
754
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1274
- } & {
1275
- readonly pluginId: string;
1276
- readonly url: string;
1277
- }, "preferRange", undefined>, import("@flint.fyi/core").Rule<{
755
+ }, "preferRange", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1278
756
  readonly description: "Reports lookarounds that can be replaced with character class set operations.";
1279
757
  readonly id: "regexCharacterClassSetOperations";
1280
758
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1281
- } & {
1282
- readonly pluginId: string;
1283
- readonly url: string;
1284
- }, "preferSetOperation", undefined>, import("@flint.fyi/core").Rule<{
759
+ }, "preferSetOperation", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1285
760
  readonly description: "Reports negated character classes that can use shorthand escapes.";
1286
761
  readonly id: "regexConciseCharacterClassNegations";
1287
762
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1288
- } & {
1289
- readonly pluginId: string;
1290
- readonly url: string;
1291
- }, "preferNegatedEscape", undefined>, import("@flint.fyi/core").Rule<{
763
+ }, "preferNegatedEscape", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1292
764
  readonly description: "Reports elements in regular expressions that contradict assertions.";
1293
765
  readonly id: "regexContradictoryAssertions";
1294
766
  readonly presets: readonly ["logical", "logicalStrict"];
1295
- } & {
1296
- readonly pluginId: string;
1297
- readonly url: string;
1298
- }, "alwaysEnter" | "cannotEnter", undefined>, import("@flint.fyi/core").Rule<{
767
+ }, "alwaysEnter" | "cannotEnter", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1299
768
  readonly description: "Reports control characters that are not escaped using standard escape sequences.";
1300
769
  readonly id: "regexControlCharacterEscapes";
1301
770
  readonly presets: readonly ["logical", "logicalStrict"];
1302
- } & {
1303
- readonly pluginId: string;
1304
- readonly url: string;
1305
- }, "preferStandardEscape", undefined>, import("@flint.fyi/core").Rule<{
771
+ }, "preferStandardEscape", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1306
772
  readonly description: "Reports control characters in regular expressions.";
1307
773
  readonly id: "regexControlCharacters";
1308
774
  readonly presets: readonly ["logical", "logicalStrict"];
1309
- } & {
1310
- readonly pluginId: string;
1311
- readonly url: string;
1312
- }, "unexpectedControlChar", undefined>, import("@flint.fyi/core").Rule<{
775
+ }, "unexpectedControlChar", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1313
776
  readonly description: "Reports character classes with multiple adjacent characters that could use a range instead.";
1314
777
  readonly id: "regexDigitMatchers";
1315
778
  readonly presets: readonly ["stylisticStrict"];
1316
- } & {
1317
- readonly pluginId: string;
1318
- readonly url: string;
1319
- }, "preferRange", undefined>, import("@flint.fyi/core").Rule<{
779
+ }, "preferRange", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1320
780
  readonly description: "Reports replacement strings with unescaped `$` that should use `$$`.";
1321
781
  readonly id: "regexDollarEscapes";
1322
782
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1323
- } & {
1324
- readonly pluginId: string;
1325
- readonly url: string;
1326
- }, "unescapedDollar", undefined>, import("@flint.fyi/core").Rule<{
783
+ }, "unescapedDollar", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1327
784
  readonly description: "Reports duplicate characters in regular expression character classes.";
1328
785
  readonly id: "regexDuplicateCharacterClassCharacters";
1329
786
  readonly presets: readonly ["logical", "logicalStrict"];
1330
- } & {
1331
- readonly pluginId: string;
1332
- readonly url: string;
1333
- }, "duplicate" | "includedInRange", undefined>, import("@flint.fyi/core").Rule<{
787
+ }, "duplicate" | "includedInRange", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1334
788
  readonly description: "Reports empty alternatives in regular expressions that may indicate a mistake.";
1335
789
  readonly id: "regexEmptyAlternatives";
1336
790
  readonly presets: readonly ["logical", "logicalStrict"];
1337
- } & {
1338
- readonly pluginId: string;
1339
- readonly url: string;
1340
- }, "emptyAlternative", undefined>, import("@flint.fyi/core").Rule<{
791
+ }, "emptyAlternative", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1341
792
  readonly description: "Reports capturing groups that only capture empty strings.";
1342
793
  readonly id: "regexEmptyCapturingGroups";
1343
794
  readonly presets: readonly ["logical", "logicalStrict"];
1344
- } & {
1345
- readonly pluginId: string;
1346
- readonly url: string;
1347
- }, "emptyCapture", undefined>, import("@flint.fyi/core").Rule<{
795
+ }, "emptyCapture", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1348
796
  readonly description: "Reports character classes that match no characters.";
1349
797
  readonly id: "regexEmptyCharacterClasses";
1350
798
  readonly presets: readonly ["logical", "logicalStrict"];
1351
- } & {
1352
- readonly pluginId: string;
1353
- readonly url: string;
1354
- }, "empty", undefined>, import("@flint.fyi/core").Rule<{
799
+ }, "empty", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1355
800
  readonly description: "Reports empty groups in regular expressions.";
1356
801
  readonly id: "regexEmptyGroups";
1357
802
  readonly presets: readonly ["logical", "logicalStrict"];
1358
- } & {
1359
- readonly pluginId: string;
1360
- readonly url: string;
1361
- }, "emptyGroup", undefined>, import("@flint.fyi/core").Rule<{
803
+ }, "emptyGroup", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1362
804
  readonly description: "Reports lazy quantifiers at the end of regular expressions.";
1363
805
  readonly id: "regexEmptyLazyQuantifiers";
1364
806
  readonly presets: readonly ["logical"];
1365
- } & {
1366
- readonly pluginId: string;
1367
- readonly url: string;
1368
- }, "uselessElement" | "uselessQuantifier" | "uselessRange", undefined>, import("@flint.fyi/core").Rule<{
807
+ }, "uselessElement" | "uselessQuantifier" | "uselessRange", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1369
808
  readonly description: "Reports empty lookahead and lookbehind assertions in regular expressions.";
1370
809
  readonly id: "regexEmptyLookaroundsAssertions";
1371
810
  readonly presets: readonly ["logical", "logicalStrict"];
1372
- } & {
1373
- readonly pluginId: string;
1374
- readonly url: string;
1375
- }, "emptyLookaround", undefined>, import("@flint.fyi/core").Rule<{
811
+ }, "emptyLookaround", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1376
812
  readonly description: "Reports empty string literals in character classes.";
1377
813
  readonly id: "regexEmptyStringLiterals";
1378
814
  readonly presets: readonly ["logical", "logicalStrict"];
1379
- } & {
1380
- readonly pluginId: string;
1381
- readonly url: string;
1382
- }, "emptyStringLiteral", undefined>, import("@flint.fyi/core").Rule<{
815
+ }, "emptyStringLiteral", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1383
816
  readonly description: "Reports escape backspace (`[\\b]`) in character classes.";
1384
817
  readonly id: "regexEscapeBackspaces";
1385
818
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1386
- } & {
1387
- readonly pluginId: string;
1388
- readonly url: string;
1389
- }, "escapeBackspace", undefined>, import("@flint.fyi/core").Rule<{
819
+ }, "escapeBackspace", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1390
820
  readonly description: "Reports String.prototype.match calls that can be replaced with RegExp.prototype.exec.";
1391
821
  readonly id: "regexExecutors";
1392
822
  readonly presets: readonly ["stylisticStrict"];
1393
- } & {
1394
- readonly pluginId: string;
1395
- readonly url: string;
1396
- }, "preferExec", undefined>, import("@flint.fyi/core").Rule<{
823
+ }, "preferExec", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1397
824
  readonly description: "Reports string literals inside character classes with the `v` flag that contain multiple graphemes.";
1398
825
  readonly id: "regexGraphemeStringLiterals";
1399
826
  readonly presets: readonly ["stylisticStrict"];
1400
- } & {
1401
- readonly pluginId: string;
1402
- readonly url: string;
1403
- }, "multipleGraphemes", undefined>, import("@flint.fyi/core").Rule<{
827
+ }, "multipleGraphemes", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1404
828
  readonly description: "Reports regex character escapes that can be expressed more consistently using hexadecimal escapes.";
1405
829
  readonly id: "regexHexadecimalEscapes";
1406
830
  readonly presets: readonly ["stylisticStrict"];
1407
- } & {
1408
- readonly pluginId: string;
1409
- readonly url: string;
1410
- }, "preferHexEscape", undefined>, import("@flint.fyi/core").Rule<{
831
+ }, "preferHexEscape", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1411
832
  readonly description: "Reports regex patterns that can be simplified by using the i (ignore case) flag.";
1412
833
  readonly id: "regexIgnoreCaseFlags";
1413
834
  readonly presets: readonly ["logical", "logicalStrict"];
1414
- } & {
1415
- readonly pluginId: string;
1416
- readonly url: string;
1417
- }, "useIgnoreCase", undefined>, import("@flint.fyi/core").Rule<{
835
+ }, "useIgnoreCase", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1418
836
  readonly description: "Reports invisible characters in regex patterns that should use escape sequences instead.";
1419
837
  readonly id: "regexInvisibleCharacters";
1420
838
  readonly presets: readonly ["logical", "logicalStrict"];
1421
- } & {
1422
- readonly pluginId: string;
1423
- readonly url: string;
1424
- }, "unexpectedInvisible", undefined>, import("@flint.fyi/core").Rule<{
839
+ }, "unexpectedInvisible", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1425
840
  readonly description: "Reports inconsistent letter casing in regex sequences.";
1426
841
  readonly id: "regexLetterCasing";
1427
842
  readonly presets: readonly ["stylisticStrict"];
1428
- } & {
1429
- readonly pluginId: string;
1430
- readonly url: string;
1431
- }, "unexpectedCase", undefined>, import("@flint.fyi/core").Rule<{
843
+ }, "unexpectedCase", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1432
844
  readonly description: "Use a regular expression literal when the pattern is static.";
1433
845
  readonly id: "regexLiterals";
1434
846
  readonly presets: readonly ["logical", "logicalStrict"];
1435
- } & {
1436
- readonly pluginId: string;
1437
- readonly url: string;
1438
- }, "preferLiteral", undefined>, import("@flint.fyi/core").Rule<{
847
+ }, "preferLiteral", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1439
848
  readonly description: "Reports capturing groups at pattern boundaries that can be replaced with lookaround assertions.";
1440
849
  readonly id: "regexLookaroundAssertions";
1441
850
  readonly presets: readonly ["stylisticStrict"];
1442
- } & {
1443
- readonly pluginId: string;
1444
- readonly url: string;
1445
- }, "preferLookaround", undefined>, import("@flint.fyi/core").Rule<{
851
+ }, "preferLookaround", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1446
852
  readonly description: "Reports non-constant quantifiers in lookaround assertions that could be simplified.";
1447
853
  readonly id: "regexLookaroundQuantifierOptimizations";
1448
854
  readonly presets: readonly ["logical"];
1449
- } & {
1450
- readonly pluginId: string;
1451
- readonly url: string;
1452
- }, "replace" | "remove", undefined>, import("@flint.fyi/core").Rule<{
855
+ }, "replace" | "remove", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1453
856
  readonly description: "Reports inconsistent notations for matching any character in regular expressions.";
1454
857
  readonly id: "regexMatchNotation";
1455
858
  readonly presets: readonly ["stylisticStrict"];
1456
- } & {
1457
- readonly pluginId: string;
1458
- readonly url: string;
1459
- }, "unexpected", undefined>, import("@flint.fyi/core").Rule<{
859
+ }, "unexpected", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1460
860
  readonly description: "Reports capturing groups that capture less text than their pattern suggests.";
1461
861
  readonly id: "regexMisleadingCapturingGroups";
1462
862
  readonly presets: readonly ["logical", "logicalStrict"];
1463
- } & {
1464
- readonly pluginId: string;
1465
- readonly url: string;
1466
- }, "misleadingEnd" | "misleadingStart", undefined>, import("@flint.fyi/core").Rule<{
863
+ }, "misleadingEnd" | "misleadingStart", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1467
864
  readonly description: "Reports quantifiers whose minimum implies they must match but whose element can match empty.";
1468
865
  readonly id: "regexMisleadingQuantifiers";
1469
866
  readonly presets: readonly ["logical"];
1470
- } & {
1471
- readonly pluginId: string;
1472
- readonly url: string;
1473
- }, "confusing", undefined>, import("@flint.fyi/core").Rule<{
867
+ }, "confusing", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1474
868
  readonly description: "Reports characters in regex character classes that appear as single visual characters but are made of multiple code points.";
1475
869
  readonly id: "regexMisleadingUnicodeCharacters";
1476
870
  readonly presets: readonly ["logical", "logicalStrict"];
1477
- } & {
1478
- readonly pluginId: string;
1479
- readonly url: string;
1480
- }, "combiningClass" | "emojiModifier" | "regionalIndicatorSymbol" | "surrogatePair" | "surrogatePairWithoutUFlag" | "zwj", undefined>, import("@flint.fyi/core").Rule<{
871
+ }, "combiningClass" | "emojiModifier" | "regionalIndicatorSymbol" | "surrogatePair" | "surrogatePairWithoutUFlag" | "zwj", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1481
872
  readonly description: "Reports backreferences that do not use the name of their referenced capturing group.";
1482
873
  readonly id: "regexNamedBackreferences";
1483
874
  readonly presets: readonly ["stylisticStrict"];
1484
- } & {
1485
- readonly pluginId: string;
1486
- readonly url: string;
1487
- }, "preferNamed", undefined>, import("@flint.fyi/core").Rule<{
875
+ }, "preferNamed", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1488
876
  readonly description: "Reports capturing groups in regular expressions that do not have a name.";
1489
877
  readonly id: "regexNamedCaptureGroups";
1490
- } & {
1491
- readonly pluginId: string;
1492
- readonly url: string;
1493
- }, "preferNamed", undefined>, import("@flint.fyi/core").Rule<{
878
+ }, "preferNamed", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1494
879
  readonly description: "Reports indexed references in replacement strings that should use named references.";
1495
880
  readonly id: "regexNamedReplacements";
1496
881
  readonly presets: readonly ["stylisticStrict"];
1497
- } & {
1498
- readonly pluginId: string;
1499
- readonly url: string;
1500
- }, "preferNamed", undefined>, import("@flint.fyi/core").Rule<{
882
+ }, "preferNamed", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1501
883
  readonly description: "Reports non-standard regular expression flags.";
1502
884
  readonly id: "regexNonStandardFlags";
1503
885
  readonly presets: readonly ["logical", "logicalStrict"];
1504
- } & {
1505
- readonly pluginId: string;
1506
- readonly url: string;
1507
- }, "unexpected", undefined>, import("@flint.fyi/core").Rule<{
886
+ }, "unexpected", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1508
887
  readonly description: "Reports obscure character ranges in regular expressions.";
1509
888
  readonly id: "regexObscureRanges";
1510
889
  readonly presets: readonly ["logical", "logicalStrict"];
1511
- } & {
1512
- readonly pluginId: string;
1513
- readonly url: string;
1514
- }, "obscure", undefined>, import("@flint.fyi/core").Rule<{
890
+ }, "obscure", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1515
891
  readonly description: "Reports octal escape sequences in regular expressions.";
1516
892
  readonly id: "regexOctalEscapes";
1517
893
  readonly presets: readonly ["logical", "logicalStrict"];
1518
- } & {
1519
- readonly pluginId: string;
1520
- readonly url: string;
1521
- }, "unexpected", undefined>, import("@flint.fyi/core").Rule<{
894
+ }, "unexpected", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1522
895
  readonly description: "Reports quantifiers `{1,}` in regular expressions that should use `+` instead.";
1523
896
  readonly id: "regexPlusQuantifiers";
1524
897
  readonly presets: readonly ["stylisticStrict"];
1525
- } & {
1526
- readonly pluginId: string;
1527
- readonly url: string;
1528
- }, "preferPlus", undefined>, import("@flint.fyi/core").Rule<{
898
+ }, "preferPlus", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1529
899
  readonly description: "Reports regex lookarounds that can be replaced with predefined assertions.";
1530
900
  readonly id: "regexPredefinedAssertions";
1531
901
  readonly presets: readonly ["stylistic"];
1532
- } & {
1533
- readonly pluginId: string;
1534
- readonly url: string;
1535
- }, "preferPredefinedAssertion", undefined>, import("@flint.fyi/core").Rule<{
902
+ }, "preferPredefinedAssertion", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1536
903
  readonly description: "Reports quantifiers `{0,1}` in regular expressions that should use `?` instead.";
1537
904
  readonly id: "regexQuestionQuantifiers";
1538
905
  readonly presets: readonly ["stylisticStrict"];
1539
- } & {
1540
- readonly pluginId: string;
1541
- readonly url: string;
1542
- }, "preferOptionalGroup" | "preferQuestion", undefined>, import("@flint.fyi/core").Rule<{
906
+ }, "preferOptionalGroup" | "preferQuestion", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1543
907
  readonly description: "Reports consecutive identical elements in regular expressions that should use quantifiers.";
1544
908
  readonly id: "regexRepeatQuantifiers";
1545
909
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1546
- } & {
1547
- readonly pluginId: string;
1548
- readonly url: string;
1549
- }, "preferQuantifier", undefined>, import("@flint.fyi/core").Rule<{
910
+ }, "preferQuantifier", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1550
911
  readonly description: "Reports indexed access on regex result arrays when named capturing groups should be used.";
1551
912
  readonly id: "regexResultArrayGroups";
1552
913
  readonly presets: readonly ["stylisticStrict"];
1553
- } & {
1554
- readonly pluginId: string;
1555
- readonly url: string;
1556
- }, "preferGroups", undefined>, import("@flint.fyi/core").Rule<{
914
+ }, "preferGroups", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1557
915
  readonly description: "Reports set operations in regular expressions that can be simplified.";
1558
916
  readonly id: "regexSetOperationOptimizations";
1559
917
  readonly presets: readonly ["logical", "logicalStrict"];
1560
- } & {
1561
- readonly pluginId: string;
1562
- readonly url: string;
1563
- }, "toIntersection" | "toNegationOfConjunction" | "toNegationOfDisjunction" | "toSubtraction", undefined>, import("@flint.fyi/core").Rule<{
918
+ }, "toIntersection" | "toNegationOfConjunction" | "toNegationOfDisjunction" | "toSubtraction", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1564
919
  readonly description: "Reports standalone backslashes in regex patterns that look like incomplete escape sequences.";
1565
920
  readonly id: "regexStandaloneBackslashes";
1566
921
  readonly presets: readonly ["logical", "logicalStrict"];
1567
- } & {
1568
- readonly pluginId: string;
1569
- readonly url: string;
1570
- }, "standaloneBackslash", undefined>, import("@flint.fyi/core").Rule<{
922
+ }, "standaloneBackslash", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1571
923
  readonly description: "Reports quantifiers `{0,}` in regular expressions that should use `*` instead.";
1572
924
  readonly id: "regexStarQuantifiers";
1573
925
  readonly presets: readonly ["stylisticStrict"];
1574
- } & {
1575
- readonly pluginId: string;
1576
- readonly url: string;
1577
- }, "preferStar", undefined>, import("@flint.fyi/core").Rule<{
926
+ }, "preferStar", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1578
927
  readonly description: "Reports regular expressions with exponential or polynomial backtracking.";
1579
928
  readonly id: "regexSuperLinearBacktracking";
1580
929
  readonly presets: readonly ["logical", "logicalStrict"];
1581
- } & {
1582
- readonly pluginId: string;
1583
- readonly url: string;
1584
- }, "self" | "trade", undefined>, import("@flint.fyi/core").Rule<{
930
+ }, "self" | "trade", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1585
931
  readonly description: "Reports quantifiers that can cause quadratic regex matching time.";
1586
932
  readonly id: "regexSuperLinearMoves";
1587
933
  readonly presets: readonly ["logical"];
1588
- } & {
1589
- readonly pluginId: string;
1590
- readonly url: string;
1591
- }, "superLinear", undefined>, import("@flint.fyi/core").Rule<{
934
+ }, "superLinear", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1592
935
  readonly description: "Reports match() and exec() calls that should use RegExp.prototype.test() for boolean checks.";
1593
936
  readonly id: "regexTestMethods";
1594
937
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1595
- } & {
1596
- readonly pluginId: string;
1597
- readonly url: string;
1598
- }, "preferTest", undefined>, import("@flint.fyi/core").Rule<{
938
+ }, "preferTest", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1599
939
  readonly description: "Reports surrogate pair escapes in regular expressions that can be replaced with Unicode codepoint escapes.";
1600
940
  readonly id: "regexUnicodeCodepointEscapes";
1601
941
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1602
- } & {
1603
- readonly pluginId: string;
1604
- readonly url: string;
1605
- }, "useSurrogatePair", undefined>, import("@flint.fyi/core").Rule<{
942
+ }, "useSurrogatePair", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1606
943
  readonly description: "Enforces consistent Unicode escape style in regex patterns by preferring codepoint escapes.";
1607
944
  readonly id: "regexUnicodeEscapes";
1608
- } & {
1609
- readonly pluginId: string;
1610
- readonly url: string;
1611
- }, "preferCodepointEscape", undefined>, import("@flint.fyi/core").Rule<{
945
+ }, "preferCodepointEscape", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1612
946
  readonly description: "Require regex patterns to have the unicode ('u') or unicodeSets ('v') flag for proper Unicode character handling.";
1613
947
  readonly id: "regexUnicodeFlag";
1614
- } & {
1615
- readonly pluginId: string;
1616
- readonly url: string;
1617
- }, "missing", undefined>, import("@flint.fyi/core").Rule<{
948
+ }, "missing", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1618
949
  readonly description: "Reports inconsistent Unicode property names in regular expressions.";
1619
950
  readonly id: "regexUnicodeProperties";
1620
951
  readonly presets: readonly ["stylistic"];
1621
- } & {
1622
- readonly pluginId: string;
1623
- readonly url: string;
1624
- }, "preferLongScript" | "unnecessaryPrefix", undefined>, import("@flint.fyi/core").Rule<{
952
+ }, "preferLongScript" | "unnecessaryPrefix", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1625
953
  readonly description: "Reports assertions in regular expressions that always reject.";
1626
954
  readonly id: "regexUnnecessaryAssertions";
1627
955
  readonly presets: readonly ["logical"];
1628
- } & {
1629
- readonly pluginId: string;
1630
- readonly url: string;
1631
- }, "endAnchor" | "negatedWordBoundary" | "startAnchor" | "wordBoundary", undefined>, import("@flint.fyi/core").Rule<{
956
+ }, "endAnchor" | "negatedWordBoundary" | "startAnchor" | "wordBoundary", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1632
957
  readonly description: "Reports backreferences in regular expressions that will always match empty or fail.";
1633
958
  readonly id: "regexUnnecessaryBackreferences";
1634
959
  readonly presets: readonly ["logical"];
1635
- } & {
1636
- readonly pluginId: string;
1637
- readonly url: string;
1638
- }, "nested" | "disjunctive" | "intoNegativeLookaround" | "forward" | "backward", undefined>, import("@flint.fyi/core").Rule<{
960
+ }, "nested" | "disjunctive" | "intoNegativeLookaround" | "forward" | "backward", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1639
961
  readonly description: "Reports character classes that wrap a single element that does not require brackets.";
1640
962
  readonly id: "regexUnnecessaryCharacterClasses";
1641
963
  readonly presets: readonly ["logical", "logicalStrict"];
1642
- } & {
1643
- readonly pluginId: string;
1644
- readonly url: string;
1645
- }, "unnecessary", undefined>, import("@flint.fyi/core").Rule<{
964
+ }, "unnecessary", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1646
965
  readonly description: "Reports character class ranges that span only one or two characters.";
1647
966
  readonly id: "regexUnnecessaryCharacterRanges";
1648
967
  readonly presets: readonly ["logical", "logicalStrict"];
1649
- } & {
1650
- readonly pluginId: string;
1651
- readonly url: string;
1652
- }, "adjacent" | "identity", undefined>, import("@flint.fyi/core").Rule<{
968
+ }, "adjacent" | "identity", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1653
969
  readonly description: "Reports single-character alternatives in string disjunctions.";
1654
970
  readonly id: "regexUnnecessaryDisjunctions";
1655
971
  readonly presets: readonly ["logical"];
1656
- } & {
1657
- readonly pluginId: string;
1658
- readonly url: string;
1659
- }, "unnecessary", undefined>, import("@flint.fyi/core").Rule<{
972
+ }, "unnecessary", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1660
973
  readonly description: "Reports replacement string references to capturing groups that do not exist in the pattern.";
1661
974
  readonly id: "regexUnnecessaryDollarReplacements";
1662
975
  readonly presets: readonly ["logical", "logicalStrict"];
1663
- } & {
1664
- readonly pluginId: string;
1665
- readonly url: string;
1666
- }, "namedNotFound" | "numericNotFound", undefined>, import("@flint.fyi/core").Rule<{
976
+ }, "namedNotFound" | "numericNotFound", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1667
977
  readonly description: "Reports unnecessary escape sequences in regular expressions.";
1668
978
  readonly id: "regexUnnecessaryEscapes";
1669
979
  readonly presets: readonly ["stylistic"];
1670
- } & {
1671
- readonly pluginId: string;
1672
- readonly url: string;
1673
- }, "unnecessary", undefined>, import("@flint.fyi/core").Rule<{
980
+ }, "unnecessary", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1674
981
  readonly description: "Reports unnecessary nested lookaround assertions in regular expressions.";
1675
982
  readonly id: "regexUnnecessaryLookaroundAssertions";
1676
983
  readonly presets: readonly ["logical"];
1677
- } & {
1678
- readonly pluginId: string;
1679
- readonly url: string;
1680
- }, "lookahead" | "lookbehind", undefined>, import("@flint.fyi/core").Rule<{
984
+ }, "lookahead" | "lookbehind", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1681
985
  readonly description: "Reports trivially nested assertions in regular expressions that can be simplified.";
1682
986
  readonly id: "regexUnnecessaryNestedAssertions";
1683
987
  readonly presets: readonly ["logical"];
1684
- } & {
1685
- readonly pluginId: string;
1686
- readonly url: string;
1687
- }, "unnecessaryNesting", undefined>, import("@flint.fyi/core").Rule<{
988
+ }, "unnecessaryNesting", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1688
989
  readonly description: "Reports trivially nested quantifiers in regular expressions that can be simplified.";
1689
990
  readonly id: "regexUnnecessaryNestedQuantifiers";
1690
991
  readonly presets: readonly ["logical"];
1691
- } & {
1692
- readonly pluginId: string;
1693
- readonly url: string;
1694
- }, "unnecessaryNestedQuantifiers", undefined>, import("@flint.fyi/core").Rule<{
992
+ }, "unnecessaryNestedQuantifiers", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1695
993
  readonly description: "Reports non-capturing groups that can be removed without changing the meaning of the regex.";
1696
994
  readonly id: "regexUnnecessaryNonCapturingGroups";
1697
995
  readonly presets: readonly ["stylistic"];
1698
- } & {
1699
- readonly pluginId: string;
1700
- readonly url: string;
1701
- }, "unnecessaryGroup", undefined>, import("@flint.fyi/core").Rule<{
996
+ }, "unnecessaryGroup", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1702
997
  readonly description: "Reports numeric quantifiers like '{n,n}' that can be simplified to '{n}'.";
1703
998
  readonly id: "regexUnnecessaryNumericQuantifiers";
1704
999
  readonly presets: readonly ["logical"];
1705
- } & {
1706
- readonly pluginId: string;
1707
- readonly url: string;
1708
- }, "unnecessaryNumericQuantifier", undefined>, import("@flint.fyi/core").Rule<{
1000
+ }, "unnecessaryNumericQuantifier", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1709
1001
  readonly description: "Reports assertions inside optional quantifiers that have no effect.";
1710
1002
  readonly id: "regexUnnecessaryOptionalAssertions";
1711
1003
  readonly presets: readonly ["logical"];
1712
- } & {
1713
- readonly pluginId: string;
1714
- readonly url: string;
1715
- }, "unnecessaryOptionalAssertion", undefined>, import("@flint.fyi/core").Rule<{
1004
+ }, "unnecessaryOptionalAssertion", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1716
1005
  readonly description: "Reports backreferences that may reference a capturing group that was not matched.";
1717
1006
  readonly id: "regexUnnecessaryReferentialBackreferences";
1718
1007
  readonly presets: readonly ["logical"];
1719
- } & {
1720
- readonly pluginId: string;
1721
- readonly url: string;
1722
- }, "potentiallyUselessBackref", undefined>, import("@flint.fyi/core").Rule<{
1008
+ }, "potentiallyUselessBackref", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1723
1009
  readonly description: "Reports unnecessary operands in regular expression character class set operations.";
1724
1010
  readonly id: "regexUnnecessarySetOperands";
1725
1011
  readonly presets: readonly ["logical"];
1726
- } & {
1727
- readonly pluginId: string;
1728
- readonly url: string;
1729
- }, "intersectionDisjoint" | "intersectionSubset" | "subtractionDisjoint" | "subtractionSubset", undefined>, import("@flint.fyi/core").Rule<{
1012
+ }, "intersectionDisjoint" | "intersectionSubset" | "subtractionDisjoint" | "subtractionSubset", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1730
1013
  readonly description: "Reports capturing groups in regular expressions that are never referenced.";
1731
1014
  readonly id: "regexUnusedCapturingGroups";
1732
1015
  readonly presets: readonly ["logical"];
1733
- } & {
1734
- readonly pluginId: string;
1735
- readonly url: string;
1736
- }, "unusedCapture", undefined>, import("@flint.fyi/core").Rule<{
1016
+ }, "unusedCapture", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1737
1017
  readonly description: "Reports regular expression flags that have no effect on the pattern.";
1738
1018
  readonly id: "regexUnusedFlags";
1739
1019
  readonly presets: readonly ["logical"];
1740
- } & {
1741
- readonly pluginId: string;
1742
- readonly url: string;
1743
- }, "unusedDotAll" | "unusedIgnoreCase" | "unusedMultiline", undefined>, import("@flint.fyi/core").Rule<{
1020
+ }, "unusedDotAll" | "unusedIgnoreCase" | "unusedMultiline", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1744
1021
  readonly description: "Reports lazy quantifiers that have no effect because the quantifier is constant.";
1745
1022
  readonly id: "regexUnusedLazyQuantifiers";
1746
1023
  readonly presets: readonly ["logical"];
1747
- } & {
1748
- readonly pluginId: string;
1749
- readonly url: string;
1750
- }, "uselessLazy", undefined>, import("@flint.fyi/core").Rule<{
1024
+ }, "uselessLazy", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1751
1025
  readonly description: "Reports quantifiers that match exactly once, making them unnecessary.";
1752
1026
  readonly id: "regexUnusedQuantifiers";
1753
1027
  readonly presets: readonly ["logical"];
1754
- } & {
1755
- readonly pluginId: string;
1756
- readonly url: string;
1757
- }, "uselessQuantifier", undefined>, import("@flint.fyi/core").Rule<{
1028
+ }, "uselessQuantifier", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1758
1029
  readonly description: "Reports invalid regular expressions.";
1759
1030
  readonly id: "regexValidity";
1760
1031
  readonly presets: readonly ["logical"];
1761
- } & {
1762
- readonly pluginId: string;
1763
- readonly url: string;
1764
- }, "conflictingFlags" | "duplicateFlag" | "invalidFlag" | "invalidPattern", undefined>, import("@flint.fyi/core").Rule<{
1032
+ }, "conflictingFlags" | "duplicateFlag" | "invalidFlag" | "invalidPattern", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1765
1033
  readonly description: "Reports character classes that match word characters and could use \\w or \\W instead.";
1766
1034
  readonly id: "regexWordMatchers";
1767
1035
  readonly presets: readonly ["stylisticStrict"];
1768
- } & {
1769
- readonly pluginId: string;
1770
- readonly url: string;
1771
- }, "preferWord", undefined>, import("@flint.fyi/core").Rule<{
1036
+ }, "preferWord", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1772
1037
  readonly description: "Reports quantifiers with a maximum of zero, which are useless.";
1773
1038
  readonly id: "regexZeroQuantifiers";
1774
1039
  readonly presets: readonly ["logical"];
1775
- } & {
1776
- readonly pluginId: string;
1777
- readonly url: string;
1778
- }, "uselessZero", undefined>, import("@flint.fyi/core").Rule<{
1040
+ }, "uselessZero", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1779
1041
  readonly description: "Reports CommonJS require() imports in favor of ES module imports.";
1780
1042
  readonly id: "requireImports";
1781
1043
  readonly presets: readonly ["logical", "logicalStrict"];
1782
- } & {
1783
- readonly pluginId: string;
1784
- readonly url: string;
1785
- }, "noRequireImports", undefined>, import("@flint.fyi/core").Rule<{
1044
+ }, "noRequireImports", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1786
1045
  readonly description: "Reports CommonJS require() imports in favor of ES module imports.";
1787
1046
  readonly id: "requireImports";
1788
1047
  readonly presets: readonly ["logical", "logicalStrict"];
1789
- } & {
1790
- readonly pluginId: string;
1791
- readonly url: string;
1792
- }, "noRequireImports", undefined>, import("@flint.fyi/core").Rule<{
1048
+ }, "noRequireImports", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1793
1049
  readonly description: "Prefer `Response.json()` over `new Response(JSON.stringify(...))` for JSON responses.";
1794
1050
  readonly id: "responseJsonMethods";
1795
1051
  readonly presets: readonly ["stylistic"];
1796
- } & {
1797
- readonly pluginId: string;
1798
- readonly url: string;
1799
- }, "preferResponseJson", undefined>, import("@flint.fyi/core").Rule<{
1052
+ }, "preferResponseJson", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1800
1053
  readonly description: "Disallows specific identifier names in binding positions.";
1801
1054
  readonly id: "restrictedIdentifiers";
1802
1055
  readonly presets: readonly ["stylisticStrict"];
1803
- } & {
1804
- readonly pluginId: string;
1805
- readonly url: string;
1806
1056
  }, "restricted", {
1807
1057
  deny: import("zod/v4").ZodOptional<import("zod/v4").ZodArray<import("zod/v4").ZodString>>;
1808
- }>, import("@flint.fyi/core").Rule<{
1058
+ }>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1809
1059
  readonly description: "Restricts specified modules from being imported.";
1810
1060
  readonly id: "restrictedImports";
1811
- } & {
1812
- readonly pluginId: string;
1813
- readonly url: string;
1814
1061
  }, "restricted" | "moduleRestricted" | "moduleRestrictedWithMessage" | "namespaceRestricted" | "namespaceRestrictedWithMessage" | "restrictedWithMessage", {
1815
1062
  restrictions: import("zod/v4").ZodDefault<import("zod/v4").ZodArray<import("zod/v4").ZodObject<{
1816
1063
  allowTypeImports: import("zod/v4").ZodOptional<import("zod/v4").ZodBoolean>;
@@ -1828,179 +1075,107 @@ declare const ts: import("@flint.fyi/core").Plugin<import("@flint.fyi/core").Rul
1828
1075
  package: import("zod/v4").ZodString;
1829
1076
  }, import("zod/v4/core").$strip>]>;
1830
1077
  }, import("zod/v4/core").$strip>>>;
1831
- }>, import("@flint.fyi/core").Rule<{
1078
+ }>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1832
1079
  readonly description: "Reports using assignment expressions in return statements.";
1833
1080
  readonly id: "returnAssignments";
1834
1081
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1835
- } & {
1836
- readonly pluginId: string;
1837
- readonly url: string;
1838
- }, "noReturnAssign", undefined>, import("@flint.fyi/core").Rule<{
1082
+ }, "noReturnAssign", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1839
1083
  readonly description: "Enforce that `this` is used when only `this` type is returned.";
1840
1084
  readonly id: "returnThisTypes";
1841
1085
  readonly presets: readonly ["logical"];
1842
- } & {
1843
- readonly pluginId: string;
1844
- readonly url: string;
1845
- }, "preferThis", undefined>, import("@flint.fyi/core").Rule<{
1086
+ }, "preferThis", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1846
1087
  readonly description: "Reports self-assignments which have no effect and are likely errors.";
1847
1088
  readonly id: "selfAssignments";
1848
1089
  readonly presets: readonly ["logical", "logicalStrict"];
1849
- } & {
1850
- readonly pluginId: string;
1851
- readonly url: string;
1852
- }, "selfAssignment", undefined>, import("@flint.fyi/core").Rule<{
1090
+ }, "selfAssignment", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1853
1091
  readonly description: "Reports using the comma operator in expressions.";
1854
1092
  readonly id: "sequences";
1855
1093
  readonly presets: readonly ["javascript"];
1856
- } & {
1857
- readonly pluginId: string;
1858
- readonly url: string;
1859
- }, "noSequences", undefined>, import("@flint.fyi/core").Rule<{
1094
+ }, "noSequences", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1860
1095
  readonly description: "Prefer `Set.size` over spreading into an array and accessing `.length`.";
1861
1096
  readonly id: "setSizeLengthChecks";
1862
1097
  readonly presets: readonly ["logical"];
1863
- } & {
1864
- readonly pluginId: string;
1865
- readonly url: string;
1866
- }, "preferSize", undefined>, import("@flint.fyi/core").Rule<{
1098
+ }, "preferSize", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1867
1099
  readonly description: "Reports return statements with values inside setters.";
1868
1100
  readonly id: "setterReturns";
1869
1101
  readonly presets: readonly ["javascript"];
1870
- } & {
1871
- readonly pluginId: string;
1872
- readonly url: string;
1873
- }, "noSetterReturn", undefined>, import("@flint.fyi/core").Rule<{
1102
+ }, "noSetterReturn", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1874
1103
  readonly description: "Reports variable declarations that shadow JavaScript's restricted names.";
1875
1104
  readonly id: "shadowedRestrictedNames";
1876
1105
  readonly presets: readonly ["javascript"];
1877
- } & {
1878
- readonly pluginId: string;
1879
- readonly url: string;
1880
- }, "shadowedRestrictedName", undefined>, import("@flint.fyi/core").Rule<{
1106
+ }, "shadowedRestrictedName", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1881
1107
  readonly description: "Enforces one variable per declaration statement.";
1882
1108
  readonly id: "singleVariableDeclarations";
1883
1109
  readonly presets: readonly ["logical"];
1884
- } & {
1885
- readonly pluginId: string;
1886
- readonly url: string;
1887
- }, "singleVariable", undefined>, import("@flint.fyi/core").Rule<{
1110
+ }, "singleVariable", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1888
1111
  readonly description: "Enforce consistent style for `.length` and `.size` checks.";
1889
1112
  readonly id: "sizeComparisonOperators";
1890
1113
  readonly presets: readonly ["stylisticStrict"];
1891
- } & {
1892
- readonly pluginId: string;
1893
- readonly url: string;
1894
1114
  }, "coercionNonZeroCheck" | "coercionZeroCheck" | "explicitNonZeroCheck" | "explicitZeroCheck", {
1895
1115
  style: import("zod/v4").ZodDefault<import("zod/v4").ZodEnum<{
1896
1116
  coercion: "coercion";
1897
1117
  explicit: "explicit";
1898
1118
  }>>;
1899
- }>, import("@flint.fyi/core").Rule<{
1119
+ }>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1900
1120
  readonly description: "Reports array literals with holes (sparse arrays).";
1901
1121
  readonly id: "sparseArrays";
1902
1122
  readonly presets: readonly ["logical", "logicalStrict"];
1903
- } & {
1904
- readonly pluginId: string;
1905
- readonly url: string;
1906
- }, "noSparseArray", undefined>, import("@flint.fyi/core").Rule<{
1123
+ }, "noSparseArray", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1907
1124
  readonly description: "Reports classes that only contain static members.";
1908
1125
  readonly id: "staticMemberOnlyClasses";
1909
1126
  readonly presets: readonly ["logicalStrict"];
1910
- } & {
1911
- readonly pluginId: string;
1912
- readonly url: string;
1913
- }, "noStaticOnlyClass", undefined>, import("@flint.fyi/core").Rule<{
1127
+ }, "noStaticOnlyClass", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1914
1128
  readonly description: "Reports string case method calls compared against literals with mismatched casing.";
1915
1129
  readonly id: "stringCaseMismatches";
1916
1130
  readonly presets: readonly ["logical"];
1917
- } & {
1918
- readonly pluginId: string;
1919
- readonly url: string;
1920
- }, "mismatch", undefined>, import("@flint.fyi/core").Rule<{
1131
+ }, "mismatch", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1921
1132
  readonly description: "Reports usage of charCodeAt and fromCharCode instead of their codePoint equivalents.";
1922
1133
  readonly id: "stringCodePoints";
1923
1134
  readonly presets: readonly ["logical"];
1924
- } & {
1925
- readonly pluginId: string;
1926
- readonly url: string;
1927
- }, "preferCodePointAt" | "preferFromCodePoint", undefined>, import("@flint.fyi/core").Rule<{
1135
+ }, "preferCodePointAt" | "preferFromCodePoint", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1928
1136
  readonly description: "Reports usage of `substring` instead of slice for string operations.";
1929
1137
  readonly id: "stringSliceMethods";
1930
1138
  readonly presets: readonly ["logical"];
1931
- } & {
1932
- readonly pluginId: string;
1933
- readonly url: string;
1934
- }, "preferSliceOverSubstring", undefined>, import("@flint.fyi/core").Rule<{
1139
+ }, "preferSliceOverSubstring", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1935
1140
  readonly description: "Reports regex patterns that can be replaced with `endsWith` or `startsWith`.";
1936
1141
  readonly id: "stringStartsEndsWith";
1937
1142
  readonly presets: readonly ["stylistic"];
1938
- } & {
1939
- readonly pluginId: string;
1940
- readonly url: string;
1941
- }, "preferEndsWith" | "preferStartsWith", undefined>, import("@flint.fyi/core").Rule<{
1143
+ }, "preferEndsWith" | "preferStartsWith", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1942
1144
  readonly description: "Reports JSON.parse(JSON.stringify()) patterns that can use structuredClone.";
1943
1145
  readonly id: "structuredCloneMethods";
1944
1146
  readonly presets: readonly ["logical"];
1945
- } & {
1946
- readonly pluginId: string;
1947
- readonly url: string;
1948
- }, "preferStructuredClone", undefined>, import("@flint.fyi/core").Rule<{
1147
+ }, "preferStructuredClone", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1949
1148
  readonly description: "Reports Symbol() calls without description arguments.";
1950
1149
  readonly id: "symbolDescriptions";
1951
1150
  readonly presets: readonly ["stylistic", "stylisticStrict"];
1952
- } & {
1953
- readonly pluginId: string;
1954
- readonly url: string;
1955
- }, "missingDescription", undefined>, import("@flint.fyi/core").Rule<{
1151
+ }, "missingDescription", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1956
1152
  readonly description: "Reports assigning `this` to a variable.";
1957
1153
  readonly id: "thisAliases";
1958
1154
  readonly presets: readonly ["logical"];
1959
- } & {
1960
- readonly pluginId: string;
1961
- readonly url: string;
1962
- }, "noThisAlias", undefined>, import("@flint.fyi/core").Rule<{
1155
+ }, "noThisAlias", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1963
1156
  readonly description: "Reports using `this` or `super` before calling `super()` in derived class constructors.";
1964
1157
  readonly id: "thisBeforeSuper";
1965
1158
  readonly presets: readonly ["javascript"];
1966
- } & {
1967
- readonly pluginId: string;
1968
- readonly url: string;
1969
- }, "thisBeforeSuper" | "superBeforeSuper", undefined>, import("@flint.fyi/core").Rule<{
1159
+ }, "thisBeforeSuper" | "superBeforeSuper", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1970
1160
  readonly description: "Reports throwing values that are not `Error` objects.";
1971
1161
  readonly id: "throwErrors";
1972
1162
  readonly presets: readonly ["logical"];
1973
- } & {
1974
- readonly pluginId: string;
1975
- readonly url: string;
1976
- }, "throwError" | "throwUndefined", undefined>, import("@flint.fyi/core").Rule<{
1163
+ }, "throwError" | "throwUndefined", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1977
1164
  readonly description: "Reports top-level await expressions in files that export values.";
1978
1165
  readonly id: "topLevelAwaits";
1979
1166
  readonly presets: readonly ["logicalStrict"];
1980
- } & {
1981
- readonly pluginId: string;
1982
- readonly url: string;
1983
- }, "topLevelAwait", undefined>, import("@flint.fyi/core").Rule<{
1167
+ }, "topLevelAwait", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1984
1168
  readonly description: "Reports triple-slash reference directives.";
1985
1169
  readonly id: "tripleSlashReferences";
1986
1170
  readonly presets: readonly ["logical"];
1987
- } & {
1988
- readonly pluginId: string;
1989
- readonly url: string;
1990
- }, "noTripleSlashReference", undefined>, import("@flint.fyi/core").Rule<{
1171
+ }, "noTripleSlashReference", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1991
1172
  readonly description: "Reports invalid triple-slash reference directives.";
1992
1173
  readonly id: "tripleSlashReferenceValidity";
1993
1174
  readonly presets: readonly ["logical"];
1994
- } & {
1995
- readonly pluginId: string;
1996
- readonly url: string;
1997
- }, "invalidDirective", undefined>, import("@flint.fyi/core").Rule<{
1175
+ }, "invalidDirective", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
1998
1176
  readonly description: "Reports problematic TypeScript comment directives or requires descriptions after directives.";
1999
1177
  readonly id: "tsComments";
2000
1178
  readonly presets: readonly ["logical"];
2001
- } & {
2002
- readonly pluginId: string;
2003
- readonly url: string;
2004
1179
  }, "descriptionNotMatchPattern" | "directiveComment" | "preferExpectError" | "requiresDescription", {
2005
1180
  allowTsExpectError: import("zod/v4").ZodDefault<import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodLiteral<true>, import("zod/v4").ZodLiteral<false>, import("zod/v4").ZodLiteral<"allow-with-description">, import("zod/v4").ZodObject<{
2006
1181
  descriptionFormat: import("zod/v4").ZodString;
@@ -2012,27 +1187,18 @@ declare const ts: import("@flint.fyi/core").Plugin<import("@flint.fyi/core").Rul
2012
1187
  descriptionFormat: import("zod/v4").ZodString;
2013
1188
  }, import("zod/v4/core").$strip>]>>;
2014
1189
  minimumDescriptionLength: import("zod/v4").ZodDefault<import("zod/v4").ZodNumber>;
2015
- }>, import("@flint.fyi/core").Rule<{
1190
+ }>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2016
1191
  readonly description: "Reports TSLint disable/enable comments.";
2017
1192
  readonly id: "tslintComments";
2018
1193
  readonly presets: readonly ["logical"];
2019
- } & {
2020
- readonly pluginId: string;
2021
- readonly url: string;
2022
- }, "tslintComment", undefined>, import("@flint.fyi/core").Rule<{
1194
+ }, "tslintComment", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2023
1195
  readonly description: "Reports angle-bracket type assertions.";
2024
1196
  readonly id: "typeAssertionStyles";
2025
1197
  readonly presets: readonly ["stylistic"];
2026
- } & {
2027
- readonly pluginId: string;
2028
- readonly url: string;
2029
- }, "preferAs", undefined>, import("@flint.fyi/core").Rule<{
1198
+ }, "preferAs", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2030
1199
  readonly description: "Reports imports that do not match the configured type import style.";
2031
1200
  readonly id: "typeImports";
2032
1201
  readonly presets: readonly ["logicalStrict"];
2033
- } & {
2034
- readonly pluginId: string;
2035
- readonly url: string;
2036
1202
  }, "avoidImportType" | "someImportsAreOnlyTypes" | "typeOverValue", {
2037
1203
  fixStyle: import("zod/v4").ZodDefault<import("zod/v4").ZodEnum<{
2038
1204
  "inline-type-imports": "inline-type-imports";
@@ -2042,160 +1208,93 @@ declare const ts: import("@flint.fyi/core").Plugin<import("@flint.fyi/core").Rul
2042
1208
  "no-type-imports": "no-type-imports";
2043
1209
  "type-imports": "type-imports";
2044
1210
  }>>;
2045
- }>, import("@flint.fyi/core").Rule<{
1211
+ }>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2046
1212
  readonly description: "Reports typeof expressions that compare impossible string literals.";
2047
1213
  readonly id: "typeofComparisons";
2048
1214
  readonly presets: readonly ["javascript"];
2049
- } & {
2050
- readonly pluginId: string;
2051
- readonly url: string;
2052
- }, "invalidValue", undefined>, import("@flint.fyi/core").Rule<{
1215
+ }, "invalidValue", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2053
1216
  readonly description: "Reports variables that are declared but never assigned a value.";
2054
1217
  readonly id: "unassignedVariables";
2055
1218
  readonly presets: readonly ["javascript"];
2056
- } & {
2057
- readonly pluginId: string;
2058
- readonly url: string;
2059
- }, "noUnassigned", undefined>, import("@flint.fyi/core").Rule<{
1219
+ }, "noUnassigned", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2060
1220
  readonly description: "Reports typeof undefined checks.";
2061
1221
  readonly id: "undefinedTypeofChecks";
2062
1222
  readonly presets: readonly ["stylistic"];
2063
- } & {
2064
- readonly pluginId: string;
2065
- readonly url: string;
2066
- }, "directComparison", undefined>, import("@flint.fyi/core").Rule<{
1223
+ }, "directComparison", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2067
1224
  readonly description: "Reports using variables that are not defined.";
2068
1225
  readonly id: "undefinedVariables";
2069
1226
  readonly presets: readonly ["javascript"];
2070
- } & {
2071
- readonly pluginId: string;
2072
- readonly url: string;
2073
- }, "undefinedVariable", undefined>, import("@flint.fyi/core").Rule<{
1227
+ }, "undefinedVariable", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2074
1228
  readonly description: "Reports files with Unicode Byte Order Marks (BOMs).";
2075
1229
  readonly id: "unicodeBOMs";
2076
1230
  readonly presets: readonly ["stylistic", "stylisticStrict"];
2077
- } & {
2078
- readonly pluginId: string;
2079
- readonly url: string;
2080
- }, "noBOM", undefined>, import("@flint.fyi/core").Rule<{
1231
+ }, "noBOM", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2081
1232
  readonly description: "Reports unnecessary `.bind()` calls.";
2082
1233
  readonly id: "unnecessaryBinds";
2083
1234
  readonly presets: readonly ["logical"];
2084
- } & {
2085
- readonly pluginId: string;
2086
- readonly url: string;
2087
- }, "unnecessaryBinds" | "arrowBind", undefined>, import("@flint.fyi/core").Rule<{
1235
+ }, "unnecessaryBinds" | "arrowBind", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2088
1236
  readonly description: "Reports standalone block statements that don't create a meaningful scope.";
2089
1237
  readonly id: "unnecessaryBlocks";
2090
1238
  readonly presets: readonly ["stylistic", "stylisticStrict"];
2091
- } & {
2092
- readonly pluginId: string;
2093
- readonly url: string;
2094
- }, "unnecessaryBlock", undefined>, import("@flint.fyi/core").Rule<{
1239
+ }, "unnecessaryBlock", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2095
1240
  readonly description: "Reports unnecessary boolean casts.";
2096
1241
  readonly id: "unnecessaryBooleanCasts";
2097
1242
  readonly presets: readonly ["logical"];
2098
- } & {
2099
- readonly pluginId: string;
2100
- readonly url: string;
2101
- }, "unnecessary", undefined>, import("@flint.fyi/core").Rule<{
1243
+ }, "unnecessary", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2102
1244
  readonly description: "Reports catch clauses that only rethrow the caught error without modification.";
2103
1245
  readonly id: "unnecessaryCatches";
2104
1246
  readonly presets: readonly ["logical", "logicalStrict"];
2105
- } & {
2106
- readonly pluginId: string;
2107
- readonly url: string;
2108
- }, "unnecessaryCatch", undefined>, import("@flint.fyi/core").Rule<{
1247
+ }, "unnecessaryCatch", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2109
1248
  readonly description: "Reports comparisons that are always true, always false, or can be simplified.";
2110
1249
  readonly id: "unnecessaryComparisons";
2111
1250
  readonly presets: readonly ["logical", "logicalStrict"];
2112
- } & {
2113
- readonly pluginId: string;
2114
- readonly url: string;
2115
- }, "impossibleRange" | "ineffectiveCheck" | "redundantComparison" | "selfComparison", undefined>, import("@flint.fyi/core").Rule<{
1251
+ }, "impossibleRange" | "ineffectiveCheck" | "redundantComparison" | "selfComparison", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2116
1252
  readonly description: "Reports string concatenation using the + operator when both operands are string literals.";
2117
1253
  readonly id: "unnecessaryConcatenation";
2118
1254
  readonly presets: readonly ["stylistic", "stylisticStrict"];
2119
- } & {
2120
- readonly pluginId: string;
2121
- readonly url: string;
2122
- }, "unnecessaryConcatenation", undefined>, import("@flint.fyi/core").Rule<{
1255
+ }, "unnecessaryConcatenation", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2123
1256
  readonly description: "Reports unnecessary escape sequences in string literals and template strings.";
2124
1257
  readonly id: "unnecessaryEscapes";
2125
1258
  readonly presets: readonly ["stylistic"];
2126
- } & {
2127
- readonly pluginId: string;
2128
- readonly url: string;
2129
- }, "unnecessary", undefined>, import("@flint.fyi/core").Rule<{
1259
+ }, "unnecessary", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2130
1260
  readonly description: "Reports unnecessary Math.min and Math.max calls with constant arguments or incorrect clamping patterns.";
2131
1261
  readonly id: "unnecessaryMathClamps";
2132
1262
  readonly presets: readonly ["logical"];
2133
- } & {
2134
- readonly pluginId: string;
2135
- readonly url: string;
2136
- }, "constantArguments" | "incorrectClampOrder", undefined>, import("@flint.fyi/core").Rule<{
1263
+ }, "constantArguments" | "incorrectClampOrder", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2137
1264
  readonly description: "Reports numeric literals with unnecessary zero fractions or dangling dots.";
2138
1265
  readonly id: "unnecessaryNumericFractions";
2139
1266
  readonly presets: readonly ["stylistic"];
2140
- } & {
2141
- readonly pluginId: string;
2142
- readonly url: string;
2143
- }, "danglingDot" | "zeroFraction", undefined>, import("@flint.fyi/core").Rule<{
1267
+ }, "danglingDot" | "zeroFraction", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2144
1268
  readonly description: "Renames that don't change the identifier name are unnecessary.";
2145
1269
  readonly id: "unnecessaryRenames";
2146
1270
  readonly presets: readonly ["stylistic"];
2147
- } & {
2148
- readonly pluginId: string;
2149
- readonly url: string;
2150
- }, "unnecessaryRename", undefined>, import("@flint.fyi/core").Rule<{
1271
+ }, "unnecessaryRename", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2151
1272
  readonly description: "Reports ternary expressions that can be simplified to boolean expressions or logical operators";
2152
1273
  readonly id: "unnecessaryTernaries";
2153
1274
  readonly presets: readonly ["stylistic", "stylisticStrict"];
2154
- } & {
2155
- readonly pluginId: string;
2156
- readonly url: string;
2157
- }, "unnecessaryBooleanTernary" | "unnecessaryLogicalTernary", undefined>, import("@flint.fyi/core").Rule<{
1275
+ }, "unnecessaryBooleanTernary" | "unnecessaryLogicalTernary", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2158
1276
  readonly description: "Reports unnecessary \"use strict\" directives in ES modules and classes.";
2159
1277
  readonly id: "unnecessaryUseStricts";
2160
1278
  readonly presets: readonly ["logical"];
2161
- } & {
2162
- readonly pluginId: string;
2163
- readonly url: string;
2164
- }, "unnecessaryUseStrict", undefined>, import("@flint.fyi/core").Rule<{
1279
+ }, "unnecessaryUseStrict", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2165
1280
  readonly description: "Reports negating the left operand of `in` or `instanceof` relations.";
2166
1281
  readonly id: "unsafeNegations";
2167
1282
  readonly presets: readonly ["javascript"];
2168
- } & {
2169
- readonly pluginId: string;
2170
- readonly url: string;
2171
- }, "preferNegatingRelation", undefined>, import("@flint.fyi/core").Rule<{
1283
+ }, "preferNegatingRelation", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2172
1284
  readonly description: "Reports attempting to delete variables with the delete operator.";
2173
1285
  readonly id: "variableDeletions";
2174
1286
  readonly presets: readonly ["javascript"];
2175
- } & {
2176
- readonly pluginId: string;
2177
- readonly url: string;
2178
- }, "noDeleteVar", undefined>, import("@flint.fyi/core").Rule<{
1287
+ }, "noDeleteVar", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2179
1288
  readonly description: "Reports using the void operator.";
2180
1289
  readonly id: "voidOperator";
2181
1290
  readonly presets: readonly ["stylistic", "stylisticStrict"];
2182
- } & {
2183
- readonly pluginId: string;
2184
- readonly url: string;
2185
- }, "noVoid", undefined>, import("@flint.fyi/core").Rule<{
1291
+ }, "noVoid", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2186
1292
  readonly description: "Reports using with statements";
2187
1293
  readonly id: "withStatements";
2188
1294
  readonly presets: readonly ["javascript"];
2189
- } & {
2190
- readonly pluginId: string;
2191
- readonly url: string;
2192
- }, "withStatement", undefined>, import("@flint.fyi/core").Rule<{
1295
+ }, "withStatement", undefined>, import("@flint.fyi/core").Rule<import("@flint.fyi/core").PluginRuleAbout<string> & {
2193
1296
  readonly description: "Flags using `new` with `Boolean`, `Number`, or `String`, which creates wrapper objects instead of primitives.";
2194
1297
  readonly id: "wrapperObjects";
2195
1298
  readonly presets: readonly ["logical", "logicalStrict"];
2196
- } & {
2197
- readonly pluginId: string;
2198
- readonly url: string;
2199
1299
  }, "wrapperObject", undefined>]>;
2200
- //#endregion
2201
- export { ts };
1300
+ //#endregion