@zayne-labs/eslint-config 0.10.9 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -55,182 +55,182 @@ interface Rules {
55
55
  * apply `jsx-a11y/alt-text` rule to Astro components
56
56
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/alt-text/
57
57
  */
58
- 'astro/jsx-a11y/alt-text'?: Linter.RuleEntry<[]>;
58
+ 'astro/jsx-a11y/alt-text'?: Linter.RuleEntry<AstroJsxA11YAltText>;
59
59
  /**
60
60
  * apply `jsx-a11y/anchor-ambiguous-text` rule to Astro components
61
61
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/anchor-ambiguous-text/
62
62
  */
63
- 'astro/jsx-a11y/anchor-ambiguous-text'?: Linter.RuleEntry<[]>;
63
+ 'astro/jsx-a11y/anchor-ambiguous-text'?: Linter.RuleEntry<AstroJsxA11YAnchorAmbiguousText>;
64
64
  /**
65
65
  * apply `jsx-a11y/anchor-has-content` rule to Astro components
66
66
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/anchor-has-content/
67
67
  */
68
- 'astro/jsx-a11y/anchor-has-content'?: Linter.RuleEntry<[]>;
68
+ 'astro/jsx-a11y/anchor-has-content'?: Linter.RuleEntry<AstroJsxA11YAnchorHasContent>;
69
69
  /**
70
70
  * apply `jsx-a11y/anchor-is-valid` rule to Astro components
71
71
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/anchor-is-valid/
72
72
  */
73
- 'astro/jsx-a11y/anchor-is-valid'?: Linter.RuleEntry<[]>;
73
+ 'astro/jsx-a11y/anchor-is-valid'?: Linter.RuleEntry<AstroJsxA11YAnchorIsValid>;
74
74
  /**
75
75
  * apply `jsx-a11y/aria-activedescendant-has-tabindex` rule to Astro components
76
76
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-activedescendant-has-tabindex/
77
77
  */
78
- 'astro/jsx-a11y/aria-activedescendant-has-tabindex'?: Linter.RuleEntry<[]>;
78
+ 'astro/jsx-a11y/aria-activedescendant-has-tabindex'?: Linter.RuleEntry<AstroJsxA11YAriaActivedescendantHasTabindex>;
79
79
  /**
80
80
  * apply `jsx-a11y/aria-props` rule to Astro components
81
81
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-props/
82
82
  */
83
- 'astro/jsx-a11y/aria-props'?: Linter.RuleEntry<[]>;
83
+ 'astro/jsx-a11y/aria-props'?: Linter.RuleEntry<AstroJsxA11YAriaProps>;
84
84
  /**
85
85
  * apply `jsx-a11y/aria-proptypes` rule to Astro components
86
86
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-proptypes/
87
87
  */
88
- 'astro/jsx-a11y/aria-proptypes'?: Linter.RuleEntry<[]>;
88
+ 'astro/jsx-a11y/aria-proptypes'?: Linter.RuleEntry<AstroJsxA11YAriaProptypes>;
89
89
  /**
90
90
  * apply `jsx-a11y/aria-role` rule to Astro components
91
91
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-role/
92
92
  */
93
- 'astro/jsx-a11y/aria-role'?: Linter.RuleEntry<[]>;
93
+ 'astro/jsx-a11y/aria-role'?: Linter.RuleEntry<AstroJsxA11YAriaRole>;
94
94
  /**
95
95
  * apply `jsx-a11y/aria-unsupported-elements` rule to Astro components
96
96
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-unsupported-elements/
97
97
  */
98
- 'astro/jsx-a11y/aria-unsupported-elements'?: Linter.RuleEntry<[]>;
98
+ 'astro/jsx-a11y/aria-unsupported-elements'?: Linter.RuleEntry<AstroJsxA11YAriaUnsupportedElements>;
99
99
  /**
100
100
  * apply `jsx-a11y/autocomplete-valid` rule to Astro components
101
101
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/autocomplete-valid/
102
102
  */
103
- 'astro/jsx-a11y/autocomplete-valid'?: Linter.RuleEntry<[]>;
103
+ 'astro/jsx-a11y/autocomplete-valid'?: Linter.RuleEntry<AstroJsxA11YAutocompleteValid>;
104
104
  /**
105
105
  * apply `jsx-a11y/click-events-have-key-events` rule to Astro components
106
106
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/click-events-have-key-events/
107
107
  */
108
- 'astro/jsx-a11y/click-events-have-key-events'?: Linter.RuleEntry<[]>;
108
+ 'astro/jsx-a11y/click-events-have-key-events'?: Linter.RuleEntry<AstroJsxA11YClickEventsHaveKeyEvents>;
109
109
  /**
110
110
  * apply `jsx-a11y/control-has-associated-label` rule to Astro components
111
111
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/control-has-associated-label/
112
112
  */
113
- 'astro/jsx-a11y/control-has-associated-label'?: Linter.RuleEntry<[]>;
113
+ 'astro/jsx-a11y/control-has-associated-label'?: Linter.RuleEntry<AstroJsxA11YControlHasAssociatedLabel>;
114
114
  /**
115
115
  * apply `jsx-a11y/heading-has-content` rule to Astro components
116
116
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/heading-has-content/
117
117
  */
118
- 'astro/jsx-a11y/heading-has-content'?: Linter.RuleEntry<[]>;
118
+ 'astro/jsx-a11y/heading-has-content'?: Linter.RuleEntry<AstroJsxA11YHeadingHasContent>;
119
119
  /**
120
120
  * apply `jsx-a11y/html-has-lang` rule to Astro components
121
121
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/html-has-lang/
122
122
  */
123
- 'astro/jsx-a11y/html-has-lang'?: Linter.RuleEntry<[]>;
123
+ 'astro/jsx-a11y/html-has-lang'?: Linter.RuleEntry<AstroJsxA11YHtmlHasLang>;
124
124
  /**
125
125
  * apply `jsx-a11y/iframe-has-title` rule to Astro components
126
126
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/iframe-has-title/
127
127
  */
128
- 'astro/jsx-a11y/iframe-has-title'?: Linter.RuleEntry<[]>;
128
+ 'astro/jsx-a11y/iframe-has-title'?: Linter.RuleEntry<AstroJsxA11YIframeHasTitle>;
129
129
  /**
130
130
  * apply `jsx-a11y/img-redundant-alt` rule to Astro components
131
131
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/img-redundant-alt/
132
132
  */
133
- 'astro/jsx-a11y/img-redundant-alt'?: Linter.RuleEntry<[]>;
133
+ 'astro/jsx-a11y/img-redundant-alt'?: Linter.RuleEntry<AstroJsxA11YImgRedundantAlt>;
134
134
  /**
135
135
  * apply `jsx-a11y/interactive-supports-focus` rule to Astro components
136
136
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/interactive-supports-focus/
137
137
  */
138
- 'astro/jsx-a11y/interactive-supports-focus'?: Linter.RuleEntry<[]>;
138
+ 'astro/jsx-a11y/interactive-supports-focus'?: Linter.RuleEntry<AstroJsxA11YInteractiveSupportsFocus>;
139
139
  /**
140
140
  * apply `jsx-a11y/label-has-associated-control` rule to Astro components
141
141
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/label-has-associated-control/
142
142
  */
143
- 'astro/jsx-a11y/label-has-associated-control'?: Linter.RuleEntry<[]>;
143
+ 'astro/jsx-a11y/label-has-associated-control'?: Linter.RuleEntry<AstroJsxA11YLabelHasAssociatedControl>;
144
144
  /**
145
145
  * apply `jsx-a11y/lang` rule to Astro components
146
146
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/lang/
147
147
  */
148
- 'astro/jsx-a11y/lang'?: Linter.RuleEntry<[]>;
148
+ 'astro/jsx-a11y/lang'?: Linter.RuleEntry<AstroJsxA11YLang>;
149
149
  /**
150
150
  * apply `jsx-a11y/media-has-caption` rule to Astro components
151
151
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/media-has-caption/
152
152
  */
153
- 'astro/jsx-a11y/media-has-caption'?: Linter.RuleEntry<[]>;
153
+ 'astro/jsx-a11y/media-has-caption'?: Linter.RuleEntry<AstroJsxA11YMediaHasCaption>;
154
154
  /**
155
155
  * apply `jsx-a11y/mouse-events-have-key-events` rule to Astro components
156
156
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/mouse-events-have-key-events/
157
157
  */
158
- 'astro/jsx-a11y/mouse-events-have-key-events'?: Linter.RuleEntry<[]>;
158
+ 'astro/jsx-a11y/mouse-events-have-key-events'?: Linter.RuleEntry<AstroJsxA11YMouseEventsHaveKeyEvents>;
159
159
  /**
160
160
  * apply `jsx-a11y/no-access-key` rule to Astro components
161
161
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-access-key/
162
162
  */
163
- 'astro/jsx-a11y/no-access-key'?: Linter.RuleEntry<[]>;
163
+ 'astro/jsx-a11y/no-access-key'?: Linter.RuleEntry<AstroJsxA11YNoAccessKey>;
164
164
  /**
165
165
  * apply `jsx-a11y/no-aria-hidden-on-focusable` rule to Astro components
166
166
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-aria-hidden-on-focusable/
167
167
  */
168
- 'astro/jsx-a11y/no-aria-hidden-on-focusable'?: Linter.RuleEntry<[]>;
168
+ 'astro/jsx-a11y/no-aria-hidden-on-focusable'?: Linter.RuleEntry<AstroJsxA11YNoAriaHiddenOnFocusable>;
169
169
  /**
170
170
  * apply `jsx-a11y/no-autofocus` rule to Astro components
171
171
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-autofocus/
172
172
  */
173
- 'astro/jsx-a11y/no-autofocus'?: Linter.RuleEntry<[]>;
173
+ 'astro/jsx-a11y/no-autofocus'?: Linter.RuleEntry<AstroJsxA11YNoAutofocus>;
174
174
  /**
175
175
  * apply `jsx-a11y/no-distracting-elements` rule to Astro components
176
176
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-distracting-elements/
177
177
  */
178
- 'astro/jsx-a11y/no-distracting-elements'?: Linter.RuleEntry<[]>;
178
+ 'astro/jsx-a11y/no-distracting-elements'?: Linter.RuleEntry<AstroJsxA11YNoDistractingElements>;
179
179
  /**
180
180
  * apply `jsx-a11y/no-interactive-element-to-noninteractive-role` rule to Astro components
181
181
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-interactive-element-to-noninteractive-role/
182
182
  */
183
- 'astro/jsx-a11y/no-interactive-element-to-noninteractive-role'?: Linter.RuleEntry<[]>;
183
+ 'astro/jsx-a11y/no-interactive-element-to-noninteractive-role'?: Linter.RuleEntry<AstroJsxA11YNoInteractiveElementToNoninteractiveRole>;
184
184
  /**
185
185
  * apply `jsx-a11y/no-noninteractive-element-interactions` rule to Astro components
186
186
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-noninteractive-element-interactions/
187
187
  */
188
- 'astro/jsx-a11y/no-noninteractive-element-interactions'?: Linter.RuleEntry<[]>;
188
+ 'astro/jsx-a11y/no-noninteractive-element-interactions'?: Linter.RuleEntry<AstroJsxA11YNoNoninteractiveElementInteractions>;
189
189
  /**
190
190
  * apply `jsx-a11y/no-noninteractive-element-to-interactive-role` rule to Astro components
191
191
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-noninteractive-element-to-interactive-role/
192
192
  */
193
- 'astro/jsx-a11y/no-noninteractive-element-to-interactive-role'?: Linter.RuleEntry<[]>;
193
+ 'astro/jsx-a11y/no-noninteractive-element-to-interactive-role'?: Linter.RuleEntry<AstroJsxA11YNoNoninteractiveElementToInteractiveRole>;
194
194
  /**
195
195
  * apply `jsx-a11y/no-noninteractive-tabindex` rule to Astro components
196
196
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-noninteractive-tabindex/
197
197
  */
198
- 'astro/jsx-a11y/no-noninteractive-tabindex'?: Linter.RuleEntry<[]>;
198
+ 'astro/jsx-a11y/no-noninteractive-tabindex'?: Linter.RuleEntry<AstroJsxA11YNoNoninteractiveTabindex>;
199
199
  /**
200
200
  * apply `jsx-a11y/no-redundant-roles` rule to Astro components
201
201
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-redundant-roles/
202
202
  */
203
- 'astro/jsx-a11y/no-redundant-roles'?: Linter.RuleEntry<[]>;
203
+ 'astro/jsx-a11y/no-redundant-roles'?: Linter.RuleEntry<AstroJsxA11YNoRedundantRoles>;
204
204
  /**
205
205
  * apply `jsx-a11y/no-static-element-interactions` rule to Astro components
206
206
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-static-element-interactions/
207
207
  */
208
- 'astro/jsx-a11y/no-static-element-interactions'?: Linter.RuleEntry<[]>;
208
+ 'astro/jsx-a11y/no-static-element-interactions'?: Linter.RuleEntry<AstroJsxA11YNoStaticElementInteractions>;
209
209
  /**
210
210
  * apply `jsx-a11y/prefer-tag-over-role` rule to Astro components
211
211
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/prefer-tag-over-role/
212
212
  */
213
- 'astro/jsx-a11y/prefer-tag-over-role'?: Linter.RuleEntry<[]>;
213
+ 'astro/jsx-a11y/prefer-tag-over-role'?: Linter.RuleEntry<AstroJsxA11YPreferTagOverRole>;
214
214
  /**
215
215
  * apply `jsx-a11y/role-has-required-aria-props` rule to Astro components
216
216
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/role-has-required-aria-props/
217
217
  */
218
- 'astro/jsx-a11y/role-has-required-aria-props'?: Linter.RuleEntry<[]>;
218
+ 'astro/jsx-a11y/role-has-required-aria-props'?: Linter.RuleEntry<AstroJsxA11YRoleHasRequiredAriaProps>;
219
219
  /**
220
220
  * apply `jsx-a11y/role-supports-aria-props` rule to Astro components
221
221
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/role-supports-aria-props/
222
222
  */
223
- 'astro/jsx-a11y/role-supports-aria-props'?: Linter.RuleEntry<[]>;
223
+ 'astro/jsx-a11y/role-supports-aria-props'?: Linter.RuleEntry<AstroJsxA11YRoleSupportsAriaProps>;
224
224
  /**
225
225
  * apply `jsx-a11y/scope` rule to Astro components
226
226
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/scope/
227
227
  */
228
- 'astro/jsx-a11y/scope'?: Linter.RuleEntry<[]>;
228
+ 'astro/jsx-a11y/scope'?: Linter.RuleEntry<AstroJsxA11YScope>;
229
229
  /**
230
230
  * apply `jsx-a11y/tabindex-no-positive` rule to Astro components
231
231
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/tabindex-no-positive/
232
232
  */
233
- 'astro/jsx-a11y/tabindex-no-positive'?: Linter.RuleEntry<[]>;
233
+ 'astro/jsx-a11y/tabindex-no-positive'?: Linter.RuleEntry<AstroJsxA11YTabindexNoPositive>;
234
234
  /**
235
235
  * the client:only directive is missing the correct component's framework value
236
236
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/missing-client-only-directive-value/
@@ -445,6 +445,26 @@ interface Rules {
445
445
  * @see https://eslint.org/docs/latest/rules/eqeqeq
446
446
  */
447
447
  'eqeqeq'?: Linter.RuleEntry<Eqeqeq>;
448
+ /**
449
+ * Avoid using TypeScript's enums.
450
+ * @see https://github.com/JoshuaKGoldberg/eslint-plugin-erasable-syntax-only/blob/main/docs/rules/enums.md
451
+ */
452
+ 'erasable-syntax-only/enums'?: Linter.RuleEntry<[]>;
453
+ /**
454
+ * Avoid using TypeScript's import aliases.
455
+ * @see https://github.com/JoshuaKGoldberg/eslint-plugin-erasable-syntax-only/blob/main/docs/rules/import-aliases.md
456
+ */
457
+ 'erasable-syntax-only/import-aliases'?: Linter.RuleEntry<[]>;
458
+ /**
459
+ * Avoid using TypeScript's namespaces.
460
+ * @see https://github.com/JoshuaKGoldberg/eslint-plugin-erasable-syntax-only/blob/main/docs/rules/namespaces.md
461
+ */
462
+ 'erasable-syntax-only/namespaces'?: Linter.RuleEntry<[]>;
463
+ /**
464
+ * Avoid using TypeScript's class parameter properties.
465
+ * @see https://github.com/JoshuaKGoldberg/eslint-plugin-erasable-syntax-only/blob/main/docs/rules/parameter-properties.md
466
+ */
467
+ 'erasable-syntax-only/parameter-properties'?: Linter.RuleEntry<[]>;
448
468
  /**
449
469
  * require a `eslint-enable` comment for every `eslint-disable` comment
450
470
  * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/disable-enable-pair.html
@@ -1451,6 +1471,204 @@ interface Rules {
1451
1471
  * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/vue-custom-block/no-parsing-error.html
1452
1472
  */
1453
1473
  'jsonc/vue-custom-block/no-parsing-error'?: Linter.RuleEntry<[]>;
1474
+ /**
1475
+ * Enforce emojis are wrapped in `<span>` and provide screen reader access.
1476
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/accessible-emoji.md
1477
+ * @deprecated
1478
+ */
1479
+ 'jsx-a11y/accessible-emoji'?: Linter.RuleEntry<JsxA11YAccessibleEmoji>;
1480
+ /**
1481
+ * Enforce all elements that require alternative text have meaningful information to relay back to end user.
1482
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/alt-text.md
1483
+ */
1484
+ 'jsx-a11y/alt-text'?: Linter.RuleEntry<JsxA11YAltText>;
1485
+ /**
1486
+ * Enforce `<a>` text to not exactly match "click here", "here", "link", or "a link".
1487
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-ambiguous-text.md
1488
+ */
1489
+ 'jsx-a11y/anchor-ambiguous-text'?: Linter.RuleEntry<JsxA11YAnchorAmbiguousText>;
1490
+ /**
1491
+ * Enforce all anchors to contain accessible content.
1492
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-has-content.md
1493
+ */
1494
+ 'jsx-a11y/anchor-has-content'?: Linter.RuleEntry<JsxA11YAnchorHasContent>;
1495
+ /**
1496
+ * Enforce all anchors are valid, navigable elements.
1497
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-is-valid.md
1498
+ */
1499
+ 'jsx-a11y/anchor-is-valid'?: Linter.RuleEntry<JsxA11YAnchorIsValid>;
1500
+ /**
1501
+ * Enforce elements with aria-activedescendant are tabbable.
1502
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-activedescendant-has-tabindex.md
1503
+ */
1504
+ 'jsx-a11y/aria-activedescendant-has-tabindex'?: Linter.RuleEntry<JsxA11YAriaActivedescendantHasTabindex>;
1505
+ /**
1506
+ * Enforce all `aria-*` props are valid.
1507
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-props.md
1508
+ */
1509
+ 'jsx-a11y/aria-props'?: Linter.RuleEntry<JsxA11YAriaProps>;
1510
+ /**
1511
+ * Enforce ARIA state and property values are valid.
1512
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-proptypes.md
1513
+ */
1514
+ 'jsx-a11y/aria-proptypes'?: Linter.RuleEntry<JsxA11YAriaProptypes>;
1515
+ /**
1516
+ * Enforce that elements with ARIA roles must use a valid, non-abstract ARIA role.
1517
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-role.md
1518
+ */
1519
+ 'jsx-a11y/aria-role'?: Linter.RuleEntry<JsxA11YAriaRole>;
1520
+ /**
1521
+ * Enforce that elements that do not support ARIA roles, states, and properties do not have those attributes.
1522
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-unsupported-elements.md
1523
+ */
1524
+ 'jsx-a11y/aria-unsupported-elements'?: Linter.RuleEntry<JsxA11YAriaUnsupportedElements>;
1525
+ /**
1526
+ * Enforce that autocomplete attributes are used correctly.
1527
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/autocomplete-valid.md
1528
+ */
1529
+ 'jsx-a11y/autocomplete-valid'?: Linter.RuleEntry<JsxA11YAutocompleteValid>;
1530
+ /**
1531
+ * Enforce a clickable non-interactive element has at least one keyboard event listener.
1532
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/click-events-have-key-events.md
1533
+ */
1534
+ 'jsx-a11y/click-events-have-key-events'?: Linter.RuleEntry<JsxA11YClickEventsHaveKeyEvents>;
1535
+ /**
1536
+ * Enforce that a control (an interactive element) has a text label.
1537
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/control-has-associated-label.md
1538
+ */
1539
+ 'jsx-a11y/control-has-associated-label'?: Linter.RuleEntry<JsxA11YControlHasAssociatedLabel>;
1540
+ /**
1541
+ * Enforce heading (`h1`, `h2`, etc) elements contain accessible content.
1542
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/heading-has-content.md
1543
+ */
1544
+ 'jsx-a11y/heading-has-content'?: Linter.RuleEntry<JsxA11YHeadingHasContent>;
1545
+ /**
1546
+ * Enforce `<html>` element has `lang` prop.
1547
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/html-has-lang.md
1548
+ */
1549
+ 'jsx-a11y/html-has-lang'?: Linter.RuleEntry<JsxA11YHtmlHasLang>;
1550
+ /**
1551
+ * Enforce iframe elements have a title attribute.
1552
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/iframe-has-title.md
1553
+ */
1554
+ 'jsx-a11y/iframe-has-title'?: Linter.RuleEntry<JsxA11YIframeHasTitle>;
1555
+ /**
1556
+ * Enforce `<img>` alt prop does not contain the word "image", "picture", or "photo".
1557
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/img-redundant-alt.md
1558
+ */
1559
+ 'jsx-a11y/img-redundant-alt'?: Linter.RuleEntry<JsxA11YImgRedundantAlt>;
1560
+ /**
1561
+ * Enforce that elements with interactive handlers like `onClick` must be focusable.
1562
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/interactive-supports-focus.md
1563
+ */
1564
+ 'jsx-a11y/interactive-supports-focus'?: Linter.RuleEntry<JsxA11YInteractiveSupportsFocus>;
1565
+ /**
1566
+ * Enforce that a `label` tag has a text label and an associated control.
1567
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/label-has-associated-control.md
1568
+ */
1569
+ 'jsx-a11y/label-has-associated-control'?: Linter.RuleEntry<JsxA11YLabelHasAssociatedControl>;
1570
+ /**
1571
+ * Enforce that `<label>` elements have the `htmlFor` prop.
1572
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/label-has-for.md
1573
+ * @deprecated
1574
+ */
1575
+ 'jsx-a11y/label-has-for'?: Linter.RuleEntry<JsxA11YLabelHasFor>;
1576
+ /**
1577
+ * Enforce lang attribute has a valid value.
1578
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/lang.md
1579
+ */
1580
+ 'jsx-a11y/lang'?: Linter.RuleEntry<JsxA11YLang>;
1581
+ /**
1582
+ * Enforces that `<audio>` and `<video>` elements must have a `<track>` for captions.
1583
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/media-has-caption.md
1584
+ */
1585
+ 'jsx-a11y/media-has-caption'?: Linter.RuleEntry<JsxA11YMediaHasCaption>;
1586
+ /**
1587
+ * Enforce that `onMouseOver`/`onMouseOut` are accompanied by `onFocus`/`onBlur` for keyboard-only users.
1588
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/mouse-events-have-key-events.md
1589
+ */
1590
+ 'jsx-a11y/mouse-events-have-key-events'?: Linter.RuleEntry<JsxA11YMouseEventsHaveKeyEvents>;
1591
+ /**
1592
+ * Enforce that the `accessKey` prop is not used on any element to avoid complications with keyboard commands used by a screen reader.
1593
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-access-key.md
1594
+ */
1595
+ 'jsx-a11y/no-access-key'?: Linter.RuleEntry<JsxA11YNoAccessKey>;
1596
+ /**
1597
+ * Disallow `aria-hidden="true"` from being set on focusable elements.
1598
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-aria-hidden-on-focusable.md
1599
+ */
1600
+ 'jsx-a11y/no-aria-hidden-on-focusable'?: Linter.RuleEntry<JsxA11YNoAriaHiddenOnFocusable>;
1601
+ /**
1602
+ * Enforce autoFocus prop is not used.
1603
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-autofocus.md
1604
+ */
1605
+ 'jsx-a11y/no-autofocus'?: Linter.RuleEntry<JsxA11YNoAutofocus>;
1606
+ /**
1607
+ * Enforce distracting elements are not used.
1608
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-distracting-elements.md
1609
+ */
1610
+ 'jsx-a11y/no-distracting-elements'?: Linter.RuleEntry<JsxA11YNoDistractingElements>;
1611
+ /**
1612
+ * Interactive elements should not be assigned non-interactive roles.
1613
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-interactive-element-to-noninteractive-role.md
1614
+ */
1615
+ 'jsx-a11y/no-interactive-element-to-noninteractive-role'?: Linter.RuleEntry<JsxA11YNoInteractiveElementToNoninteractiveRole>;
1616
+ /**
1617
+ * Non-interactive elements should not be assigned mouse or keyboard event listeners.
1618
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-element-interactions.md
1619
+ */
1620
+ 'jsx-a11y/no-noninteractive-element-interactions'?: Linter.RuleEntry<JsxA11YNoNoninteractiveElementInteractions>;
1621
+ /**
1622
+ * Non-interactive elements should not be assigned interactive roles.
1623
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-element-to-interactive-role.md
1624
+ */
1625
+ 'jsx-a11y/no-noninteractive-element-to-interactive-role'?: Linter.RuleEntry<JsxA11YNoNoninteractiveElementToInteractiveRole>;
1626
+ /**
1627
+ * `tabIndex` should only be declared on interactive elements.
1628
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-tabindex.md
1629
+ */
1630
+ 'jsx-a11y/no-noninteractive-tabindex'?: Linter.RuleEntry<JsxA11YNoNoninteractiveTabindex>;
1631
+ /**
1632
+ * Enforce usage of `onBlur` over `onChange` on select menus for accessibility.
1633
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-onchange.md
1634
+ * @deprecated
1635
+ */
1636
+ 'jsx-a11y/no-onchange'?: Linter.RuleEntry<JsxA11YNoOnchange>;
1637
+ /**
1638
+ * Enforce explicit role property is not the same as implicit/default role property on element.
1639
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-redundant-roles.md
1640
+ */
1641
+ 'jsx-a11y/no-redundant-roles'?: Linter.RuleEntry<JsxA11YNoRedundantRoles>;
1642
+ /**
1643
+ * Enforce that non-interactive, visible elements (such as `<div>`) that have click handlers use the role attribute.
1644
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-static-element-interactions.md
1645
+ */
1646
+ 'jsx-a11y/no-static-element-interactions'?: Linter.RuleEntry<JsxA11YNoStaticElementInteractions>;
1647
+ /**
1648
+ * Enforces using semantic DOM elements over the ARIA `role` property.
1649
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/prefer-tag-over-role.md
1650
+ */
1651
+ 'jsx-a11y/prefer-tag-over-role'?: Linter.RuleEntry<JsxA11YPreferTagOverRole>;
1652
+ /**
1653
+ * Enforce that elements with ARIA roles must have all required attributes for that role.
1654
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/role-has-required-aria-props.md
1655
+ */
1656
+ 'jsx-a11y/role-has-required-aria-props'?: Linter.RuleEntry<JsxA11YRoleHasRequiredAriaProps>;
1657
+ /**
1658
+ * Enforce that elements with explicit or implicit roles defined contain only `aria-*` properties supported by that `role`.
1659
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/role-supports-aria-props.md
1660
+ */
1661
+ 'jsx-a11y/role-supports-aria-props'?: Linter.RuleEntry<JsxA11YRoleSupportsAriaProps>;
1662
+ /**
1663
+ * Enforce `scope` prop is only used on `<th>` elements.
1664
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/scope.md
1665
+ */
1666
+ 'jsx-a11y/scope'?: Linter.RuleEntry<JsxA11YScope>;
1667
+ /**
1668
+ * Enforce `tabIndex` value is not greater than zero.
1669
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/tabindex-no-positive.md
1670
+ */
1671
+ 'jsx-a11y/tabindex-no-positive'?: Linter.RuleEntry<JsxA11YTabindexNoPositive>;
1454
1672
  /**
1455
1673
  * Enforce the consistent use of either double or single quotes in JSX attributes
1456
1674
  * @see https://eslint.org/docs/latest/rules/jsx-quotes
@@ -1504,6 +1722,106 @@ interface Rules {
1504
1722
  * @see https://eslint.org/docs/latest/rules/logical-assignment-operators
1505
1723
  */
1506
1724
  'logical-assignment-operators'?: Linter.RuleEntry<LogicalAssignmentOperators>;
1725
+ /**
1726
+ * Require languages for fenced code blocks
1727
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/fenced-code-language.md
1728
+ */
1729
+ 'markdown/fenced-code-language'?: Linter.RuleEntry<MarkdownFencedCodeLanguage>;
1730
+ /**
1731
+ * Enforce heading levels increment by one
1732
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/heading-increment.md
1733
+ */
1734
+ 'markdown/heading-increment'?: Linter.RuleEntry<MarkdownHeadingIncrement>;
1735
+ /**
1736
+ * Disallow bare URLs
1737
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-bare-urls.md
1738
+ */
1739
+ 'markdown/no-bare-urls'?: Linter.RuleEntry<[]>;
1740
+ /**
1741
+ * Disallow duplicate definitions
1742
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-duplicate-definitions.md
1743
+ */
1744
+ 'markdown/no-duplicate-definitions'?: Linter.RuleEntry<MarkdownNoDuplicateDefinitions>;
1745
+ /**
1746
+ * Disallow duplicate headings in the same document
1747
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-duplicate-headings.md
1748
+ */
1749
+ 'markdown/no-duplicate-headings'?: Linter.RuleEntry<MarkdownNoDuplicateHeadings>;
1750
+ /**
1751
+ * Disallow empty definitions
1752
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-empty-definitions.md
1753
+ */
1754
+ 'markdown/no-empty-definitions'?: Linter.RuleEntry<MarkdownNoEmptyDefinitions>;
1755
+ /**
1756
+ * Disallow empty images
1757
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-empty-images.md
1758
+ */
1759
+ 'markdown/no-empty-images'?: Linter.RuleEntry<[]>;
1760
+ /**
1761
+ * Disallow empty links
1762
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-empty-links.md
1763
+ */
1764
+ 'markdown/no-empty-links'?: Linter.RuleEntry<[]>;
1765
+ /**
1766
+ * Disallow HTML tags
1767
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-html.md
1768
+ */
1769
+ 'markdown/no-html'?: Linter.RuleEntry<MarkdownNoHtml>;
1770
+ /**
1771
+ * Disallow invalid label references
1772
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-invalid-label-refs.md
1773
+ */
1774
+ 'markdown/no-invalid-label-refs'?: Linter.RuleEntry<[]>;
1775
+ /**
1776
+ * Disallow headings without a space after the hash characters
1777
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-missing-atx-heading-space.md
1778
+ */
1779
+ 'markdown/no-missing-atx-heading-space'?: Linter.RuleEntry<MarkdownNoMissingAtxHeadingSpace>;
1780
+ /**
1781
+ * Disallow missing label references
1782
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-missing-label-refs.md
1783
+ */
1784
+ 'markdown/no-missing-label-refs'?: Linter.RuleEntry<MarkdownNoMissingLabelRefs>;
1785
+ /**
1786
+ * Disallow link fragments that do not reference valid headings
1787
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-missing-link-fragments.md
1788
+ */
1789
+ 'markdown/no-missing-link-fragments'?: Linter.RuleEntry<MarkdownNoMissingLinkFragments>;
1790
+ /**
1791
+ * Disallow multiple H1 headings in the same document
1792
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-multiple-h1.md
1793
+ */
1794
+ 'markdown/no-multiple-h1'?: Linter.RuleEntry<MarkdownNoMultipleH1>;
1795
+ /**
1796
+ * Disallow URLs that match defined reference identifiers
1797
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-reference-like-urls.md
1798
+ */
1799
+ 'markdown/no-reference-like-urls'?: Linter.RuleEntry<[]>;
1800
+ /**
1801
+ * Disallow reversed link and image syntax
1802
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-reversed-media-syntax.md
1803
+ */
1804
+ 'markdown/no-reversed-media-syntax'?: Linter.RuleEntry<[]>;
1805
+ /**
1806
+ * Disallow spaces around emphasis markers
1807
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-space-in-emphasis.md
1808
+ */
1809
+ 'markdown/no-space-in-emphasis'?: Linter.RuleEntry<MarkdownNoSpaceInEmphasis>;
1810
+ /**
1811
+ * Disallow unused definitions
1812
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-unused-definitions.md
1813
+ */
1814
+ 'markdown/no-unused-definitions'?: Linter.RuleEntry<MarkdownNoUnusedDefinitions>;
1815
+ /**
1816
+ * Require alternative text for images
1817
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/require-alt-text.md
1818
+ */
1819
+ 'markdown/require-alt-text'?: Linter.RuleEntry<[]>;
1820
+ /**
1821
+ * Disallow data rows in a GitHub Flavored Markdown table from having more cells than the header row
1822
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/table-column-count.md
1823
+ */
1824
+ 'markdown/table-column-count'?: Linter.RuleEntry<MarkdownTableColumnCount>;
1507
1825
  /**
1508
1826
  * Enforce a maximum number of classes per file
1509
1827
  * @see https://eslint.org/docs/latest/rules/max-classes-per-file
@@ -3590,6 +3908,7 @@ interface Rules {
3590
3908
  'react-you-might-not-need-an-effect/no-event-handler'?: Linter.RuleEntry<[]>;
3591
3909
  /**
3592
3910
  * Disallow initializing state in an effect.
3911
+ * @see https://tkdodo.eu/blog/avoiding-hydration-mismatches-with-use-sync-external-store
3593
3912
  */
3594
3913
  'react-you-might-not-need-an-effect/no-initialize-state'?: Linter.RuleEntry<[]>;
3595
3914
  /**
@@ -3952,6 +4271,11 @@ interface Rules {
3952
4271
  * @see https://eslint.style/rules/eol-last
3953
4272
  */
3954
4273
  'stylistic/eol-last'?: Linter.RuleEntry<StylisticEolLast>;
4274
+ /**
4275
+ * Enforce consistent spacing and line break styles inside brackets.
4276
+ * @see https://eslint.style/rules/list-style
4277
+ */
4278
+ 'stylistic/exp-list-style'?: Linter.RuleEntry<StylisticExpListStyle>;
3955
4279
  /**
3956
4280
  * Enforce line breaks between arguments of a function call
3957
4281
  * @see https://eslint.style/rules/function-call-argument-newline
@@ -7440,6 +7764,188 @@ type ArrowSpacing = [] | [{
7440
7764
  before?: boolean;
7441
7765
  after?: boolean;
7442
7766
  }];
7767
+ // ----- astro/jsx-a11y/alt-text -----
7768
+ type AstroJsxA11YAltText = [] | [{
7769
+ elements?: string[];
7770
+ img?: string[];
7771
+ object?: string[];
7772
+ area?: string[];
7773
+ "input[type=\"image\"]"?: string[];
7774
+ [k: string]: unknown | undefined;
7775
+ }];
7776
+ // ----- astro/jsx-a11y/anchor-ambiguous-text -----
7777
+ type AstroJsxA11YAnchorAmbiguousText = [] | [{
7778
+ words?: string[];
7779
+ [k: string]: unknown | undefined;
7780
+ }];
7781
+ // ----- astro/jsx-a11y/anchor-has-content -----
7782
+ type AstroJsxA11YAnchorHasContent = [] | [{
7783
+ components?: string[];
7784
+ [k: string]: unknown | undefined;
7785
+ }];
7786
+ // ----- astro/jsx-a11y/anchor-is-valid -----
7787
+ type AstroJsxA11YAnchorIsValid = [] | [{
7788
+ components?: string[];
7789
+ specialLink?: string[];
7790
+ aspects?: [("noHref" | "invalidHref" | "preferButton"), ...(("noHref" | "invalidHref" | "preferButton"))[]];
7791
+ [k: string]: unknown | undefined;
7792
+ }];
7793
+ // ----- astro/jsx-a11y/aria-activedescendant-has-tabindex -----
7794
+ type AstroJsxA11YAriaActivedescendantHasTabindex = [] | [{
7795
+ [k: string]: unknown | undefined;
7796
+ }];
7797
+ // ----- astro/jsx-a11y/aria-props -----
7798
+ type AstroJsxA11YAriaProps = [] | [{
7799
+ [k: string]: unknown | undefined;
7800
+ }];
7801
+ // ----- astro/jsx-a11y/aria-proptypes -----
7802
+ type AstroJsxA11YAriaProptypes = [] | [{
7803
+ [k: string]: unknown | undefined;
7804
+ }];
7805
+ // ----- astro/jsx-a11y/aria-role -----
7806
+ type AstroJsxA11YAriaRole = [] | [{
7807
+ allowedInvalidRoles?: string[];
7808
+ ignoreNonDOM?: boolean;
7809
+ [k: string]: unknown | undefined;
7810
+ }];
7811
+ // ----- astro/jsx-a11y/aria-unsupported-elements -----
7812
+ type AstroJsxA11YAriaUnsupportedElements = [] | [{
7813
+ [k: string]: unknown | undefined;
7814
+ }];
7815
+ // ----- astro/jsx-a11y/autocomplete-valid -----
7816
+ type AstroJsxA11YAutocompleteValid = [] | [{
7817
+ inputComponents?: string[];
7818
+ [k: string]: unknown | undefined;
7819
+ }];
7820
+ // ----- astro/jsx-a11y/click-events-have-key-events -----
7821
+ type AstroJsxA11YClickEventsHaveKeyEvents = [] | [{
7822
+ [k: string]: unknown | undefined;
7823
+ }];
7824
+ // ----- astro/jsx-a11y/control-has-associated-label -----
7825
+ type AstroJsxA11YControlHasAssociatedLabel = [] | [{
7826
+ labelAttributes?: string[];
7827
+ controlComponents?: string[];
7828
+ ignoreElements?: string[];
7829
+ ignoreRoles?: string[];
7830
+ depth?: number;
7831
+ [k: string]: unknown | undefined;
7832
+ }];
7833
+ // ----- astro/jsx-a11y/heading-has-content -----
7834
+ type AstroJsxA11YHeadingHasContent = [] | [{
7835
+ components?: string[];
7836
+ [k: string]: unknown | undefined;
7837
+ }];
7838
+ // ----- astro/jsx-a11y/html-has-lang -----
7839
+ type AstroJsxA11YHtmlHasLang = [] | [{
7840
+ [k: string]: unknown | undefined;
7841
+ }];
7842
+ // ----- astro/jsx-a11y/iframe-has-title -----
7843
+ type AstroJsxA11YIframeHasTitle = [] | [{
7844
+ [k: string]: unknown | undefined;
7845
+ }];
7846
+ // ----- astro/jsx-a11y/img-redundant-alt -----
7847
+ type AstroJsxA11YImgRedundantAlt = [] | [{
7848
+ components?: string[];
7849
+ words?: string[];
7850
+ [k: string]: unknown | undefined;
7851
+ }];
7852
+ // ----- astro/jsx-a11y/interactive-supports-focus -----
7853
+ type AstroJsxA11YInteractiveSupportsFocus = [] | [{
7854
+ tabbable?: ("button" | "checkbox" | "columnheader" | "combobox" | "grid" | "gridcell" | "link" | "listbox" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "option" | "progressbar" | "radio" | "radiogroup" | "row" | "rowheader" | "scrollbar" | "searchbox" | "slider" | "spinbutton" | "switch" | "tab" | "tablist" | "textbox" | "tree" | "treegrid" | "treeitem" | "doc-backlink" | "doc-biblioref" | "doc-glossref" | "doc-noteref")[];
7855
+ [k: string]: unknown | undefined;
7856
+ }];
7857
+ // ----- astro/jsx-a11y/label-has-associated-control -----
7858
+ type AstroJsxA11YLabelHasAssociatedControl = [] | [{
7859
+ labelComponents?: string[];
7860
+ labelAttributes?: string[];
7861
+ controlComponents?: string[];
7862
+ assert?: ("htmlFor" | "nesting" | "both" | "either");
7863
+ depth?: number;
7864
+ [k: string]: unknown | undefined;
7865
+ }];
7866
+ // ----- astro/jsx-a11y/lang -----
7867
+ type AstroJsxA11YLang = [] | [{
7868
+ [k: string]: unknown | undefined;
7869
+ }];
7870
+ // ----- astro/jsx-a11y/media-has-caption -----
7871
+ type AstroJsxA11YMediaHasCaption = [] | [{
7872
+ audio?: string[];
7873
+ video?: string[];
7874
+ track?: string[];
7875
+ [k: string]: unknown | undefined;
7876
+ }];
7877
+ // ----- astro/jsx-a11y/mouse-events-have-key-events -----
7878
+ type AstroJsxA11YMouseEventsHaveKeyEvents = [] | [{
7879
+ hoverInHandlers?: string[];
7880
+ hoverOutHandlers?: string[];
7881
+ [k: string]: unknown | undefined;
7882
+ }];
7883
+ // ----- astro/jsx-a11y/no-access-key -----
7884
+ type AstroJsxA11YNoAccessKey = [] | [{
7885
+ [k: string]: unknown | undefined;
7886
+ }];
7887
+ // ----- astro/jsx-a11y/no-aria-hidden-on-focusable -----
7888
+ type AstroJsxA11YNoAriaHiddenOnFocusable = [] | [{
7889
+ [k: string]: unknown | undefined;
7890
+ }];
7891
+ // ----- astro/jsx-a11y/no-autofocus -----
7892
+ type AstroJsxA11YNoAutofocus = [] | [{
7893
+ ignoreNonDOM?: boolean;
7894
+ [k: string]: unknown | undefined;
7895
+ }];
7896
+ // ----- astro/jsx-a11y/no-distracting-elements -----
7897
+ type AstroJsxA11YNoDistractingElements = [] | [{
7898
+ elements?: ("marquee" | "blink")[];
7899
+ [k: string]: unknown | undefined;
7900
+ }];
7901
+ // ----- astro/jsx-a11y/no-interactive-element-to-noninteractive-role -----
7902
+ type AstroJsxA11YNoInteractiveElementToNoninteractiveRole = [] | [{
7903
+ [k: string]: string[] | undefined;
7904
+ }];
7905
+ // ----- astro/jsx-a11y/no-noninteractive-element-interactions -----
7906
+ type AstroJsxA11YNoNoninteractiveElementInteractions = [] | [{
7907
+ handlers?: string[];
7908
+ [k: string]: unknown | undefined;
7909
+ }];
7910
+ // ----- astro/jsx-a11y/no-noninteractive-element-to-interactive-role -----
7911
+ type AstroJsxA11YNoNoninteractiveElementToInteractiveRole = [] | [{
7912
+ [k: string]: string[] | undefined;
7913
+ }];
7914
+ // ----- astro/jsx-a11y/no-noninteractive-tabindex -----
7915
+ type AstroJsxA11YNoNoninteractiveTabindex = [] | [{
7916
+ roles?: string[];
7917
+ tags?: string[];
7918
+ [k: string]: unknown | undefined;
7919
+ }];
7920
+ // ----- astro/jsx-a11y/no-redundant-roles -----
7921
+ type AstroJsxA11YNoRedundantRoles = [] | [{
7922
+ [k: string]: string[] | undefined;
7923
+ }];
7924
+ // ----- astro/jsx-a11y/no-static-element-interactions -----
7925
+ type AstroJsxA11YNoStaticElementInteractions = [] | [{
7926
+ handlers?: string[];
7927
+ [k: string]: unknown | undefined;
7928
+ }];
7929
+ // ----- astro/jsx-a11y/prefer-tag-over-role -----
7930
+ type AstroJsxA11YPreferTagOverRole = [] | [{
7931
+ [k: string]: unknown | undefined;
7932
+ }];
7933
+ // ----- astro/jsx-a11y/role-has-required-aria-props -----
7934
+ type AstroJsxA11YRoleHasRequiredAriaProps = [] | [{
7935
+ [k: string]: unknown | undefined;
7936
+ }];
7937
+ // ----- astro/jsx-a11y/role-supports-aria-props -----
7938
+ type AstroJsxA11YRoleSupportsAriaProps = [] | [{
7939
+ [k: string]: unknown | undefined;
7940
+ }];
7941
+ // ----- astro/jsx-a11y/scope -----
7942
+ type AstroJsxA11YScope = [] | [{
7943
+ [k: string]: unknown | undefined;
7944
+ }];
7945
+ // ----- astro/jsx-a11y/tabindex-no-positive -----
7946
+ type AstroJsxA11YTabindexNoPositive = [] | [{
7947
+ [k: string]: unknown | undefined;
7948
+ }];
7443
7949
  // ----- astro/prefer-split-class-list -----
7444
7950
  type AstroPreferSplitClassList = [] | [{
7445
7951
  splitLiteral?: boolean;
@@ -8760,6 +9266,209 @@ type JsoncSpaceUnaryOps = [] | [{
8760
9266
  [k: string]: boolean | undefined;
8761
9267
  };
8762
9268
  }];
9269
+ // ----- jsx-a11y/accessible-emoji -----
9270
+ type JsxA11YAccessibleEmoji = [] | [{
9271
+ [k: string]: unknown | undefined;
9272
+ }];
9273
+ // ----- jsx-a11y/alt-text -----
9274
+ type JsxA11YAltText = [] | [{
9275
+ elements?: string[];
9276
+ img?: string[];
9277
+ object?: string[];
9278
+ area?: string[];
9279
+ "input[type=\"image\"]"?: string[];
9280
+ [k: string]: unknown | undefined;
9281
+ }];
9282
+ // ----- jsx-a11y/anchor-ambiguous-text -----
9283
+ type JsxA11YAnchorAmbiguousText = [] | [{
9284
+ words?: string[];
9285
+ [k: string]: unknown | undefined;
9286
+ }];
9287
+ // ----- jsx-a11y/anchor-has-content -----
9288
+ type JsxA11YAnchorHasContent = [] | [{
9289
+ components?: string[];
9290
+ [k: string]: unknown | undefined;
9291
+ }];
9292
+ // ----- jsx-a11y/anchor-is-valid -----
9293
+ type JsxA11YAnchorIsValid = [] | [{
9294
+ components?: string[];
9295
+ specialLink?: string[];
9296
+ aspects?: [("noHref" | "invalidHref" | "preferButton"), ...(("noHref" | "invalidHref" | "preferButton"))[]];
9297
+ [k: string]: unknown | undefined;
9298
+ }];
9299
+ // ----- jsx-a11y/aria-activedescendant-has-tabindex -----
9300
+ type JsxA11YAriaActivedescendantHasTabindex = [] | [{
9301
+ [k: string]: unknown | undefined;
9302
+ }];
9303
+ // ----- jsx-a11y/aria-props -----
9304
+ type JsxA11YAriaProps = [] | [{
9305
+ [k: string]: unknown | undefined;
9306
+ }];
9307
+ // ----- jsx-a11y/aria-proptypes -----
9308
+ type JsxA11YAriaProptypes = [] | [{
9309
+ [k: string]: unknown | undefined;
9310
+ }];
9311
+ // ----- jsx-a11y/aria-role -----
9312
+ type JsxA11YAriaRole = [] | [{
9313
+ allowedInvalidRoles?: string[];
9314
+ ignoreNonDOM?: boolean;
9315
+ [k: string]: unknown | undefined;
9316
+ }];
9317
+ // ----- jsx-a11y/aria-unsupported-elements -----
9318
+ type JsxA11YAriaUnsupportedElements = [] | [{
9319
+ [k: string]: unknown | undefined;
9320
+ }];
9321
+ // ----- jsx-a11y/autocomplete-valid -----
9322
+ type JsxA11YAutocompleteValid = [] | [{
9323
+ inputComponents?: string[];
9324
+ [k: string]: unknown | undefined;
9325
+ }];
9326
+ // ----- jsx-a11y/click-events-have-key-events -----
9327
+ type JsxA11YClickEventsHaveKeyEvents = [] | [{
9328
+ [k: string]: unknown | undefined;
9329
+ }];
9330
+ // ----- jsx-a11y/control-has-associated-label -----
9331
+ type JsxA11YControlHasAssociatedLabel = [] | [{
9332
+ labelAttributes?: string[];
9333
+ controlComponents?: string[];
9334
+ ignoreElements?: string[];
9335
+ ignoreRoles?: string[];
9336
+ depth?: number;
9337
+ [k: string]: unknown | undefined;
9338
+ }];
9339
+ // ----- jsx-a11y/heading-has-content -----
9340
+ type JsxA11YHeadingHasContent = [] | [{
9341
+ components?: string[];
9342
+ [k: string]: unknown | undefined;
9343
+ }];
9344
+ // ----- jsx-a11y/html-has-lang -----
9345
+ type JsxA11YHtmlHasLang = [] | [{
9346
+ [k: string]: unknown | undefined;
9347
+ }];
9348
+ // ----- jsx-a11y/iframe-has-title -----
9349
+ type JsxA11YIframeHasTitle = [] | [{
9350
+ [k: string]: unknown | undefined;
9351
+ }];
9352
+ // ----- jsx-a11y/img-redundant-alt -----
9353
+ type JsxA11YImgRedundantAlt = [] | [{
9354
+ components?: string[];
9355
+ words?: string[];
9356
+ [k: string]: unknown | undefined;
9357
+ }];
9358
+ // ----- jsx-a11y/interactive-supports-focus -----
9359
+ type JsxA11YInteractiveSupportsFocus = [] | [{
9360
+ tabbable?: ("button" | "checkbox" | "columnheader" | "combobox" | "grid" | "gridcell" | "link" | "listbox" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "option" | "progressbar" | "radio" | "radiogroup" | "row" | "rowheader" | "scrollbar" | "searchbox" | "slider" | "spinbutton" | "switch" | "tab" | "tablist" | "textbox" | "tree" | "treegrid" | "treeitem" | "doc-backlink" | "doc-biblioref" | "doc-glossref" | "doc-noteref")[];
9361
+ [k: string]: unknown | undefined;
9362
+ }];
9363
+ // ----- jsx-a11y/label-has-associated-control -----
9364
+ type JsxA11YLabelHasAssociatedControl = [] | [{
9365
+ labelComponents?: string[];
9366
+ labelAttributes?: string[];
9367
+ controlComponents?: string[];
9368
+ assert?: ("htmlFor" | "nesting" | "both" | "either");
9369
+ depth?: number;
9370
+ [k: string]: unknown | undefined;
9371
+ }];
9372
+ // ----- jsx-a11y/label-has-for -----
9373
+ type JsxA11YLabelHasFor = [] | [{
9374
+ components?: string[];
9375
+ required?: (("nesting" | "id") | {
9376
+ some: ("nesting" | "id")[];
9377
+ [k: string]: unknown | undefined;
9378
+ } | {
9379
+ every: ("nesting" | "id")[];
9380
+ [k: string]: unknown | undefined;
9381
+ });
9382
+ allowChildren?: boolean;
9383
+ [k: string]: unknown | undefined;
9384
+ }];
9385
+ // ----- jsx-a11y/lang -----
9386
+ type JsxA11YLang = [] | [{
9387
+ [k: string]: unknown | undefined;
9388
+ }];
9389
+ // ----- jsx-a11y/media-has-caption -----
9390
+ type JsxA11YMediaHasCaption = [] | [{
9391
+ audio?: string[];
9392
+ video?: string[];
9393
+ track?: string[];
9394
+ [k: string]: unknown | undefined;
9395
+ }];
9396
+ // ----- jsx-a11y/mouse-events-have-key-events -----
9397
+ type JsxA11YMouseEventsHaveKeyEvents = [] | [{
9398
+ hoverInHandlers?: string[];
9399
+ hoverOutHandlers?: string[];
9400
+ [k: string]: unknown | undefined;
9401
+ }];
9402
+ // ----- jsx-a11y/no-access-key -----
9403
+ type JsxA11YNoAccessKey = [] | [{
9404
+ [k: string]: unknown | undefined;
9405
+ }];
9406
+ // ----- jsx-a11y/no-aria-hidden-on-focusable -----
9407
+ type JsxA11YNoAriaHiddenOnFocusable = [] | [{
9408
+ [k: string]: unknown | undefined;
9409
+ }];
9410
+ // ----- jsx-a11y/no-autofocus -----
9411
+ type JsxA11YNoAutofocus = [] | [{
9412
+ ignoreNonDOM?: boolean;
9413
+ [k: string]: unknown | undefined;
9414
+ }];
9415
+ // ----- jsx-a11y/no-distracting-elements -----
9416
+ type JsxA11YNoDistractingElements = [] | [{
9417
+ elements?: ("marquee" | "blink")[];
9418
+ [k: string]: unknown | undefined;
9419
+ }];
9420
+ // ----- jsx-a11y/no-interactive-element-to-noninteractive-role -----
9421
+ type JsxA11YNoInteractiveElementToNoninteractiveRole = [] | [{
9422
+ [k: string]: string[] | undefined;
9423
+ }];
9424
+ // ----- jsx-a11y/no-noninteractive-element-interactions -----
9425
+ type JsxA11YNoNoninteractiveElementInteractions = [] | [{
9426
+ handlers?: string[];
9427
+ [k: string]: unknown | undefined;
9428
+ }];
9429
+ // ----- jsx-a11y/no-noninteractive-element-to-interactive-role -----
9430
+ type JsxA11YNoNoninteractiveElementToInteractiveRole = [] | [{
9431
+ [k: string]: string[] | undefined;
9432
+ }];
9433
+ // ----- jsx-a11y/no-noninteractive-tabindex -----
9434
+ type JsxA11YNoNoninteractiveTabindex = [] | [{
9435
+ roles?: string[];
9436
+ tags?: string[];
9437
+ [k: string]: unknown | undefined;
9438
+ }];
9439
+ // ----- jsx-a11y/no-onchange -----
9440
+ type JsxA11YNoOnchange = [] | [{
9441
+ [k: string]: unknown | undefined;
9442
+ }];
9443
+ // ----- jsx-a11y/no-redundant-roles -----
9444
+ type JsxA11YNoRedundantRoles = [] | [{
9445
+ [k: string]: string[] | undefined;
9446
+ }];
9447
+ // ----- jsx-a11y/no-static-element-interactions -----
9448
+ type JsxA11YNoStaticElementInteractions = [] | [{
9449
+ handlers?: string[];
9450
+ [k: string]: unknown | undefined;
9451
+ }];
9452
+ // ----- jsx-a11y/prefer-tag-over-role -----
9453
+ type JsxA11YPreferTagOverRole = [] | [{
9454
+ [k: string]: unknown | undefined;
9455
+ }];
9456
+ // ----- jsx-a11y/role-has-required-aria-props -----
9457
+ type JsxA11YRoleHasRequiredAriaProps = [] | [{
9458
+ [k: string]: unknown | undefined;
9459
+ }];
9460
+ // ----- jsx-a11y/role-supports-aria-props -----
9461
+ type JsxA11YRoleSupportsAriaProps = [] | [{
9462
+ [k: string]: unknown | undefined;
9463
+ }];
9464
+ // ----- jsx-a11y/scope -----
9465
+ type JsxA11YScope = [] | [{
9466
+ [k: string]: unknown | undefined;
9467
+ }];
9468
+ // ----- jsx-a11y/tabindex-no-positive -----
9469
+ type JsxA11YTabindexNoPositive = [] | [{
9470
+ [k: string]: unknown | undefined;
9471
+ }];
8763
9472
  // ----- jsx-quotes -----
8764
9473
  type JsxQuotes = [] | [("prefer-single" | "prefer-double")];
8765
9474
  // ----- key-spacing -----
@@ -9147,6 +9856,64 @@ type LinesBetweenClassMembers = [] | [({
9147
9856
  type LogicalAssignmentOperators = (([] | ["always"] | ["always", {
9148
9857
  enforceForIfStatements?: boolean;
9149
9858
  }] | ["never"]) & unknown[]);
9859
+ // ----- markdown/fenced-code-language -----
9860
+ type MarkdownFencedCodeLanguage = [] | [{
9861
+ required?: string[];
9862
+ }];
9863
+ // ----- markdown/heading-increment -----
9864
+ type MarkdownHeadingIncrement = [] | [{
9865
+ frontmatterTitle?: string;
9866
+ }];
9867
+ // ----- markdown/no-duplicate-definitions -----
9868
+ type MarkdownNoDuplicateDefinitions = [] | [{
9869
+ allowDefinitions?: string[];
9870
+ allowFootnoteDefinitions?: string[];
9871
+ }];
9872
+ // ----- markdown/no-duplicate-headings -----
9873
+ type MarkdownNoDuplicateHeadings = [] | [{
9874
+ checkSiblingsOnly?: boolean;
9875
+ }];
9876
+ // ----- markdown/no-empty-definitions -----
9877
+ type MarkdownNoEmptyDefinitions = [] | [{
9878
+ allowDefinitions?: string[];
9879
+ allowFootnoteDefinitions?: string[];
9880
+ checkFootnoteDefinitions?: boolean;
9881
+ }];
9882
+ // ----- markdown/no-html -----
9883
+ type MarkdownNoHtml = [] | [{
9884
+ allowed?: string[];
9885
+ allowedIgnoreCase?: boolean;
9886
+ }];
9887
+ // ----- markdown/no-missing-atx-heading-space -----
9888
+ type MarkdownNoMissingAtxHeadingSpace = [] | [{
9889
+ checkClosedHeadings?: boolean;
9890
+ }];
9891
+ // ----- markdown/no-missing-label-refs -----
9892
+ type MarkdownNoMissingLabelRefs = [] | [{
9893
+ allowLabels?: string[];
9894
+ }];
9895
+ // ----- markdown/no-missing-link-fragments -----
9896
+ type MarkdownNoMissingLinkFragments = [] | [{
9897
+ ignoreCase?: boolean;
9898
+ allowPattern?: string;
9899
+ }];
9900
+ // ----- markdown/no-multiple-h1 -----
9901
+ type MarkdownNoMultipleH1 = [] | [{
9902
+ frontmatterTitle?: string;
9903
+ }];
9904
+ // ----- markdown/no-space-in-emphasis -----
9905
+ type MarkdownNoSpaceInEmphasis = [] | [{
9906
+ checkStrikethrough?: boolean;
9907
+ }];
9908
+ // ----- markdown/no-unused-definitions -----
9909
+ type MarkdownNoUnusedDefinitions = [] | [{
9910
+ allowDefinitions?: string[];
9911
+ allowFootnoteDefinitions?: string[];
9912
+ }];
9913
+ // ----- markdown/table-column-count -----
9914
+ type MarkdownTableColumnCount = [] | [{
9915
+ checkMissingCells?: boolean;
9916
+ }];
9150
9917
  // ----- max-classes-per-file -----
9151
9918
  type MaxClassesPerFile = [] | [(number | {
9152
9919
  ignoreExpressions?: boolean;
@@ -11775,6 +12542,7 @@ type PnpmJsonValidCatalog = [] | [{
11775
12542
  // ----- pnpm/yaml-no-duplicate-catalog-item -----
11776
12543
  type PnpmYamlNoDuplicateCatalogItem = [] | [{
11777
12544
  allow?: string[];
12545
+ checkDuplicates?: ("name-only" | "exact-version");
11778
12546
  }];
11779
12547
  // ----- prefer-arrow-callback -----
11780
12548
  type PreferArrowCallback = [] | [{
@@ -12321,6 +13089,50 @@ type StylisticCurlyNewline = [] | [(("always" | "never") | {
12321
13089
  type StylisticDotLocation = [] | [("object" | "property")];
12322
13090
  // ----- stylistic/eol-last -----
12323
13091
  type StylisticEolLast = [] | [("always" | "never" | "unix" | "windows")];
13092
+ // ----- stylistic/exp-list-style -----
13093
+ type StylisticExpListStyle = [] | [{
13094
+ singleLine?: _StylisticExpListStyle_SingleLineConfig;
13095
+ multiLine?: _StylisticExpListStyle_MultiLineConfig;
13096
+ overrides?: {
13097
+ "[]"?: _StylisticExpListStyle_BaseConfig;
13098
+ "{}"?: _StylisticExpListStyle_BaseConfig;
13099
+ "<>"?: _StylisticExpListStyle_BaseConfig;
13100
+ "()"?: _StylisticExpListStyle_BaseConfig;
13101
+ ArrayExpression?: _StylisticExpListStyle_BaseConfig;
13102
+ ArrayPattern?: _StylisticExpListStyle_BaseConfig;
13103
+ ArrowFunctionExpression?: _StylisticExpListStyle_BaseConfig;
13104
+ CallExpression?: _StylisticExpListStyle_BaseConfig;
13105
+ ExportNamedDeclaration?: _StylisticExpListStyle_BaseConfig;
13106
+ FunctionDeclaration?: _StylisticExpListStyle_BaseConfig;
13107
+ FunctionExpression?: _StylisticExpListStyle_BaseConfig;
13108
+ ImportDeclaration?: _StylisticExpListStyle_BaseConfig;
13109
+ ImportAttributes?: _StylisticExpListStyle_BaseConfig;
13110
+ NewExpression?: _StylisticExpListStyle_BaseConfig;
13111
+ ObjectExpression?: _StylisticExpListStyle_BaseConfig;
13112
+ ObjectPattern?: _StylisticExpListStyle_BaseConfig;
13113
+ TSDeclareFunction?: _StylisticExpListStyle_BaseConfig;
13114
+ TSFunctionType?: _StylisticExpListStyle_BaseConfig;
13115
+ TSInterfaceBody?: _StylisticExpListStyle_BaseConfig;
13116
+ TSEnumBody?: _StylisticExpListStyle_BaseConfig;
13117
+ TSTupleType?: _StylisticExpListStyle_BaseConfig;
13118
+ TSTypeLiteral?: _StylisticExpListStyle_BaseConfig;
13119
+ TSTypeParameterDeclaration?: _StylisticExpListStyle_BaseConfig;
13120
+ TSTypeParameterInstantiation?: _StylisticExpListStyle_BaseConfig;
13121
+ JSONArrayExpression?: _StylisticExpListStyle_BaseConfig;
13122
+ JSONObjectExpression?: _StylisticExpListStyle_BaseConfig;
13123
+ };
13124
+ }];
13125
+ interface _StylisticExpListStyle_SingleLineConfig {
13126
+ spacing?: ("always" | "never");
13127
+ maxItems?: number;
13128
+ }
13129
+ interface _StylisticExpListStyle_MultiLineConfig {
13130
+ minItems?: number;
13131
+ }
13132
+ interface _StylisticExpListStyle_BaseConfig {
13133
+ singleLine?: _StylisticExpListStyle_SingleLineConfig;
13134
+ multiline?: _StylisticExpListStyle_MultiLineConfig;
13135
+ }
12324
13136
  // ----- stylistic/function-call-argument-newline -----
12325
13137
  type StylisticFunctionCallArgumentNewline = [] | [("always" | "never" | "consistent")];
12326
13138
  // ----- stylistic/function-call-spacing -----
@@ -12390,7 +13202,11 @@ type StylisticIndent = [] | [("tab" | number)] | [("tab" | number), {
12390
13202
  ObjectExpression?: (number | ("first" | "off"));
12391
13203
  ImportDeclaration?: (number | ("first" | "off"));
12392
13204
  flatTernaryExpressions?: boolean;
12393
- offsetTernaryExpressions?: boolean;
13205
+ offsetTernaryExpressions?: (boolean | {
13206
+ CallExpression?: boolean;
13207
+ AwaitExpression?: boolean;
13208
+ NewExpression?: boolean;
13209
+ });
12394
13210
  offsetTernaryExpressionsOffsetCallExpressions?: boolean;
12395
13211
  ignoredNodes?: string[];
12396
13212
  ignoreComments?: boolean;
@@ -13191,6 +14007,7 @@ type StylisticObjectCurlySpacing = [] | [("always" | "never")] | [("always" | "n
13191
14007
  TSInterfaceBody?: ("always" | "never");
13192
14008
  TSEnumBody?: ("always" | "never");
13193
14009
  };
14010
+ emptyObjects?: ("ignore" | "always" | "never");
13194
14011
  }];
13195
14012
  // ----- stylistic/object-property-newline -----
13196
14013
  type StylisticObjectPropertyNewline = [] | [{
@@ -16612,7 +17429,7 @@ type Yoda = [] | [("always" | "never")] | [("always" | "never"), {
16612
17429
  }];
16613
17430
 
16614
17431
  // Names of all the configs
16615
- type ConfigNames = "zayne/js-eslint/setup" | "zayne/js-eslint/recommended" | "zayne/js-eslint/rules" | "zayne/unicorn/recommended" | "zayne/unicorn/rules" | "zayne/ts-eslint/setup" | "zayne/ts-eslint/setup/parser" | "zayne/ts-eslint/setup/parser-type-aware" | "zayne/ts-eslint/recommended-strict-type-checked" | "zayne/ts-eslint/recommended-stylistic-type-checked" | "zayne/ts-eslint/rules-type-checked" | "zayne/perfectionist/rules" | "zayne/stylistic/rules" | "zayne/import/setup" | "zayne/import/recommended" | "zayne/import/rules" | "zayne/jsdoc/rules" | "zayne/jsonc/setup" | "zayne/jsonc/rules" | "zayne/react/setup" | "zayne/react/official/rules" | "zayne/react/unofficial/strict-type-checked" | "zayne/react/unofficial/rules" | "zayne/react/official/compiler/rules" | "zayne/react/refresh/rules" | "zayne/react/you-might-not-need-an-effect/recommended" | "zayne/react/you-might-not-need-an-effect/rules" | "zayne/react/nextjs/recommended" | "zayne/react/nextjs/rules" | "zayne/node/recommended" | "zayne/node/rules" | "zayne/node/security/recommended" | "zayne/tanstack-query/recommended" | "zayne/tanstack-query/rules" | "zayne/tanstack-router/recommended" | "zayne/tanstack-router/rules" | "zayne/eslint-comments/rules" | "zayne/toml/setup" | "zayne/toml/rules" | "zayne/yaml/setup" | "zayne/yaml/rules" | "zayne/vue/setup" | "zayne/vue/setup/parser" | "zayne/vue/recommended" | "zayne/vue/rules" | "zayne/vue/disables" | "zayne/solid/setup" | "zayne/solid/recommended" | "zayne/solid/rules" | "zayne/pnpm/setup" | "zayne/pnpm/rules/package-json" | "zayne/pnpm/rules/pnpm-workspace-yaml" | "zayne/astro/setup" | "zayne/astro/recommended" | "zayne/astro/rules" | "zayne/depend/setup" | "zayne/depend/recommended" | "zayne/depend/recommended/package-json" | "zayne/tailwindcss-better/setup" | "zayne/tailwindcss-better/recommended" | "zayne/tailwindcss-better/rules" | "zayne/expo/recommended" | "zayne/expo/recommended" | "zayne/expo/rules";
17432
+ type ConfigNames = "zayne/js-eslint/setup" | "zayne/js-eslint/recommended" | "zayne/js-eslint/rules" | "zayne/unicorn/recommended" | "zayne/unicorn/rules" | "zayne/ts-eslint/setup" | "zayne/ts-eslint/parser" | "zayne/ts-eslint/parser-type-aware" | "zayne/ts-eslint/recommended-strict-type-checked" | "zayne/ts-eslint/rules-type-checked" | "zayne/ts-eslint/recommended-stylistic-type-checked" | "zayne/typescript/erasable-syntax-only/recommended" | "zayne/perfectionist/rules" | "zayne/stylistic/rules" | "zayne/import/setup" | "zayne/import/recommended" | "zayne/import/rules" | "zayne/jsdoc/rules" | "zayne/jsonc/setup" | "zayne/jsonc/parser" | "zayne/jsonc/rules" | "zayne/react/setup" | "zayne/react/official/rules" | "zayne/react/unofficial/strict-type-checked" | "zayne/react/unofficial/rules" | "zayne/react/official/compiler/rules" | "zayne/react/refresh/rules" | "zayne/react/you-might-not-need-an-effect/recommended" | "zayne/react/you-might-not-need-an-effect/rules" | "zayne/react/nextjs/recommended" | "zayne/react/nextjs/rules" | "zayne/node/recommended" | "zayne/node/rules" | "zayne/node/security/recommended" | "zayne/tanstack-query/recommended" | "zayne/tanstack-query/rules" | "zayne/tanstack-router/recommended" | "zayne/tanstack-router/rules" | "zayne/eslint-comments/rules" | "zayne/toml/setup" | "zayne/toml/parser" | "zayne/toml/rules" | "zayne/yaml/setup" | "zayne/yaml/parser" | "zayne/yaml/rules" | "zayne/yaml/disables" | "zayne/vue/setup" | "zayne/vue/parser" | "zayne/vue/recommended" | "zayne/vue/rules" | "zayne/vue/disables" | "zayne/solid/setup" | "zayne/solid/recommended" | "zayne/solid/rules" | "zayne/pnpm/setup" | "zayne/pnpm/package-json/rules" | "zayne/pnpm/pnpm-workspace-yaml/rules" | "zayne/astro/setup" | "zayne/astro/parser" | "zayne/astro/recommended" | "zayne/astro/rules" | "zayne/depend/setup" | "zayne/depend/recommended" | "zayne/depend/recommended/package-json" | "zayne/tailwindcss-better/setup" | "zayne/tailwindcss-better/recommended" | "zayne/tailwindcss-better/rules" | "zayne/expo/recommended" | "zayne/expo/recommended" | "zayne/expo/rules" | "zayne/jsx/setup" | "zayne/jsx/a11y/setup" | "zayne/jsx/a11y/recommended" | "zayne/jsx/a11y/rules" | "zayne/markdown/setup" | "zayne/markdown/parser" | "zayne/markdown/processor" | "zayne/markdown/recommended" | "zayne/markdown/rules" | "zayne/markdown/disables";
16616
17433
  //#endregion
16617
17434
  //#region src/types/eslint-config-types/parser-options.d.ts
16618
17435
  // Some types copied from `@types/eslint` `Linter.ParserOptions`
@@ -16779,7 +17596,7 @@ interface LinterOptions extends Linter.LinterOptions {
16779
17596
  *
16780
17597
  * @see [Configuration Files (New)](https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new)
16781
17598
  */
16782
- interface FlatESLintConfigItem<TRules extends Linter.Config["rules"] = Linter.Config["rules"]> extends Linter.Config<TRules> {
17599
+ interface FlatESLintConfigItem extends Linter.Config<Partial<Linter.RulesRecord>> {
16783
17600
  /**
16784
17601
  * An array of glob patterns indicating the files that the configuration object should apply to. If not specified, the configuration object applies to all files.
16785
17602
  *
@@ -16825,7 +17642,7 @@ interface FlatESLintConfigItem<TRules extends Linter.Config["rules"] = Linter.Co
16825
17642
  *
16826
17643
  * @see [Configuring rules](https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new#configuring-rules)
16827
17644
  */
16828
- rules?: TRules;
17645
+ rules?: Record<string, Linter.RuleEntry<any> | undefined>;
16829
17646
 
16830
17647
  /**
16831
17648
  * An object containing name-value pairs of information that should be available to all rules.
@@ -16838,8 +17655,14 @@ interface FlatESLintConfigItem<TRules extends Linter.Config["rules"] = Linter.Co
16838
17655
  //#endregion
16839
17656
  //#region src/types/interfaces.d.ts
16840
17657
  type TypedRules = Omit<Rules, "vue/multiline-ternary">;
16841
- interface TypedFlatConfigItem extends FlatESLintConfigItem<Partial<Linter.RulesRecord> & TypedRules> {
17658
+ /**
17659
+ * An updated version of ESLint's `Linter.Config`, which provides autocompletion
17660
+ * for `rules` and relaxes type limitations for `plugins`, because
17661
+ * many plugins still lack proper type definitions.
17662
+ */
17663
+ interface TypedFlatConfigItem extends FlatESLintConfigItem {
16842
17664
  plugins?: Record<string, any>;
17665
+ rules?: Record<string, Linter.RuleEntry | undefined> & TypedRules;
16843
17666
  }
16844
17667
  interface OptionsOverrides {
16845
17668
  overrides?: TypedFlatConfigItem["rules"];
@@ -16880,6 +17703,8 @@ interface OptionsComponentExts {
16880
17703
  * @default []
16881
17704
  */
16882
17705
  componentExts?: string[];
17706
+ }
17707
+ interface OptionsComponentExtsTypeAware {
16883
17708
  /**
16884
17709
  * Additional extensions for components that should be type aware.
16885
17710
  * @example ['vue']
@@ -16922,7 +17747,16 @@ interface OptionsTypeScriptWithTypes {
16922
17747
  */
16923
17748
  tsconfigPath?: true | string | string[] | null;
16924
17749
  }
16925
- type OptionsTypescript = OptionsComponentExts & (OptionsTypeScriptParserOptions | OptionsTypeScriptWithTypes);
17750
+ interface OptionsTypeScriptErasableOnly {
17751
+ /**
17752
+ * Enable erasable syntax only rules.
17753
+ *
17754
+ * @see https://github.com/JoshuaKGoldberg/eslint-plugin-erasable-syntax-only
17755
+ * @default false
17756
+ */
17757
+ erasableOnly?: boolean;
17758
+ }
17759
+ type OptionsTypescript = (OptionsComponentExts & OptionsComponentExtsTypeAware & OptionsTypeScriptErasableOnly) & (OptionsTypeScriptParserOptions | OptionsTypeScriptWithTypes);
16926
17760
  interface OptionsHasTypeScript {
16927
17761
  /**
16928
17762
  * Enable typescript rules
@@ -16940,6 +17774,9 @@ interface OptionsReact {
16940
17774
  compiler?: boolean | OptionsOverrides;
16941
17775
  /**
16942
17776
  * Enable nextjs rules.
17777
+ *
17778
+ * Requires installing:
17779
+ * - `@next/eslint-plugin-next`
16943
17780
  * @default auto-detect-from-dependencies
16944
17781
  */
16945
17782
  nextjs?: boolean | OptionsOverrides;
@@ -16959,6 +17796,17 @@ interface OptionsReact {
16959
17796
  */
16960
17797
  youMightNotNeedAnEffect?: boolean | OptionsOverrides;
16961
17798
  }
17799
+ interface OptionsJSX {
17800
+ /**
17801
+ * Enable JSX accessibility rules.
17802
+ *
17803
+ * Requires installing:
17804
+ * - `eslint-plugin-jsx-a11y`
17805
+ *
17806
+ * @default false
17807
+ */
17808
+ a11y?: boolean | OptionsOverrides;
17809
+ }
16962
17810
  interface OptionsStylistic {
16963
17811
  indent?: number;
16964
17812
  quotes?: "backtick" | "double" | "single";
@@ -16971,11 +17819,17 @@ interface OptionsStylistic {
16971
17819
  interface OptionsTanstack {
16972
17820
  /**
16973
17821
  * Enable tanstack query linting
17822
+ *
17823
+ * Requires installing:
17824
+ * - `@tanstack/eslint-plugin-query`
16974
17825
  * @default false
16975
17826
  */
16976
17827
  query?: boolean | OptionsOverrides;
16977
17828
  /**
16978
17829
  * Enable tanstack router linting
17830
+ *
17831
+ * Requires installing:
17832
+ * - `@tanstack/eslint-plugin-router`
16979
17833
  * @default false
16980
17834
  */
16981
17835
  router?: boolean | OptionsOverrides;
@@ -17033,7 +17887,7 @@ interface OptionsNode {
17033
17887
  */
17034
17888
  security?: boolean | OptionsOverrides;
17035
17889
  }
17036
- interface OptionsConfig extends OptionsComponentExts {
17890
+ interface OptionsConfig extends OptionsComponentExts, OptionsComponentExtsTypeAware {
17037
17891
  /**
17038
17892
  * Enable ASTRO support.
17039
17893
  *
@@ -17102,16 +17956,17 @@ interface OptionsConfig extends OptionsComponentExts {
17102
17956
  /**
17103
17957
  * Enable JSX related rules.
17104
17958
  *
17105
- * Currently only stylistic rules are included.
17959
+ * Pass in an object to enable JSX accessibility rules.
17960
+ *
17106
17961
  * @default true
17107
17962
  */
17108
- jsx?: boolean;
17963
+ jsx?: (OptionsJSX & OptionsOverrides) | boolean;
17109
17964
  /**
17110
17965
  * Enable linting for **code snippets** in Markdown.
17111
17966
  *
17112
17967
  * @default true
17113
17968
  */
17114
- markdown?: boolean | OptionsOverrides;
17969
+ markdown?: (OptionsComponentExts & OptionsFiles & OptionsOverrides) | boolean;
17115
17970
  /**
17116
17971
  * Enable linting for node.
17117
17972
  *
@@ -17199,8 +18054,9 @@ interface OptionsConfig extends OptionsComponentExts {
17199
18054
  /**
17200
18055
  * Enable TanStack Query support.
17201
18056
  *
17202
- * Might require installing the following:
18057
+ * May require installing the following:
17203
18058
  * - `@tanstack/eslint-plugin-query`
18059
+ * - `@tanstack/eslint-plugin-router`
17204
18060
  * @default false
17205
18061
  */
17206
18062
  tanstack?: (OptionsOverrides & OptionsTanstack) | boolean;
@@ -17220,7 +18076,7 @@ interface OptionsConfig extends OptionsComponentExts {
17220
18076
  * Pass `true` or an options object with a `tsconfigPath` property to enable type aware rules.
17221
18077
  * @default auto-detect based on the dependencies
17222
18078
  */
17223
- typescript?: (OptionsFiles & OptionsOverrides & OptionsStylistic & OptionsTypescript) | boolean;
18079
+ typescript?: (OptionsFiles & OptionsOverrides & OptionsTypescript & Pick<OptionsStylistic, "stylistic">) | boolean;
17224
18080
  /**
17225
18081
  * Options for eslint-plugin-unicorn.
17226
18082
  * @default true
@@ -17252,7 +18108,7 @@ interface OptionsConfig extends OptionsComponentExts {
17252
18108
  //#region src/types/utils.d.ts
17253
18109
  type Awaitable<T> = Promise<T> | T;
17254
18110
  type ExtractOptions<TUnion> = Extract<TUnion, object>;
17255
- type Prettify<TObject> = NonNullable<unknown> & { [Key in keyof TObject]: TObject[Key] };
18111
+ type Prettify<TObject$1> = NonNullable<unknown> & { [Key in keyof TObject$1]: TObject$1[Key] };
17256
18112
  //#endregion
17257
18113
  //#region src/configs/astro.d.ts
17258
18114
  declare const astro: (options?: ExtractOptions<OptionsConfig["astro"]>) => Promise<TypedFlatConfigItem[]>;
@@ -17282,6 +18138,12 @@ declare const jsdoc: (options?: ExtractOptions<OptionsConfig["jsdoc"]>) => Promi
17282
18138
  //#region src/configs/jsonc.d.ts
17283
18139
  declare const jsonc: (options?: ExtractOptions<OptionsConfig["jsonc"]>) => Promise<TypedFlatConfigItem[]>;
17284
18140
  //#endregion
18141
+ //#region src/configs/jsx.d.ts
18142
+ declare const jsx: (options?: ExtractOptions<OptionsConfig["jsx"]>) => Promise<TypedFlatConfigItem[]>;
18143
+ //#endregion
18144
+ //#region src/configs/markdown.d.ts
18145
+ declare const markdown: (options?: ExtractOptions<OptionsConfig["markdown"]>) => Promise<TypedFlatConfigItem[]>;
18146
+ //#endregion
17285
18147
  //#region src/configs/node.d.ts
17286
18148
  declare const node: (options?: ExtractOptions<OptionsConfig["node"]>) => Promise<TypedFlatConfigItem[]>;
17287
18149
  //#endregion
@@ -17397,6 +18259,7 @@ declare const GLOB_ASTRO = "**/*.astro";
17397
18259
  declare const GLOB_ASTRO_TS = "**/*.astro/*.ts";
17398
18260
  declare const GLOB_GRAPHQL = "**/*.{g,graph}ql";
17399
18261
  declare const GLOB_MARKDOWN_CODE = "**/*.md/**/*.?([cm])[jt]s?(x)";
18262
+ declare const GLOB_MARKDOWN_JSON = "**/*.md/**/*.json?({c,5})";
17400
18263
  declare const GLOB_TESTS: ["**/__tests__/**/*.?([cm])[jt]s?(x)", "**/*.spec.?([cm])[jt]s?(x)", "**/*.test.?([cm])[jt]s?(x)", "**/*.bench.?([cm])[jt]s?(x)", "**/*.benchmark.?([cm])[jt]s?(x)"] & {
17401
18264
  $inferUnion: "**/__tests__/**/*.?([cm])[jt]s?(x)" | "**/*.spec.?([cm])[jt]s?(x)" | "**/*.test.?([cm])[jt]s?(x)" | "**/*.bench.?([cm])[jt]s?(x)" | "**/*.benchmark.?([cm])[jt]s?(x)";
17402
18265
  };
@@ -17513,6 +18376,31 @@ declare const isPackageInScope: (name: string) => boolean;
17513
18376
  */
17514
18377
  declare const ensurePackages: (packages: Array<string | undefined>) => Promise<void>;
17515
18378
  declare const resolveOptions: <TObject>(option: boolean | TObject | undefined) => TObject;
18379
+ declare const parserPlain: {
18380
+ meta: {
18381
+ name: string;
18382
+ };
18383
+ parseForESLint: (code: string) => {
18384
+ ast: {
18385
+ body: never[];
18386
+ comments: never[];
18387
+ loc: {
18388
+ end: number;
18389
+ start: number;
18390
+ };
18391
+ range: number[];
18392
+ tokens: never[];
18393
+ type: string;
18394
+ };
18395
+ scopeManager: null;
18396
+ services: {
18397
+ isPlain: boolean;
18398
+ };
18399
+ visitorKeys: {
18400
+ Program: never[];
18401
+ };
18402
+ };
18403
+ };
17516
18404
  //#endregion
17517
- export { Awaitable, type ConfigNames, ExtractOptions, GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLES, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, OptionsAppType, OptionsComponentExts, OptionsConfig, OptionsFiles, OptionsHasJsx, OptionsHasTypeScript, OptionsNode, OptionsOverrides, OptionsReact, OptionsRegExp, OptionsStylistic, OptionsTailwindCSS, OptionsTailwindCSSBetter, OptionsTanstack, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsVue, Prettify, type Rules, TypedFlatConfigItem, allowedNextJsExportNames, allowedReactRouterExportNames, astro, combine, comments, defaultPluginRenameMap, depend, ensurePackages, expo, gitIgnores, ignores, imports, interopDefault, isObject, isPackageInScope, javascript, jsdoc, jsonc, node, overrideConfigs, perfectionist, pnpm, react, renamePluginInConfigs, renamePlugins, renameRules, resolveOptions, solid, sortPackageJson, sortTsconfig, stylistic, tailwindcssBetter, tanstack, toml, typescript, unicorn, vue, yaml, zayne };
18405
+ export { Awaitable, type ConfigNames, ExtractOptions, GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_MARKDOWN_JSON, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLES, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, OptionsAppType, OptionsComponentExts, OptionsComponentExtsTypeAware, OptionsConfig, OptionsFiles, OptionsHasJsx, OptionsHasTypeScript, OptionsJSX, OptionsNode, OptionsOverrides, OptionsReact, OptionsRegExp, OptionsStylistic, OptionsTailwindCSS, OptionsTailwindCSSBetter, OptionsTanstack, OptionsTypeScriptErasableOnly, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsVue, Prettify, type Rules, TypedFlatConfigItem, allowedNextJsExportNames, allowedReactRouterExportNames, astro, combine, comments, defaultPluginRenameMap, depend, ensurePackages, expo, gitIgnores, ignores, imports, interopDefault, isObject, isPackageInScope, javascript, jsdoc, jsonc, jsx, markdown, node, overrideConfigs, parserPlain, perfectionist, pnpm, react, renamePluginInConfigs, renamePlugins, renameRules, resolveOptions, solid, sortPackageJson, sortTsconfig, stylistic, tailwindcssBetter, tanstack, toml, typescript, unicorn, vue, yaml, zayne };
17518
18406
  //# sourceMappingURL=index.d.ts.map