import { Linter } from 'eslint';
import { FlatGitignoreOptions } from 'eslint-config-flat-gitignore';
import { FlatConfigComposer } from 'eslint-flat-config-utils';

interface RuleOptions {
	/**
	 * Enforce getter and setter pairs in objects and classes
	 * @see https://eslint.org/docs/latest/rules/accessor-pairs
	 */
	'accessor-pairs'?: Linter.RuleEntry<AccessorPairs>
	/**
	 * Enforce linebreaks after opening and before closing array brackets
	 * @see https://eslint.org/docs/latest/rules/array-bracket-newline
	 * @deprecated
	 */
	'array-bracket-newline'?: Linter.RuleEntry<ArrayBracketNewline>
	/**
	 * Enforce consistent spacing inside array brackets
	 * @see https://eslint.org/docs/latest/rules/array-bracket-spacing
	 * @deprecated
	 */
	'array-bracket-spacing'?: Linter.RuleEntry<ArrayBracketSpacing>
	/**
	 * Enforce `return` statements in callbacks of array methods
	 * @see https://eslint.org/docs/latest/rules/array-callback-return
	 */
	'array-callback-return'?: Linter.RuleEntry<ArrayCallbackReturn>
	/**
	 * Enforce line breaks after each array element
	 * @see https://eslint.org/docs/latest/rules/array-element-newline
	 * @deprecated
	 */
	'array-element-newline'?: Linter.RuleEntry<ArrayElementNewline>
	/**
	 * Require braces around arrow function bodies
	 * @see https://eslint.org/docs/latest/rules/arrow-body-style
	 */
	'arrow-body-style'?: Linter.RuleEntry<ArrowBodyStyle>
	/**
	 * Require parentheses around arrow function arguments
	 * @see https://eslint.org/docs/latest/rules/arrow-parens
	 * @deprecated
	 */
	'arrow-parens'?: Linter.RuleEntry<ArrowParens>
	/**
	 * Enforce consistent spacing before and after the arrow in arrow functions
	 * @see https://eslint.org/docs/latest/rules/arrow-spacing
	 * @deprecated
	 */
	'arrow-spacing'?: Linter.RuleEntry<ArrowSpacing>
	/**
	 * apply `jsx-a11y/alt-text` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/alt-text/
	 */
	'astro/jsx-a11y/alt-text'?: Linter.RuleEntry<AstroJsxA11YAltText>
	/**
	 * apply `jsx-a11y/anchor-ambiguous-text` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/anchor-ambiguous-text/
	 */
	'astro/jsx-a11y/anchor-ambiguous-text'?: Linter.RuleEntry<AstroJsxA11YAnchorAmbiguousText>
	/**
	 * apply `jsx-a11y/anchor-has-content` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/anchor-has-content/
	 */
	'astro/jsx-a11y/anchor-has-content'?: Linter.RuleEntry<AstroJsxA11YAnchorHasContent>
	/**
	 * apply `jsx-a11y/anchor-is-valid` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/anchor-is-valid/
	 */
	'astro/jsx-a11y/anchor-is-valid'?: Linter.RuleEntry<AstroJsxA11YAnchorIsValid>
	/**
	 * apply `jsx-a11y/aria-activedescendant-has-tabindex` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-activedescendant-has-tabindex/
	 */
	'astro/jsx-a11y/aria-activedescendant-has-tabindex'?: Linter.RuleEntry<AstroJsxA11YAriaActivedescendantHasTabindex>
	/**
	 * apply `jsx-a11y/aria-props` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-props/
	 */
	'astro/jsx-a11y/aria-props'?: Linter.RuleEntry<AstroJsxA11YAriaProps>
	/**
	 * apply `jsx-a11y/aria-proptypes` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-proptypes/
	 */
	'astro/jsx-a11y/aria-proptypes'?: Linter.RuleEntry<AstroJsxA11YAriaProptypes>
	/**
	 * apply `jsx-a11y/aria-role` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-role/
	 */
	'astro/jsx-a11y/aria-role'?: Linter.RuleEntry<AstroJsxA11YAriaRole>
	/**
	 * apply `jsx-a11y/aria-unsupported-elements` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-unsupported-elements/
	 */
	'astro/jsx-a11y/aria-unsupported-elements'?: Linter.RuleEntry<AstroJsxA11YAriaUnsupportedElements>
	/**
	 * apply `jsx-a11y/autocomplete-valid` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/autocomplete-valid/
	 */
	'astro/jsx-a11y/autocomplete-valid'?: Linter.RuleEntry<AstroJsxA11YAutocompleteValid>
	/**
	 * apply `jsx-a11y/click-events-have-key-events` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/click-events-have-key-events/
	 */
	'astro/jsx-a11y/click-events-have-key-events'?: Linter.RuleEntry<AstroJsxA11YClickEventsHaveKeyEvents>
	/**
	 * apply `jsx-a11y/control-has-associated-label` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/control-has-associated-label/
	 */
	'astro/jsx-a11y/control-has-associated-label'?: Linter.RuleEntry<AstroJsxA11YControlHasAssociatedLabel>
	/**
	 * apply `jsx-a11y/heading-has-content` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/heading-has-content/
	 */
	'astro/jsx-a11y/heading-has-content'?: Linter.RuleEntry<AstroJsxA11YHeadingHasContent>
	/**
	 * apply `jsx-a11y/html-has-lang` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/html-has-lang/
	 */
	'astro/jsx-a11y/html-has-lang'?: Linter.RuleEntry<AstroJsxA11YHtmlHasLang>
	/**
	 * apply `jsx-a11y/iframe-has-title` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/iframe-has-title/
	 */
	'astro/jsx-a11y/iframe-has-title'?: Linter.RuleEntry<AstroJsxA11YIframeHasTitle>
	/**
	 * apply `jsx-a11y/img-redundant-alt` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/img-redundant-alt/
	 */
	'astro/jsx-a11y/img-redundant-alt'?: Linter.RuleEntry<AstroJsxA11YImgRedundantAlt>
	/**
	 * apply `jsx-a11y/interactive-supports-focus` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/interactive-supports-focus/
	 */
	'astro/jsx-a11y/interactive-supports-focus'?: Linter.RuleEntry<AstroJsxA11YInteractiveSupportsFocus>
	/**
	 * apply `jsx-a11y/label-has-associated-control` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/label-has-associated-control/
	 */
	'astro/jsx-a11y/label-has-associated-control'?: Linter.RuleEntry<AstroJsxA11YLabelHasAssociatedControl>
	/**
	 * apply `jsx-a11y/lang` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/lang/
	 */
	'astro/jsx-a11y/lang'?: Linter.RuleEntry<AstroJsxA11YLang>
	/**
	 * apply `jsx-a11y/media-has-caption` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/media-has-caption/
	 */
	'astro/jsx-a11y/media-has-caption'?: Linter.RuleEntry<AstroJsxA11YMediaHasCaption>
	/**
	 * apply `jsx-a11y/mouse-events-have-key-events` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/mouse-events-have-key-events/
	 */
	'astro/jsx-a11y/mouse-events-have-key-events'?: Linter.RuleEntry<AstroJsxA11YMouseEventsHaveKeyEvents>
	/**
	 * apply `jsx-a11y/no-access-key` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-access-key/
	 */
	'astro/jsx-a11y/no-access-key'?: Linter.RuleEntry<AstroJsxA11YNoAccessKey>
	/**
	 * apply `jsx-a11y/no-aria-hidden-on-focusable` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-aria-hidden-on-focusable/
	 */
	'astro/jsx-a11y/no-aria-hidden-on-focusable'?: Linter.RuleEntry<AstroJsxA11YNoAriaHiddenOnFocusable>
	/**
	 * apply `jsx-a11y/no-autofocus` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-autofocus/
	 */
	'astro/jsx-a11y/no-autofocus'?: Linter.RuleEntry<AstroJsxA11YNoAutofocus>
	/**
	 * apply `jsx-a11y/no-distracting-elements` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-distracting-elements/
	 */
	'astro/jsx-a11y/no-distracting-elements'?: Linter.RuleEntry<AstroJsxA11YNoDistractingElements>
	/**
	 * apply `jsx-a11y/no-interactive-element-to-noninteractive-role` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-interactive-element-to-noninteractive-role/
	 */
	'astro/jsx-a11y/no-interactive-element-to-noninteractive-role'?: Linter.RuleEntry<AstroJsxA11YNoInteractiveElementToNoninteractiveRole>
	/**
	 * apply `jsx-a11y/no-noninteractive-element-interactions` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-noninteractive-element-interactions/
	 */
	'astro/jsx-a11y/no-noninteractive-element-interactions'?: Linter.RuleEntry<AstroJsxA11YNoNoninteractiveElementInteractions>
	/**
	 * apply `jsx-a11y/no-noninteractive-element-to-interactive-role` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-noninteractive-element-to-interactive-role/
	 */
	'astro/jsx-a11y/no-noninteractive-element-to-interactive-role'?: Linter.RuleEntry<AstroJsxA11YNoNoninteractiveElementToInteractiveRole>
	/**
	 * apply `jsx-a11y/no-noninteractive-tabindex` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-noninteractive-tabindex/
	 */
	'astro/jsx-a11y/no-noninteractive-tabindex'?: Linter.RuleEntry<AstroJsxA11YNoNoninteractiveTabindex>
	/**
	 * apply `jsx-a11y/no-redundant-roles` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-redundant-roles/
	 */
	'astro/jsx-a11y/no-redundant-roles'?: Linter.RuleEntry<AstroJsxA11YNoRedundantRoles>
	/**
	 * apply `jsx-a11y/no-static-element-interactions` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-static-element-interactions/
	 */
	'astro/jsx-a11y/no-static-element-interactions'?: Linter.RuleEntry<AstroJsxA11YNoStaticElementInteractions>
	/**
	 * apply `jsx-a11y/prefer-tag-over-role` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/prefer-tag-over-role/
	 */
	'astro/jsx-a11y/prefer-tag-over-role'?: Linter.RuleEntry<AstroJsxA11YPreferTagOverRole>
	/**
	 * apply `jsx-a11y/role-has-required-aria-props` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/role-has-required-aria-props/
	 */
	'astro/jsx-a11y/role-has-required-aria-props'?: Linter.RuleEntry<AstroJsxA11YRoleHasRequiredAriaProps>
	/**
	 * apply `jsx-a11y/role-supports-aria-props` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/role-supports-aria-props/
	 */
	'astro/jsx-a11y/role-supports-aria-props'?: Linter.RuleEntry<AstroJsxA11YRoleSupportsAriaProps>
	/**
	 * apply `jsx-a11y/scope` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/scope/
	 */
	'astro/jsx-a11y/scope'?: Linter.RuleEntry<AstroJsxA11YScope>
	/**
	 * apply `jsx-a11y/tabindex-no-positive` rule to Astro components
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/tabindex-no-positive/
	 */
	'astro/jsx-a11y/tabindex-no-positive'?: Linter.RuleEntry<AstroJsxA11YTabindexNoPositive>
	/**
	 * the client:only directive is missing the correct component's framework value
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/missing-client-only-directive-value/
	 */
	'astro/missing-client-only-directive-value'?: Linter.RuleEntry<[]>
	/**
	 * disallow conflicting set directives and child contents
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-conflict-set-directives/
	 */
	'astro/no-conflict-set-directives'?: Linter.RuleEntry<[]>
	/**
	 * disallow using deprecated `Astro.canonicalURL`
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-deprecated-astro-canonicalurl/
	 */
	'astro/no-deprecated-astro-canonicalurl'?: Linter.RuleEntry<[]>
	/**
	 * disallow using deprecated `Astro.fetchContent()`
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-deprecated-astro-fetchcontent/
	 */
	'astro/no-deprecated-astro-fetchcontent'?: Linter.RuleEntry<[]>
	/**
	 * disallow using deprecated `Astro.resolve()`
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-deprecated-astro-resolve/
	 */
	'astro/no-deprecated-astro-resolve'?: Linter.RuleEntry<[]>
	/**
	 * disallow using deprecated `getEntryBySlug()`
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-deprecated-getentrybyslug/
	 */
	'astro/no-deprecated-getentrybyslug'?: Linter.RuleEntry<[]>
	/**
	 * disallow value export
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-exports-from-components/
	 */
	'astro/no-exports-from-components'?: Linter.RuleEntry<[]>
	/**
	 * disallow use of `set:html` to prevent XSS attack
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-set-html-directive/
	 */
	'astro/no-set-html-directive'?: Linter.RuleEntry<[]>
	/**
	 * disallow use of `set:text`
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-set-text-directive/
	 */
	'astro/no-set-text-directive'?: Linter.RuleEntry<[]>
	/**
	 * disallow selectors defined in `style` tag that don't use in HTML
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-unused-css-selector/
	 */
	'astro/no-unused-css-selector'?: Linter.RuleEntry<[]>
	/**
	 * disallow unused `define:vars={...}` in `style` tag
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-unused-define-vars-in-style/
	 */
	'astro/no-unused-define-vars-in-style'?: Linter.RuleEntry<[]>
	/**
	 * require `class:list` directives instead of `class` with expressions
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/prefer-class-list-directive/
	 */
	'astro/prefer-class-list-directive'?: Linter.RuleEntry<[]>
	/**
	 * require use object instead of ternary expression in `class:list`
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/prefer-object-class-list/
	 */
	'astro/prefer-object-class-list'?: Linter.RuleEntry<[]>
	/**
	 * require use split array elements in `class:list`
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/prefer-split-class-list/
	 */
	'astro/prefer-split-class-list'?: Linter.RuleEntry<AstroPreferSplitClassList>
	/**
	 * Require or disallow semicolons instead of ASI
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/semi/
	 */
	'astro/semi'?: Linter.RuleEntry<AstroSemi>
	/**
	 * enforce sorting of attributes
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/sort-attributes/
	 */
	'astro/sort-attributes'?: Linter.RuleEntry<AstroSortAttributes>
	/**
	 * disallow warnings when compiling.
	 * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/valid-compile/
	 */
	'astro/valid-compile'?: Linter.RuleEntry<[]>
	/**
	 * Enforce the use of variables within the scope they are defined
	 * @see https://eslint.org/docs/latest/rules/block-scoped-var
	 */
	'block-scoped-var'?: Linter.RuleEntry<[]>
	/**
	 * Disallow or enforce spaces inside of blocks after opening block and before closing block
	 * @see https://eslint.org/docs/latest/rules/block-spacing
	 * @deprecated
	 */
	'block-spacing'?: Linter.RuleEntry<BlockSpacing>
	/**
	 * Enforce consistent brace style for blocks
	 * @see https://eslint.org/docs/latest/rules/brace-style
	 * @deprecated
	 */
	'brace-style'?: Linter.RuleEntry<BraceStyle>
	/**
	 * Require `return` statements after callbacks
	 * @see https://eslint.org/docs/latest/rules/callback-return
	 * @deprecated
	 */
	'callback-return'?: Linter.RuleEntry<CallbackReturn>
	/**
	 * Enforce camelcase naming convention
	 * @see https://eslint.org/docs/latest/rules/camelcase
	 */
	camelcase?: Linter.RuleEntry<Camelcase>
	/**
	 * Enforce or disallow capitalization of the first letter of a comment
	 * @see https://eslint.org/docs/latest/rules/capitalized-comments
	 */
	'capitalized-comments'?: Linter.RuleEntry<CapitalizedComments>
	/**
	 * Enforce that class methods utilize `this`
	 * @see https://eslint.org/docs/latest/rules/class-methods-use-this
	 */
	'class-methods-use-this'?: Linter.RuleEntry<ClassMethodsUseThis>
	/**
	 * Require or disallow trailing commas
	 * @see https://eslint.org/docs/latest/rules/comma-dangle
	 * @deprecated
	 */
	'comma-dangle'?: Linter.RuleEntry<CommaDangle>
	/**
	 * Enforce consistent spacing before and after commas
	 * @see https://eslint.org/docs/latest/rules/comma-spacing
	 * @deprecated
	 */
	'comma-spacing'?: Linter.RuleEntry<CommaSpacing>
	/**
	 * Enforce consistent comma style
	 * @see https://eslint.org/docs/latest/rules/comma-style
	 * @deprecated
	 */
	'comma-style'?: Linter.RuleEntry<CommaStyle>
	/**
	 * Enforce a maximum cyclomatic complexity allowed in a program
	 * @see https://eslint.org/docs/latest/rules/complexity
	 */
	complexity?: Linter.RuleEntry<Complexity>
	/**
	 * Enforce consistent spacing inside computed property brackets
	 * @see https://eslint.org/docs/latest/rules/computed-property-spacing
	 * @deprecated
	 */
	'computed-property-spacing'?: Linter.RuleEntry<ComputedPropertySpacing>
	/**
	 * Require `return` statements to either always or never specify values
	 * @see https://eslint.org/docs/latest/rules/consistent-return
	 */
	'consistent-return'?: Linter.RuleEntry<ConsistentReturn>
	/**
	 * Enforce consistent naming when capturing the current execution context
	 * @see https://eslint.org/docs/latest/rules/consistent-this
	 */
	'consistent-this'?: Linter.RuleEntry<ConsistentThis>
	/**
	 * Require `super()` calls in constructors
	 * @see https://eslint.org/docs/latest/rules/constructor-super
	 */
	'constructor-super'?: Linter.RuleEntry<[]>
	/**
	 * Enforce consistent brace style for all control statements
	 * @see https://eslint.org/docs/latest/rules/curly
	 */
	curly?: Linter.RuleEntry<Curly>
	/**
	 * Require `default` cases in `switch` statements
	 * @see https://eslint.org/docs/latest/rules/default-case
	 */
	'default-case'?: Linter.RuleEntry<DefaultCase>
	/**
	 * Enforce `default` clauses in `switch` statements to be last
	 * @see https://eslint.org/docs/latest/rules/default-case-last
	 */
	'default-case-last'?: Linter.RuleEntry<[]>
	/**
	 * Enforce default parameters to be last
	 * @see https://eslint.org/docs/latest/rules/default-param-last
	 */
	'default-param-last'?: Linter.RuleEntry<[]>
	/**
	 * Bans a list of dependencies from being used
	 * @see https://github.com/es-tooling/eslint-plugin-depend/blob/main/docs/rules/ban-dependencies.md
	 */
	'depend/ban-dependencies'?: Linter.RuleEntry<DependBanDependencies>
	/**
	 * Enforce consistent newlines before and after dots
	 * @see https://eslint.org/docs/latest/rules/dot-location
	 * @deprecated
	 */
	'dot-location'?: Linter.RuleEntry<DotLocation>
	/**
	 * Enforce dot notation whenever possible
	 * @see https://eslint.org/docs/latest/rules/dot-notation
	 */
	'dot-notation'?: Linter.RuleEntry<DotNotation>
	/**
	 * Require or disallow newline at the end of files
	 * @see https://eslint.org/docs/latest/rules/eol-last
	 * @deprecated
	 */
	'eol-last'?: Linter.RuleEntry<EolLast>
	/**
	 * Require the use of `===` and `!==`
	 * @see https://eslint.org/docs/latest/rules/eqeqeq
	 */
	eqeqeq?: Linter.RuleEntry<Eqeqeq>
	/**
	 * require a `eslint-enable` comment for every `eslint-disable` comment
	 * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/disable-enable-pair.html
	 */
	'eslint-comments/disable-enable-pair'?: Linter.RuleEntry<EslintCommentsDisableEnablePair>
	/**
	 * disallow a `eslint-enable` comment for multiple `eslint-disable` comments
	 * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-aggregating-enable.html
	 */
	'eslint-comments/no-aggregating-enable'?: Linter.RuleEntry<[]>
	/**
	 * disallow duplicate `eslint-disable` comments
	 * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-duplicate-disable.html
	 */
	'eslint-comments/no-duplicate-disable'?: Linter.RuleEntry<[]>
	/**
	 * disallow `eslint-disable` comments about specific rules
	 * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-restricted-disable.html
	 */
	'eslint-comments/no-restricted-disable'?: Linter.RuleEntry<EslintCommentsNoRestrictedDisable>
	/**
	 * disallow `eslint-disable` comments without rule names
	 * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-unlimited-disable.html
	 */
	'eslint-comments/no-unlimited-disable'?: Linter.RuleEntry<[]>
	/**
	 * disallow unused `eslint-disable` comments
	 * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-unused-disable.html
	 */
	'eslint-comments/no-unused-disable'?: Linter.RuleEntry<[]>
	/**
	 * disallow unused `eslint-enable` comments
	 * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-unused-enable.html
	 */
	'eslint-comments/no-unused-enable'?: Linter.RuleEntry<[]>
	/**
	 * disallow ESLint directive-comments
	 * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-use.html
	 */
	'eslint-comments/no-use'?: Linter.RuleEntry<EslintCommentsNoUse>
	/**
	 * require include descriptions in ESLint directive-comments
	 * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/require-description.html
	 */
	'eslint-comments/require-description'?: Linter.RuleEntry<EslintCommentsRequireDescription>
	/**
	 * Enforce `for` loop update clause moving the counter in the right direction
	 * @see https://eslint.org/docs/latest/rules/for-direction
	 */
	'for-direction'?: Linter.RuleEntry<[]>
	/**
	 * Require or disallow spacing between function identifiers and their invocations
	 * @see https://eslint.org/docs/latest/rules/func-call-spacing
	 * @deprecated
	 */
	'func-call-spacing'?: Linter.RuleEntry<FuncCallSpacing>
	/**
	 * Require function names to match the name of the variable or property to which they are assigned
	 * @see https://eslint.org/docs/latest/rules/func-name-matching
	 */
	'func-name-matching'?: Linter.RuleEntry<FuncNameMatching>
	/**
	 * Require or disallow named `function` expressions
	 * @see https://eslint.org/docs/latest/rules/func-names
	 */
	'func-names'?: Linter.RuleEntry<FuncNames>
	/**
	 * Enforce the consistent use of either `function` declarations or expressions assigned to variables
	 * @see https://eslint.org/docs/latest/rules/func-style
	 */
	'func-style'?: Linter.RuleEntry<FuncStyle>
	/**
	 * Enforce line breaks between arguments of a function call
	 * @see https://eslint.org/docs/latest/rules/function-call-argument-newline
	 * @deprecated
	 */
	'function-call-argument-newline'?: Linter.RuleEntry<FunctionCallArgumentNewline>
	/**
	 * Enforce consistent line breaks inside function parentheses
	 * @see https://eslint.org/docs/latest/rules/function-paren-newline
	 * @deprecated
	 */
	'function-paren-newline'?: Linter.RuleEntry<FunctionParenNewline>
	/**
	 * Enforce consistent spacing around `*` operators in generator functions
	 * @see https://eslint.org/docs/latest/rules/generator-star-spacing
	 * @deprecated
	 */
	'generator-star-spacing'?: Linter.RuleEntry<GeneratorStarSpacing>
	/**
	 * Enforce `return` statements in getters
	 * @see https://eslint.org/docs/latest/rules/getter-return
	 */
	'getter-return'?: Linter.RuleEntry<GetterReturn>
	/**
	 * Require `require()` calls to be placed at top-level module scope
	 * @see https://eslint.org/docs/latest/rules/global-require
	 * @deprecated
	 */
	'global-require'?: Linter.RuleEntry<[]>
	/**
	 * Require grouped accessor pairs in object literals and classes
	 * @see https://eslint.org/docs/latest/rules/grouped-accessor-pairs
	 */
	'grouped-accessor-pairs'?: Linter.RuleEntry<GroupedAccessorPairs>
	/**
	 * Require `for-in` loops to include an `if` statement
	 * @see https://eslint.org/docs/latest/rules/guard-for-in
	 */
	'guard-for-in'?: Linter.RuleEntry<[]>
	/**
	 * Require error handling in callbacks
	 * @see https://eslint.org/docs/latest/rules/handle-callback-err
	 * @deprecated
	 */
	'handle-callback-err'?: Linter.RuleEntry<HandleCallbackErr>
	/**
	 * Enforce newline between attributes
	 * @see https://html-eslint.org/docs/rules/attrs-newline
	 */
	'html/attrs-newline'?: Linter.RuleEntry<HtmlAttrsNewline>
	/**
	 * Enforce newline between elements.
	 * @see https://html-eslint.org/docs/rules/element-newline
	 */
	'html/element-newline'?: Linter.RuleEntry<HtmlElementNewline>
	/**
	 * Enforce consistent naming id attributes
	 * @see https://html-eslint.org/docs/rules/id-naming-convention
	 */
	'html/id-naming-convention'?: Linter.RuleEntry<HtmlIdNamingConvention>
	/**
	 * Enforce consistent indentation
	 */
	'html/indent'?: Linter.RuleEntry<HtmlIndent>
	/**
	 * Enforce to use lowercase for tag and attribute names.
	 * @see https://html-eslint.org/docs/rules/lowercase
	 */
	'html/lowercase'?: Linter.RuleEntry<[]>
	/**
	 * Enforce element maximum depth
	 * @see https://html-eslint.org/docs/rules/max-element-depth
	 */
	'html/max-element-depth'?: Linter.RuleEntry<HtmlMaxElementDepth>
	/**
	 * Disallow to use of abstract roles
	 * @see https://html-eslint.org/docs/rules/no-abstract-roles
	 */
	'html/no-abstract-roles'?: Linter.RuleEntry<[]>
	/**
	 * Disallow to use of accesskey attribute
	 * @see https://html-eslint.org/docs/rules/no-accesskey-attrs
	 */
	'html/no-accesskey-attrs'?: Linter.RuleEntry<[]>
	/**
	 * Disallow to use aria-hidden attributes on the `body` element.
	 * @see https://html-eslint.org/docs/rules/no-aria-hidden-body
	 */
	'html/no-aria-hidden-body'?: Linter.RuleEntry<[]>
	/**
	 * Disallow to use duplicate attributes
	 * @see https://html-eslint.org/docs/rules/no-duplicate-attrs
	 */
	'html/no-duplicate-attrs'?: Linter.RuleEntry<[]>
	/**
	 * Disallow to use duplicate class
	 * @see https://html-eslint.org/docs/rules/no-duplicate-class
	 */
	'html/no-duplicate-class'?: Linter.RuleEntry<[]>
	/**
	 * Disallow to use duplicate id
	 * @see https://html-eslint.org/docs/rules/no-duplicate-id
	 */
	'html/no-duplicate-id'?: Linter.RuleEntry<[]>
	/**
	 * Disallow an extra spacing around attributes
	 * @see https://html-eslint.org/docs/rules/no-extra-spacing-attrs
	 */
	'html/no-extra-spacing-attrs'?: Linter.RuleEntry<HtmlNoExtraSpacingAttrs>
	/**
	 * Disallow unnecessary consecutive spaces
	 * @see https://html-eslint.org/docs/rules/no-extra-spacing-text
	 */
	'html/no-extra-spacing-text'?: Linter.RuleEntry<HtmlNoExtraSpacingText>
	/**
	 * Disallows the use of heading elements inside <button>.
	 * @see https://html-eslint.org/docs/rules/no-heading-inside-button
	 */
	'html/no-heading-inside-button'?: Linter.RuleEntry<[]>
	/**
	 * Disallow using inline style
	 * @see https://html-eslint.org/docs/rules/no-inline-styles
	 */
	'html/no-inline-styles'?: Linter.RuleEntry<[]>
	/**
	 * Disallows use of invalid role.
	 * @see https://html-eslint.org/docs/rules/no-invalid-role
	 */
	'html/no-invalid-role'?: Linter.RuleEntry<[]>
	/**
	 * Disallow multiple empty lines
	 * @see https://html-eslint.org/docs/rules/no-multiple-empty-lines
	 */
	'html/no-multiple-empty-lines'?: Linter.RuleEntry<HtmlNoMultipleEmptyLines>
	/**
	 * Disallow multiple `<h1></h1>`.
	 * @see https://html-eslint.org/docs/rules/no-multiple-h1
	 */
	'html/no-multiple-h1'?: Linter.RuleEntry<[]>
	/**
	 * Disallows nested interactive elements
	 * @see https://html-eslint.org/docs/rules/no-nested-interactive
	 */
	'html/no-nested-interactive'?: Linter.RuleEntry<[]>
	/**
	 * Disallow use of `user-scalable=no` in `<meta name="viewport">`.
	 * @see https://html-eslint.org/docs/rules/no-non-scalable-viewport
	 */
	'html/no-non-scalable-viewport'?: Linter.RuleEntry<[]>
	/**
	 * Disallow to use obsolete elements in HTML5
	 * @see https://html-eslint.org/docs/rules/no-obsolete-tags
	 */
	'html/no-obsolete-tags'?: Linter.RuleEntry<[]>
	/**
	 * Disallow use of positive `tabindex`.
	 * @see https://html-eslint.org/docs/rules/no-positive-tabindex
	 */
	'html/no-positive-tabindex'?: Linter.RuleEntry<[]>
	/**
	 * Disallow specified attributes
	 * @see https://html-eslint.org/docs/rules/no-restricted-attr-values
	 */
	'html/no-restricted-attr-values'?: Linter.RuleEntry<HtmlNoRestrictedAttrValues>
	/**
	 * Disallow specified attributes
	 * @see https://html-eslint.org/docs/rules/no-restricted-attrs
	 */
	'html/no-restricted-attrs'?: Linter.RuleEntry<HtmlNoRestrictedAttrs>
	/**
	 * Enforce to omit type attributes for style sheets and scripts
	 * @see https://html-eslint.org/docs/rules/no-script-style-type
	 */
	'html/no-script-style-type'?: Linter.RuleEntry<[]>
	/**
	 * Disallow skipping heading levels
	 * @see https://html-eslint.org/docs/rules/no-skip-heading-levels
	 */
	'html/no-skip-heading-levels'?: Linter.RuleEntry<[]>
	/**
	 * Disallow usage of unsafe `target='_blank'`
	 * @see https://html-eslint.org/docs/rules/no-target-blank
	 */
	'html/no-target-blank'?: Linter.RuleEntry<[]>
	/**
	 * Disallow trailing whitespace at the end of lines
	 * @see https://html-eslint.org/docs/rules/no-trailing-spaces
	 */
	'html/no-trailing-spaces'?: Linter.RuleEntry<[]>
	/**
	 * Prefer to use HTTPS for embedded resources
	 * @see https://html-eslint.org/docs/rules/prefer-https
	 */
	'html/prefer-https'?: Linter.RuleEntry<[]>
	/**
	 * Enforce consistent quoting attributes with double(") or single(')
	 * @see https://html-eslint.org/docs/rules/quotes
	 */
	'html/quotes'?: Linter.RuleEntry<HtmlQuotes>
	/**
	 * Require specified attributes
	 * @see https://html-eslint.org/docs/rules/require-attrs
	 */
	'html/require-attrs'?: Linter.RuleEntry<HtmlRequireAttrs>
	/**
	 * Require use of button element with a valid type attribute.
	 * @see https://html-eslint.org/docs/rules/require-button-type
	 */
	'html/require-button-type'?: Linter.RuleEntry<[]>
	/**
	 * Require closing tags.
	 * @see https://html-eslint.org/docs/rules/require-closing-tags
	 */
	'html/require-closing-tags'?: Linter.RuleEntry<HtmlRequireClosingTags>
	/**
	 * Require `<!DOCTYPE HTML>` in html,
	 * @see https://html-eslint.org/docs/rules/require-doctype
	 */
	'html/require-doctype'?: Linter.RuleEntry<[]>
	/**
	 * Enforces that some elements (img, iframe) have explicitly defined width and height attributes.
	 * @see https://html-eslint.org/docs/rules/require-explicit-size
	 */
	'html/require-explicit-size'?: Linter.RuleEntry<HtmlRequireExplicitSize>
	/**
	 * Require `method` attribute in `<form>`
	 * @see https://html-eslint.org/docs/rules/require-form-method
	 */
	'html/require-form-method'?: Linter.RuleEntry<[]>
	/**
	 * Require `title` in `<frame>`, `<iframe>`
	 * @see https://html-eslint.org/docs/rules/require-frame-title
	 */
	'html/require-frame-title'?: Linter.RuleEntry<[]>
	/**
	 * Require `alt` attribute at `<img>` tag
	 * @see https://html-eslint.org/docs/rules/require-img-alt
	 */
	'html/require-img-alt'?: Linter.RuleEntry<HtmlRequireImgAlt>
	/**
	 * Enforces use of label for form elements(`input`, `textarea`, `select`)
	 * @see https://html-eslint.org/docs/rules/require-input-label
	 */
	'html/require-input-label'?: Linter.RuleEntry<[]>
	/**
	 * Require `lang` attribute at `<html>` tag
	 * @see https://html-eslint.org/docs/rules/require-lang
	 */
	'html/require-lang'?: Linter.RuleEntry<[]>
	/**
	 * Enforce `<li>` to be in  `<ul>`, `<ol>` or `<menu>`.
	 * @see https://html-eslint.org/docs/rules/require-li-container
	 */
	'html/require-li-container'?: Linter.RuleEntry<[]>
	/**
	 * Enforce to use `<meta charset="...">` in `<head>`
	 * @see https://html-eslint.org/docs/rules/require-meta-charset
	 */
	'html/require-meta-charset'?: Linter.RuleEntry<[]>
	/**
	 * Require use of `<meta name="description">` in `<head>`
	 * @see https://html-eslint.org/docs/rules/require-meta-description
	 */
	'html/require-meta-description'?: Linter.RuleEntry<[]>
	/**
	 * Enforce to use `<meta name="viewport">` in `<head>`
	 * @see https://html-eslint.org/docs/rules/require-meta-viewport
	 */
	'html/require-meta-viewport'?: Linter.RuleEntry<[]>
	/**
	 * Enforce to use specified meta tags for open graph protocol.
	 * @see https://html-eslint.org/docs/rules/require-open-graph-protocol
	 */
	'html/require-open-graph-protocol'?: Linter.RuleEntry<HtmlRequireOpenGraphProtocol>
	/**
	 * Require `<title><title/>` in the `<head><head/>`
	 * @see https://html-eslint.org/docs/rules/require-title
	 */
	'html/require-title'?: Linter.RuleEntry<[]>
	/**
	 * Enforce attributes alphabetical sorting
	 * @see https://html-eslint.org/docs/rules/sort-attrs
	 */
	'html/sort-attrs'?: Linter.RuleEntry<HtmlSortAttrs>
	/**
	 * Enforce the use of baseline features.
	 * @see https://html-eslint.org/docs/rules/use-baseline
	 */
	'html/use-baseline'?: Linter.RuleEntry<HtmlUseBaseline>
	/**
	 * Disallow specified identifiers
	 * @see https://eslint.org/docs/latest/rules/id-blacklist
	 * @deprecated
	 */
	'id-blacklist'?: Linter.RuleEntry<IdBlacklist>
	/**
	 * Disallow specified identifiers
	 * @see https://eslint.org/docs/latest/rules/id-denylist
	 */
	'id-denylist'?: Linter.RuleEntry<IdDenylist>
	/**
	 * Enforce minimum and maximum identifier lengths
	 * @see https://eslint.org/docs/latest/rules/id-length
	 */
	'id-length'?: Linter.RuleEntry<IdLength>
	/**
	 * Require identifiers to match a specified regular expression
	 * @see https://eslint.org/docs/latest/rules/id-match
	 */
	'id-match'?: Linter.RuleEntry<IdMatch>
	/**
	 * Enforce the location of arrow function bodies
	 * @see https://eslint.org/docs/latest/rules/implicit-arrow-linebreak
	 * @deprecated
	 */
	'implicit-arrow-linebreak'?: Linter.RuleEntry<ImplicitArrowLinebreak>
	/**
	 * Enforce or ban the use of inline type-only markers for named imports.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/consistent-type-specifier-style.md
	 */
	'import/consistent-type-specifier-style'?: Linter.RuleEntry<ImportConsistentTypeSpecifierStyle>
	/**
	 * Ensure a default export is present, given a default import.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/default.md
	 */
	'import/default'?: Linter.RuleEntry<[]>
	/**
	 * Enforce a leading comment with the webpackChunkName for dynamic imports.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/dynamic-import-chunkname.md
	 */
	'import/dynamic-import-chunkname'?: Linter.RuleEntry<ImportDynamicImportChunkname>
	/**
	 * Forbid any invalid exports, i.e. re-export of the same name.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/export.md
	 */
	'import/export'?: Linter.RuleEntry<[]>
	/**
	 * Ensure all exports appear after other statements.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/exports-last.md
	 */
	'import/exports-last'?: Linter.RuleEntry<[]>
	/**
	 * Ensure consistent use of file extension within the import path.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/extensions.md
	 */
	'import/extensions'?: Linter.RuleEntry<ImportExtensions>
	/**
	 * Ensure all imports appear before other statements.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/first.md
	 */
	'import/first'?: Linter.RuleEntry<ImportFirst>
	/**
	 * Prefer named exports to be grouped together in a single export declaration.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/group-exports.md
	 */
	'import/group-exports'?: Linter.RuleEntry<[]>
	/**
	 * Replaced by `import-x/first`.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/imports-first.md
	 * @deprecated
	 */
	'import/imports-first'?: Linter.RuleEntry<ImportImportsFirst>
	/**
	 * Enforce the maximum number of dependencies a module can have.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/max-dependencies.md
	 */
	'import/max-dependencies'?: Linter.RuleEntry<ImportMaxDependencies>
	/**
	 * Ensure named imports correspond to a named export in the remote file.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/named.md
	 */
	'import/named'?: Linter.RuleEntry<ImportNamed>
	/**
	 * Ensure imported namespaces contain dereferenced properties as they are dereferenced.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/namespace.md
	 */
	'import/namespace'?: Linter.RuleEntry<ImportNamespace>
	/**
	 * Enforce a newline after import statements.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/newline-after-import.md
	 */
	'import/newline-after-import'?: Linter.RuleEntry<ImportNewlineAfterImport>
	/**
	 * Forbid import of modules using absolute paths.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-absolute-path.md
	 */
	'import/no-absolute-path'?: Linter.RuleEntry<ImportNoAbsolutePath>
	/**
	 * Forbid AMD `require` and `define` calls.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-amd.md
	 */
	'import/no-amd'?: Linter.RuleEntry<[]>
	/**
	 * Forbid anonymous values as default exports.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-anonymous-default-export.md
	 */
	'import/no-anonymous-default-export'?: Linter.RuleEntry<ImportNoAnonymousDefaultExport>
	/**
	 * Forbid CommonJS `require` calls and `module.exports` or `exports.*`.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-commonjs.md
	 */
	'import/no-commonjs'?: Linter.RuleEntry<ImportNoCommonjs>
	/**
	 * Forbid a module from importing a module with a dependency path back to itself.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-cycle.md
	 */
	'import/no-cycle'?: Linter.RuleEntry<ImportNoCycle>
	/**
	 * Forbid default exports.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-default-export.md
	 */
	'import/no-default-export'?: Linter.RuleEntry<[]>
	/**
	 * Forbid imported names marked with `@deprecated` documentation tag.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-deprecated.md
	 */
	'import/no-deprecated'?: Linter.RuleEntry<[]>
	/**
	 * Forbid repeated import of the same module in multiple places.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-duplicates.md
	 */
	'import/no-duplicates'?: Linter.RuleEntry<ImportNoDuplicates>
	/**
	 * Forbid `require()` calls with expressions.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-dynamic-require.md
	 */
	'import/no-dynamic-require'?: Linter.RuleEntry<ImportNoDynamicRequire>
	/**
	 * Forbid empty named import blocks.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-empty-named-blocks.md
	 */
	'import/no-empty-named-blocks'?: Linter.RuleEntry<[]>
	/**
	 * Forbid the use of extraneous packages.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-extraneous-dependencies.md
	 */
	'import/no-extraneous-dependencies'?: Linter.RuleEntry<ImportNoExtraneousDependencies>
	/**
	 * Forbid import statements with CommonJS module.exports.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-import-module-exports.md
	 */
	'import/no-import-module-exports'?: Linter.RuleEntry<ImportNoImportModuleExports>
	/**
	 * Forbid importing the submodules of other modules.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-internal-modules.md
	 */
	'import/no-internal-modules'?: Linter.RuleEntry<ImportNoInternalModules>
	/**
	 * Forbid the use of mutable exports with `var` or `let`.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-mutable-exports.md
	 */
	'import/no-mutable-exports'?: Linter.RuleEntry<[]>
	/**
	 * Forbid use of exported name as identifier of default export.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-named-as-default.md
	 */
	'import/no-named-as-default'?: Linter.RuleEntry<[]>
	/**
	 * Forbid use of exported name as property of default export.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-named-as-default-member.md
	 */
	'import/no-named-as-default-member'?: Linter.RuleEntry<[]>
	/**
	 * Forbid named default exports.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-named-default.md
	 */
	'import/no-named-default'?: Linter.RuleEntry<[]>
	/**
	 * Forbid named exports.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-named-export.md
	 */
	'import/no-named-export'?: Linter.RuleEntry<[]>
	/**
	 * Forbid namespace (a.k.a. "wildcard" `*`) imports.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-namespace.md
	 */
	'import/no-namespace'?: Linter.RuleEntry<ImportNoNamespace>
	/**
	 * Forbid Node.js builtin modules.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-nodejs-modules.md
	 */
	'import/no-nodejs-modules'?: Linter.RuleEntry<ImportNoNodejsModules>
	/**
	 * Forbid importing packages through relative paths.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-relative-packages.md
	 */
	'import/no-relative-packages'?: Linter.RuleEntry<ImportNoRelativePackages>
	/**
	 * Forbid importing modules from parent directories.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-relative-parent-imports.md
	 */
	'import/no-relative-parent-imports'?: Linter.RuleEntry<ImportNoRelativeParentImports>
	/**
	 * Forbid importing a default export by a different name.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-rename-default.md
	 */
	'import/no-rename-default'?: Linter.RuleEntry<ImportNoRenameDefault>
	/**
	 * Enforce which files can be imported in a given folder.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-restricted-paths.md
	 */
	'import/no-restricted-paths'?: Linter.RuleEntry<ImportNoRestrictedPaths>
	/**
	 * Forbid a module from importing itself.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-self-import.md
	 */
	'import/no-self-import'?: Linter.RuleEntry<[]>
	/**
	 * Forbid unassigned imports.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-unassigned-import.md
	 */
	'import/no-unassigned-import'?: Linter.RuleEntry<ImportNoUnassignedImport>
	/**
	 * Ensure imports point to a file/module that can be resolved.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-unresolved.md
	 */
	'import/no-unresolved'?: Linter.RuleEntry<ImportNoUnresolved>
	/**
	 * Forbid modules without exports, or exports without matching import in another module.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-unused-modules.md
	 */
	'import/no-unused-modules'?: Linter.RuleEntry<ImportNoUnusedModules>
	/**
	 * Forbid unnecessary path segments in import and require statements.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-useless-path-segments.md
	 */
	'import/no-useless-path-segments'?: Linter.RuleEntry<ImportNoUselessPathSegments>
	/**
	 * Forbid webpack loader syntax in imports.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/no-webpack-loader-syntax.md
	 */
	'import/no-webpack-loader-syntax'?: Linter.RuleEntry<[]>
	/**
	 * Enforce a convention in module import order.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/order.md
	 */
	'import/order'?: Linter.RuleEntry<ImportOrder>
	/**
	 * Prefer a default export if module exports a single name or multiple names.
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/prefer-default-export.md
	 */
	'import/prefer-default-export'?: Linter.RuleEntry<ImportPreferDefaultExport>
	/**
	 * Forbid potentially ambiguous parse goal (`script` vs. `module`).
	 * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.15.1/docs/rules/unambiguous.md
	 */
	'import/unambiguous'?: Linter.RuleEntry<[]>
	/**
	 * Enforce consistent indentation
	 * @see https://eslint.org/docs/latest/rules/indent
	 * @deprecated
	 */
	indent?: Linter.RuleEntry<Indent>
	/**
	 * Enforce consistent indentation
	 * @see https://eslint.org/docs/latest/rules/indent-legacy
	 * @deprecated
	 */
	'indent-legacy'?: Linter.RuleEntry<IndentLegacy>
	/**
	 * Require or disallow initialization in variable declarations
	 * @see https://eslint.org/docs/latest/rules/init-declarations
	 */
	'init-declarations'?: Linter.RuleEntry<InitDeclarations>
	/**
	 * Checks that `@access` tags have a valid value.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-access.md#repos-sticky-header
	 */
	'jsdoc/check-access'?: Linter.RuleEntry<[]>
	/**
	 * Reports invalid alignment of JSDoc block asterisks.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-alignment.md#repos-sticky-header
	 */
	'jsdoc/check-alignment'?: Linter.RuleEntry<[]>
	/**
	 * Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-examples.md#repos-sticky-header
	 */
	'jsdoc/check-examples'?: Linter.RuleEntry<JsdocCheckExamples>
	/**
	 * Reports invalid padding inside JSDoc blocks.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-indentation.md#repos-sticky-header
	 */
	'jsdoc/check-indentation'?: Linter.RuleEntry<JsdocCheckIndentation>
	/**
	 * Reports invalid alignment of JSDoc block lines.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-line-alignment.md#repos-sticky-header
	 */
	'jsdoc/check-line-alignment'?: Linter.RuleEntry<JsdocCheckLineAlignment>
	/**
	 * Ensures that parameter names in JSDoc match those in the function declaration.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-param-names.md#repos-sticky-header
	 */
	'jsdoc/check-param-names'?: Linter.RuleEntry<JsdocCheckParamNames>
	/**
	 * Ensures that property names in JSDoc are not duplicated on the same block and that nested properties have defined roots.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-property-names.md#repos-sticky-header
	 */
	'jsdoc/check-property-names'?: Linter.RuleEntry<JsdocCheckPropertyNames>
	/**
	 * Reports against syntax not valid for the mode (e.g., Google Closure Compiler in non-Closure mode).
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-syntax.md#repos-sticky-header
	 */
	'jsdoc/check-syntax'?: Linter.RuleEntry<[]>
	/**
	 * Reports invalid block tag names.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-tag-names.md#repos-sticky-header
	 */
	'jsdoc/check-tag-names'?: Linter.RuleEntry<JsdocCheckTagNames>
	/**
	 * Checks that any `@template` names are actually used in the connected `@typedef` or type alias.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-template-names.md#repos-sticky-header
	 */
	'jsdoc/check-template-names'?: Linter.RuleEntry<[]>
	/**
	 * Reports invalid types.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-types.md#repos-sticky-header
	 */
	'jsdoc/check-types'?: Linter.RuleEntry<JsdocCheckTypes>
	/**
	 * This rule checks the values for a handful of tags: `@version`, `@since`, `@license` and `@author`.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-values.md#repos-sticky-header
	 */
	'jsdoc/check-values'?: Linter.RuleEntry<JsdocCheckValues>
	/**
	 * Converts non-JSDoc comments preceding or following nodes into JSDoc ones
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/convert-to-jsdoc-comments.md#repos-sticky-header
	 */
	'jsdoc/convert-to-jsdoc-comments'?: Linter.RuleEntry<JsdocConvertToJsdocComments>
	/**
	 * Expects specific tags to be empty of any content.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/empty-tags.md#repos-sticky-header
	 */
	'jsdoc/empty-tags'?: Linter.RuleEntry<JsdocEmptyTags>
	/**
	 * Reports an issue with any non-constructor function using `@implements`.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/implements-on-classes.md#repos-sticky-header
	 */
	'jsdoc/implements-on-classes'?: Linter.RuleEntry<JsdocImplementsOnClasses>
	/**
	 * Reports if JSDoc `import()` statements point to a package which is not listed in `dependencies` or `devDependencies`
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/imports-as-dependencies.md#repos-sticky-header
	 */
	'jsdoc/imports-as-dependencies'?: Linter.RuleEntry<[]>
	/**
	 * This rule reports doc comments that only restate their attached name.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/informative-docs.md#repos-sticky-header
	 */
	'jsdoc/informative-docs'?: Linter.RuleEntry<JsdocInformativeDocs>
	/**
	 * Enforces minimum number of newlines before JSDoc comment blocks
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/lines-before-block.md#repos-sticky-header
	 */
	'jsdoc/lines-before-block'?: Linter.RuleEntry<JsdocLinesBeforeBlock>
	/**
	 * Enforces a regular expression pattern on descriptions.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-description.md#repos-sticky-header
	 */
	'jsdoc/match-description'?: Linter.RuleEntry<JsdocMatchDescription>
	/**
	 * Reports the name portion of a JSDoc tag if matching or not matching a given regular expression.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-name.md#repos-sticky-header
	 */
	'jsdoc/match-name'?: Linter.RuleEntry<JsdocMatchName>
	/**
	 * Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/multiline-blocks.md#repos-sticky-header
	 */
	'jsdoc/multiline-blocks'?: Linter.RuleEntry<JsdocMultilineBlocks>
	/**
	 * This rule checks for multi-line-style comments which fail to meet the criteria of a jsdoc block.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-bad-blocks.md#repos-sticky-header
	 */
	'jsdoc/no-bad-blocks'?: Linter.RuleEntry<JsdocNoBadBlocks>
	/**
	 * Detects and removes extra lines of a blank block description
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-block-descriptions.md#repos-sticky-header
	 */
	'jsdoc/no-blank-block-descriptions'?: Linter.RuleEntry<[]>
	/**
	 * Removes empty blocks with nothing but possibly line breaks
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-blocks.md#repos-sticky-header
	 */
	'jsdoc/no-blank-blocks'?: Linter.RuleEntry<JsdocNoBlankBlocks>
	/**
	 * This rule reports defaults being used on the relevant portion of `@param` or `@default`.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-defaults.md#repos-sticky-header
	 */
	'jsdoc/no-defaults'?: Linter.RuleEntry<JsdocNoDefaults>
	/**
	 * Reports when certain comment structures are always expected.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-missing-syntax.md#repos-sticky-header
	 */
	'jsdoc/no-missing-syntax'?: Linter.RuleEntry<JsdocNoMissingSyntax>
	/**
	 * Prevents use of multiple asterisks at the beginning of lines.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-multi-asterisks.md#repos-sticky-header
	 */
	'jsdoc/no-multi-asterisks'?: Linter.RuleEntry<JsdocNoMultiAsterisks>
	/**
	 * Reports when certain comment structures are present.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-restricted-syntax.md#repos-sticky-header
	 */
	'jsdoc/no-restricted-syntax'?: Linter.RuleEntry<JsdocNoRestrictedSyntax>
	/**
	 * This rule reports types being used on `@param` or `@returns`.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-types.md#repos-sticky-header
	 */
	'jsdoc/no-types'?: Linter.RuleEntry<JsdocNoTypes>
	/**
	 * Checks that types in jsdoc comments are defined.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-undefined-types.md#repos-sticky-header
	 */
	'jsdoc/no-undefined-types'?: Linter.RuleEntry<JsdocNoUndefinedTypes>
	/**
	 * Requires that each JSDoc line starts with an `*`.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-asterisk-prefix.md#repos-sticky-header
	 */
	'jsdoc/require-asterisk-prefix'?: Linter.RuleEntry<JsdocRequireAsteriskPrefix>
	/**
	 * Requires that all functions have a description.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description.md#repos-sticky-header
	 */
	'jsdoc/require-description'?: Linter.RuleEntry<JsdocRequireDescription>
	/**
	 * Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description-complete-sentence.md#repos-sticky-header
	 */
	'jsdoc/require-description-complete-sentence'?: Linter.RuleEntry<JsdocRequireDescriptionCompleteSentence>
	/**
	 * Requires that all functions have examples.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-example.md#repos-sticky-header
	 */
	'jsdoc/require-example'?: Linter.RuleEntry<JsdocRequireExample>
	/**
	 * Checks that all files have one `@file`, `@fileoverview`, or `@overview` tag at the beginning of the file.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-file-overview.md#repos-sticky-header
	 */
	'jsdoc/require-file-overview'?: Linter.RuleEntry<JsdocRequireFileOverview>
	/**
	 * Requires a hyphen before the `@param` description.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-hyphen-before-param-description.md#repos-sticky-header
	 */
	'jsdoc/require-hyphen-before-param-description'?: Linter.RuleEntry<JsdocRequireHyphenBeforeParamDescription>
	/**
	 * Require JSDoc comments
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-jsdoc.md#repos-sticky-header
	 */
	'jsdoc/require-jsdoc'?: Linter.RuleEntry<JsdocRequireJsdoc>
	/**
	 * Requires that all function parameters are documented.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param.md#repos-sticky-header
	 */
	'jsdoc/require-param'?: Linter.RuleEntry<JsdocRequireParam>
	/**
	 * Requires that each `@param` tag has a `description` value.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-description.md#repos-sticky-header
	 */
	'jsdoc/require-param-description'?: Linter.RuleEntry<JsdocRequireParamDescription>
	/**
	 * Requires that all function parameters have names.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-name.md#repos-sticky-header
	 */
	'jsdoc/require-param-name'?: Linter.RuleEntry<JsdocRequireParamName>
	/**
	 * Requires that each `@param` tag has a `type` value.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-type.md#repos-sticky-header
	 */
	'jsdoc/require-param-type'?: Linter.RuleEntry<JsdocRequireParamType>
	/**
	 * Requires that all `@typedef` and `@namespace` tags have `@property` when their type is a plain `object`, `Object`, or `PlainObject`.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property.md#repos-sticky-header
	 */
	'jsdoc/require-property'?: Linter.RuleEntry<[]>
	/**
	 * Requires that each `@property` tag has a `description` value.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-description.md#repos-sticky-header
	 */
	'jsdoc/require-property-description'?: Linter.RuleEntry<[]>
	/**
	 * Requires that all function `@property` tags have names.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-name.md#repos-sticky-header
	 */
	'jsdoc/require-property-name'?: Linter.RuleEntry<[]>
	/**
	 * Requires that each `@property` tag has a `type` value.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-type.md#repos-sticky-header
	 */
	'jsdoc/require-property-type'?: Linter.RuleEntry<[]>
	/**
	 * Requires that returns are documented.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns.md#repos-sticky-header
	 */
	'jsdoc/require-returns'?: Linter.RuleEntry<JsdocRequireReturns>
	/**
	 * Requires a return statement in function body if a `@returns` tag is specified in jsdoc comment.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-check.md#repos-sticky-header
	 */
	'jsdoc/require-returns-check'?: Linter.RuleEntry<JsdocRequireReturnsCheck>
	/**
	 * Requires that the `@returns` tag has a `description` value.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-description.md#repos-sticky-header
	 */
	'jsdoc/require-returns-description'?: Linter.RuleEntry<JsdocRequireReturnsDescription>
	/**
	 * Requires that `@returns` tag has `type` value.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-type.md#repos-sticky-header
	 */
	'jsdoc/require-returns-type'?: Linter.RuleEntry<JsdocRequireReturnsType>
	/**
	 * Requires template tags for each generic type parameter
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template.md#repos-sticky-header
	 */
	'jsdoc/require-template'?: Linter.RuleEntry<JsdocRequireTemplate>
	/**
	 * Requires that throw statements are documented.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws.md#repos-sticky-header
	 */
	'jsdoc/require-throws'?: Linter.RuleEntry<JsdocRequireThrows>
	/**
	 * Requires yields are documented.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields.md#repos-sticky-header
	 */
	'jsdoc/require-yields'?: Linter.RuleEntry<JsdocRequireYields>
	/**
	 * Requires a yield statement in function body if a `@yields` tag is specified in jsdoc comment.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-check.md#repos-sticky-header
	 */
	'jsdoc/require-yields-check'?: Linter.RuleEntry<JsdocRequireYieldsCheck>
	/**
	 * Sorts tags by a specified sequence according to tag name.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/sort-tags.md#repos-sticky-header
	 */
	'jsdoc/sort-tags'?: Linter.RuleEntry<JsdocSortTags>
	/**
	 * Enforces lines (or no lines) between tags.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/tag-lines.md#repos-sticky-header
	 */
	'jsdoc/tag-lines'?: Linter.RuleEntry<JsdocTagLines>
	/**
	 * Auto-escape certain characters that are input within block and tag descriptions.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/text-escaping.md#repos-sticky-header
	 */
	'jsdoc/text-escaping'?: Linter.RuleEntry<JsdocTextEscaping>
	/**
	 * Requires all types to be valid JSDoc or Closure compiler types without syntax errors.
	 * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/valid-types.md#repos-sticky-header
	 */
	'jsdoc/valid-types'?: Linter.RuleEntry<JsdocValidTypes>
	/**
	 * Reports on unnecessary empty arrays and objects.
	 */
	'json-package/no-empty-fields'?: Linter.RuleEntry<[]>
	/**
	 * Prevents adding unnecessary / redundant files.
	 */
	'json-package/no-redundant-files'?: Linter.RuleEntry<[]>
	/**
	 * Package properties must be declared in standard order
	 */
	'json-package/order-properties'?: Linter.RuleEntry<JsonPackageOrderProperties>
	/**
	 * Enforce either object or shorthand declaration for repository.
	 */
	'json-package/repository-shorthand'?: Linter.RuleEntry<JsonPackageRepositoryShorthand>
	/**
	 * Requires the `author` property to be present.
	 */
	'json-package/require-author'?: Linter.RuleEntry<[]>
	/**
	 * Requires the `description` property to be present.
	 */
	'json-package/require-description'?: Linter.RuleEntry<[]>
	/**
	 * Requires the `engines` property to be present.
	 */
	'json-package/require-engines'?: Linter.RuleEntry<[]>
	/**
	 * Requires the `files` property to be present.
	 */
	'json-package/require-files'?: Linter.RuleEntry<[]>
	/**
	 * Requires the `keywords` property to be present.
	 */
	'json-package/require-keywords'?: Linter.RuleEntry<[]>
	/**
	 * Requires the `name` property to be present.
	 */
	'json-package/require-name'?: Linter.RuleEntry<[]>
	/**
	 * Requires the `type` property to be present.
	 */
	'json-package/require-type'?: Linter.RuleEntry<[]>
	/**
	 * Requires the `types` property to be present.
	 */
	'json-package/require-types'?: Linter.RuleEntry<[]>
	/**
	 * Requires the `version` property to be present.
	 */
	'json-package/require-version'?: Linter.RuleEntry<[]>
	/**
	 * Restricts the range of dependencies to allow or disallow specific types of ranges.
	 */
	'json-package/restrict-dependency-ranges'?: Linter.RuleEntry<JsonPackageRestrictDependencyRanges>
	/**
	 * Dependencies, scripts, and configuration values must be declared in alphabetical order.
	 */
	'json-package/sort-collections'?: Linter.RuleEntry<JsonPackageSortCollections>
	/**
	 * Checks a dependency isn't specified more than once (i.e. in `dependencies` and `devDependencies`)
	 */
	'json-package/unique-dependencies'?: Linter.RuleEntry<[]>
	/**
	 * Checks existence of local dependencies in the package.json
	 */
	'json-package/valid-local-dependency'?: Linter.RuleEntry<[]>
	/**
	 * Enforce that package names are valid npm package names
	 */
	'json-package/valid-name'?: Linter.RuleEntry<[]>
	/**
	 * Enforce that package.json has all properties required by the npm spec
	 * @deprecated
	 */
	'json-package/valid-package-def'?: Linter.RuleEntry<JsonPackageValidPackageDef>
	/**
	 * Enforce that package.json has all properties required by the npm spec
	 */
	'json-package/valid-package-definition'?: Linter.RuleEntry<JsonPackageValidPackageDefinition>
	/**
	 * Enforce that if repository directory is specified, it matches the path to the package.json file
	 */
	'json-package/valid-repository-directory'?: Linter.RuleEntry<[]>
	/**
	 * Enforce that package versions are valid semver specifiers
	 */
	'json-package/valid-version'?: Linter.RuleEntry<[]>
	/**
	 * enforce line breaks after opening and before closing array brackets
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-bracket-newline.html
	 */
	'json/array-bracket-newline'?: Linter.RuleEntry<JsonArrayBracketNewline>
	/**
	 * disallow or enforce spaces inside of brackets
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-bracket-spacing.html
	 */
	'json/array-bracket-spacing'?: Linter.RuleEntry<JsonArrayBracketSpacing>
	/**
	 * enforce line breaks between array elements
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-element-newline.html
	 */
	'json/array-element-newline'?: Linter.RuleEntry<JsonArrayElementNewline>
	/**
	 * apply jsonc rules similar to your configured ESLint core rules
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/auto.html
	 */
	'json/auto'?: Linter.RuleEntry<[]>
	/**
	 * require or disallow trailing commas
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/comma-dangle.html
	 */
	'json/comma-dangle'?: Linter.RuleEntry<JsonCommaDangle>
	/**
	 * enforce consistent comma style
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/comma-style.html
	 */
	'json/comma-style'?: Linter.RuleEntry<JsonCommaStyle>
	/**
	 * enforce consistent indentation
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/indent.html
	 */
	'json/indent'?: Linter.RuleEntry<JsonIndent>
	/**
	 * enforce naming convention to property key names
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/key-name-casing.html
	 */
	'json/key-name-casing'?: Linter.RuleEntry<JsonKeyNameCasing>
	/**
	 * enforce consistent spacing between keys and values in object literal properties
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/key-spacing.html
	 */
	'json/key-spacing'?: Linter.RuleEntry<JsonKeySpacing>
	/**
	 * disallow BigInt literals
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-bigint-literals.html
	 */
	'json/no-bigint-literals'?: Linter.RuleEntry<[]>
	/**
	 * disallow binary expression
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-binary-expression.html
	 */
	'json/no-binary-expression'?: Linter.RuleEntry<[]>
	/**
	 * disallow binary numeric literals
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-binary-numeric-literals.html
	 */
	'json/no-binary-numeric-literals'?: Linter.RuleEntry<[]>
	/**
	 * disallow comments
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-comments.html
	 */
	'json/no-comments'?: Linter.RuleEntry<[]>
	/**
	 * disallow duplicate keys in object literals
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-dupe-keys.html
	 */
	'json/no-dupe-keys'?: Linter.RuleEntry<[]>
	/**
	 * disallow escape sequences in identifiers.
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-escape-sequence-in-identifier.html
	 */
	'json/no-escape-sequence-in-identifier'?: Linter.RuleEntry<[]>
	/**
	 * disallow leading or trailing decimal points in numeric literals
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-floating-decimal.html
	 */
	'json/no-floating-decimal'?: Linter.RuleEntry<[]>
	/**
	 * disallow hexadecimal numeric literals
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-hexadecimal-numeric-literals.html
	 */
	'json/no-hexadecimal-numeric-literals'?: Linter.RuleEntry<[]>
	/**
	 * disallow Infinity
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-infinity.html
	 */
	'json/no-infinity'?: Linter.RuleEntry<[]>
	/**
	 * disallow irregular whitespace
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-irregular-whitespace.html
	 */
	'json/no-irregular-whitespace'?: Linter.RuleEntry<JsonNoIrregularWhitespace>
	/**
	 * disallow multiline strings
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-multi-str.html
	 */
	'json/no-multi-str'?: Linter.RuleEntry<[]>
	/**
	 * disallow NaN
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-nan.html
	 */
	'json/no-nan'?: Linter.RuleEntry<[]>
	/**
	 * disallow number property keys
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-number-props.html
	 */
	'json/no-number-props'?: Linter.RuleEntry<[]>
	/**
	 * disallow numeric separators
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-numeric-separators.html
	 */
	'json/no-numeric-separators'?: Linter.RuleEntry<[]>
	/**
	 * disallow legacy octal literals
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal.html
	 */
	'json/no-octal'?: Linter.RuleEntry<[]>
	/**
	 * disallow octal escape sequences in string literals
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal-escape.html
	 */
	'json/no-octal-escape'?: Linter.RuleEntry<[]>
	/**
	 * disallow octal numeric literals
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal-numeric-literals.html
	 */
	'json/no-octal-numeric-literals'?: Linter.RuleEntry<[]>
	/**
	 * disallow parentheses around the expression
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-parenthesized.html
	 */
	'json/no-parenthesized'?: Linter.RuleEntry<[]>
	/**
	 * disallow plus sign
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-plus-sign.html
	 */
	'json/no-plus-sign'?: Linter.RuleEntry<[]>
	/**
	 * disallow RegExp literals
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-regexp-literals.html
	 */
	'json/no-regexp-literals'?: Linter.RuleEntry<[]>
	/**
	 * disallow sparse arrays
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-sparse-arrays.html
	 */
	'json/no-sparse-arrays'?: Linter.RuleEntry<[]>
	/**
	 * disallow template literals
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-template-literals.html
	 */
	'json/no-template-literals'?: Linter.RuleEntry<[]>
	/**
	 * disallow `undefined`
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-undefined-value.html
	 */
	'json/no-undefined-value'?: Linter.RuleEntry<[]>
	/**
	 * disallow Unicode code point escape sequences.
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-unicode-codepoint-escapes.html
	 */
	'json/no-unicode-codepoint-escapes'?: Linter.RuleEntry<[]>
	/**
	 * disallow unnecessary escape usage
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-useless-escape.html
	 */
	'json/no-useless-escape'?: Linter.RuleEntry<JsonNoUselessEscape>
	/**
	 * enforce consistent line breaks inside braces
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-curly-newline.html
	 */
	'json/object-curly-newline'?: Linter.RuleEntry<JsonObjectCurlyNewline>
	/**
	 * enforce consistent spacing inside braces
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-curly-spacing.html
	 */
	'json/object-curly-spacing'?: Linter.RuleEntry<JsonObjectCurlySpacing>
	/**
	 * enforce placing object properties on separate lines
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-property-newline.html
	 */
	'json/object-property-newline'?: Linter.RuleEntry<JsonObjectPropertyNewline>
	/**
	 * require quotes around object literal property names
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/quote-props.html
	 */
	'json/quote-props'?: Linter.RuleEntry<JsonQuoteProps>
	/**
	 * enforce use of double or single quotes
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/quotes.html
	 */
	'json/quotes'?: Linter.RuleEntry<JsonQuotes>
	/**
	 * require array values to be sorted
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-array-values.html
	 */
	'json/sort-array-values'?: Linter.RuleEntry<JsonSortArrayValues>
	/**
	 * require object keys to be sorted
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-keys.html
	 */
	'json/sort-keys'?: Linter.RuleEntry<JsonSortKeys>
	/**
	 * disallow spaces after unary operators
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/space-unary-ops.html
	 */
	'json/space-unary-ops'?: Linter.RuleEntry<JsonSpaceUnaryOps>
	/**
	 * disallow invalid number for JSON
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/valid-json-number.html
	 */
	'json/valid-json-number'?: Linter.RuleEntry<[]>
	/**
	 * disallow parsing errors in Vue custom blocks
	 * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/vue-custom-block/no-parsing-error.html
	 */
	'json/vue-custom-block/no-parsing-error'?: Linter.RuleEntry<[]>
	/**
	 * Enforce emojis are wrapped in `<span>` and provide screen reader access.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/accessible-emoji.md
	 * @deprecated
	 */
	'jsx-a11y/accessible-emoji'?: Linter.RuleEntry<JsxA11YAccessibleEmoji>
	/**
	 * Enforce all elements that require alternative text have meaningful information to relay back to end user.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/alt-text.md
	 */
	'jsx-a11y/alt-text'?: Linter.RuleEntry<JsxA11YAltText>
	/**
	 * Enforce `<a>` text to not exactly match "click here", "here", "link", or "a link".
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-ambiguous-text.md
	 */
	'jsx-a11y/anchor-ambiguous-text'?: Linter.RuleEntry<JsxA11YAnchorAmbiguousText>
	/**
	 * Enforce all anchors to contain accessible content.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-has-content.md
	 */
	'jsx-a11y/anchor-has-content'?: Linter.RuleEntry<JsxA11YAnchorHasContent>
	/**
	 * Enforce all anchors are valid, navigable elements.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-is-valid.md
	 */
	'jsx-a11y/anchor-is-valid'?: Linter.RuleEntry<JsxA11YAnchorIsValid>
	/**
	 * Enforce elements with aria-activedescendant are tabbable.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-activedescendant-has-tabindex.md
	 */
	'jsx-a11y/aria-activedescendant-has-tabindex'?: Linter.RuleEntry<JsxA11YAriaActivedescendantHasTabindex>
	/**
	 * Enforce all `aria-*` props are valid.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-props.md
	 */
	'jsx-a11y/aria-props'?: Linter.RuleEntry<JsxA11YAriaProps>
	/**
	 * Enforce ARIA state and property values are valid.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-proptypes.md
	 */
	'jsx-a11y/aria-proptypes'?: Linter.RuleEntry<JsxA11YAriaProptypes>
	/**
	 * Enforce that elements with ARIA roles must use a valid, non-abstract ARIA role.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-role.md
	 */
	'jsx-a11y/aria-role'?: Linter.RuleEntry<JsxA11YAriaRole>
	/**
	 * Enforce that elements that do not support ARIA roles, states, and properties do not have those attributes.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-unsupported-elements.md
	 */
	'jsx-a11y/aria-unsupported-elements'?: Linter.RuleEntry<JsxA11YAriaUnsupportedElements>
	/**
	 * Enforce that autocomplete attributes are used correctly.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/autocomplete-valid.md
	 */
	'jsx-a11y/autocomplete-valid'?: Linter.RuleEntry<JsxA11YAutocompleteValid>
	/**
	 * Enforce a clickable non-interactive element has at least one keyboard event listener.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/click-events-have-key-events.md
	 */
	'jsx-a11y/click-events-have-key-events'?: Linter.RuleEntry<JsxA11YClickEventsHaveKeyEvents>
	/**
	 * Enforce that a control (an interactive element) has a text label.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/control-has-associated-label.md
	 */
	'jsx-a11y/control-has-associated-label'?: Linter.RuleEntry<JsxA11YControlHasAssociatedLabel>
	/**
	 * Enforce heading (`h1`, `h2`, etc) elements contain accessible content.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/heading-has-content.md
	 */
	'jsx-a11y/heading-has-content'?: Linter.RuleEntry<JsxA11YHeadingHasContent>
	/**
	 * Enforce `<html>` element has `lang` prop.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/html-has-lang.md
	 */
	'jsx-a11y/html-has-lang'?: Linter.RuleEntry<JsxA11YHtmlHasLang>
	/**
	 * Enforce iframe elements have a title attribute.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/iframe-has-title.md
	 */
	'jsx-a11y/iframe-has-title'?: Linter.RuleEntry<JsxA11YIframeHasTitle>
	/**
	 * Enforce `<img>` alt prop does not contain the word "image", "picture", or "photo".
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/img-redundant-alt.md
	 */
	'jsx-a11y/img-redundant-alt'?: Linter.RuleEntry<JsxA11YImgRedundantAlt>
	/**
	 * Enforce that elements with interactive handlers like `onClick` must be focusable.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/interactive-supports-focus.md
	 */
	'jsx-a11y/interactive-supports-focus'?: Linter.RuleEntry<JsxA11YInteractiveSupportsFocus>
	/**
	 * Enforce that a `label` tag has a text label and an associated control.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/label-has-associated-control.md
	 */
	'jsx-a11y/label-has-associated-control'?: Linter.RuleEntry<JsxA11YLabelHasAssociatedControl>
	/**
	 * Enforce that `<label>` elements have the `htmlFor` prop.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/label-has-for.md
	 * @deprecated
	 */
	'jsx-a11y/label-has-for'?: Linter.RuleEntry<JsxA11YLabelHasFor>
	/**
	 * Enforce lang attribute has a valid value.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/lang.md
	 */
	'jsx-a11y/lang'?: Linter.RuleEntry<JsxA11YLang>
	/**
	 * Enforces that `<audio>` and `<video>` elements must have a `<track>` for captions.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/media-has-caption.md
	 */
	'jsx-a11y/media-has-caption'?: Linter.RuleEntry<JsxA11YMediaHasCaption>
	/**
	 * Enforce that `onMouseOver`/`onMouseOut` are accompanied by `onFocus`/`onBlur` for keyboard-only users.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/mouse-events-have-key-events.md
	 */
	'jsx-a11y/mouse-events-have-key-events'?: Linter.RuleEntry<JsxA11YMouseEventsHaveKeyEvents>
	/**
	 * Enforce that the `accessKey` prop is not used on any element to avoid complications with keyboard commands used by a screen reader.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-access-key.md
	 */
	'jsx-a11y/no-access-key'?: Linter.RuleEntry<JsxA11YNoAccessKey>
	/**
	 * Disallow `aria-hidden="true"` from being set on focusable elements.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-aria-hidden-on-focusable.md
	 */
	'jsx-a11y/no-aria-hidden-on-focusable'?: Linter.RuleEntry<JsxA11YNoAriaHiddenOnFocusable>
	/**
	 * Enforce autoFocus prop is not used.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-autofocus.md
	 */
	'jsx-a11y/no-autofocus'?: Linter.RuleEntry<JsxA11YNoAutofocus>
	/**
	 * Enforce distracting elements are not used.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-distracting-elements.md
	 */
	'jsx-a11y/no-distracting-elements'?: Linter.RuleEntry<JsxA11YNoDistractingElements>
	/**
	 * Interactive elements should not be assigned non-interactive roles.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-interactive-element-to-noninteractive-role.md
	 */
	'jsx-a11y/no-interactive-element-to-noninteractive-role'?: Linter.RuleEntry<JsxA11YNoInteractiveElementToNoninteractiveRole>
	/**
	 * Non-interactive elements should not be assigned mouse or keyboard event listeners.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-element-interactions.md
	 */
	'jsx-a11y/no-noninteractive-element-interactions'?: Linter.RuleEntry<JsxA11YNoNoninteractiveElementInteractions>
	/**
	 * Non-interactive elements should not be assigned interactive roles.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-element-to-interactive-role.md
	 */
	'jsx-a11y/no-noninteractive-element-to-interactive-role'?: Linter.RuleEntry<JsxA11YNoNoninteractiveElementToInteractiveRole>
	/**
	 * `tabIndex` should only be declared on interactive elements.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-tabindex.md
	 */
	'jsx-a11y/no-noninteractive-tabindex'?: Linter.RuleEntry<JsxA11YNoNoninteractiveTabindex>
	/**
	 * Enforce usage of `onBlur` over `onChange` on select menus for accessibility.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-onchange.md
	 * @deprecated
	 */
	'jsx-a11y/no-onchange'?: Linter.RuleEntry<JsxA11YNoOnchange>
	/**
	 * Enforce explicit role property is not the same as implicit/default role property on element.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-redundant-roles.md
	 */
	'jsx-a11y/no-redundant-roles'?: Linter.RuleEntry<JsxA11YNoRedundantRoles>
	/**
	 * Enforce that non-interactive, visible elements (such as `<div>`) that have click handlers use the role attribute.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-static-element-interactions.md
	 */
	'jsx-a11y/no-static-element-interactions'?: Linter.RuleEntry<JsxA11YNoStaticElementInteractions>
	/**
	 * Enforces using semantic DOM elements over the ARIA `role` property.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/prefer-tag-over-role.md
	 */
	'jsx-a11y/prefer-tag-over-role'?: Linter.RuleEntry<JsxA11YPreferTagOverRole>
	/**
	 * Enforce that elements with ARIA roles must have all required attributes for that role.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/role-has-required-aria-props.md
	 */
	'jsx-a11y/role-has-required-aria-props'?: Linter.RuleEntry<JsxA11YRoleHasRequiredAriaProps>
	/**
	 * Enforce that elements with explicit or implicit roles defined contain only `aria-*` properties supported by that `role`.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/role-supports-aria-props.md
	 */
	'jsx-a11y/role-supports-aria-props'?: Linter.RuleEntry<JsxA11YRoleSupportsAriaProps>
	/**
	 * Enforce `scope` prop is only used on `<th>` elements.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/scope.md
	 */
	'jsx-a11y/scope'?: Linter.RuleEntry<JsxA11YScope>
	/**
	 * Enforce `tabIndex` value is not greater than zero.
	 * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/tabindex-no-positive.md
	 */
	'jsx-a11y/tabindex-no-positive'?: Linter.RuleEntry<JsxA11YTabindexNoPositive>
	/**
	 * Enforce the consistent use of either double or single quotes in JSX attributes
	 * @see https://eslint.org/docs/latest/rules/jsx-quotes
	 * @deprecated
	 */
	'jsx-quotes'?: Linter.RuleEntry<JsxQuotes>
	/**
	 * Enforce consistent spacing between keys and values in object literal properties
	 * @see https://eslint.org/docs/latest/rules/key-spacing
	 * @deprecated
	 */
	'key-spacing'?: Linter.RuleEntry<KeySpacing>
	/**
	 * Enforce consistent spacing before and after keywords
	 * @see https://eslint.org/docs/latest/rules/keyword-spacing
	 * @deprecated
	 */
	'keyword-spacing'?: Linter.RuleEntry<KeywordSpacing>
	/**
	 * Enforce position of line comments
	 * @see https://eslint.org/docs/latest/rules/line-comment-position
	 * @deprecated
	 */
	'line-comment-position'?: Linter.RuleEntry<LineCommentPosition>
	/**
	 * Enforce consistent linebreak style
	 * @see https://eslint.org/docs/latest/rules/linebreak-style
	 * @deprecated
	 */
	'linebreak-style'?: Linter.RuleEntry<LinebreakStyle>
	/**
	 * Require empty lines around comments
	 * @see https://eslint.org/docs/latest/rules/lines-around-comment
	 * @deprecated
	 */
	'lines-around-comment'?: Linter.RuleEntry<LinesAroundComment>
	/**
	 * Require or disallow newlines around directives
	 * @see https://eslint.org/docs/latest/rules/lines-around-directive
	 * @deprecated
	 */
	'lines-around-directive'?: Linter.RuleEntry<LinesAroundDirective>
	/**
	 * Require or disallow an empty line between class members
	 * @see https://eslint.org/docs/latest/rules/lines-between-class-members
	 * @deprecated
	 */
	'lines-between-class-members'?: Linter.RuleEntry<LinesBetweenClassMembers>
	/**
	 * Require or disallow logical assignment operator shorthand
	 * @see https://eslint.org/docs/latest/rules/logical-assignment-operators
	 */
	'logical-assignment-operators'?: Linter.RuleEntry<LogicalAssignmentOperators>
	/**
	 * Enforce a maximum number of classes per file
	 * @see https://eslint.org/docs/latest/rules/max-classes-per-file
	 */
	'max-classes-per-file'?: Linter.RuleEntry<MaxClassesPerFile>
	/**
	 * Enforce a maximum depth that blocks can be nested
	 * @see https://eslint.org/docs/latest/rules/max-depth
	 */
	'max-depth'?: Linter.RuleEntry<MaxDepth>
	/**
	 * Enforce a maximum line length
	 * @see https://eslint.org/docs/latest/rules/max-len
	 * @deprecated
	 */
	'max-len'?: Linter.RuleEntry<MaxLen>
	/**
	 * Enforce a maximum number of lines per file
	 * @see https://eslint.org/docs/latest/rules/max-lines
	 */
	'max-lines'?: Linter.RuleEntry<MaxLines>
	/**
	 * Enforce a maximum number of lines of code in a function
	 * @see https://eslint.org/docs/latest/rules/max-lines-per-function
	 */
	'max-lines-per-function'?: Linter.RuleEntry<MaxLinesPerFunction>
	/**
	 * Enforce a maximum depth that callbacks can be nested
	 * @see https://eslint.org/docs/latest/rules/max-nested-callbacks
	 */
	'max-nested-callbacks'?: Linter.RuleEntry<MaxNestedCallbacks>
	/**
	 * Enforce a maximum number of parameters in function definitions
	 * @see https://eslint.org/docs/latest/rules/max-params
	 */
	'max-params'?: Linter.RuleEntry<MaxParams>
	/**
	 * Enforce a maximum number of statements allowed in function blocks
	 * @see https://eslint.org/docs/latest/rules/max-statements
	 */
	'max-statements'?: Linter.RuleEntry<MaxStatements>
	/**
	 * Enforce a maximum number of statements allowed per line
	 * @see https://eslint.org/docs/latest/rules/max-statements-per-line
	 * @deprecated
	 */
	'max-statements-per-line'?: Linter.RuleEntry<MaxStatementsPerLine>
	/**
	 * Linter integration with remark plugins
	 */
	'mdx/remark'?: Linter.RuleEntry<[]>
	/**
	 * Enforce a particular style for multiline comments
	 * @see https://eslint.org/docs/latest/rules/multiline-comment-style
	 * @deprecated
	 */
	'multiline-comment-style'?: Linter.RuleEntry<MultilineCommentStyle>
	/**
	 * Enforce newlines between operands of ternary expressions
	 * @see https://eslint.org/docs/latest/rules/multiline-ternary
	 * @deprecated
	 */
	'multiline-ternary'?: Linter.RuleEntry<MultilineTernary>
	/**
	 * Require constructor names to begin with a capital letter
	 * @see https://eslint.org/docs/latest/rules/new-cap
	 */
	'new-cap'?: Linter.RuleEntry<NewCap>
	/**
	 * Enforce or disallow parentheses when invoking a constructor with no arguments
	 * @see https://eslint.org/docs/latest/rules/new-parens
	 * @deprecated
	 */
	'new-parens'?: Linter.RuleEntry<NewParens>
	/**
	 * Require or disallow an empty line after variable declarations
	 * @see https://eslint.org/docs/latest/rules/newline-after-var
	 * @deprecated
	 */
	'newline-after-var'?: Linter.RuleEntry<NewlineAfterVar>
	/**
	 * Require an empty line before `return` statements
	 * @see https://eslint.org/docs/latest/rules/newline-before-return
	 * @deprecated
	 */
	'newline-before-return'?: Linter.RuleEntry<[]>
	/**
	 * Require a newline after each call in a method chain
	 * @see https://eslint.org/docs/latest/rules/newline-per-chained-call
	 * @deprecated
	 */
	'newline-per-chained-call'?: Linter.RuleEntry<NewlinePerChainedCall>
	/**
	 * Disallow the use of `alert`, `confirm`, and `prompt`
	 * @see https://eslint.org/docs/latest/rules/no-alert
	 */
	'no-alert'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `Array` constructors
	 * @see https://eslint.org/docs/latest/rules/no-array-constructor
	 */
	'no-array-constructor'?: Linter.RuleEntry<[]>
	/**
	 * Disallow using an async function as a Promise executor
	 * @see https://eslint.org/docs/latest/rules/no-async-promise-executor
	 */
	'no-async-promise-executor'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `await` inside of loops
	 * @see https://eslint.org/docs/latest/rules/no-await-in-loop
	 */
	'no-await-in-loop'?: Linter.RuleEntry<[]>
	/**
	 * Disallow bitwise operators
	 * @see https://eslint.org/docs/latest/rules/no-bitwise
	 */
	'no-bitwise'?: Linter.RuleEntry<NoBitwise>
	/**
	 * Disallow use of the `Buffer()` constructor
	 * @see https://eslint.org/docs/latest/rules/no-buffer-constructor
	 * @deprecated
	 */
	'no-buffer-constructor'?: Linter.RuleEntry<[]>
	/**
	 * Disallow the use of `arguments.caller` or `arguments.callee`
	 * @see https://eslint.org/docs/latest/rules/no-caller
	 */
	'no-caller'?: Linter.RuleEntry<[]>
	/**
	 * Disallow lexical declarations in case clauses
	 * @see https://eslint.org/docs/latest/rules/no-case-declarations
	 */
	'no-case-declarations'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `catch` clause parameters from shadowing variables in the outer scope
	 * @see https://eslint.org/docs/latest/rules/no-catch-shadow
	 * @deprecated
	 */
	'no-catch-shadow'?: Linter.RuleEntry<[]>
	/**
	 * Disallow reassigning class members
	 * @see https://eslint.org/docs/latest/rules/no-class-assign
	 */
	'no-class-assign'?: Linter.RuleEntry<[]>
	/**
	 * Disallow comparing against `-0`
	 * @see https://eslint.org/docs/latest/rules/no-compare-neg-zero
	 */
	'no-compare-neg-zero'?: Linter.RuleEntry<[]>
	/**
	 * Disallow assignment operators in conditional expressions
	 * @see https://eslint.org/docs/latest/rules/no-cond-assign
	 */
	'no-cond-assign'?: Linter.RuleEntry<NoCondAssign>
	/**
	 * Disallow arrow functions where they could be confused with comparisons
	 * @see https://eslint.org/docs/latest/rules/no-confusing-arrow
	 * @deprecated
	 */
	'no-confusing-arrow'?: Linter.RuleEntry<NoConfusingArrow>
	/**
	 * Disallow the use of `console`
	 * @see https://eslint.org/docs/latest/rules/no-console
	 */
	'no-console'?: Linter.RuleEntry<NoConsole>
	/**
	 * Disallow reassigning `const` variables
	 * @see https://eslint.org/docs/latest/rules/no-const-assign
	 */
	'no-const-assign'?: Linter.RuleEntry<[]>
	/**
	 * Disallow expressions where the operation doesn't affect the value
	 * @see https://eslint.org/docs/latest/rules/no-constant-binary-expression
	 */
	'no-constant-binary-expression'?: Linter.RuleEntry<[]>
	/**
	 * Disallow constant expressions in conditions
	 * @see https://eslint.org/docs/latest/rules/no-constant-condition
	 */
	'no-constant-condition'?: Linter.RuleEntry<NoConstantCondition>
	/**
	 * Disallow returning value from constructor
	 * @see https://eslint.org/docs/latest/rules/no-constructor-return
	 */
	'no-constructor-return'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `continue` statements
	 * @see https://eslint.org/docs/latest/rules/no-continue
	 */
	'no-continue'?: Linter.RuleEntry<[]>
	/**
	 * Disallow control characters in regular expressions
	 * @see https://eslint.org/docs/latest/rules/no-control-regex
	 */
	'no-control-regex'?: Linter.RuleEntry<[]>
	/**
	 * Disallow the use of `debugger`
	 * @see https://eslint.org/docs/latest/rules/no-debugger
	 */
	'no-debugger'?: Linter.RuleEntry<[]>
	/**
	 * Disallow deleting variables
	 * @see https://eslint.org/docs/latest/rules/no-delete-var
	 */
	'no-delete-var'?: Linter.RuleEntry<[]>
	/**
	 * Disallow equal signs explicitly at the beginning of regular expressions
	 * @see https://eslint.org/docs/latest/rules/no-div-regex
	 */
	'no-div-regex'?: Linter.RuleEntry<[]>
	/**
	 * Disallow duplicate arguments in `function` definitions
	 * @see https://eslint.org/docs/latest/rules/no-dupe-args
	 */
	'no-dupe-args'?: Linter.RuleEntry<[]>
	/**
	 * Disallow duplicate class members
	 * @see https://eslint.org/docs/latest/rules/no-dupe-class-members
	 */
	'no-dupe-class-members'?: Linter.RuleEntry<[]>
	/**
	 * Disallow duplicate conditions in if-else-if chains
	 * @see https://eslint.org/docs/latest/rules/no-dupe-else-if
	 */
	'no-dupe-else-if'?: Linter.RuleEntry<[]>
	/**
	 * Disallow duplicate keys in object literals
	 * @see https://eslint.org/docs/latest/rules/no-dupe-keys
	 */
	'no-dupe-keys'?: Linter.RuleEntry<[]>
	/**
	 * Disallow duplicate case labels
	 * @see https://eslint.org/docs/latest/rules/no-duplicate-case
	 */
	'no-duplicate-case'?: Linter.RuleEntry<[]>
	/**
	 * Disallow duplicate module imports
	 * @see https://eslint.org/docs/latest/rules/no-duplicate-imports
	 */
	'no-duplicate-imports'?: Linter.RuleEntry<NoDuplicateImports>
	/**
	 * Disallow `else` blocks after `return` statements in `if` statements
	 * @see https://eslint.org/docs/latest/rules/no-else-return
	 */
	'no-else-return'?: Linter.RuleEntry<NoElseReturn>
	/**
	 * Disallow empty block statements
	 * @see https://eslint.org/docs/latest/rules/no-empty
	 */
	'no-empty'?: Linter.RuleEntry<NoEmpty>
	/**
	 * Disallow empty character classes in regular expressions
	 * @see https://eslint.org/docs/latest/rules/no-empty-character-class
	 */
	'no-empty-character-class'?: Linter.RuleEntry<[]>
	/**
	 * Disallow empty functions
	 * @see https://eslint.org/docs/latest/rules/no-empty-function
	 */
	'no-empty-function'?: Linter.RuleEntry<NoEmptyFunction>
	/**
	 * Disallow empty destructuring patterns
	 * @see https://eslint.org/docs/latest/rules/no-empty-pattern
	 */
	'no-empty-pattern'?: Linter.RuleEntry<NoEmptyPattern>
	/**
	 * Disallow empty static blocks
	 * @see https://eslint.org/docs/latest/rules/no-empty-static-block
	 */
	'no-empty-static-block'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `null` comparisons without type-checking operators
	 * @see https://eslint.org/docs/latest/rules/no-eq-null
	 */
	'no-eq-null'?: Linter.RuleEntry<[]>
	/**
	 * Disallow the use of `eval()`
	 * @see https://eslint.org/docs/latest/rules/no-eval
	 */
	'no-eval'?: Linter.RuleEntry<NoEval>
	/**
	 * Disallow reassigning exceptions in `catch` clauses
	 * @see https://eslint.org/docs/latest/rules/no-ex-assign
	 */
	'no-ex-assign'?: Linter.RuleEntry<[]>
	/**
	 * Disallow extending native types
	 * @see https://eslint.org/docs/latest/rules/no-extend-native
	 */
	'no-extend-native'?: Linter.RuleEntry<NoExtendNative>
	/**
	 * Disallow unnecessary calls to `.bind()`
	 * @see https://eslint.org/docs/latest/rules/no-extra-bind
	 */
	'no-extra-bind'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unnecessary boolean casts
	 * @see https://eslint.org/docs/latest/rules/no-extra-boolean-cast
	 */
	'no-extra-boolean-cast'?: Linter.RuleEntry<NoExtraBooleanCast>
	/**
	 * Disallow unnecessary labels
	 * @see https://eslint.org/docs/latest/rules/no-extra-label
	 */
	'no-extra-label'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unnecessary parentheses
	 * @see https://eslint.org/docs/latest/rules/no-extra-parens
	 * @deprecated
	 */
	'no-extra-parens'?: Linter.RuleEntry<NoExtraParens>
	/**
	 * Disallow unnecessary semicolons
	 * @see https://eslint.org/docs/latest/rules/no-extra-semi
	 * @deprecated
	 */
	'no-extra-semi'?: Linter.RuleEntry<[]>
	/**
	 * Disallow fallthrough of `case` statements
	 * @see https://eslint.org/docs/latest/rules/no-fallthrough
	 */
	'no-fallthrough'?: Linter.RuleEntry<NoFallthrough>
	/**
	 * Disallow leading or trailing decimal points in numeric literals
	 * @see https://eslint.org/docs/latest/rules/no-floating-decimal
	 * @deprecated
	 */
	'no-floating-decimal'?: Linter.RuleEntry<[]>
	/**
	 * Disallow reassigning `function` declarations
	 * @see https://eslint.org/docs/latest/rules/no-func-assign
	 */
	'no-func-assign'?: Linter.RuleEntry<[]>
	/**
	 * Disallow assignments to native objects or read-only global variables
	 * @see https://eslint.org/docs/latest/rules/no-global-assign
	 */
	'no-global-assign'?: Linter.RuleEntry<NoGlobalAssign>
	/**
	 * Disallow shorthand type conversions
	 * @see https://eslint.org/docs/latest/rules/no-implicit-coercion
	 */
	'no-implicit-coercion'?: Linter.RuleEntry<NoImplicitCoercion>
	/**
	 * Disallow declarations in the global scope
	 * @see https://eslint.org/docs/latest/rules/no-implicit-globals
	 */
	'no-implicit-globals'?: Linter.RuleEntry<NoImplicitGlobals>
	/**
	 * Disallow the use of `eval()`-like methods
	 * @see https://eslint.org/docs/latest/rules/no-implied-eval
	 */
	'no-implied-eval'?: Linter.RuleEntry<[]>
	/**
	 * Disallow assigning to imported bindings
	 * @see https://eslint.org/docs/latest/rules/no-import-assign
	 */
	'no-import-assign'?: Linter.RuleEntry<[]>
	/**
	 * Disallow inline comments after code
	 * @see https://eslint.org/docs/latest/rules/no-inline-comments
	 */
	'no-inline-comments'?: Linter.RuleEntry<NoInlineComments>
	/**
	 * Disallow variable or `function` declarations in nested blocks
	 * @see https://eslint.org/docs/latest/rules/no-inner-declarations
	 */
	'no-inner-declarations'?: Linter.RuleEntry<NoInnerDeclarations>
	/**
	 * Disallow invalid regular expression strings in `RegExp` constructors
	 * @see https://eslint.org/docs/latest/rules/no-invalid-regexp
	 */
	'no-invalid-regexp'?: Linter.RuleEntry<NoInvalidRegexp>
	/**
	 * Disallow use of `this` in contexts where the value of `this` is `undefined`
	 * @see https://eslint.org/docs/latest/rules/no-invalid-this
	 */
	'no-invalid-this'?: Linter.RuleEntry<NoInvalidThis>
	/**
	 * Disallow irregular whitespace
	 * @see https://eslint.org/docs/latest/rules/no-irregular-whitespace
	 */
	'no-irregular-whitespace'?: Linter.RuleEntry<NoIrregularWhitespace>
	/**
	 * Disallow the use of the `__iterator__` property
	 * @see https://eslint.org/docs/latest/rules/no-iterator
	 */
	'no-iterator'?: Linter.RuleEntry<[]>
	/**
	 * Disallow labels that share a name with a variable
	 * @see https://eslint.org/docs/latest/rules/no-label-var
	 */
	'no-label-var'?: Linter.RuleEntry<[]>
	/**
	 * Disallow labeled statements
	 * @see https://eslint.org/docs/latest/rules/no-labels
	 */
	'no-labels'?: Linter.RuleEntry<NoLabels>
	/**
	 * Disallow unnecessary nested blocks
	 * @see https://eslint.org/docs/latest/rules/no-lone-blocks
	 */
	'no-lone-blocks'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `if` statements as the only statement in `else` blocks
	 * @see https://eslint.org/docs/latest/rules/no-lonely-if
	 */
	'no-lonely-if'?: Linter.RuleEntry<[]>
	/**
	 * Disallow function declarations that contain unsafe references inside loop statements
	 * @see https://eslint.org/docs/latest/rules/no-loop-func
	 */
	'no-loop-func'?: Linter.RuleEntry<[]>
	/**
	 * Disallow literal numbers that lose precision
	 * @see https://eslint.org/docs/latest/rules/no-loss-of-precision
	 */
	'no-loss-of-precision'?: Linter.RuleEntry<[]>
	/**
	 * Disallow magic numbers
	 * @see https://eslint.org/docs/latest/rules/no-magic-numbers
	 */
	'no-magic-numbers'?: Linter.RuleEntry<NoMagicNumbers>
	/**
	 * Disallow characters which are made with multiple code points in character class syntax
	 * @see https://eslint.org/docs/latest/rules/no-misleading-character-class
	 */
	'no-misleading-character-class'?: Linter.RuleEntry<NoMisleadingCharacterClass>
	/**
	 * Disallow mixed binary operators
	 * @see https://eslint.org/docs/latest/rules/no-mixed-operators
	 * @deprecated
	 */
	'no-mixed-operators'?: Linter.RuleEntry<NoMixedOperators>
	/**
	 * Disallow `require` calls to be mixed with regular variable declarations
	 * @see https://eslint.org/docs/latest/rules/no-mixed-requires
	 * @deprecated
	 */
	'no-mixed-requires'?: Linter.RuleEntry<NoMixedRequires>
	/**
	 * Disallow mixed spaces and tabs for indentation
	 * @see https://eslint.org/docs/latest/rules/no-mixed-spaces-and-tabs
	 * @deprecated
	 */
	'no-mixed-spaces-and-tabs'?: Linter.RuleEntry<NoMixedSpacesAndTabs>
	/**
	 * Disallow use of chained assignment expressions
	 * @see https://eslint.org/docs/latest/rules/no-multi-assign
	 */
	'no-multi-assign'?: Linter.RuleEntry<NoMultiAssign>
	/**
	 * Disallow multiple spaces
	 * @see https://eslint.org/docs/latest/rules/no-multi-spaces
	 * @deprecated
	 */
	'no-multi-spaces'?: Linter.RuleEntry<NoMultiSpaces>
	/**
	 * Disallow multiline strings
	 * @see https://eslint.org/docs/latest/rules/no-multi-str
	 */
	'no-multi-str'?: Linter.RuleEntry<[]>
	/**
	 * Disallow multiple empty lines
	 * @see https://eslint.org/docs/latest/rules/no-multiple-empty-lines
	 * @deprecated
	 */
	'no-multiple-empty-lines'?: Linter.RuleEntry<NoMultipleEmptyLines>
	/**
	 * Disallow assignments to native objects or read-only global variables
	 * @see https://eslint.org/docs/latest/rules/no-native-reassign
	 * @deprecated
	 */
	'no-native-reassign'?: Linter.RuleEntry<NoNativeReassign>
	/**
	 * Disallow negated conditions
	 * @see https://eslint.org/docs/latest/rules/no-negated-condition
	 */
	'no-negated-condition'?: Linter.RuleEntry<[]>
	/**
	 * Disallow negating the left operand in `in` expressions
	 * @see https://eslint.org/docs/latest/rules/no-negated-in-lhs
	 * @deprecated
	 */
	'no-negated-in-lhs'?: Linter.RuleEntry<[]>
	/**
	 * Disallow nested ternary expressions
	 * @see https://eslint.org/docs/latest/rules/no-nested-ternary
	 */
	'no-nested-ternary'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `new` operators outside of assignments or comparisons
	 * @see https://eslint.org/docs/latest/rules/no-new
	 */
	'no-new'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `new` operators with the `Function` object
	 * @see https://eslint.org/docs/latest/rules/no-new-func
	 */
	'no-new-func'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `new` operators with global non-constructor functions
	 * @see https://eslint.org/docs/latest/rules/no-new-native-nonconstructor
	 */
	'no-new-native-nonconstructor'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `Object` constructors
	 * @see https://eslint.org/docs/latest/rules/no-new-object
	 * @deprecated
	 */
	'no-new-object'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `new` operators with calls to `require`
	 * @see https://eslint.org/docs/latest/rules/no-new-require
	 * @deprecated
	 */
	'no-new-require'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `new` operators with the `Symbol` object
	 * @see https://eslint.org/docs/latest/rules/no-new-symbol
	 * @deprecated
	 */
	'no-new-symbol'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `new` operators with the `String`, `Number`, and `Boolean` objects
	 * @see https://eslint.org/docs/latest/rules/no-new-wrappers
	 */
	'no-new-wrappers'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `\8` and `\9` escape sequences in string literals
	 * @see https://eslint.org/docs/latest/rules/no-nonoctal-decimal-escape
	 */
	'no-nonoctal-decimal-escape'?: Linter.RuleEntry<[]>
	/**
	 * Disallow calling global object properties as functions
	 * @see https://eslint.org/docs/latest/rules/no-obj-calls
	 */
	'no-obj-calls'?: Linter.RuleEntry<[]>
	/**
	 * Disallow calls to the `Object` constructor without an argument
	 * @see https://eslint.org/docs/latest/rules/no-object-constructor
	 */
	'no-object-constructor'?: Linter.RuleEntry<[]>
	/**
	 * Disallow octal literals
	 * @see https://eslint.org/docs/latest/rules/no-octal
	 */
	'no-octal'?: Linter.RuleEntry<[]>
	/**
	 * Disallow octal escape sequences in string literals
	 * @see https://eslint.org/docs/latest/rules/no-octal-escape
	 */
	'no-octal-escape'?: Linter.RuleEntry<[]>
	/**
	 * Disallow reassigning function parameters
	 * @see https://eslint.org/docs/latest/rules/no-param-reassign
	 */
	'no-param-reassign'?: Linter.RuleEntry<NoParamReassign>
	/**
	 * Disallow string concatenation with `__dirname` and `__filename`
	 * @see https://eslint.org/docs/latest/rules/no-path-concat
	 * @deprecated
	 */
	'no-path-concat'?: Linter.RuleEntry<[]>
	/**
	 * Disallow the unary operators `++` and `--`
	 * @see https://eslint.org/docs/latest/rules/no-plusplus
	 */
	'no-plusplus'?: Linter.RuleEntry<NoPlusplus>
	/**
	 * Disallow the use of `process.env`
	 * @see https://eslint.org/docs/latest/rules/no-process-env
	 * @deprecated
	 */
	'no-process-env'?: Linter.RuleEntry<[]>
	/**
	 * Disallow the use of `process.exit()`
	 * @see https://eslint.org/docs/latest/rules/no-process-exit
	 * @deprecated
	 */
	'no-process-exit'?: Linter.RuleEntry<[]>
	/**
	 * Disallow returning values from Promise executor functions
	 * @see https://eslint.org/docs/latest/rules/no-promise-executor-return
	 */
	'no-promise-executor-return'?: Linter.RuleEntry<NoPromiseExecutorReturn>
	/**
	 * Disallow the use of the `__proto__` property
	 * @see https://eslint.org/docs/latest/rules/no-proto
	 */
	'no-proto'?: Linter.RuleEntry<[]>
	/**
	 * Disallow calling some `Object.prototype` methods directly on objects
	 * @see https://eslint.org/docs/latest/rules/no-prototype-builtins
	 */
	'no-prototype-builtins'?: Linter.RuleEntry<[]>
	/**
	 * Disallow variable redeclaration
	 * @see https://eslint.org/docs/latest/rules/no-redeclare
	 */
	'no-redeclare'?: Linter.RuleEntry<NoRedeclare>
	/**
	 * Disallow multiple spaces in regular expressions
	 * @see https://eslint.org/docs/latest/rules/no-regex-spaces
	 */
	'no-regex-spaces'?: Linter.RuleEntry<[]>
	/**
	 * Disallow specified names in exports
	 * @see https://eslint.org/docs/latest/rules/no-restricted-exports
	 */
	'no-restricted-exports'?: Linter.RuleEntry<NoRestrictedExports>
	/**
	 * Disallow specified global variables
	 * @see https://eslint.org/docs/latest/rules/no-restricted-globals
	 */
	'no-restricted-globals'?: Linter.RuleEntry<NoRestrictedGlobals>
	/**
	 * Disallow specified modules when loaded by `import`
	 * @see https://eslint.org/docs/latest/rules/no-restricted-imports
	 */
	'no-restricted-imports'?: Linter.RuleEntry<NoRestrictedImports>
	/**
	 * Disallow specified modules when loaded by `require`
	 * @see https://eslint.org/docs/latest/rules/no-restricted-modules
	 * @deprecated
	 */
	'no-restricted-modules'?: Linter.RuleEntry<NoRestrictedModules>
	/**
	 * Disallow certain properties on certain objects
	 * @see https://eslint.org/docs/latest/rules/no-restricted-properties
	 */
	'no-restricted-properties'?: Linter.RuleEntry<NoRestrictedProperties>
	/**
	 * Disallow specified syntax
	 * @see https://eslint.org/docs/latest/rules/no-restricted-syntax
	 */
	'no-restricted-syntax'?: Linter.RuleEntry<NoRestrictedSyntax>
	/**
	 * Disallow assignment operators in `return` statements
	 * @see https://eslint.org/docs/latest/rules/no-return-assign
	 */
	'no-return-assign'?: Linter.RuleEntry<NoReturnAssign>
	/**
	 * Disallow unnecessary `return await`
	 * @see https://eslint.org/docs/latest/rules/no-return-await
	 * @deprecated
	 */
	'no-return-await'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `javascript:` URLs
	 * @see https://eslint.org/docs/latest/rules/no-script-url
	 */
	'no-script-url'?: Linter.RuleEntry<[]>
	/**
	 * Disallow assignments where both sides are exactly the same
	 * @see https://eslint.org/docs/latest/rules/no-self-assign
	 */
	'no-self-assign'?: Linter.RuleEntry<NoSelfAssign>
	/**
	 * Disallow comparisons where both sides are exactly the same
	 * @see https://eslint.org/docs/latest/rules/no-self-compare
	 */
	'no-self-compare'?: Linter.RuleEntry<[]>
	/**
	 * Disallow comma operators
	 * @see https://eslint.org/docs/latest/rules/no-sequences
	 */
	'no-sequences'?: Linter.RuleEntry<NoSequences>
	/**
	 * Disallow returning values from setters
	 * @see https://eslint.org/docs/latest/rules/no-setter-return
	 */
	'no-setter-return'?: Linter.RuleEntry<[]>
	/**
	 * Disallow variable declarations from shadowing variables declared in the outer scope
	 * @see https://eslint.org/docs/latest/rules/no-shadow
	 */
	'no-shadow'?: Linter.RuleEntry<NoShadow>
	/**
	 * Disallow identifiers from shadowing restricted names
	 * @see https://eslint.org/docs/latest/rules/no-shadow-restricted-names
	 */
	'no-shadow-restricted-names'?: Linter.RuleEntry<NoShadowRestrictedNames>
	/**
	 * Disallow spacing between function identifiers and their applications (deprecated)
	 * @see https://eslint.org/docs/latest/rules/no-spaced-func
	 * @deprecated
	 */
	'no-spaced-func'?: Linter.RuleEntry<[]>
	/**
	 * Disallow sparse arrays
	 * @see https://eslint.org/docs/latest/rules/no-sparse-arrays
	 */
	'no-sparse-arrays'?: Linter.RuleEntry<[]>
	/**
	 * Disallow synchronous methods
	 * @see https://eslint.org/docs/latest/rules/no-sync
	 * @deprecated
	 */
	'no-sync'?: Linter.RuleEntry<NoSync>
	/**
	 * Disallow all tabs
	 * @see https://eslint.org/docs/latest/rules/no-tabs
	 * @deprecated
	 */
	'no-tabs'?: Linter.RuleEntry<NoTabs>
	/**
	 * Disallow template literal placeholder syntax in regular strings
	 * @see https://eslint.org/docs/latest/rules/no-template-curly-in-string
	 */
	'no-template-curly-in-string'?: Linter.RuleEntry<[]>
	/**
	 * Disallow ternary operators
	 * @see https://eslint.org/docs/latest/rules/no-ternary
	 */
	'no-ternary'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `this`/`super` before calling `super()` in constructors
	 * @see https://eslint.org/docs/latest/rules/no-this-before-super
	 */
	'no-this-before-super'?: Linter.RuleEntry<[]>
	/**
	 * Disallow throwing literals as exceptions
	 * @see https://eslint.org/docs/latest/rules/no-throw-literal
	 */
	'no-throw-literal'?: Linter.RuleEntry<[]>
	/**
	 * Disallow trailing whitespace at the end of lines
	 * @see https://eslint.org/docs/latest/rules/no-trailing-spaces
	 * @deprecated
	 */
	'no-trailing-spaces'?: Linter.RuleEntry<NoTrailingSpaces>
	/**
	 * Disallow `let` or `var` variables that are read but never assigned
	 * @see https://eslint.org/docs/latest/rules/no-unassigned-vars
	 */
	'no-unassigned-vars'?: Linter.RuleEntry<[]>
	/**
	 * Disallow the use of undeclared variables unless mentioned in `/*global *\/` comments
	 * @see https://eslint.org/docs/latest/rules/no-undef
	 */
	'no-undef'?: Linter.RuleEntry<NoUndef>
	/**
	 * Disallow initializing variables to `undefined`
	 * @see https://eslint.org/docs/latest/rules/no-undef-init
	 */
	'no-undef-init'?: Linter.RuleEntry<[]>
	/**
	 * Disallow the use of `undefined` as an identifier
	 * @see https://eslint.org/docs/latest/rules/no-undefined
	 */
	'no-undefined'?: Linter.RuleEntry<[]>
	/**
	 * Disallow dangling underscores in identifiers
	 * @see https://eslint.org/docs/latest/rules/no-underscore-dangle
	 */
	'no-underscore-dangle'?: Linter.RuleEntry<NoUnderscoreDangle>
	/**
	 * Disallow confusing multiline expressions
	 * @see https://eslint.org/docs/latest/rules/no-unexpected-multiline
	 */
	'no-unexpected-multiline'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unmodified loop conditions
	 * @see https://eslint.org/docs/latest/rules/no-unmodified-loop-condition
	 */
	'no-unmodified-loop-condition'?: Linter.RuleEntry<[]>
	/**
	 * Disallow ternary operators when simpler alternatives exist
	 * @see https://eslint.org/docs/latest/rules/no-unneeded-ternary
	 */
	'no-unneeded-ternary'?: Linter.RuleEntry<NoUnneededTernary>
	/**
	 * Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements
	 * @see https://eslint.org/docs/latest/rules/no-unreachable
	 */
	'no-unreachable'?: Linter.RuleEntry<[]>
	/**
	 * Disallow loops with a body that allows only one iteration
	 * @see https://eslint.org/docs/latest/rules/no-unreachable-loop
	 */
	'no-unreachable-loop'?: Linter.RuleEntry<NoUnreachableLoop>
	/**
	 * Disallow control flow statements in `finally` blocks
	 * @see https://eslint.org/docs/latest/rules/no-unsafe-finally
	 */
	'no-unsafe-finally'?: Linter.RuleEntry<[]>
	/**
	 * Disallow negating the left operand of relational operators
	 * @see https://eslint.org/docs/latest/rules/no-unsafe-negation
	 */
	'no-unsafe-negation'?: Linter.RuleEntry<NoUnsafeNegation>
	/**
	 * Disallow use of optional chaining in contexts where the `undefined` value is not allowed
	 * @see https://eslint.org/docs/latest/rules/no-unsafe-optional-chaining
	 */
	'no-unsafe-optional-chaining'?: Linter.RuleEntry<NoUnsafeOptionalChaining>
	/**
	 * Disallow unused expressions
	 * @see https://eslint.org/docs/latest/rules/no-unused-expressions
	 */
	'no-unused-expressions'?: Linter.RuleEntry<NoUnusedExpressions>
	/**
	 * Disallow unused labels
	 * @see https://eslint.org/docs/latest/rules/no-unused-labels
	 */
	'no-unused-labels'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unused private class members
	 * @see https://eslint.org/docs/latest/rules/no-unused-private-class-members
	 */
	'no-unused-private-class-members'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unused variables
	 * @see https://eslint.org/docs/latest/rules/no-unused-vars
	 */
	'no-unused-vars'?: Linter.RuleEntry<NoUnusedVars>
	/**
	 * Disallow the use of variables before they are defined
	 * @see https://eslint.org/docs/latest/rules/no-use-before-define
	 */
	'no-use-before-define'?: Linter.RuleEntry<NoUseBeforeDefine>
	/**
	 * Disallow variable assignments when the value is not used
	 * @see https://eslint.org/docs/latest/rules/no-useless-assignment
	 */
	'no-useless-assignment'?: Linter.RuleEntry<[]>
	/**
	 * Disallow useless backreferences in regular expressions
	 * @see https://eslint.org/docs/latest/rules/no-useless-backreference
	 */
	'no-useless-backreference'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unnecessary calls to `.call()` and `.apply()`
	 * @see https://eslint.org/docs/latest/rules/no-useless-call
	 */
	'no-useless-call'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unnecessary `catch` clauses
	 * @see https://eslint.org/docs/latest/rules/no-useless-catch
	 */
	'no-useless-catch'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unnecessary computed property keys in objects and classes
	 * @see https://eslint.org/docs/latest/rules/no-useless-computed-key
	 */
	'no-useless-computed-key'?: Linter.RuleEntry<NoUselessComputedKey>
	/**
	 * Disallow unnecessary concatenation of literals or template literals
	 * @see https://eslint.org/docs/latest/rules/no-useless-concat
	 */
	'no-useless-concat'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unnecessary constructors
	 * @see https://eslint.org/docs/latest/rules/no-useless-constructor
	 */
	'no-useless-constructor'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unnecessary escape characters
	 * @see https://eslint.org/docs/latest/rules/no-useless-escape
	 */
	'no-useless-escape'?: Linter.RuleEntry<NoUselessEscape>
	/**
	 * Disallow renaming import, export, and destructured assignments to the same name
	 * @see https://eslint.org/docs/latest/rules/no-useless-rename
	 */
	'no-useless-rename'?: Linter.RuleEntry<NoUselessRename>
	/**
	 * Disallow redundant return statements
	 * @see https://eslint.org/docs/latest/rules/no-useless-return
	 */
	'no-useless-return'?: Linter.RuleEntry<[]>
	/**
	 * Require `let` or `const` instead of `var`
	 * @see https://eslint.org/docs/latest/rules/no-var
	 */
	'no-var'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `void` operators
	 * @see https://eslint.org/docs/latest/rules/no-void
	 */
	'no-void'?: Linter.RuleEntry<NoVoid>
	/**
	 * Disallow specified warning terms in comments
	 * @see https://eslint.org/docs/latest/rules/no-warning-comments
	 */
	'no-warning-comments'?: Linter.RuleEntry<NoWarningComments>
	/**
	 * Disallow whitespace before properties
	 * @see https://eslint.org/docs/latest/rules/no-whitespace-before-property
	 * @deprecated
	 */
	'no-whitespace-before-property'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `with` statements
	 * @see https://eslint.org/docs/latest/rules/no-with
	 */
	'no-with'?: Linter.RuleEntry<[]>
	/**
	 * require `return` statements after callbacks
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/callback-return.md
	 */
	'node/callback-return'?: Linter.RuleEntry<NodeCallbackReturn>
	/**
	 * enforce either `module.exports` or `exports`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/exports-style.md
	 */
	'node/exports-style'?: Linter.RuleEntry<NodeExportsStyle>
	/**
	 * enforce the style of file extensions in `import` declarations
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/file-extension-in-import.md
	 */
	'node/file-extension-in-import'?: Linter.RuleEntry<NodeFileExtensionInImport>
	/**
	 * require `require()` calls to be placed at top-level module scope
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/global-require.md
	 */
	'node/global-require'?: Linter.RuleEntry<[]>
	/**
	 * require error handling in callbacks
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/handle-callback-err.md
	 */
	'node/handle-callback-err'?: Linter.RuleEntry<NodeHandleCallbackErr>
	/**
	 * require correct usage of hashbang
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/hashbang.md
	 */
	'node/hashbang'?: Linter.RuleEntry<NodeHashbang>
	/**
	 * enforce Node.js-style error-first callback pattern is followed
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-callback-literal.md
	 */
	'node/no-callback-literal'?: Linter.RuleEntry<[]>
	/**
	 * disallow deprecated APIs
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-deprecated-api.md
	 */
	'node/no-deprecated-api'?: Linter.RuleEntry<NodeNoDeprecatedApi>
	/**
	 * disallow the assignment to `exports`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-exports-assign.md
	 */
	'node/no-exports-assign'?: Linter.RuleEntry<[]>
	/**
	 * disallow `import` declarations which import extraneous modules
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-extraneous-import.md
	 */
	'node/no-extraneous-import'?: Linter.RuleEntry<NodeNoExtraneousImport>
	/**
	 * disallow `require()` expressions which import extraneous modules
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-extraneous-require.md
	 */
	'node/no-extraneous-require'?: Linter.RuleEntry<NodeNoExtraneousRequire>
	/**
	 * disallow third-party modules which are hiding core modules
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-hide-core-modules.md
	 * @deprecated
	 */
	'node/no-hide-core-modules'?: Linter.RuleEntry<NodeNoHideCoreModules>
	/**
	 * disallow `import` declarations which import non-existence modules
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-missing-import.md
	 */
	'node/no-missing-import'?: Linter.RuleEntry<NodeNoMissingImport>
	/**
	 * disallow `require()` expressions which import non-existence modules
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-missing-require.md
	 */
	'node/no-missing-require'?: Linter.RuleEntry<NodeNoMissingRequire>
	/**
	 * disallow `require` calls to be mixed with regular variable declarations
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-mixed-requires.md
	 */
	'node/no-mixed-requires'?: Linter.RuleEntry<NodeNoMixedRequires>
	/**
	 * disallow `new` operators with calls to `require`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-new-require.md
	 */
	'node/no-new-require'?: Linter.RuleEntry<[]>
	/**
	 * disallow string concatenation with `__dirname` and `__filename`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-path-concat.md
	 */
	'node/no-path-concat'?: Linter.RuleEntry<[]>
	/**
	 * disallow the use of `process.env`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-process-env.md
	 */
	'node/no-process-env'?: Linter.RuleEntry<NodeNoProcessEnv>
	/**
	 * disallow the use of `process.exit()`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-process-exit.md
	 */
	'node/no-process-exit'?: Linter.RuleEntry<[]>
	/**
	 * disallow specified modules when loaded by `import` declarations
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-restricted-import.md
	 */
	'node/no-restricted-import'?: Linter.RuleEntry<NodeNoRestrictedImport>
	/**
	 * disallow specified modules when loaded by `require`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-restricted-require.md
	 */
	'node/no-restricted-require'?: Linter.RuleEntry<NodeNoRestrictedRequire>
	/**
	 * disallow synchronous methods
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-sync.md
	 */
	'node/no-sync'?: Linter.RuleEntry<NodeNoSync>
	/**
	 * disallow top-level `await` in published modules
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-top-level-await.md
	 */
	'node/no-top-level-await'?: Linter.RuleEntry<NodeNoTopLevelAwait>
	/**
	 * disallow `bin` files that npm ignores
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-unpublished-bin.md
	 */
	'node/no-unpublished-bin'?: Linter.RuleEntry<NodeNoUnpublishedBin>
	/**
	 * disallow `import` declarations which import private modules
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-unpublished-import.md
	 */
	'node/no-unpublished-import'?: Linter.RuleEntry<NodeNoUnpublishedImport>
	/**
	 * disallow `require()` expressions which import private modules
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-unpublished-require.md
	 */
	'node/no-unpublished-require'?: Linter.RuleEntry<NodeNoUnpublishedRequire>
	/**
	 * disallow unsupported ECMAScript built-ins on the specified version
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-unsupported-features/es-builtins.md
	 */
	'node/no-unsupported-features/es-builtins'?: Linter.RuleEntry<NodeNoUnsupportedFeaturesEsBuiltins>
	/**
	 * disallow unsupported ECMAScript syntax on the specified version
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-unsupported-features/es-syntax.md
	 */
	'node/no-unsupported-features/es-syntax'?: Linter.RuleEntry<NodeNoUnsupportedFeaturesEsSyntax>
	/**
	 * disallow unsupported Node.js built-in APIs on the specified version
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-unsupported-features/node-builtins.md
	 */
	'node/no-unsupported-features/node-builtins'?: Linter.RuleEntry<NodeNoUnsupportedFeaturesNodeBuiltins>
	/**
	 * enforce either `Buffer` or `require("buffer").Buffer`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/buffer.md
	 */
	'node/prefer-global/buffer'?: Linter.RuleEntry<NodePreferGlobalBuffer>
	/**
	 * enforce either `console` or `require("console")`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/console.md
	 */
	'node/prefer-global/console'?: Linter.RuleEntry<NodePreferGlobalConsole>
	/**
	 * enforce either `process` or `require("process")`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/process.md
	 */
	'node/prefer-global/process'?: Linter.RuleEntry<NodePreferGlobalProcess>
	/**
	 * enforce either `TextDecoder` or `require("util").TextDecoder`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/text-decoder.md
	 */
	'node/prefer-global/text-decoder'?: Linter.RuleEntry<NodePreferGlobalTextDecoder>
	/**
	 * enforce either `TextEncoder` or `require("util").TextEncoder`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/text-encoder.md
	 */
	'node/prefer-global/text-encoder'?: Linter.RuleEntry<NodePreferGlobalTextEncoder>
	/**
	 * enforce either `URL` or `require("url").URL`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/url.md
	 */
	'node/prefer-global/url'?: Linter.RuleEntry<NodePreferGlobalUrl>
	/**
	 * enforce either `URLSearchParams` or `require("url").URLSearchParams`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/url-search-params.md
	 */
	'node/prefer-global/url-search-params'?: Linter.RuleEntry<NodePreferGlobalUrlSearchParams>
	/**
	 * enforce using the `node:` protocol when importing Node.js builtin modules.
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-node-protocol.md
	 */
	'node/prefer-node-protocol'?: Linter.RuleEntry<NodePreferNodeProtocol>
	/**
	 * enforce `require("dns").promises`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-promises/dns.md
	 */
	'node/prefer-promises/dns'?: Linter.RuleEntry<[]>
	/**
	 * enforce `require("fs").promises`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-promises/fs.md
	 */
	'node/prefer-promises/fs'?: Linter.RuleEntry<[]>
	/**
	 * require that `process.exit()` expressions use the same code path as `throw`
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/process-exit-as-throw.md
	 */
	'node/process-exit-as-throw'?: Linter.RuleEntry<[]>
	/**
	 * require correct usage of hashbang
	 * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/hashbang.md
	 * @deprecated
	 */
	'node/shebang'?: Linter.RuleEntry<NodeShebang>
	/**
	 * Enforce the location of single-line statements
	 * @see https://eslint.org/docs/latest/rules/nonblock-statement-body-position
	 * @deprecated
	 */
	'nonblock-statement-body-position'?: Linter.RuleEntry<NonblockStatementBodyPosition>
	/**
	 * Enforce consistent line breaks after opening and before closing braces
	 * @see https://eslint.org/docs/latest/rules/object-curly-newline
	 * @deprecated
	 */
	'object-curly-newline'?: Linter.RuleEntry<ObjectCurlyNewline>
	/**
	 * Enforce consistent spacing inside braces
	 * @see https://eslint.org/docs/latest/rules/object-curly-spacing
	 * @deprecated
	 */
	'object-curly-spacing'?: Linter.RuleEntry<ObjectCurlySpacing>
	/**
	 * Enforce placing object properties on separate lines
	 * @see https://eslint.org/docs/latest/rules/object-property-newline
	 * @deprecated
	 */
	'object-property-newline'?: Linter.RuleEntry<ObjectPropertyNewline>
	/**
	 * Require or disallow method and property shorthand syntax for object literals
	 * @see https://eslint.org/docs/latest/rules/object-shorthand
	 */
	'object-shorthand'?: Linter.RuleEntry<ObjectShorthand>
	/**
	 * Enforce variables to be declared either together or separately in functions
	 * @see https://eslint.org/docs/latest/rules/one-var
	 */
	'one-var'?: Linter.RuleEntry<OneVar>
	/**
	 * Require or disallow newlines around variable declarations
	 * @see https://eslint.org/docs/latest/rules/one-var-declaration-per-line
	 * @deprecated
	 */
	'one-var-declaration-per-line'?: Linter.RuleEntry<OneVarDeclarationPerLine>
	/**
	 * Require or disallow assignment operator shorthand where possible
	 * @see https://eslint.org/docs/latest/rules/operator-assignment
	 */
	'operator-assignment'?: Linter.RuleEntry<OperatorAssignment>
	/**
	 * Enforce consistent linebreak style for operators
	 * @see https://eslint.org/docs/latest/rules/operator-linebreak
	 * @deprecated
	 */
	'operator-linebreak'?: Linter.RuleEntry<OperatorLinebreak>
	/**
	 * Require or disallow padding within blocks
	 * @see https://eslint.org/docs/latest/rules/padded-blocks
	 * @deprecated
	 */
	'padded-blocks'?: Linter.RuleEntry<PaddedBlocks>
	/**
	 * Require or disallow padding lines between statements
	 * @see https://eslint.org/docs/latest/rules/padding-line-between-statements
	 * @deprecated
	 */
	'padding-line-between-statements'?: Linter.RuleEntry<PaddingLineBetweenStatements>
	/**
	 * Enforce sorted arrays before include method.
	 * @see https://perfectionist.dev/rules/sort-array-includes
	 */
	'perfectionist/sort-array-includes'?: Linter.RuleEntry<PerfectionistSortArrayIncludes>
	/**
	 * Enforce sorted classes.
	 * @see https://perfectionist.dev/rules/sort-classes
	 */
	'perfectionist/sort-classes'?: Linter.RuleEntry<PerfectionistSortClasses>
	/**
	 * Enforce sorted decorators.
	 * @see https://perfectionist.dev/rules/sort-decorators
	 */
	'perfectionist/sort-decorators'?: Linter.RuleEntry<PerfectionistSortDecorators>
	/**
	 * Enforce sorted TypeScript enums.
	 * @see https://perfectionist.dev/rules/sort-enums
	 */
	'perfectionist/sort-enums'?: Linter.RuleEntry<PerfectionistSortEnums>
	/**
	 * Enforce sorted exports.
	 * @see https://perfectionist.dev/rules/sort-exports
	 */
	'perfectionist/sort-exports'?: Linter.RuleEntry<PerfectionistSortExports>
	/**
	 * Enforce sorted heritage clauses.
	 * @see https://perfectionist.dev/rules/sort-heritage-clauses
	 */
	'perfectionist/sort-heritage-clauses'?: Linter.RuleEntry<PerfectionistSortHeritageClauses>
	/**
	 * Enforce sorted imports.
	 * @see https://perfectionist.dev/rules/sort-imports
	 */
	'perfectionist/sort-imports'?: Linter.RuleEntry<PerfectionistSortImports>
	/**
	 * Enforce sorted interface properties.
	 * @see https://perfectionist.dev/rules/sort-interfaces
	 */
	'perfectionist/sort-interfaces'?: Linter.RuleEntry<PerfectionistSortInterfaces>
	/**
	 * Enforce sorted intersection types.
	 * @see https://perfectionist.dev/rules/sort-intersection-types
	 */
	'perfectionist/sort-intersection-types'?: Linter.RuleEntry<PerfectionistSortIntersectionTypes>
	/**
	 * Enforce sorted JSX props.
	 * @see https://perfectionist.dev/rules/sort-jsx-props
	 */
	'perfectionist/sort-jsx-props'?: Linter.RuleEntry<PerfectionistSortJsxProps>
	/**
	 * Enforce sorted Map elements.
	 * @see https://perfectionist.dev/rules/sort-maps
	 */
	'perfectionist/sort-maps'?: Linter.RuleEntry<PerfectionistSortMaps>
	/**
	 * Enforce sorted modules.
	 * @see https://perfectionist.dev/rules/sort-modules
	 */
	'perfectionist/sort-modules'?: Linter.RuleEntry<PerfectionistSortModules>
	/**
	 * Enforce sorted named exports.
	 * @see https://perfectionist.dev/rules/sort-named-exports
	 */
	'perfectionist/sort-named-exports'?: Linter.RuleEntry<PerfectionistSortNamedExports>
	/**
	 * Enforce sorted named imports.
	 * @see https://perfectionist.dev/rules/sort-named-imports
	 */
	'perfectionist/sort-named-imports'?: Linter.RuleEntry<PerfectionistSortNamedImports>
	/**
	 * Enforce sorted object types.
	 * @see https://perfectionist.dev/rules/sort-object-types
	 */
	'perfectionist/sort-object-types'?: Linter.RuleEntry<PerfectionistSortObjectTypes>
	/**
	 * Enforce sorted objects.
	 * @see https://perfectionist.dev/rules/sort-objects
	 */
	'perfectionist/sort-objects'?: Linter.RuleEntry<PerfectionistSortObjects>
	/**
	 * Enforce sorted sets.
	 * @see https://perfectionist.dev/rules/sort-sets
	 */
	'perfectionist/sort-sets'?: Linter.RuleEntry<PerfectionistSortSets>
	/**
	 * Enforce sorted switch cases.
	 * @see https://perfectionist.dev/rules/sort-switch-case
	 */
	'perfectionist/sort-switch-case'?: Linter.RuleEntry<PerfectionistSortSwitchCase>
	/**
	 * Enforce sorted union types.
	 * @see https://perfectionist.dev/rules/sort-union-types
	 */
	'perfectionist/sort-union-types'?: Linter.RuleEntry<PerfectionistSortUnionTypes>
	/**
	 * Enforce sorted variable declarations.
	 * @see https://perfectionist.dev/rules/sort-variable-declarations
	 */
	'perfectionist/sort-variable-declarations'?: Linter.RuleEntry<PerfectionistSortVariableDeclarations>
	/**
	 * Require using arrow functions for callbacks
	 * @see https://eslint.org/docs/latest/rules/prefer-arrow-callback
	 */
	'prefer-arrow-callback'?: Linter.RuleEntry<PreferArrowCallback>
	/**
	 * Require `const` declarations for variables that are never reassigned after declared
	 * @see https://eslint.org/docs/latest/rules/prefer-const
	 */
	'prefer-const'?: Linter.RuleEntry<PreferConst>
	/**
	 * Require destructuring from arrays and/or objects
	 * @see https://eslint.org/docs/latest/rules/prefer-destructuring
	 */
	'prefer-destructuring'?: Linter.RuleEntry<PreferDestructuring>
	/**
	 * Disallow the use of `Math.pow` in favor of the `**` operator
	 * @see https://eslint.org/docs/latest/rules/prefer-exponentiation-operator
	 */
	'prefer-exponentiation-operator'?: Linter.RuleEntry<[]>
	/**
	 * Enforce using named capture group in regular expression
	 * @see https://eslint.org/docs/latest/rules/prefer-named-capture-group
	 */
	'prefer-named-capture-group'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals
	 * @see https://eslint.org/docs/latest/rules/prefer-numeric-literals
	 */
	'prefer-numeric-literals'?: Linter.RuleEntry<[]>
	/**
	 * Disallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()`
	 * @see https://eslint.org/docs/latest/rules/prefer-object-has-own
	 */
	'prefer-object-has-own'?: Linter.RuleEntry<[]>
	/**
	 * Disallow using `Object.assign` with an object literal as the first argument and prefer the use of object spread instead
	 * @see https://eslint.org/docs/latest/rules/prefer-object-spread
	 */
	'prefer-object-spread'?: Linter.RuleEntry<[]>
	/**
	 * Require using Error objects as Promise rejection reasons
	 * @see https://eslint.org/docs/latest/rules/prefer-promise-reject-errors
	 */
	'prefer-promise-reject-errors'?: Linter.RuleEntry<PreferPromiseRejectErrors>
	/**
	 * Require `Reflect` methods where applicable
	 * @see https://eslint.org/docs/latest/rules/prefer-reflect
	 * @deprecated
	 */
	'prefer-reflect'?: Linter.RuleEntry<PreferReflect>
	/**
	 * Disallow use of the `RegExp` constructor in favor of regular expression literals
	 * @see https://eslint.org/docs/latest/rules/prefer-regex-literals
	 */
	'prefer-regex-literals'?: Linter.RuleEntry<PreferRegexLiterals>
	/**
	 * Require rest parameters instead of `arguments`
	 * @see https://eslint.org/docs/latest/rules/prefer-rest-params
	 */
	'prefer-rest-params'?: Linter.RuleEntry<[]>
	/**
	 * Require spread operators instead of `.apply()`
	 * @see https://eslint.org/docs/latest/rules/prefer-spread
	 */
	'prefer-spread'?: Linter.RuleEntry<[]>
	/**
	 * Require template literals instead of string concatenation
	 * @see https://eslint.org/docs/latest/rules/prefer-template
	 */
	'prefer-template'?: Linter.RuleEntry<[]>
	/**
	 * Require quotes around object literal property names
	 * @see https://eslint.org/docs/latest/rules/quote-props
	 * @deprecated
	 */
	'quote-props'?: Linter.RuleEntry<QuoteProps>
	/**
	 * Enforce the consistent use of either backticks, double, or single quotes
	 * @see https://eslint.org/docs/latest/rules/quotes
	 * @deprecated
	 */
	quotes?: Linter.RuleEntry<Quotes>
	/**
	 * Enforce the consistent use of the radix argument when using `parseInt()`
	 * @see https://eslint.org/docs/latest/rules/radix
	 */
	radix?: Linter.RuleEntry<Radix>
	/**
	 * Reports all class components.
	 * @see https://eslint-react.xyz/docs/rules/debug-class-component
	 */
	'react-debug/class-component'?: Linter.RuleEntry<[]>
	/**
	 * Reports all function components.
	 * @see https://eslint-react.xyz/docs/rules/debug-function-component
	 */
	'react-debug/function-component'?: Linter.RuleEntry<[]>
	/**
	 * Reports all React Hooks.
	 * @see https://eslint-react.xyz/docs/rules/debug-hook
	 */
	'react-debug/hook'?: Linter.RuleEntry<[]>
	/**
	 * Reports all identifiers that are initialized from React.
	 * @see https://eslint-react.xyz/docs/rules/debug-is-from-react
	 */
	'react-debug/is-from-react'?: Linter.RuleEntry<[]>
	/**
	 * Reports all JSX elements and fragments.
	 * @see https://eslint-react.xyz/docs/rules/debug-jsx
	 */
	'react-debug/jsx'?: Linter.RuleEntry<[]>
	/**
	 * Reports all React Hooks.
	 * @see https://eslint-react.xyz/docs/rules/debug-hook
	 */
	'react-debug/react-hooks'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `children` in void DOM elements.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
	 */
	'react-dom/no-children-in-void-dom-elements'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `dangerouslySetInnerHTML`.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml
	 */
	'react-dom/no-dangerously-set-innerhtml'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `dangerouslySetInnerHTML` and `children` at the same time.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml-with-children
	 */
	'react-dom/no-dangerously-set-innerhtml-with-children'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `findDOMNode`.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-find-dom-node
	 */
	'react-dom/no-find-dom-node'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `flushSync`.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-flush-sync
	 */
	'react-dom/no-flush-sync'?: Linter.RuleEntry<[]>
	/**
	 * Replaces usages of `ReactDom.hydrate()` with `hydrateRoot()`.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-hydrate
	 */
	'react-dom/no-hydrate'?: Linter.RuleEntry<[]>
	/**
	 * Enforces explicit `type` attribute for `button` elements.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-missing-button-type
	 */
	'react-dom/no-missing-button-type'?: Linter.RuleEntry<[]>
	/**
	 * Enforces explicit `sandbox` attribute for `iframe` elements.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-missing-iframe-sandbox
	 */
	'react-dom/no-missing-iframe-sandbox'?: Linter.RuleEntry<[]>
	/**
	 * Enforces the absence of a `namespace` in React elements.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-namespace
	 */
	'react-dom/no-namespace'?: Linter.RuleEntry<[]>
	/**
	 * Replaces usages of `ReactDom.render()` with `createRoot(node).render()`.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-render
	 */
	'react-dom/no-render'?: Linter.RuleEntry<[]>
	/**
	 * Disallow the return value of `ReactDOM.render`.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-render-return-value
	 */
	'react-dom/no-render-return-value'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `javascript:` URLs as attribute values.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-script-url
	 */
	'react-dom/no-script-url'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unknown `DOM` property.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-unknown-property
	 */
	'react-dom/no-unknown-property'?: Linter.RuleEntry<ReactDomNoUnknownProperty>
	/**
	 * Enforces `sandbox` attribute for `iframe` elements is not set to unsafe combinations.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-iframe-sandbox
	 */
	'react-dom/no-unsafe-iframe-sandbox'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `target="_blank"` without `rel="noreferrer noopener"`.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-target-blank
	 */
	'react-dom/no-unsafe-target-blank'?: Linter.RuleEntry<[]>
	/**
	 * Replaces usages of `useFormState` with `useActionState`.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-use-form-state
	 */
	'react-dom/no-use-form-state'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `children` in void DOM elements.
	 * @see https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
	 */
	'react-dom/no-void-elements-with-children'?: Linter.RuleEntry<[]>
	/**
	 * Enforces that a function with the `use` prefix should use at least one Hook inside of it.
	 * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-prefix
	 */
	'react-hooks-extra/ensure-custom-hooks-using-other-hooks'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unnecessary usage of `useCallback`.
	 * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-callback
	 */
	'react-hooks-extra/ensure-use-callback-has-non-empty-deps'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unnecessary usage of `useMemo`.
	 * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-memo
	 */
	'react-hooks-extra/ensure-use-memo-has-non-empty-deps'?: Linter.RuleEntry<[]>
	/**
	 * Disallow direct calls to the `set` function of `useState` in `useEffect`.
	 * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-direct-set-state-in-use-effect
	 */
	'react-hooks-extra/no-direct-set-state-in-use-effect'?: Linter.RuleEntry<[]>
	/**
	 * Disallow direct calls to the `set` function of `useState` in `useLayoutEffect`.
	 * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-direct-set-state-in-use-layout-effect
	 */
	'react-hooks-extra/no-direct-set-state-in-use-layout-effect'?: Linter.RuleEntry<[]>
	/**
	 * Enforces that a function with the `use` prefix should use at least one Hook inside of it.
	 * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-prefix
	 */
	'react-hooks-extra/no-redundant-custom-hook'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unnecessary usage of `useCallback`.
	 * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-callback
	 */
	'react-hooks-extra/no-unnecessary-use-callback'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unnecessary usage of `useMemo`.
	 * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-memo
	 */
	'react-hooks-extra/no-unnecessary-use-memo'?: Linter.RuleEntry<[]>
	/**
	 * Enforces that a function with the `use` prefix should use at least one Hook inside of it.
	 * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-prefix
	 */
	'react-hooks-extra/no-unnecessary-use-prefix'?: Linter.RuleEntry<[]>
	/**
	 * Enforces that a function with the `use` prefix should use at least one Hook inside of it.
	 * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-prefix
	 */
	'react-hooks-extra/no-useless-custom-hooks'?: Linter.RuleEntry<[]>
	/**
	 * Enforces function calls made inside `useState` to be wrapped in an `initializer function`.
	 * @see https://eslint-react.xyz/docs/rules/hooks-extra-prefer-use-state-lazy-initialization
	 */
	'react-hooks-extra/prefer-use-state-lazy-initialization'?: Linter.RuleEntry<[]>
	/**
	 * Enforces naming conventions for components.
	 * @see https://eslint-react.xyz/docs/rules/naming-convention-component-name
	 */
	'react-naming-convention/component-name'?: Linter.RuleEntry<ReactNamingConventionComponentName>
	/**
	 * Enforces context name to be a valid component name with the suffix `Context`.
	 * @see https://eslint-react.xyz/docs/rules/naming-convention-context-name
	 */
	'react-naming-convention/context-name'?: Linter.RuleEntry<[]>
	/**
	 * Enforces consistent file naming conventions.
	 * @see https://eslint-react.xyz/docs/rules/naming-convention-filename
	 */
	'react-naming-convention/filename'?: Linter.RuleEntry<ReactNamingConventionFilename>
	/**
	 * Enforces consistent file naming conventions.
	 * @see https://eslint-react.xyz/docs/rules/naming-convention-filename-extension
	 */
	'react-naming-convention/filename-extension'?: Linter.RuleEntry<ReactNamingConventionFilenameExtension>
	/**
	 * Enforces destructuring and symmetric naming of `useState` hook value and setter.
	 * @see https://eslint-react.xyz/docs/rules/naming-convention-use-state
	 */
	'react-naming-convention/use-state'?: Linter.RuleEntry<[]>
	/**
	 * Prevents leaked `addEventListener` in a component or custom Hook.
	 * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-event-listener
	 */
	'react-web-api/no-leaked-event-listener'?: Linter.RuleEntry<[]>
	/**
	 * Prevents leaked `setInterval` in a component or custom Hook.
	 * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-interval
	 */
	'react-web-api/no-leaked-interval'?: Linter.RuleEntry<[]>
	/**
	 * Prevents leaked `ResizeObserver` in a component or custom Hook.
	 * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-resize-observer
	 */
	'react-web-api/no-leaked-resize-observer'?: Linter.RuleEntry<[]>
	/**
	 * Prevents leaked `setTimeout` in a component or custom Hook.
	 * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-timeout
	 */
	'react-web-api/no-leaked-timeout'?: Linter.RuleEntry<[]>
	/**
	 * Enforces explicit boolean values for boolean attributes.
	 * @see https://eslint-react.xyz/docs/rules/avoid-shorthand-boolean
	 */
	'react/avoid-shorthand-boolean'?: Linter.RuleEntry<[]>
	/**
	 * Enforces explicit `<Fragment>` components instead of the shorthand `<>` or `</>` syntax.
	 * @see https://eslint-react.xyz/docs/rules/avoid-shorthand-fragment
	 */
	'react/avoid-shorthand-fragment'?: Linter.RuleEntry<[]>
	/**
	 * Disallow useless `forwardRef` calls on components that don't use `ref`s.
	 * @see https://eslint-react.xyz/docs/rules/no-useless-forward-ref
	 */
	'react/ensure-forward-ref-using-ref'?: Linter.RuleEntry<[]>
	/**
	 * Enforces that the 'key' attribute is placed before the spread attribute in JSX elements.
	 * @see https://eslint-react.xyz/docs/rules/jsx-key-before-spread
	 */
	'react/jsx-key-before-spread'?: Linter.RuleEntry<[]>
	/**
	 * Disallow duplicate props in JSX elements.
	 * @see https://eslint-react.xyz/docs/rules/jsx-no-duplicate-props
	 */
	'react/jsx-no-duplicate-props'?: Linter.RuleEntry<[]>
	/**
	 * Disallows 'IIFE' in JSX elements.
	 * @see https://eslint-react.xyz/docs/rules/jsx-no-iife
	 */
	'react/jsx-no-iife'?: Linter.RuleEntry<[]>
	/**
	 * Disallow undefined variables in JSX.
	 * @see https://eslint-react.xyz/docs/rules/jsx-no-undef
	 */
	'react/jsx-no-undef'?: Linter.RuleEntry<[]>
	/**
	 * Marks React variables as used when JSX is used.
	 * @see https://eslint-react.xyz/docs/rules/jsx-uses-react
	 */
	'react/jsx-uses-react'?: Linter.RuleEntry<[]>
	/**
	 * Marks variables used in JSX elements as used.
	 * @see https://eslint-react.xyz/docs/rules/jsx-uses-vars
	 */
	'react/jsx-uses-vars'?: Linter.RuleEntry<[]>
	/**
	 * Disallow accessing `this.state` inside `setState` calls.
	 * @see https://eslint-react.xyz/docs/rules/no-access-state-in-setstate
	 */
	'react/no-access-state-in-setstate'?: Linter.RuleEntry<[]>
	/**
	 * Disallow an item's index in the array as its key.
	 * @see https://eslint-react.xyz/docs/rules/no-array-index-key
	 */
	'react/no-array-index-key'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `Children.count`.
	 * @see https://eslint-react.xyz/docs/rules/no-children-count
	 */
	'react/no-children-count'?: Linter.RuleEntry<[]>
	/**
	 * Disallow 'Children.forEach'.
	 * @see https://eslint-react.xyz/docs/rules/no-children-for-each
	 */
	'react/no-children-for-each'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `Children.map`.
	 * @see https://eslint-react.xyz/docs/rules/no-children-map
	 */
	'react/no-children-map'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `Children.only`.
	 * @see https://eslint-react.xyz/docs/rules/no-children-only
	 */
	'react/no-children-only'?: Linter.RuleEntry<[]>
	/**
	 * Disallow passing `children` as a prop.
	 * @see https://eslint-react.xyz/docs/rules/no-children-prop
	 */
	'react/no-children-prop'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `Children.toArray`.
	 * @see https://eslint-react.xyz/docs/rules/no-children-to-array
	 */
	'react/no-children-to-array'?: Linter.RuleEntry<[]>
	/**
	 * Disallow class components except for error boundaries.
	 * @see https://eslint-react.xyz/docs/rules/no-class-component
	 */
	'react/no-class-component'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `cloneElement`.
	 * @see https://eslint-react.xyz/docs/rules/no-clone-element
	 */
	'react/no-clone-element'?: Linter.RuleEntry<[]>
	/**
	 * Prevents comments from being inserted as text nodes.
	 * @see https://eslint-react.xyz/docs/rules/no-comment-textnodes
	 */
	'react/no-comment-textnodes'?: Linter.RuleEntry<[]>
	/**
	 * Disallow complex conditional rendering in JSX expressions.
	 * @see https://eslint-react.xyz/docs/rules/no-complex-conditional-rendering
	 */
	'react/no-complex-conditional-rendering'?: Linter.RuleEntry<[]>
	/**
	 * Disallow complex conditional rendering in JSX expressions.
	 * @see https://eslint-react.xyz/docs/rules/no-complex-conditional-rendering
	 */
	'react/no-complicated-conditional-rendering'?: Linter.RuleEntry<[]>
	/**
	 * Replace usages of `componentWillMount` with `UNSAFE_componentWillMount`.
	 * @see https://eslint-react.xyz/docs/rules/no-component-will-mount
	 */
	'react/no-component-will-mount'?: Linter.RuleEntry<[]>
	/**
	 * Replace usages of `componentWillReceiveProps` with `UNSAFE_componentWillReceiveProps`.
	 * @see https://eslint-react.xyz/docs/rules/no-component-will-receive-props
	 */
	'react/no-component-will-receive-props'?: Linter.RuleEntry<[]>
	/**
	 * Replace usages of `componentWillUpdate` with `UNSAFE_componentWillUpdate`.
	 * @see https://eslint-react.xyz/docs/rules/no-component-will-update
	 */
	'react/no-component-will-update'?: Linter.RuleEntry<[]>
	/**
	 * Replace usages of `<Context.Provider>` with `<Context>`.
	 * @see https://eslint-react.xyz/docs/rules/no-context-provider
	 */
	'react/no-context-provider'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `createRef` in function components.
	 * @see https://eslint-react.xyz/docs/rules/no-create-ref
	 */
	'react/no-create-ref'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `defaultProps` property in favor of ES6 default parameters.
	 * @see https://eslint-react.xyz/docs/rules/no-default-props
	 */
	'react/no-default-props'?: Linter.RuleEntry<[]>
	/**
	 * Disallow direct mutation of `this.state`.
	 * @see https://eslint-react.xyz/docs/rules/no-direct-mutation-state
	 */
	'react/no-direct-mutation-state'?: Linter.RuleEntry<[]>
	/**
	 * Disallow duplicate props in JSX elements.
	 * @see https://eslint-react.xyz/docs/rules/jsx-no-duplicate-props
	 */
	'react/no-duplicate-jsx-props'?: Linter.RuleEntry<[]>
	/**
	 * Disallow duplicate `key` on elements in the same array or a list of `children`.
	 * @see https://eslint-react.xyz/docs/rules/no-duplicate-key
	 */
	'react/no-duplicate-key'?: Linter.RuleEntry<[]>
	/**
	 * Replaces usages of `forwardRef` with passing `ref` as a prop.
	 * @see https://eslint-react.xyz/docs/rules/no-forward-ref
	 */
	'react/no-forward-ref'?: Linter.RuleEntry<[]>
	/**
	 * Prevents `key` from not being explicitly specified (e.g. spreading `key` from objects).
	 * @see https://eslint-react.xyz/docs/rules/no-implicit-key
	 */
	'react/no-implicit-key'?: Linter.RuleEntry<[]>
	/**
	 * Prevents problematic leaked values from being rendered.
	 * @see https://eslint-react.xyz/docs/rules/no-leaked-conditional-rendering
	 */
	'react/no-leaked-conditional-rendering'?: Linter.RuleEntry<[]>
	/**
	 * Enforces that all components have a `displayName` which can be used in devtools.
	 * @see https://eslint-react.xyz/docs/rules/no-missing-component-display-name
	 */
	'react/no-missing-component-display-name'?: Linter.RuleEntry<[]>
	/**
	 * Enforces that all contexts have a `displayName` which can be used in devtools.
	 * @see https://eslint-react.xyz/docs/rules/no-missing-context-display-name
	 */
	'react/no-missing-context-display-name'?: Linter.RuleEntry<[]>
	/**
	 * Disallow missing `key` on items in list rendering.
	 * @see https://eslint-react.xyz/docs/rules/no-missing-key
	 */
	'react/no-missing-key'?: Linter.RuleEntry<[]>
	/**
	 * Prevents incorrect usage of `captureOwnerStack`.
	 * @see https://eslint-react.xyz/docs/rules/no-misused-capture-owner-stack
	 */
	'react/no-misused-capture-owner-stack'?: Linter.RuleEntry<[]>
	/**
	 * Disallow nesting component definitions inside other components.
	 * @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
	 */
	'react/no-nested-component-definitions'?: Linter.RuleEntry<[]>
	/**
	 * Disallow nesting component definitions inside other components.
	 * @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
	 */
	'react/no-nested-components'?: Linter.RuleEntry<[]>
	/**
	 * Disallow nesting lazy component declarations inside other components.
	 * @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
	 */
	'react/no-nested-lazy-component-declarations'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `propTypes` in favor of TypeScript or another type-checking solution.
	 * @see https://eslint-react.xyz/docs/rules/no-prop-types
	 */
	'react/no-prop-types'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `shouldComponentUpdate` when extending `React.PureComponent`.
	 * @see https://eslint-react.xyz/docs/rules/no-redundant-should-component-update
	 */
	'react/no-redundant-should-component-update'?: Linter.RuleEntry<[]>
	/**
	 * Disallow calling `this.setState` in `componentDidMount` outside of functions, such as callbacks.
	 * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-mount
	 */
	'react/no-set-state-in-component-did-mount'?: Linter.RuleEntry<[]>
	/**
	 * Disallow calling `this.setState` in `componentDidUpdate` outside of functions, such as callbacks.
	 * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-update
	 */
	'react/no-set-state-in-component-did-update'?: Linter.RuleEntry<[]>
	/**
	 * Disallows calling `this.setState` in `componentWillUpdate` outside of functions, such as callbacks.
	 * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-will-update
	 */
	'react/no-set-state-in-component-will-update'?: Linter.RuleEntry<[]>
	/**
	 * Replaces string refs with callback refs.
	 * @see https://eslint-react.xyz/docs/rules/no-string-refs
	 */
	'react/no-string-refs'?: Linter.RuleEntry<[]>
	/**
	 * Warns the usage of `UNSAFE_componentWillMount` in class components.
	 * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-mount
	 */
	'react/no-unsafe-component-will-mount'?: Linter.RuleEntry<[]>
	/**
	 * Warns the usage of `UNSAFE_componentWillReceiveProps` in class components.
	 * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-receive-props
	 */
	'react/no-unsafe-component-will-receive-props'?: Linter.RuleEntry<[]>
	/**
	 * Warns the usage of `UNSAFE_componentWillUpdate` in class components.
	 * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-update
	 */
	'react/no-unsafe-component-will-update'?: Linter.RuleEntry<[]>
	/**
	 * Prevents non-stable values (i.e. object literals) from being used as a value for `Context.Provider`.
	 * @see https://eslint-react.xyz/docs/rules/no-unstable-context-value
	 */
	'react/no-unstable-context-value'?: Linter.RuleEntry<[]>
	/**
	 * Prevents using referential-type values as default props in object destructuring.
	 * @see https://eslint-react.xyz/docs/rules/no-unstable-default-props
	 */
	'react/no-unstable-default-props'?: Linter.RuleEntry<[]>
	/**
	 * Warns unused class component methods and properties.
	 * @see https://eslint-react.xyz/docs/rules/no-unused-class-component-members
	 */
	'react/no-unused-class-component-members'?: Linter.RuleEntry<[]>
	/**
	 * Warns unused class component state.
	 * @see https://eslint-react.xyz/docs/rules/no-unused-state
	 */
	'react/no-unused-state'?: Linter.RuleEntry<[]>
	/**
	 * Replaces usages of `useContext` with `use`.
	 * @see https://eslint-react.xyz/docs/rules/no-use-context
	 */
	'react/no-use-context'?: Linter.RuleEntry<[]>
	/**
	 * Disallow useless `forwardRef` calls on components that don't use `ref`s.
	 * @see https://eslint-react.xyz/docs/rules/no-useless-forward-ref
	 */
	'react/no-useless-forward-ref'?: Linter.RuleEntry<[]>
	/**
	 * Disallow useless fragment elements.
	 * @see https://eslint-react.xyz/docs/rules/no-useless-fragment
	 */
	'react/no-useless-fragment'?: Linter.RuleEntry<ReactNoUselessFragment>
	/**
	 * Enforces destructuring assignment for component props and context.
	 * @see https://eslint-react.xyz/docs/rules/prefer-destructuring-assignment
	 */
	'react/prefer-destructuring-assignment'?: Linter.RuleEntry<[]>
	/**
	 * Enforces React is imported via a namespace import.
	 * @see https://eslint-react.xyz/docs/rules/prefer-react-namespace-import
	 */
	'react/prefer-react-namespace-import'?: Linter.RuleEntry<[]>
	/**
	 * Enforces read-only props in components.
	 * @see https://eslint-react.xyz/docs/rules/prefer-read-only-props
	 */
	'react/prefer-read-only-props'?: Linter.RuleEntry<[]>
	/**
	 * Enforces shorthand syntax for boolean attributes.
	 * @see https://eslint-react.xyz/docs/rules/prefer-shorthand-boolean
	 */
	'react/prefer-shorthand-boolean'?: Linter.RuleEntry<[]>
	/**
	 * Enforces shorthand syntax for fragments.
	 * @see https://eslint-react.xyz/docs/rules/prefer-shorthand-fragment
	 */
	'react/prefer-shorthand-fragment'?: Linter.RuleEntry<[]>
	/**
	 * Marks variables used in JSX elements as used.
	 * @see https://eslint-react.xyz/docs/rules/jsx-uses-vars
	 */
	'react/use-jsx-vars'?: Linter.RuleEntry<[]>
	/**
	 * disallow confusing quantifiers
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/confusing-quantifier.html
	 */
	'regexp/confusing-quantifier'?: Linter.RuleEntry<[]>
	/**
	 * enforce consistent escaping of control characters
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/control-character-escape.html
	 */
	'regexp/control-character-escape'?: Linter.RuleEntry<[]>
	/**
	 * enforce single grapheme in string literal
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/grapheme-string-literal.html
	 */
	'regexp/grapheme-string-literal'?: Linter.RuleEntry<[]>
	/**
	 * enforce consistent usage of hexadecimal escape
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/hexadecimal-escape.html
	 */
	'regexp/hexadecimal-escape'?: Linter.RuleEntry<RegexpHexadecimalEscape>
	/**
	 * enforce into your favorite case
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/letter-case.html
	 */
	'regexp/letter-case'?: Linter.RuleEntry<RegexpLetterCase>
	/**
	 * enforce match any character style
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/match-any.html
	 */
	'regexp/match-any'?: Linter.RuleEntry<RegexpMatchAny>
	/**
	 * enforce use of escapes on negation
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/negation.html
	 */
	'regexp/negation'?: Linter.RuleEntry<[]>
	/**
	 * disallow elements that contradict assertions
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-contradiction-with-assertion.html
	 */
	'regexp/no-contradiction-with-assertion'?: Linter.RuleEntry<[]>
	/**
	 * disallow control characters
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-control-character.html
	 */
	'regexp/no-control-character'?: Linter.RuleEntry<[]>
	/**
	 * disallow duplicate characters in the RegExp character class
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-dupe-characters-character-class.html
	 */
	'regexp/no-dupe-characters-character-class'?: Linter.RuleEntry<[]>
	/**
	 * disallow duplicate disjunctions
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-dupe-disjunctions.html
	 */
	'regexp/no-dupe-disjunctions'?: Linter.RuleEntry<RegexpNoDupeDisjunctions>
	/**
	 * disallow alternatives without elements
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-empty-alternative.html
	 */
	'regexp/no-empty-alternative'?: Linter.RuleEntry<[]>
	/**
	 * disallow capturing group that captures empty.
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-empty-capturing-group.html
	 */
	'regexp/no-empty-capturing-group'?: Linter.RuleEntry<[]>
	/**
	 * disallow character classes that match no characters
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-empty-character-class.html
	 */
	'regexp/no-empty-character-class'?: Linter.RuleEntry<[]>
	/**
	 * disallow empty group
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-empty-group.html
	 */
	'regexp/no-empty-group'?: Linter.RuleEntry<[]>
	/**
	 * disallow empty lookahead assertion or empty lookbehind assertion
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-empty-lookarounds-assertion.html
	 */
	'regexp/no-empty-lookarounds-assertion'?: Linter.RuleEntry<[]>
	/**
	 * disallow empty string literals in character classes
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-empty-string-literal.html
	 */
	'regexp/no-empty-string-literal'?: Linter.RuleEntry<[]>
	/**
	 * disallow escape backspace (`[\b]`)
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-escape-backspace.html
	 */
	'regexp/no-escape-backspace'?: Linter.RuleEntry<[]>
	/**
	 * disallow unnecessary nested lookaround assertions
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-extra-lookaround-assertions.html
	 */
	'regexp/no-extra-lookaround-assertions'?: Linter.RuleEntry<[]>
	/**
	 * disallow invalid regular expression strings in `RegExp` constructors
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-invalid-regexp.html
	 */
	'regexp/no-invalid-regexp'?: Linter.RuleEntry<[]>
	/**
	 * disallow invisible raw character
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-invisible-character.html
	 */
	'regexp/no-invisible-character'?: Linter.RuleEntry<[]>
	/**
	 * disallow lazy quantifiers at the end of an expression
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-lazy-ends.html
	 */
	'regexp/no-lazy-ends'?: Linter.RuleEntry<RegexpNoLazyEnds>
	/**
	 * disallow legacy RegExp features
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-legacy-features.html
	 */
	'regexp/no-legacy-features'?: Linter.RuleEntry<RegexpNoLegacyFeatures>
	/**
	 * disallow capturing groups that do not behave as one would expect
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-misleading-capturing-group.html
	 */
	'regexp/no-misleading-capturing-group'?: Linter.RuleEntry<RegexpNoMisleadingCapturingGroup>
	/**
	 * disallow multi-code-point characters in character classes and quantifiers
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-misleading-unicode-character.html
	 */
	'regexp/no-misleading-unicode-character'?: Linter.RuleEntry<RegexpNoMisleadingUnicodeCharacter>
	/**
	 * disallow missing `g` flag in patterns used in `String#matchAll` and `String#replaceAll`
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-missing-g-flag.html
	 */
	'regexp/no-missing-g-flag'?: Linter.RuleEntry<RegexpNoMissingGFlag>
	/**
	 * disallow non-standard flags
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-non-standard-flag.html
	 */
	'regexp/no-non-standard-flag'?: Linter.RuleEntry<[]>
	/**
	 * disallow obscure character ranges
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-obscure-range.html
	 */
	'regexp/no-obscure-range'?: Linter.RuleEntry<RegexpNoObscureRange>
	/**
	 * disallow octal escape sequence
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-octal.html
	 */
	'regexp/no-octal'?: Linter.RuleEntry<[]>
	/**
	 * disallow optional assertions
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-optional-assertion.html
	 */
	'regexp/no-optional-assertion'?: Linter.RuleEntry<[]>
	/**
	 * disallow backreferences that reference a group that might not be matched
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-potentially-useless-backreference.html
	 */
	'regexp/no-potentially-useless-backreference'?: Linter.RuleEntry<[]>
	/**
	 * disallow standalone backslashes (`\`)
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-standalone-backslash.html
	 */
	'regexp/no-standalone-backslash'?: Linter.RuleEntry<[]>
	/**
	 * disallow exponential and polynomial backtracking
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-super-linear-backtracking.html
	 */
	'regexp/no-super-linear-backtracking'?: Linter.RuleEntry<RegexpNoSuperLinearBacktracking>
	/**
	 * disallow quantifiers that cause quadratic moves
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-super-linear-move.html
	 */
	'regexp/no-super-linear-move'?: Linter.RuleEntry<RegexpNoSuperLinearMove>
	/**
	 * disallow trivially nested assertions
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-trivially-nested-assertion.html
	 */
	'regexp/no-trivially-nested-assertion'?: Linter.RuleEntry<[]>
	/**
	 * disallow nested quantifiers that can be rewritten as one quantifier
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-trivially-nested-quantifier.html
	 */
	'regexp/no-trivially-nested-quantifier'?: Linter.RuleEntry<[]>
	/**
	 * disallow unused capturing group
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-unused-capturing-group.html
	 */
	'regexp/no-unused-capturing-group'?: Linter.RuleEntry<RegexpNoUnusedCapturingGroup>
	/**
	 * disallow assertions that are known to always accept (or reject)
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-useless-assertions.html
	 */
	'regexp/no-useless-assertions'?: Linter.RuleEntry<[]>
	/**
	 * disallow useless backreferences in regular expressions
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-useless-backreference.html
	 */
	'regexp/no-useless-backreference'?: Linter.RuleEntry<[]>
	/**
	 * disallow character class with one character
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-useless-character-class.html
	 */
	'regexp/no-useless-character-class'?: Linter.RuleEntry<RegexpNoUselessCharacterClass>
	/**
	 * disallow useless `$` replacements in replacement string
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-useless-dollar-replacements.html
	 */
	'regexp/no-useless-dollar-replacements'?: Linter.RuleEntry<[]>
	/**
	 * disallow unnecessary escape characters in RegExp
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-useless-escape.html
	 */
	'regexp/no-useless-escape'?: Linter.RuleEntry<[]>
	/**
	 * disallow unnecessary regex flags
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-useless-flag.html
	 */
	'regexp/no-useless-flag'?: Linter.RuleEntry<RegexpNoUselessFlag>
	/**
	 * disallow unnecessarily non-greedy quantifiers
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-useless-lazy.html
	 */
	'regexp/no-useless-lazy'?: Linter.RuleEntry<[]>
	/**
	 * disallow unnecessary non-capturing group
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-useless-non-capturing-group.html
	 */
	'regexp/no-useless-non-capturing-group'?: Linter.RuleEntry<RegexpNoUselessNonCapturingGroup>
	/**
	 * disallow quantifiers that can be removed
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-useless-quantifier.html
	 */
	'regexp/no-useless-quantifier'?: Linter.RuleEntry<[]>
	/**
	 * disallow unnecessary character ranges
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-useless-range.html
	 */
	'regexp/no-useless-range'?: Linter.RuleEntry<[]>
	/**
	 * disallow unnecessary elements in expression character classes
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-useless-set-operand.html
	 */
	'regexp/no-useless-set-operand'?: Linter.RuleEntry<[]>
	/**
	 * disallow string disjunction of single characters in `\q{...}`
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-useless-string-literal.html
	 */
	'regexp/no-useless-string-literal'?: Linter.RuleEntry<[]>
	/**
	 * disallow unnecessary `{n,m}` quantifier
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-useless-two-nums-quantifier.html
	 */
	'regexp/no-useless-two-nums-quantifier'?: Linter.RuleEntry<[]>
	/**
	 * disallow quantifiers with a maximum of zero
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-zero-quantifier.html
	 */
	'regexp/no-zero-quantifier'?: Linter.RuleEntry<[]>
	/**
	 * disallow the alternatives of lookarounds that end with a non-constant quantifier
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/optimal-lookaround-quantifier.html
	 */
	'regexp/optimal-lookaround-quantifier'?: Linter.RuleEntry<[]>
	/**
	 * require optimal quantifiers for concatenated quantifiers
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/optimal-quantifier-concatenation.html
	 */
	'regexp/optimal-quantifier-concatenation'?: Linter.RuleEntry<RegexpOptimalQuantifierConcatenation>
	/**
	 * enforce using character class
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-character-class.html
	 */
	'regexp/prefer-character-class'?: Linter.RuleEntry<RegexpPreferCharacterClass>
	/**
	 * enforce using `\d`
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-d.html
	 */
	'regexp/prefer-d'?: Linter.RuleEntry<RegexpPreferD>
	/**
	 * enforces escape of replacement `$` character (`$$`).
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-escape-replacement-dollar-char.html
	 */
	'regexp/prefer-escape-replacement-dollar-char'?: Linter.RuleEntry<[]>
	/**
	 * prefer lookarounds over capturing group that do not replace
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-lookaround.html
	 */
	'regexp/prefer-lookaround'?: Linter.RuleEntry<RegexpPreferLookaround>
	/**
	 * enforce using named backreferences
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-named-backreference.html
	 */
	'regexp/prefer-named-backreference'?: Linter.RuleEntry<[]>
	/**
	 * enforce using named capture groups
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-named-capture-group.html
	 */
	'regexp/prefer-named-capture-group'?: Linter.RuleEntry<[]>
	/**
	 * enforce using named replacement
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-named-replacement.html
	 */
	'regexp/prefer-named-replacement'?: Linter.RuleEntry<RegexpPreferNamedReplacement>
	/**
	 * enforce using `+` quantifier
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-plus-quantifier.html
	 */
	'regexp/prefer-plus-quantifier'?: Linter.RuleEntry<[]>
	/**
	 * prefer predefined assertion over equivalent lookarounds
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-predefined-assertion.html
	 */
	'regexp/prefer-predefined-assertion'?: Linter.RuleEntry<[]>
	/**
	 * enforce using quantifier
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-quantifier.html
	 */
	'regexp/prefer-quantifier'?: Linter.RuleEntry<RegexpPreferQuantifier>
	/**
	 * enforce using `?` quantifier
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-question-quantifier.html
	 */
	'regexp/prefer-question-quantifier'?: Linter.RuleEntry<[]>
	/**
	 * enforce using character class range
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-range.html
	 */
	'regexp/prefer-range'?: Linter.RuleEntry<RegexpPreferRange>
	/**
	 * enforce that `RegExp#exec` is used instead of `String#match` if no global flag is provided
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-regexp-exec.html
	 */
	'regexp/prefer-regexp-exec'?: Linter.RuleEntry<[]>
	/**
	 * enforce that `RegExp#test` is used instead of `String#match` and `RegExp#exec`
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-regexp-test.html
	 */
	'regexp/prefer-regexp-test'?: Linter.RuleEntry<[]>
	/**
	 * enforce using result array `groups`
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-result-array-groups.html
	 */
	'regexp/prefer-result-array-groups'?: Linter.RuleEntry<RegexpPreferResultArrayGroups>
	/**
	 * prefer character class set operations instead of lookarounds
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-set-operation.html
	 */
	'regexp/prefer-set-operation'?: Linter.RuleEntry<[]>
	/**
	 * enforce using `*` quantifier
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-star-quantifier.html
	 */
	'regexp/prefer-star-quantifier'?: Linter.RuleEntry<[]>
	/**
	 * enforce use of unicode codepoint escapes
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-unicode-codepoint-escapes.html
	 */
	'regexp/prefer-unicode-codepoint-escapes'?: Linter.RuleEntry<[]>
	/**
	 * enforce using `\w`
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/prefer-w.html
	 */
	'regexp/prefer-w'?: Linter.RuleEntry<[]>
	/**
	 * enforce the use of the `u` flag
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/require-unicode-regexp.html
	 */
	'regexp/require-unicode-regexp'?: Linter.RuleEntry<[]>
	/**
	 * enforce the use of the `v` flag
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/require-unicode-sets-regexp.html
	 */
	'regexp/require-unicode-sets-regexp'?: Linter.RuleEntry<[]>
	/**
	 * require simplify set operations
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/simplify-set-operations.html
	 */
	'regexp/simplify-set-operations'?: Linter.RuleEntry<[]>
	/**
	 * sort alternatives if order doesn't matter
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/sort-alternatives.html
	 */
	'regexp/sort-alternatives'?: Linter.RuleEntry<[]>
	/**
	 * enforces elements order in character class
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/sort-character-class-elements.html
	 */
	'regexp/sort-character-class-elements'?: Linter.RuleEntry<RegexpSortCharacterClassElements>
	/**
	 * require regex flags to be sorted
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/sort-flags.html
	 */
	'regexp/sort-flags'?: Linter.RuleEntry<[]>
	/**
	 * disallow not strictly valid regular expressions
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/strict.html
	 */
	'regexp/strict'?: Linter.RuleEntry<[]>
	/**
	 * enforce consistent usage of unicode escape or unicode codepoint escape
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/unicode-escape.html
	 */
	'regexp/unicode-escape'?: Linter.RuleEntry<RegexpUnicodeEscape>
	/**
	 * enforce consistent naming of unicode properties
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/unicode-property.html
	 */
	'regexp/unicode-property'?: Linter.RuleEntry<RegexpUnicodeProperty>
	/**
	 * use the `i` flag if it simplifies the pattern
	 * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/use-ignore-case.html
	 */
	'regexp/use-ignore-case'?: Linter.RuleEntry<[]>
	/**
	 * Disallow assignments that can lead to race conditions due to usage of `await` or `yield`
	 * @see https://eslint.org/docs/latest/rules/require-atomic-updates
	 */
	'require-atomic-updates'?: Linter.RuleEntry<RequireAtomicUpdates>
	/**
	 * Disallow async functions which have no `await` expression
	 * @see https://eslint.org/docs/latest/rules/require-await
	 */
	'require-await'?: Linter.RuleEntry<[]>
	/**
	 * Enforce the use of `u` or `v` flag on regular expressions
	 * @see https://eslint.org/docs/latest/rules/require-unicode-regexp
	 */
	'require-unicode-regexp'?: Linter.RuleEntry<RequireUnicodeRegexp>
	/**
	 * Require generator functions to contain `yield`
	 * @see https://eslint.org/docs/latest/rules/require-yield
	 */
	'require-yield'?: Linter.RuleEntry<[]>
	/**
	 * Enforce spacing between rest and spread operators and their expressions
	 * @see https://eslint.org/docs/latest/rules/rest-spread-spacing
	 * @deprecated
	 */
	'rest-spread-spacing'?: Linter.RuleEntry<RestSpreadSpacing>
	/**
	 * Require or disallow semicolons instead of ASI
	 * @see https://eslint.org/docs/latest/rules/semi
	 * @deprecated
	 */
	semi?: Linter.RuleEntry<Semi>
	/**
	 * Enforce consistent spacing before and after semicolons
	 * @see https://eslint.org/docs/latest/rules/semi-spacing
	 * @deprecated
	 */
	'semi-spacing'?: Linter.RuleEntry<SemiSpacing>
	/**
	 * Enforce location of semicolons
	 * @see https://eslint.org/docs/latest/rules/semi-style
	 * @deprecated
	 */
	'semi-style'?: Linter.RuleEntry<SemiStyle>
	/**
	 * Enforce sorted `import` declarations within modules
	 * @see https://eslint.org/docs/latest/rules/sort-imports
	 */
	'sort-imports'?: Linter.RuleEntry<SortImports>
	/**
	 * Require object keys to be sorted
	 * @see https://eslint.org/docs/latest/rules/sort-keys
	 */
	'sort-keys'?: Linter.RuleEntry<SortKeys>
	/**
	 * Require variables within the same declaration block to be sorted
	 * @see https://eslint.org/docs/latest/rules/sort-vars
	 */
	'sort-vars'?: Linter.RuleEntry<SortVars>
	/**
	 * Enforce consistent spacing before blocks
	 * @see https://eslint.org/docs/latest/rules/space-before-blocks
	 * @deprecated
	 */
	'space-before-blocks'?: Linter.RuleEntry<SpaceBeforeBlocks>
	/**
	 * Enforce consistent spacing before `function` definition opening parenthesis
	 * @see https://eslint.org/docs/latest/rules/space-before-function-paren
	 * @deprecated
	 */
	'space-before-function-paren'?: Linter.RuleEntry<SpaceBeforeFunctionParen>
	/**
	 * Enforce consistent spacing inside parentheses
	 * @see https://eslint.org/docs/latest/rules/space-in-parens
	 * @deprecated
	 */
	'space-in-parens'?: Linter.RuleEntry<SpaceInParens>
	/**
	 * Require spacing around infix operators
	 * @see https://eslint.org/docs/latest/rules/space-infix-ops
	 * @deprecated
	 */
	'space-infix-ops'?: Linter.RuleEntry<SpaceInfixOps>
	/**
	 * Enforce consistent spacing before or after unary operators
	 * @see https://eslint.org/docs/latest/rules/space-unary-ops
	 * @deprecated
	 */
	'space-unary-ops'?: Linter.RuleEntry<SpaceUnaryOps>
	/**
	 * Enforce consistent spacing after the `//` or `/*` in a comment
	 * @see https://eslint.org/docs/latest/rules/spaced-comment
	 * @deprecated
	 */
	'spaced-comment'?: Linter.RuleEntry<SpacedComment>
	/**
	 * Require or disallow strict mode directives
	 * @see https://eslint.org/docs/latest/rules/strict
	 */
	strict?: Linter.RuleEntry<Strict>
	/**
	 * disallow conditionals where the type is always truthy or always falsy
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/@typescript-eslint/no-unnecessary-condition/
	 * @deprecated
	 */
	'svelte/@typescript-eslint/no-unnecessary-condition'?: Linter.RuleEntry<SvelteTypescriptEslintNoUnnecessaryCondition>
	/**
	 * disallows the use of languages other than those specified in the configuration for the lang attribute of `<script>` and `<style>` blocks.
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/block-lang/
	 */
	'svelte/block-lang'?: Linter.RuleEntry<SvelteBlockLang>
	/**
	 * disallow usage of button without an explicit type attribute
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/button-has-type/
	 */
	'svelte/button-has-type'?: Linter.RuleEntry<SvelteButtonHasType>
	/**
	 * support comment-directives in HTML template
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/comment-directive/
	 */
	'svelte/comment-directive'?: Linter.RuleEntry<SvelteCommentDirective>
	/**
	 * enforce a consistent style for CSS selectors
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/consistent-selector-style/
	 */
	'svelte/consistent-selector-style'?: Linter.RuleEntry<SvelteConsistentSelectorStyle>
	/**
	 * derived store should use same variable names between values and callback
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/derived-has-same-inputs-outputs/
	 */
	'svelte/derived-has-same-inputs-outputs'?: Linter.RuleEntry<[]>
	/**
	 * require slot type declaration using the `$$Slots` interface
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/experimental-require-slot-types/
	 */
	'svelte/experimental-require-slot-types'?: Linter.RuleEntry<[]>
	/**
	 * require the strictEvents attribute on `<script>` tags
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/experimental-require-strict-events/
	 */
	'svelte/experimental-require-strict-events'?: Linter.RuleEntry<[]>
	/**
	 * enforce the location of first attribute
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/first-attribute-linebreak/
	 */
	'svelte/first-attribute-linebreak'?: Linter.RuleEntry<SvelteFirstAttributeLinebreak>
	/**
	 * Require or disallow a line break before tag's closing brackets
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/html-closing-bracket-new-line/
	 */
	'svelte/html-closing-bracket-new-line'?: Linter.RuleEntry<SvelteHtmlClosingBracketNewLine>
	/**
	 * require or disallow a space before tag's closing brackets
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/html-closing-bracket-spacing/
	 */
	'svelte/html-closing-bracket-spacing'?: Linter.RuleEntry<SvelteHtmlClosingBracketSpacing>
	/**
	 * enforce quotes style of HTML attributes
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/html-quotes/
	 */
	'svelte/html-quotes'?: Linter.RuleEntry<SvelteHtmlQuotes>
	/**
	 * enforce self-closing style
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/html-self-closing/
	 */
	'svelte/html-self-closing'?: Linter.RuleEntry<SvelteHtmlSelfClosing>
	/**
	 * enforce consistent indentation
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/indent/
	 */
	'svelte/indent'?: Linter.RuleEntry<SvelteIndent>
	/**
	 * Svelte runtime prevents calling the same reactive statement twice in a microtask. But between different microtask, it doesn't prevent.
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/infinite-reactive-loop/
	 */
	'svelte/infinite-reactive-loop'?: Linter.RuleEntry<[]>
	/**
	 * enforce the maximum number of attributes per line
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/max-attributes-per-line/
	 */
	'svelte/max-attributes-per-line'?: Linter.RuleEntry<SvelteMaxAttributesPerLine>
	/**
	 * enforce unified spacing in mustache
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/mustache-spacing/
	 */
	'svelte/mustache-spacing'?: Linter.RuleEntry<SvelteMustacheSpacing>
	/**
	 * Warns against the use of `addEventListener`
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-add-event-listener/
	 */
	'svelte/no-add-event-listener'?: Linter.RuleEntry<[]>
	/**
	 * disallow the use of `{@debug}`
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-at-debug-tags/
	 */
	'svelte/no-at-debug-tags'?: Linter.RuleEntry<[]>
	/**
	 * disallow use of `{@html}` to prevent XSS attack
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-at-html-tags/
	 */
	'svelte/no-at-html-tags'?: Linter.RuleEntry<[]>
	/**
	 * disallow DOM manipulating
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-dom-manipulating/
	 */
	'svelte/no-dom-manipulating'?: Linter.RuleEntry<[]>
	/**
	 * disallow duplicate conditions in `{#if}` / `{:else if}` chains
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-dupe-else-if-blocks/
	 */
	'svelte/no-dupe-else-if-blocks'?: Linter.RuleEntry<[]>
	/**
	 * disallow duplicate `on:` directives
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-dupe-on-directives/
	 */
	'svelte/no-dupe-on-directives'?: Linter.RuleEntry<[]>
	/**
	 * disallow duplicate style properties
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-dupe-style-properties/
	 */
	'svelte/no-dupe-style-properties'?: Linter.RuleEntry<[]>
	/**
	 * disallow duplicate `use:` directives
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-dupe-use-directives/
	 */
	'svelte/no-dupe-use-directives'?: Linter.RuleEntry<[]>
	/**
	 * disallow dynamic slot name
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-dynamic-slot-name/
	 * @deprecated
	 */
	'svelte/no-dynamic-slot-name'?: Linter.RuleEntry<[]>
	/**
	 * disallow exporting load functions in `*.svelte` module in SvelteKit page components.
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-export-load-in-svelte-module-in-kit-pages/
	 */
	'svelte/no-export-load-in-svelte-module-in-kit-pages'?: Linter.RuleEntry<[]>
	/**
	 * disallow wrapping single reactive statements in curly braces
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-extra-reactive-curlies/
	 */
	'svelte/no-extra-reactive-curlies'?: Linter.RuleEntry<[]>
	/**
	 * disallow using goto() without the base path
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-goto-without-base/
	 * @deprecated
	 */
	'svelte/no-goto-without-base'?: Linter.RuleEntry<[]>
	/**
	 * disallow ignoring the unsubscribe method returned by the `subscribe()` on Svelte stores.
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-ignored-unsubscribe/
	 */
	'svelte/no-ignored-unsubscribe'?: Linter.RuleEntry<[]>
	/**
	 * disallow reactive statements that don't reference reactive values.
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-immutable-reactive-statements/
	 */
	'svelte/no-immutable-reactive-statements'?: Linter.RuleEntry<[]>
	/**
	 * disallow attributes and directives that produce inline styles
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-inline-styles/
	 */
	'svelte/no-inline-styles'?: Linter.RuleEntry<SvelteNoInlineStyles>
	/**
	 * disallow variable or `function` declarations in nested blocks
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-inner-declarations/
	 */
	'svelte/no-inner-declarations'?: Linter.RuleEntry<SvelteNoInnerDeclarations>
	/**
	 * Warns against the use of `$inspect` directive
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-inspect/
	 */
	'svelte/no-inspect'?: Linter.RuleEntry<[]>
	/**
	 * disallow using navigation (links, goto, pushState, replaceState) without the base path
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-navigation-without-base/
	 */
	'svelte/no-navigation-without-base'?: Linter.RuleEntry<SvelteNoNavigationWithoutBase>
	/**
	 * disallow use of not function in event handler
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-not-function-handler/
	 */
	'svelte/no-not-function-handler'?: Linter.RuleEntry<[]>
	/**
	 * disallow objects in text mustache interpolation
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-object-in-text-mustaches/
	 */
	'svelte/no-object-in-text-mustaches'?: Linter.RuleEntry<[]>
	/**
	 * Checks for invalid raw HTML elements
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-raw-special-elements/
	 */
	'svelte/no-raw-special-elements'?: Linter.RuleEntry<[]>
	/**
	 * it's not necessary to define functions in reactive statements
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-reactive-functions/
	 */
	'svelte/no-reactive-functions'?: Linter.RuleEntry<[]>
	/**
	 * don't assign literal values in reactive statements
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-reactive-literals/
	 */
	'svelte/no-reactive-literals'?: Linter.RuleEntry<[]>
	/**
	 * disallow reassigning reactive values
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-reactive-reassign/
	 */
	'svelte/no-reactive-reassign'?: Linter.RuleEntry<SvelteNoReactiveReassign>
	/**
	 * disallow specific HTML elements
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-restricted-html-elements/
	 */
	'svelte/no-restricted-html-elements'?: Linter.RuleEntry<SvelteNoRestrictedHtmlElements>
	/**
	 * disallow shorthand style properties that override related longhand properties
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-shorthand-style-property-overrides/
	 */
	'svelte/no-shorthand-style-property-overrides'?: Linter.RuleEntry<[]>
	/**
	 * disallow spaces around equal signs in attribute
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-spaces-around-equal-signs-in-attribute/
	 */
	'svelte/no-spaces-around-equal-signs-in-attribute'?: Linter.RuleEntry<[]>
	/**
	 * disallow using async/await inside svelte stores because it causes issues with the auto-unsubscribing features
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-store-async/
	 */
	'svelte/no-store-async'?: Linter.RuleEntry<[]>
	/**
	 * svelte/internal will be removed in Svelte 6.
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-svelte-internal/
	 */
	'svelte/no-svelte-internal'?: Linter.RuleEntry<[]>
	/**
	 * disallow `target="_blank"` attribute without `rel="noopener noreferrer"`
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-target-blank/
	 */
	'svelte/no-target-blank'?: Linter.RuleEntry<SvelteNoTargetBlank>
	/**
	 * disallow using top-level browser global variables
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-top-level-browser-globals/
	 */
	'svelte/no-top-level-browser-globals'?: Linter.RuleEntry<[]>
	/**
	 * disallow trailing whitespace at the end of lines
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-trailing-spaces/
	 */
	'svelte/no-trailing-spaces'?: Linter.RuleEntry<SvelteNoTrailingSpaces>
	/**
	 * disallow unknown `style:property`
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-unknown-style-directive-property/
	 */
	'svelte/no-unknown-style-directive-property'?: Linter.RuleEntry<SvelteNoUnknownStyleDirectiveProperty>
	/**
	 * Disallow unnecessary $state wrapping of reactive classes
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-unnecessary-state-wrap/
	 */
	'svelte/no-unnecessary-state-wrap'?: Linter.RuleEntry<SvelteNoUnnecessaryStateWrap>
	/**
	 * disallow the use of a class in the template without a corresponding style
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-unused-class-name/
	 */
	'svelte/no-unused-class-name'?: Linter.RuleEntry<SvelteNoUnusedClassName>
	/**
	 * Warns about defined Props properties that are unused
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-unused-props/
	 */
	'svelte/no-unused-props'?: Linter.RuleEntry<SvelteNoUnusedProps>
	/**
	 * disallow unused svelte-ignore comments
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-unused-svelte-ignore/
	 */
	'svelte/no-unused-svelte-ignore'?: Linter.RuleEntry<[]>
	/**
	 * disallow explicit children snippet where it's not needed
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-useless-children-snippet/
	 */
	'svelte/no-useless-children-snippet'?: Linter.RuleEntry<[]>
	/**
	 * disallow unnecessary mustache interpolations
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-useless-mustaches/
	 */
	'svelte/no-useless-mustaches'?: Linter.RuleEntry<SvelteNoUselessMustaches>
	/**
	 * require class directives instead of ternary expressions
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-class-directive/
	 */
	'svelte/prefer-class-directive'?: Linter.RuleEntry<SveltePreferClassDirective>
	/**
	 * Require `const` declarations for variables that are never reassigned after declared
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-const/
	 */
	'svelte/prefer-const'?: Linter.RuleEntry<SveltePreferConst>
	/**
	 * destructure values from object stores for better change tracking & fewer redraws
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-destructured-store-props/
	 */
	'svelte/prefer-destructured-store-props'?: Linter.RuleEntry<[]>
	/**
	 * require style directives instead of style attribute
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-style-directive/
	 */
	'svelte/prefer-style-directive'?: Linter.RuleEntry<[]>
	/**
	 * Prefer using writable $derived instead of $state and $effect
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-writable-derived/
	 */
	'svelte/prefer-writable-derived'?: Linter.RuleEntry<[]>
	/**
	 * require keyed `{#each}` block
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/require-each-key/
	 */
	'svelte/require-each-key'?: Linter.RuleEntry<[]>
	/**
	 * require type parameters for `createEventDispatcher`
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/require-event-dispatcher-types/
	 */
	'svelte/require-event-dispatcher-types'?: Linter.RuleEntry<[]>
	/**
	 * require component event names to start with "on"
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/require-event-prefix/
	 */
	'svelte/require-event-prefix'?: Linter.RuleEntry<SvelteRequireEventPrefix>
	/**
	 * require style attributes that can be optimized
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/require-optimized-style-attribute/
	 */
	'svelte/require-optimized-style-attribute'?: Linter.RuleEntry<[]>
	/**
	 * store callbacks must use `set` param
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/require-store-callbacks-use-set-param/
	 */
	'svelte/require-store-callbacks-use-set-param'?: Linter.RuleEntry<[]>
	/**
	 * disallow to use of the store itself as an operand. Need to use $ prefix or get function.
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/require-store-reactive-access/
	 */
	'svelte/require-store-reactive-access'?: Linter.RuleEntry<[]>
	/**
	 * require initial value in store
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/require-stores-init/
	 */
	'svelte/require-stores-init'?: Linter.RuleEntry<[]>
	/**
	 * enforce use of shorthand syntax in attribute
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/shorthand-attribute/
	 */
	'svelte/shorthand-attribute'?: Linter.RuleEntry<SvelteShorthandAttribute>
	/**
	 * enforce use of shorthand syntax in directives
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/shorthand-directive/
	 */
	'svelte/shorthand-directive'?: Linter.RuleEntry<SvelteShorthandDirective>
	/**
	 * enforce order of attributes
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/sort-attributes/
	 */
	'svelte/sort-attributes'?: Linter.RuleEntry<SvelteSortAttributes>
	/**
	 * enforce consistent spacing after the `<!--` and before the `-->` in a HTML comment
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/spaced-html-comment/
	 */
	'svelte/spaced-html-comment'?: Linter.RuleEntry<SvelteSpacedHtmlComment>
	/**
	 * system rule for working this plugin
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/system/
	 */
	'svelte/system'?: Linter.RuleEntry<[]>
	/**
	 * disallow warnings when compiling.
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/valid-compile/
	 */
	'svelte/valid-compile'?: Linter.RuleEntry<SvelteValidCompile>
	/**
	 * enforce keys to use variables defined in the `{#each}` block
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/valid-each-key/
	 */
	'svelte/valid-each-key'?: Linter.RuleEntry<[]>
	/**
	 * disallow props other than data or errors in SvelteKit page components.
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/valid-prop-names-in-kit-pages/
	 */
	'svelte/valid-prop-names-in-kit-pages'?: Linter.RuleEntry<[]>
	/**
	 * require valid style element parsing
	 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/valid-style-parse/
	 */
	'svelte/valid-style-parse'?: Linter.RuleEntry<[]>
	/**
	 * Enforce spacing around colons of switch statements
	 * @see https://eslint.org/docs/latest/rules/switch-colon-spacing
	 * @deprecated
	 */
	'switch-colon-spacing'?: Linter.RuleEntry<SwitchColonSpacing>
	/**
	 * Require symbol descriptions
	 * @see https://eslint.org/docs/latest/rules/symbol-description
	 */
	'symbol-description'?: Linter.RuleEntry<[]>
	/**
	 * Require or disallow spacing around embedded expressions of template strings
	 * @see https://eslint.org/docs/latest/rules/template-curly-spacing
	 * @deprecated
	 */
	'template-curly-spacing'?: Linter.RuleEntry<TemplateCurlySpacing>
	/**
	 * Require or disallow spacing between template tags and their literals
	 * @see https://eslint.org/docs/latest/rules/template-tag-spacing
	 * @deprecated
	 */
	'template-tag-spacing'?: Linter.RuleEntry<TemplateTagSpacing>
	/**
	 * require .spec test file pattern
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-test-filename.md
	 */
	'test/consistent-test-filename'?: Linter.RuleEntry<TestConsistentTestFilename>
	/**
	 * enforce using test or it but not both
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-test-it.md
	 */
	'test/consistent-test-it'?: Linter.RuleEntry<TestConsistentTestIt>
	/**
	 * enforce having expectation in test body
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/expect-expect.md
	 */
	'test/expect-expect'?: Linter.RuleEntry<TestExpectExpect>
	/**
	 * enforce a maximum number of expect per test
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/max-expects.md
	 */
	'test/max-expects'?: Linter.RuleEntry<TestMaxExpects>
	/**
	 * require describe block to be less than set max value or default value
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/max-nested-describe.md
	 */
	'test/max-nested-describe'?: Linter.RuleEntry<TestMaxNestedDescribe>
	/**
	 * disallow alias methods
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-alias-methods.md
	 */
	'test/no-alias-methods'?: Linter.RuleEntry<[]>
	/**
	 * disallow commented out tests
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-commented-out-tests.md
	 */
	'test/no-commented-out-tests'?: Linter.RuleEntry<[]>
	/**
	 * disallow conditional expects
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-expect.md
	 */
	'test/no-conditional-expect'?: Linter.RuleEntry<[]>
	/**
	 * disallow conditional tests
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-in-test.md
	 */
	'test/no-conditional-in-test'?: Linter.RuleEntry<[]>
	/**
	 * disallow conditional tests
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-tests.md
	 */
	'test/no-conditional-tests'?: Linter.RuleEntry<[]>
	/**
	 * disallow disabled tests
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-disabled-tests.md
	 */
	'test/no-disabled-tests'?: Linter.RuleEntry<[]>
	/**
	 * disallow using a callback in asynchronous tests and hooks
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-done-callback.md
	 * @deprecated
	 */
	'test/no-done-callback'?: Linter.RuleEntry<[]>
	/**
	 * disallow duplicate hooks and teardown hooks
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-duplicate-hooks.md
	 */
	'test/no-duplicate-hooks'?: Linter.RuleEntry<[]>
	/**
	 * disallow focused tests
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-focused-tests.md
	 */
	'test/no-focused-tests'?: Linter.RuleEntry<TestNoFocusedTests>
	/**
	 * disallow setup and teardown hooks
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-hooks.md
	 */
	'test/no-hooks'?: Linter.RuleEntry<TestNoHooks>
	/**
	 * disallow identical titles
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-identical-title.md
	 */
	'test/no-identical-title'?: Linter.RuleEntry<[]>
	/**
	 * disallow importing `node:test`
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-import-node-test.md
	 */
	'test/no-import-node-test'?: Linter.RuleEntry<[]>
	/**
	 * disallow string interpolation in snapshots
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-interpolation-in-snapshots.md
	 */
	'test/no-interpolation-in-snapshots'?: Linter.RuleEntry<[]>
	/**
	 * disallow large snapshots
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-large-snapshots.md
	 */
	'test/no-large-snapshots'?: Linter.RuleEntry<TestNoLargeSnapshots>
	/**
	 * disallow importing from __mocks__ directory
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-mocks-import.md
	 */
	'test/no-mocks-import'?: Linter.RuleEntry<[]>
	/**
	 * disallow .only blocks in tests
	 * @see https://github.com/levibuzolic/eslint-plugin-no-only-tests
	 */
	'test/no-only-tests'?: Linter.RuleEntry<TestNoOnlyTests>
	/**
	 * disallow the use of certain matchers
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-restricted-matchers.md
	 */
	'test/no-restricted-matchers'?: Linter.RuleEntry<TestNoRestrictedMatchers>
	/**
	 * disallow specific `vi.` methods
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-restricted-vi-methods.md
	 */
	'test/no-restricted-vi-methods'?: Linter.RuleEntry<TestNoRestrictedViMethods>
	/**
	 * disallow using `expect` outside of `it` or `test` blocks
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-standalone-expect.md
	 */
	'test/no-standalone-expect'?: Linter.RuleEntry<TestNoStandaloneExpect>
	/**
	 * Disallow using the `f` and `x` prefixes in favour of `.only` and `.skip`
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-test-prefixes.md
	 */
	'test/no-test-prefixes'?: Linter.RuleEntry<[]>
	/**
	 * disallow return statements in tests
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-test-return-statement.md
	 */
	'test/no-test-return-statement'?: Linter.RuleEntry<[]>
	/**
	 * Enforce padding around `afterAll` blocks
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-after-all-blocks.md
	 */
	'test/padding-around-after-all-blocks'?: Linter.RuleEntry<[]>
	/**
	 * Enforce padding around `afterEach` blocks
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-after-each-blocks.md
	 */
	'test/padding-around-after-each-blocks'?: Linter.RuleEntry<[]>
	/**
	 * Enforce padding around vitest functions
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-all.md
	 */
	'test/padding-around-all'?: Linter.RuleEntry<[]>
	/**
	 * Enforce padding around `beforeAll` blocks
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-before-all-blocks.md
	 */
	'test/padding-around-before-all-blocks'?: Linter.RuleEntry<[]>
	/**
	 * Enforce padding around `beforeEach` blocks
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-before-each-blocks.md
	 */
	'test/padding-around-before-each-blocks'?: Linter.RuleEntry<[]>
	/**
	 * Enforce padding around `describe` blocks
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-describe-blocks.md
	 */
	'test/padding-around-describe-blocks'?: Linter.RuleEntry<[]>
	/**
	 * Enforce padding around `expect` groups
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-expect-groups.md
	 */
	'test/padding-around-expect-groups'?: Linter.RuleEntry<[]>
	/**
	 * Enforce padding around `test` blocks
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-test-blocks.md
	 */
	'test/padding-around-test-blocks'?: Linter.RuleEntry<[]>
	/**
	 * enforce using `toBeCalledWith()` or `toHaveBeenCalledWith()`
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-with.md
	 */
	'test/prefer-called-with'?: Linter.RuleEntry<[]>
	/**
	 * enforce using the built-in comparison matchers
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-comparison-matcher.md
	 */
	'test/prefer-comparison-matcher'?: Linter.RuleEntry<[]>
	/**
	 * enforce using a function as a describe title over an equivalent string
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-describe-function-title.md
	 */
	'test/prefer-describe-function-title'?: Linter.RuleEntry<[]>
	/**
	 * enforce using `each` rather than manual loops
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-each.md
	 */
	'test/prefer-each'?: Linter.RuleEntry<[]>
	/**
	 * enforce using the built-in quality matchers
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-equality-matcher.md
	 */
	'test/prefer-equality-matcher'?: Linter.RuleEntry<[]>
	/**
	 * enforce using expect assertions instead of callbacks
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-expect-assertions.md
	 */
	'test/prefer-expect-assertions'?: Linter.RuleEntry<TestPreferExpectAssertions>
	/**
	 * enforce using `expect().resolves` over `expect(await ...)` syntax
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-expect-resolves.md
	 */
	'test/prefer-expect-resolves'?: Linter.RuleEntry<[]>
	/**
	 * enforce having hooks in consistent order
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-hooks-in-order.md
	 */
	'test/prefer-hooks-in-order'?: Linter.RuleEntry<[]>
	/**
	 * enforce having hooks before any test cases
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-hooks-on-top.md
	 */
	'test/prefer-hooks-on-top'?: Linter.RuleEntry<[]>
	/**
	 * enforce lowercase titles
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-lowercase-title.md
	 */
	'test/prefer-lowercase-title'?: Linter.RuleEntry<TestPreferLowercaseTitle>
	/**
	 * enforce mock resolved/rejected shorthands for promises
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-mock-promise-shorthand.md
	 */
	'test/prefer-mock-promise-shorthand'?: Linter.RuleEntry<[]>
	/**
	 * enforce including a hint with external snapshots
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-snapshot-hint.md
	 */
	'test/prefer-snapshot-hint'?: Linter.RuleEntry<TestPreferSnapshotHint>
	/**
	 * enforce using `vi.spyOn`
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-spy-on.md
	 */
	'test/prefer-spy-on'?: Linter.RuleEntry<[]>
	/**
	 * enforce using `toBe(true)` and `toBe(false)` over matchers that coerce types to boolean
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-strict-boolean-matchers.md
	 */
	'test/prefer-strict-boolean-matchers'?: Linter.RuleEntry<[]>
	/**
	 * enforce strict equal over equal
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-strict-equal.md
	 */
	'test/prefer-strict-equal'?: Linter.RuleEntry<[]>
	/**
	 * enforce using toBe()
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-be.md
	 */
	'test/prefer-to-be'?: Linter.RuleEntry<[]>
	/**
	 * enforce using toBeFalsy()
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-be-falsy.md
	 */
	'test/prefer-to-be-falsy'?: Linter.RuleEntry<[]>
	/**
	 * enforce using toBeObject()
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-be-object.md
	 */
	'test/prefer-to-be-object'?: Linter.RuleEntry<[]>
	/**
	 * enforce using `toBeTruthy`
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-be-truthy.md
	 */
	'test/prefer-to-be-truthy'?: Linter.RuleEntry<[]>
	/**
	 * enforce using toContain()
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-contain.md
	 */
	'test/prefer-to-contain'?: Linter.RuleEntry<[]>
	/**
	 * enforce using toHaveLength()
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-have-length.md
	 */
	'test/prefer-to-have-length'?: Linter.RuleEntry<[]>
	/**
	 * enforce using `test.todo`
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-todo.md
	 */
	'test/prefer-todo'?: Linter.RuleEntry<[]>
	/**
	 * require `vi.mocked()` over `fn as Mock`
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-vi-mocked.md
	 */
	'test/prefer-vi-mocked'?: Linter.RuleEntry<[]>
	/**
	 * require setup and teardown to be within a hook
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-hook.md
	 */
	'test/require-hook'?: Linter.RuleEntry<TestRequireHook>
	/**
	 * require local Test Context for concurrent snapshot tests
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-local-test-context-for-concurrent-snapshots.md
	 */
	'test/require-local-test-context-for-concurrent-snapshots'?: Linter.RuleEntry<[]>
	/**
	 * enforce using type parameters with vitest mock functions
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-mock-type-parameters.md
	 */
	'test/require-mock-type-parameters'?: Linter.RuleEntry<TestRequireMockTypeParameters>
	/**
	 * require toThrow() to be called with an error message
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-to-throw-message.md
	 */
	'test/require-to-throw-message'?: Linter.RuleEntry<[]>
	/**
	 * enforce that all tests are in a top-level describe
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-top-level-describe.md
	 */
	'test/require-top-level-describe'?: Linter.RuleEntry<TestRequireTopLevelDescribe>
	/**
	 * enforce valid describe callback
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-describe-callback.md
	 */
	'test/valid-describe-callback'?: Linter.RuleEntry<[]>
	/**
	 * enforce valid `expect()` usage
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-expect.md
	 */
	'test/valid-expect'?: Linter.RuleEntry<TestValidExpect>
	/**
	 * require promises that have expectations in their chain to be valid
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-expect-in-promise.md
	 */
	'test/valid-expect-in-promise'?: Linter.RuleEntry<[]>
	/**
	 * enforce valid titles
	 * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-title.md
	 */
	'test/valid-title'?: Linter.RuleEntry<TestValidTitle>
	/**
	 * enforce linebreaks after opening and before closing array brackets
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/array-bracket-newline.html
	 */
	'toml/array-bracket-newline'?: Linter.RuleEntry<TomlArrayBracketNewline>
	/**
	 * enforce consistent spacing inside array brackets
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/array-bracket-spacing.html
	 */
	'toml/array-bracket-spacing'?: Linter.RuleEntry<TomlArrayBracketSpacing>
	/**
	 * enforce line breaks between array elements
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/array-element-newline.html
	 */
	'toml/array-element-newline'?: Linter.RuleEntry<TomlArrayElementNewline>
	/**
	 * enforce consistent comma style in array
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/comma-style.html
	 */
	'toml/comma-style'?: Linter.RuleEntry<TomlCommaStyle>
	/**
	 * enforce consistent indentation
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/indent.html
	 */
	'toml/indent'?: Linter.RuleEntry<TomlIndent>
	/**
	 * enforce consistent spacing inside braces
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/inline-table-curly-spacing.html
	 */
	'toml/inline-table-curly-spacing'?: Linter.RuleEntry<TomlInlineTableCurlySpacing>
	/**
	 * enforce consistent spacing between keys and values in key/value pairs
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/key-spacing.html
	 */
	'toml/key-spacing'?: Linter.RuleEntry<TomlKeySpacing>
	/**
	 * disallow defining pair keys out-of-order
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/keys-order.html
	 */
	'toml/keys-order'?: Linter.RuleEntry<[]>
	/**
	 * disallow mixed data types in array
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/no-mixed-type-in-array.html
	 */
	'toml/no-mixed-type-in-array'?: Linter.RuleEntry<TomlNoMixedTypeInArray>
	/**
	 * disallow hexadecimal, octal and binary integer
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/no-non-decimal-integer.html
	 */
	'toml/no-non-decimal-integer'?: Linter.RuleEntry<TomlNoNonDecimalInteger>
	/**
	 * disallow spacing around infix operators
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/no-space-dots.html
	 */
	'toml/no-space-dots'?: Linter.RuleEntry<[]>
	/**
	 * disallow number separators that to not enhance readability.
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/no-unreadable-number-separator.html
	 */
	'toml/no-unreadable-number-separator'?: Linter.RuleEntry<[]>
	/**
	 * require or disallow padding lines between pairs
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/padding-line-between-pairs.html
	 */
	'toml/padding-line-between-pairs'?: Linter.RuleEntry<[]>
	/**
	 * require or disallow padding lines between tables
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/padding-line-between-tables.html
	 */
	'toml/padding-line-between-tables'?: Linter.RuleEntry<[]>
	/**
	 * disallow precision of fractional seconds greater than the specified value.
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/precision-of-fractional-seconds.html
	 */
	'toml/precision-of-fractional-seconds'?: Linter.RuleEntry<TomlPrecisionOfFractionalSeconds>
	/**
	 * disallow precision of integer greater than the specified value.
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/precision-of-integer.html
	 */
	'toml/precision-of-integer'?: Linter.RuleEntry<TomlPrecisionOfInteger>
	/**
	 * require or disallow quotes around keys
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/quoted-keys.html
	 */
	'toml/quoted-keys'?: Linter.RuleEntry<TomlQuotedKeys>
	/**
	 * require spacing around equals sign
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/space-eq-sign.html
	 * @deprecated
	 */
	'toml/space-eq-sign'?: Linter.RuleEntry<[]>
	/**
	 * enforce consistent spacing after the `#` in a comment
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/spaced-comment.html
	 */
	'toml/spaced-comment'?: Linter.RuleEntry<TomlSpacedComment>
	/**
	 * enforce consistent spacing inside table brackets
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/table-bracket-spacing.html
	 */
	'toml/table-bracket-spacing'?: Linter.RuleEntry<TomlTableBracketSpacing>
	/**
	 * disallow defining tables out-of-order
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/tables-order.html
	 */
	'toml/tables-order'?: Linter.RuleEntry<[]>
	/**
	 * disallow parsing errors in Vue custom blocks
	 * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/vue-custom-block/no-parsing-error.html
	 */
	'toml/vue-custom-block/no-parsing-error'?: Linter.RuleEntry<[]>
	/**
	 * Require that function overload signatures be consecutive
	 * @see https://typescript-eslint.io/rules/adjacent-overload-signatures
	 */
	'ts/adjacent-overload-signatures'?: Linter.RuleEntry<[]>
	/**
	 * Require consistently using either `T[]` or `Array<T>` for arrays
	 * @see https://typescript-eslint.io/rules/array-type
	 */
	'ts/array-type'?: Linter.RuleEntry<TsArrayType>
	/**
	 * Disallow awaiting a value that is not a Thenable
	 * @see https://typescript-eslint.io/rules/await-thenable
	 */
	'ts/await-thenable'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `@ts-<directive>` comments or require descriptions after directives
	 * @see https://typescript-eslint.io/rules/ban-ts-comment
	 */
	'ts/ban-ts-comment'?: Linter.RuleEntry<TsBanTsComment>
	/**
	 * Disallow `// tslint:<rule-flag>` comments
	 * @see https://typescript-eslint.io/rules/ban-tslint-comment
	 */
	'ts/ban-tslint-comment'?: Linter.RuleEntry<[]>
	/**
	 * Enforce that literals on classes are exposed in a consistent style
	 * @see https://typescript-eslint.io/rules/class-literal-property-style
	 */
	'ts/class-literal-property-style'?: Linter.RuleEntry<TsClassLiteralPropertyStyle>
	/**
	 * Enforce that class methods utilize `this`
	 * @see https://typescript-eslint.io/rules/class-methods-use-this
	 */
	'ts/class-methods-use-this'?: Linter.RuleEntry<TsClassMethodsUseThis>
	/**
	 * Enforce specifying generic type arguments on type annotation or constructor name of a constructor call
	 * @see https://typescript-eslint.io/rules/consistent-generic-constructors
	 */
	'ts/consistent-generic-constructors'?: Linter.RuleEntry<TsConsistentGenericConstructors>
	/**
	 * Require or disallow the `Record` type
	 * @see https://typescript-eslint.io/rules/consistent-indexed-object-style
	 */
	'ts/consistent-indexed-object-style'?: Linter.RuleEntry<TsConsistentIndexedObjectStyle>
	/**
	 * Require `return` statements to either always or never specify values
	 * @see https://typescript-eslint.io/rules/consistent-return
	 */
	'ts/consistent-return'?: Linter.RuleEntry<TsConsistentReturn>
	/**
	 * Enforce consistent usage of type assertions
	 * @see https://typescript-eslint.io/rules/consistent-type-assertions
	 */
	'ts/consistent-type-assertions'?: Linter.RuleEntry<TsConsistentTypeAssertions>
	/**
	 * Enforce type definitions to consistently use either `interface` or `type`
	 * @see https://typescript-eslint.io/rules/consistent-type-definitions
	 */
	'ts/consistent-type-definitions'?: Linter.RuleEntry<TsConsistentTypeDefinitions>
	/**
	 * Enforce consistent usage of type exports
	 * @see https://typescript-eslint.io/rules/consistent-type-exports
	 */
	'ts/consistent-type-exports'?: Linter.RuleEntry<TsConsistentTypeExports>
	/**
	 * Enforce consistent usage of type imports
	 * @see https://typescript-eslint.io/rules/consistent-type-imports
	 */
	'ts/consistent-type-imports'?: Linter.RuleEntry<TsConsistentTypeImports>
	/**
	 * Enforce default parameters to be last
	 * @see https://typescript-eslint.io/rules/default-param-last
	 */
	'ts/default-param-last'?: Linter.RuleEntry<[]>
	/**
	 * Enforce dot notation whenever possible
	 * @see https://typescript-eslint.io/rules/dot-notation
	 */
	'ts/dot-notation'?: Linter.RuleEntry<TsDotNotation>
	/**
	 * Require explicit return types on functions and class methods
	 * @see https://typescript-eslint.io/rules/explicit-function-return-type
	 */
	'ts/explicit-function-return-type'?: Linter.RuleEntry<TsExplicitFunctionReturnType>
	/**
	 * Require explicit accessibility modifiers on class properties and methods
	 * @see https://typescript-eslint.io/rules/explicit-member-accessibility
	 */
	'ts/explicit-member-accessibility'?: Linter.RuleEntry<TsExplicitMemberAccessibility>
	/**
	 * Require explicit return and argument types on exported functions' and classes' public class methods
	 * @see https://typescript-eslint.io/rules/explicit-module-boundary-types
	 */
	'ts/explicit-module-boundary-types'?: Linter.RuleEntry<TsExplicitModuleBoundaryTypes>
	/**
	 * Require or disallow initialization in variable declarations
	 * @see https://typescript-eslint.io/rules/init-declarations
	 */
	'ts/init-declarations'?: Linter.RuleEntry<TsInitDeclarations>
	/**
	 * Enforce a maximum number of parameters in function definitions
	 * @see https://typescript-eslint.io/rules/max-params
	 */
	'ts/max-params'?: Linter.RuleEntry<TsMaxParams>
	/**
	 * Require a consistent member declaration order
	 * @see https://typescript-eslint.io/rules/member-ordering
	 */
	'ts/member-ordering'?: Linter.RuleEntry<TsMemberOrdering>
	/**
	 * Enforce using a particular method signature syntax
	 * @see https://typescript-eslint.io/rules/method-signature-style
	 */
	'ts/method-signature-style'?: Linter.RuleEntry<TsMethodSignatureStyle>
	/**
	 * Enforce naming conventions for everything across a codebase
	 * @see https://typescript-eslint.io/rules/naming-convention
	 */
	'ts/naming-convention'?: Linter.RuleEntry<TsNamingConvention>
	/**
	 * Disallow generic `Array` constructors
	 * @see https://typescript-eslint.io/rules/no-array-constructor
	 */
	'ts/no-array-constructor'?: Linter.RuleEntry<[]>
	/**
	 * Disallow using the `delete` operator on array values
	 * @see https://typescript-eslint.io/rules/no-array-delete
	 */
	'ts/no-array-delete'?: Linter.RuleEntry<[]>
	/**
	 * Require `.toString()` and `.toLocaleString()` to only be called on objects which provide useful information when stringified
	 * @see https://typescript-eslint.io/rules/no-base-to-string
	 */
	'ts/no-base-to-string'?: Linter.RuleEntry<TsNoBaseToString>
	/**
	 * Disallow non-null assertion in locations that may be confusing
	 * @see https://typescript-eslint.io/rules/no-confusing-non-null-assertion
	 */
	'ts/no-confusing-non-null-assertion'?: Linter.RuleEntry<[]>
	/**
	 * Require expressions of type void to appear in statement position
	 * @see https://typescript-eslint.io/rules/no-confusing-void-expression
	 */
	'ts/no-confusing-void-expression'?: Linter.RuleEntry<TsNoConfusingVoidExpression>
	/**
	 * Disallow using code marked as `@deprecated`
	 * @see https://typescript-eslint.io/rules/no-deprecated
	 */
	'ts/no-deprecated'?: Linter.RuleEntry<TsNoDeprecated>
	/**
	 * Disallow duplicate class members
	 * @see https://typescript-eslint.io/rules/no-dupe-class-members
	 */
	'ts/no-dupe-class-members'?: Linter.RuleEntry<[]>
	/**
	 * Disallow duplicate enum member values
	 * @see https://typescript-eslint.io/rules/no-duplicate-enum-values
	 */
	'ts/no-duplicate-enum-values'?: Linter.RuleEntry<[]>
	/**
	 * Disallow duplicate constituents of union or intersection types
	 * @see https://typescript-eslint.io/rules/no-duplicate-type-constituents
	 */
	'ts/no-duplicate-type-constituents'?: Linter.RuleEntry<TsNoDuplicateTypeConstituents>
	/**
	 * Disallow using the `delete` operator on computed key expressions
	 * @see https://typescript-eslint.io/rules/no-dynamic-delete
	 */
	'ts/no-dynamic-delete'?: Linter.RuleEntry<[]>
	/**
	 * Disallow empty functions
	 * @see https://typescript-eslint.io/rules/no-empty-function
	 */
	'ts/no-empty-function'?: Linter.RuleEntry<TsNoEmptyFunction>
	/**
	 * Disallow the declaration of empty interfaces
	 * @see https://typescript-eslint.io/rules/no-empty-interface
	 * @deprecated
	 */
	'ts/no-empty-interface'?: Linter.RuleEntry<TsNoEmptyInterface>
	/**
	 * Disallow accidentally using the "empty object" type
	 * @see https://typescript-eslint.io/rules/no-empty-object-type
	 */
	'ts/no-empty-object-type'?: Linter.RuleEntry<TsNoEmptyObjectType>
	/**
	 * Disallow the `any` type
	 * @see https://typescript-eslint.io/rules/no-explicit-any
	 */
	'ts/no-explicit-any'?: Linter.RuleEntry<TsNoExplicitAny>
	/**
	 * Disallow extra non-null assertions
	 * @see https://typescript-eslint.io/rules/no-extra-non-null-assertion
	 */
	'ts/no-extra-non-null-assertion'?: Linter.RuleEntry<[]>
	/**
	 * Disallow classes used as namespaces
	 * @see https://typescript-eslint.io/rules/no-extraneous-class
	 */
	'ts/no-extraneous-class'?: Linter.RuleEntry<TsNoExtraneousClass>
	/**
	 * Require Promise-like statements to be handled appropriately
	 * @see https://typescript-eslint.io/rules/no-floating-promises
	 */
	'ts/no-floating-promises'?: Linter.RuleEntry<TsNoFloatingPromises>
	/**
	 * Disallow iterating over an array with a for-in loop
	 * @see https://typescript-eslint.io/rules/no-for-in-array
	 */
	'ts/no-for-in-array'?: Linter.RuleEntry<[]>
	/**
	 * Disallow the use of `eval()`-like functions
	 * @see https://typescript-eslint.io/rules/no-implied-eval
	 */
	'ts/no-implied-eval'?: Linter.RuleEntry<[]>
	/**
	 * Enforce the use of top-level import type qualifier when an import only has specifiers with inline type qualifiers
	 * @see https://typescript-eslint.io/rules/no-import-type-side-effects
	 */
	'ts/no-import-type-side-effects'?: Linter.RuleEntry<[]>
	/**
	 * Disallow explicit type declarations for variables or parameters initialized to a number, string, or boolean
	 * @see https://typescript-eslint.io/rules/no-inferrable-types
	 */
	'ts/no-inferrable-types'?: Linter.RuleEntry<TsNoInferrableTypes>
	/**
	 * Disallow `this` keywords outside of classes or class-like objects
	 * @see https://typescript-eslint.io/rules/no-invalid-this
	 */
	'ts/no-invalid-this'?: Linter.RuleEntry<TsNoInvalidThis>
	/**
	 * Disallow `void` type outside of generic or return types
	 * @see https://typescript-eslint.io/rules/no-invalid-void-type
	 */
	'ts/no-invalid-void-type'?: Linter.RuleEntry<TsNoInvalidVoidType>
	/**
	 * Disallow function declarations that contain unsafe references inside loop statements
	 * @see https://typescript-eslint.io/rules/no-loop-func
	 */
	'ts/no-loop-func'?: Linter.RuleEntry<[]>
	/**
	 * Disallow literal numbers that lose precision
	 * @see https://typescript-eslint.io/rules/no-loss-of-precision
	 * @deprecated
	 */
	'ts/no-loss-of-precision'?: Linter.RuleEntry<[]>
	/**
	 * Disallow magic numbers
	 * @see https://typescript-eslint.io/rules/no-magic-numbers
	 */
	'ts/no-magic-numbers'?: Linter.RuleEntry<TsNoMagicNumbers>
	/**
	 * Disallow the `void` operator except when used to discard a value
	 * @see https://typescript-eslint.io/rules/no-meaningless-void-operator
	 */
	'ts/no-meaningless-void-operator'?: Linter.RuleEntry<TsNoMeaninglessVoidOperator>
	/**
	 * Enforce valid definition of `new` and `constructor`
	 * @see https://typescript-eslint.io/rules/no-misused-new
	 */
	'ts/no-misused-new'?: Linter.RuleEntry<[]>
	/**
	 * Disallow Promises in places not designed to handle them
	 * @see https://typescript-eslint.io/rules/no-misused-promises
	 */
	'ts/no-misused-promises'?: Linter.RuleEntry<TsNoMisusedPromises>
	/**
	 * Disallow using the spread operator when it might cause unexpected behavior
	 * @see https://typescript-eslint.io/rules/no-misused-spread
	 */
	'ts/no-misused-spread'?: Linter.RuleEntry<TsNoMisusedSpread>
	/**
	 * Disallow enums from having both number and string members
	 * @see https://typescript-eslint.io/rules/no-mixed-enums
	 */
	'ts/no-mixed-enums'?: Linter.RuleEntry<[]>
	/**
	 * Disallow TypeScript namespaces
	 * @see https://typescript-eslint.io/rules/no-namespace
	 */
	'ts/no-namespace'?: Linter.RuleEntry<TsNoNamespace>
	/**
	 * Disallow non-null assertions in the left operand of a nullish coalescing operator
	 * @see https://typescript-eslint.io/rules/no-non-null-asserted-nullish-coalescing
	 */
	'ts/no-non-null-asserted-nullish-coalescing'?: Linter.RuleEntry<[]>
	/**
	 * Disallow non-null assertions after an optional chain expression
	 * @see https://typescript-eslint.io/rules/no-non-null-asserted-optional-chain
	 */
	'ts/no-non-null-asserted-optional-chain'?: Linter.RuleEntry<[]>
	/**
	 * Disallow non-null assertions using the `!` postfix operator
	 * @see https://typescript-eslint.io/rules/no-non-null-assertion
	 */
	'ts/no-non-null-assertion'?: Linter.RuleEntry<[]>
	/**
	 * Disallow variable redeclaration
	 * @see https://typescript-eslint.io/rules/no-redeclare
	 */
	'ts/no-redeclare'?: Linter.RuleEntry<TsNoRedeclare>
	/**
	 * Disallow members of unions and intersections that do nothing or override type information
	 * @see https://typescript-eslint.io/rules/no-redundant-type-constituents
	 */
	'ts/no-redundant-type-constituents'?: Linter.RuleEntry<[]>
	/**
	 * Disallow invocation of `require()`
	 * @see https://typescript-eslint.io/rules/no-require-imports
	 */
	'ts/no-require-imports'?: Linter.RuleEntry<TsNoRequireImports>
	/**
	 * Disallow specified modules when loaded by `import`
	 * @see https://typescript-eslint.io/rules/no-restricted-imports
	 */
	'ts/no-restricted-imports'?: Linter.RuleEntry<TsNoRestrictedImports>
	/**
	 * Disallow certain types
	 * @see https://typescript-eslint.io/rules/no-restricted-types
	 */
	'ts/no-restricted-types'?: Linter.RuleEntry<TsNoRestrictedTypes>
	/**
	 * Disallow variable declarations from shadowing variables declared in the outer scope
	 * @see https://typescript-eslint.io/rules/no-shadow
	 */
	'ts/no-shadow'?: Linter.RuleEntry<TsNoShadow>
	/**
	 * Disallow aliasing `this`
	 * @see https://typescript-eslint.io/rules/no-this-alias
	 */
	'ts/no-this-alias'?: Linter.RuleEntry<TsNoThisAlias>
	/**
	 * Disallow type aliases
	 * @see https://typescript-eslint.io/rules/no-type-alias
	 * @deprecated
	 */
	'ts/no-type-alias'?: Linter.RuleEntry<TsNoTypeAlias>
	/**
	 * Disallow unnecessary equality comparisons against boolean literals
	 * @see https://typescript-eslint.io/rules/no-unnecessary-boolean-literal-compare
	 */
	'ts/no-unnecessary-boolean-literal-compare'?: Linter.RuleEntry<TsNoUnnecessaryBooleanLiteralCompare>
	/**
	 * Disallow conditionals where the type is always truthy or always falsy
	 * @see https://typescript-eslint.io/rules/no-unnecessary-condition
	 */
	'ts/no-unnecessary-condition'?: Linter.RuleEntry<TsNoUnnecessaryCondition>
	/**
	 * Disallow unnecessary assignment of constructor property parameter
	 * @see https://typescript-eslint.io/rules/no-unnecessary-parameter-property-assignment
	 */
	'ts/no-unnecessary-parameter-property-assignment'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unnecessary namespace qualifiers
	 * @see https://typescript-eslint.io/rules/no-unnecessary-qualifier
	 */
	'ts/no-unnecessary-qualifier'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unnecessary template expressions
	 * @see https://typescript-eslint.io/rules/no-unnecessary-template-expression
	 */
	'ts/no-unnecessary-template-expression'?: Linter.RuleEntry<[]>
	/**
	 * Disallow type arguments that are equal to the default
	 * @see https://typescript-eslint.io/rules/no-unnecessary-type-arguments
	 */
	'ts/no-unnecessary-type-arguments'?: Linter.RuleEntry<[]>
	/**
	 * Disallow type assertions that do not change the type of an expression
	 * @see https://typescript-eslint.io/rules/no-unnecessary-type-assertion
	 */
	'ts/no-unnecessary-type-assertion'?: Linter.RuleEntry<TsNoUnnecessaryTypeAssertion>
	/**
	 * Disallow unnecessary constraints on generic types
	 * @see https://typescript-eslint.io/rules/no-unnecessary-type-constraint
	 */
	'ts/no-unnecessary-type-constraint'?: Linter.RuleEntry<[]>
	/**
	 * Disallow conversion idioms when they do not change the type or value of the expression
	 * @see https://typescript-eslint.io/rules/no-unnecessary-type-conversion
	 */
	'ts/no-unnecessary-type-conversion'?: Linter.RuleEntry<[]>
	/**
	 * Disallow type parameters that aren't used multiple times
	 * @see https://typescript-eslint.io/rules/no-unnecessary-type-parameters
	 */
	'ts/no-unnecessary-type-parameters'?: Linter.RuleEntry<[]>
	/**
	 * Disallow calling a function with a value with type `any`
	 * @see https://typescript-eslint.io/rules/no-unsafe-argument
	 */
	'ts/no-unsafe-argument'?: Linter.RuleEntry<[]>
	/**
	 * Disallow assigning a value with type `any` to variables and properties
	 * @see https://typescript-eslint.io/rules/no-unsafe-assignment
	 */
	'ts/no-unsafe-assignment'?: Linter.RuleEntry<[]>
	/**
	 * Disallow calling a value with type `any`
	 * @see https://typescript-eslint.io/rules/no-unsafe-call
	 */
	'ts/no-unsafe-call'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unsafe declaration merging
	 * @see https://typescript-eslint.io/rules/no-unsafe-declaration-merging
	 */
	'ts/no-unsafe-declaration-merging'?: Linter.RuleEntry<[]>
	/**
	 * Disallow comparing an enum value with a non-enum value
	 * @see https://typescript-eslint.io/rules/no-unsafe-enum-comparison
	 */
	'ts/no-unsafe-enum-comparison'?: Linter.RuleEntry<[]>
	/**
	 * Disallow using the unsafe built-in Function type
	 * @see https://typescript-eslint.io/rules/no-unsafe-function-type
	 */
	'ts/no-unsafe-function-type'?: Linter.RuleEntry<[]>
	/**
	 * Disallow member access on a value with type `any`
	 * @see https://typescript-eslint.io/rules/no-unsafe-member-access
	 */
	'ts/no-unsafe-member-access'?: Linter.RuleEntry<[]>
	/**
	 * Disallow returning a value with type `any` from a function
	 * @see https://typescript-eslint.io/rules/no-unsafe-return
	 */
	'ts/no-unsafe-return'?: Linter.RuleEntry<[]>
	/**
	 * Disallow type assertions that narrow a type
	 * @see https://typescript-eslint.io/rules/no-unsafe-type-assertion
	 */
	'ts/no-unsafe-type-assertion'?: Linter.RuleEntry<[]>
	/**
	 * Require unary negation to take a number
	 * @see https://typescript-eslint.io/rules/no-unsafe-unary-minus
	 */
	'ts/no-unsafe-unary-minus'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unused expressions
	 * @see https://typescript-eslint.io/rules/no-unused-expressions
	 */
	'ts/no-unused-expressions'?: Linter.RuleEntry<TsNoUnusedExpressions>
	/**
	 * Disallow unused variables
	 * @see https://typescript-eslint.io/rules/no-unused-vars
	 */
	'ts/no-unused-vars'?: Linter.RuleEntry<TsNoUnusedVars>
	/**
	 * Disallow the use of variables before they are defined
	 * @see https://typescript-eslint.io/rules/no-use-before-define
	 */
	'ts/no-use-before-define'?: Linter.RuleEntry<TsNoUseBeforeDefine>
	/**
	 * Disallow unnecessary constructors
	 * @see https://typescript-eslint.io/rules/no-useless-constructor
	 */
	'ts/no-useless-constructor'?: Linter.RuleEntry<[]>
	/**
	 * Disallow empty exports that don't change anything in a module file
	 * @see https://typescript-eslint.io/rules/no-useless-empty-export
	 */
	'ts/no-useless-empty-export'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `require` statements except in import statements
	 * @see https://typescript-eslint.io/rules/no-var-requires
	 * @deprecated
	 */
	'ts/no-var-requires'?: Linter.RuleEntry<TsNoVarRequires>
	/**
	 * Disallow using confusing built-in primitive class wrappers
	 * @see https://typescript-eslint.io/rules/no-wrapper-object-types
	 */
	'ts/no-wrapper-object-types'?: Linter.RuleEntry<[]>
	/**
	 * Enforce non-null assertions over explicit type assertions
	 * @see https://typescript-eslint.io/rules/non-nullable-type-assertion-style
	 */
	'ts/non-nullable-type-assertion-style'?: Linter.RuleEntry<[]>
	/**
	 * Disallow throwing non-`Error` values as exceptions
	 * @see https://typescript-eslint.io/rules/only-throw-error
	 */
	'ts/only-throw-error'?: Linter.RuleEntry<TsOnlyThrowError>
	/**
	 * Require or disallow parameter properties in class constructors
	 * @see https://typescript-eslint.io/rules/parameter-properties
	 */
	'ts/parameter-properties'?: Linter.RuleEntry<TsParameterProperties>
	/**
	 * Enforce the use of `as const` over literal type
	 * @see https://typescript-eslint.io/rules/prefer-as-const
	 */
	'ts/prefer-as-const'?: Linter.RuleEntry<[]>
	/**
	 * Require destructuring from arrays and/or objects
	 * @see https://typescript-eslint.io/rules/prefer-destructuring
	 */
	'ts/prefer-destructuring'?: Linter.RuleEntry<TsPreferDestructuring>
	/**
	 * Require each enum member value to be explicitly initialized
	 * @see https://typescript-eslint.io/rules/prefer-enum-initializers
	 */
	'ts/prefer-enum-initializers'?: Linter.RuleEntry<[]>
	/**
	 * Enforce the use of Array.prototype.find() over Array.prototype.filter() followed by [0] when looking for a single result
	 * @see https://typescript-eslint.io/rules/prefer-find
	 */
	'ts/prefer-find'?: Linter.RuleEntry<[]>
	/**
	 * Enforce the use of `for-of` loop over the standard `for` loop where possible
	 * @see https://typescript-eslint.io/rules/prefer-for-of
	 */
	'ts/prefer-for-of'?: Linter.RuleEntry<[]>
	/**
	 * Enforce using function types instead of interfaces with call signatures
	 * @see https://typescript-eslint.io/rules/prefer-function-type
	 */
	'ts/prefer-function-type'?: Linter.RuleEntry<[]>
	/**
	 * Enforce `includes` method over `indexOf` method
	 * @see https://typescript-eslint.io/rules/prefer-includes
	 */
	'ts/prefer-includes'?: Linter.RuleEntry<[]>
	/**
	 * Require all enum members to be literal values
	 * @see https://typescript-eslint.io/rules/prefer-literal-enum-member
	 */
	'ts/prefer-literal-enum-member'?: Linter.RuleEntry<TsPreferLiteralEnumMember>
	/**
	 * Require using `namespace` keyword over `module` keyword to declare custom TypeScript modules
	 * @see https://typescript-eslint.io/rules/prefer-namespace-keyword
	 */
	'ts/prefer-namespace-keyword'?: Linter.RuleEntry<[]>
	/**
	 * Enforce using the nullish coalescing operator instead of logical assignments or chaining
	 * @see https://typescript-eslint.io/rules/prefer-nullish-coalescing
	 */
	'ts/prefer-nullish-coalescing'?: Linter.RuleEntry<TsPreferNullishCoalescing>
	/**
	 * Enforce using concise optional chain expressions instead of chained logical ands, negated logical ors, or empty objects
	 * @see https://typescript-eslint.io/rules/prefer-optional-chain
	 */
	'ts/prefer-optional-chain'?: Linter.RuleEntry<TsPreferOptionalChain>
	/**
	 * Require using Error objects as Promise rejection reasons
	 * @see https://typescript-eslint.io/rules/prefer-promise-reject-errors
	 */
	'ts/prefer-promise-reject-errors'?: Linter.RuleEntry<TsPreferPromiseRejectErrors>
	/**
	 * Require private members to be marked as `readonly` if they're never modified outside of the constructor
	 * @see https://typescript-eslint.io/rules/prefer-readonly
	 */
	'ts/prefer-readonly'?: Linter.RuleEntry<TsPreferReadonly>
	/**
	 * Require function parameters to be typed as `readonly` to prevent accidental mutation of inputs
	 * @see https://typescript-eslint.io/rules/prefer-readonly-parameter-types
	 */
	'ts/prefer-readonly-parameter-types'?: Linter.RuleEntry<TsPreferReadonlyParameterTypes>
	/**
	 * Enforce using type parameter when calling `Array#reduce` instead of using a type assertion
	 * @see https://typescript-eslint.io/rules/prefer-reduce-type-parameter
	 */
	'ts/prefer-reduce-type-parameter'?: Linter.RuleEntry<[]>
	/**
	 * Enforce `RegExp#exec` over `String#match` if no global flag is provided
	 * @see https://typescript-eslint.io/rules/prefer-regexp-exec
	 */
	'ts/prefer-regexp-exec'?: Linter.RuleEntry<[]>
	/**
	 * Enforce that `this` is used when only `this` type is returned
	 * @see https://typescript-eslint.io/rules/prefer-return-this-type
	 */
	'ts/prefer-return-this-type'?: Linter.RuleEntry<[]>
	/**
	 * Enforce using `String#startsWith` and `String#endsWith` over other equivalent methods of checking substrings
	 * @see https://typescript-eslint.io/rules/prefer-string-starts-ends-with
	 */
	'ts/prefer-string-starts-ends-with'?: Linter.RuleEntry<TsPreferStringStartsEndsWith>
	/**
	 * Enforce using `@ts-expect-error` over `@ts-ignore`
	 * @see https://typescript-eslint.io/rules/prefer-ts-expect-error
	 * @deprecated
	 */
	'ts/prefer-ts-expect-error'?: Linter.RuleEntry<[]>
	/**
	 * Require any function or method that returns a Promise to be marked async
	 * @see https://typescript-eslint.io/rules/promise-function-async
	 */
	'ts/promise-function-async'?: Linter.RuleEntry<TsPromiseFunctionAsync>
	/**
	 * Enforce that `get()` types should be assignable to their equivalent `set()` type
	 * @see https://typescript-eslint.io/rules/related-getter-setter-pairs
	 */
	'ts/related-getter-setter-pairs'?: Linter.RuleEntry<[]>
	/**
	 * Require `Array#sort` and `Array#toSorted` calls to always provide a `compareFunction`
	 * @see https://typescript-eslint.io/rules/require-array-sort-compare
	 */
	'ts/require-array-sort-compare'?: Linter.RuleEntry<TsRequireArraySortCompare>
	/**
	 * Disallow async functions which do not return promises and have no `await` expression
	 * @see https://typescript-eslint.io/rules/require-await
	 */
	'ts/require-await'?: Linter.RuleEntry<[]>
	/**
	 * Require both operands of addition to be the same type and be `bigint`, `number`, or `string`
	 * @see https://typescript-eslint.io/rules/restrict-plus-operands
	 */
	'ts/restrict-plus-operands'?: Linter.RuleEntry<TsRestrictPlusOperands>
	/**
	 * Enforce template literal expressions to be of `string` type
	 * @see https://typescript-eslint.io/rules/restrict-template-expressions
	 */
	'ts/restrict-template-expressions'?: Linter.RuleEntry<TsRestrictTemplateExpressions>
	/**
	 * Enforce consistent awaiting of returned promises
	 * @see https://typescript-eslint.io/rules/return-await
	 */
	'ts/return-await'?: Linter.RuleEntry<TsReturnAwait>
	/**
	 * Enforce constituents of a type union/intersection to be sorted alphabetically
	 * @see https://typescript-eslint.io/rules/sort-type-constituents
	 * @deprecated
	 */
	'ts/sort-type-constituents'?: Linter.RuleEntry<TsSortTypeConstituents>
	/**
	 * Disallow certain types in boolean expressions
	 * @see https://typescript-eslint.io/rules/strict-boolean-expressions
	 */
	'ts/strict-boolean-expressions'?: Linter.RuleEntry<TsStrictBooleanExpressions>
	/**
	 * Require switch-case statements to be exhaustive
	 * @see https://typescript-eslint.io/rules/switch-exhaustiveness-check
	 */
	'ts/switch-exhaustiveness-check'?: Linter.RuleEntry<TsSwitchExhaustivenessCheck>
	/**
	 * Disallow certain triple slash directives in favor of ES6-style import declarations
	 * @see https://typescript-eslint.io/rules/triple-slash-reference
	 */
	'ts/triple-slash-reference'?: Linter.RuleEntry<TsTripleSlashReference>
	/**
	 * Require type annotations in certain places
	 * @see https://typescript-eslint.io/rules/typedef
	 * @deprecated
	 */
	'ts/typedef'?: Linter.RuleEntry<TsTypedef>
	/**
	 * Enforce unbound methods are called with their expected scope
	 * @see https://typescript-eslint.io/rules/unbound-method
	 */
	'ts/unbound-method'?: Linter.RuleEntry<TsUnboundMethod>
	/**
	 * Disallow two overloads that could be unified into one with a union or an optional/rest parameter
	 * @see https://typescript-eslint.io/rules/unified-signatures
	 */
	'ts/unified-signatures'?: Linter.RuleEntry<TsUnifiedSignatures>
	/**
	 * Enforce typing arguments in Promise rejection callbacks as `unknown`
	 * @see https://typescript-eslint.io/rules/use-unknown-in-catch-callback-variable
	 */
	'ts/use-unknown-in-catch-callback-variable'?: Linter.RuleEntry<[]>
	/**
	 * Require or disallow Unicode byte order mark (BOM)
	 * @see https://eslint.org/docs/latest/rules/unicode-bom
	 */
	'unicode-bom'?: Linter.RuleEntry<UnicodeBom>
	/**
	 * Improve regexes by making them shorter, consistent, and safer.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/better-regex.md
	 */
	'unicorn/better-regex'?: Linter.RuleEntry<UnicornBetterRegex>
	/**
	 * Enforce a specific parameter name in catch clauses.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/catch-error-name.md
	 */
	'unicorn/catch-error-name'?: Linter.RuleEntry<UnicornCatchErrorName>
	/**
	 * Enforce consistent assertion style with `node:assert`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/consistent-assert.md
	 */
	'unicorn/consistent-assert'?: Linter.RuleEntry<[]>
	/**
	 * Prefer passing `Date` directly to the constructor when cloning.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/consistent-date-clone.md
	 */
	'unicorn/consistent-date-clone'?: Linter.RuleEntry<[]>
	/**
	 * Use destructured variables over properties.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/consistent-destructuring.md
	 */
	'unicorn/consistent-destructuring'?: Linter.RuleEntry<[]>
	/**
	 * Prefer consistent types when spreading a ternary in an array literal.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/consistent-empty-array-spread.md
	 */
	'unicorn/consistent-empty-array-spread'?: Linter.RuleEntry<[]>
	/**
	 * Enforce consistent style for element existence checks with `indexOf()`, `lastIndexOf()`, `findIndex()`, and `findLastIndex()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/consistent-existence-index-check.md
	 */
	'unicorn/consistent-existence-index-check'?: Linter.RuleEntry<[]>
	/**
	 * Move function definitions to the highest possible scope.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/consistent-function-scoping.md
	 */
	'unicorn/consistent-function-scoping'?: Linter.RuleEntry<UnicornConsistentFunctionScoping>
	/**
	 * Enforce correct `Error` subclassing.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/custom-error-definition.md
	 */
	'unicorn/custom-error-definition'?: Linter.RuleEntry<[]>
	/**
	 * Enforce no spaces between braces.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/empty-brace-spaces.md
	 */
	'unicorn/empty-brace-spaces'?: Linter.RuleEntry<[]>
	/**
	 * Enforce passing a `message` value when creating a built-in error.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/error-message.md
	 */
	'unicorn/error-message'?: Linter.RuleEntry<[]>
	/**
	 * Require escape sequences to use uppercase or lowercase values.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/escape-case.md
	 */
	'unicorn/escape-case'?: Linter.RuleEntry<UnicornEscapeCase>
	/**
	 * Add expiration conditions to TODO comments.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/expiring-todo-comments.md
	 */
	'unicorn/expiring-todo-comments'?: Linter.RuleEntry<UnicornExpiringTodoComments>
	/**
	 * Enforce explicitly comparing the `length` or `size` property of a value.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/explicit-length-check.md
	 */
	'unicorn/explicit-length-check'?: Linter.RuleEntry<UnicornExplicitLengthCheck>
	/**
	 * Enforce a case style for filenames.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/filename-case.md
	 */
	'unicorn/filename-case'?: Linter.RuleEntry<UnicornFilenameCase>
	/**
	 * Enforce specific import styles per module.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/import-style.md
	 */
	'unicorn/import-style'?: Linter.RuleEntry<UnicornImportStyle>
	/**
	 * Enforce the use of `new` for all builtins, except `String`, `Number`, `Boolean`, `Symbol` and `BigInt`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/new-for-builtins.md
	 */
	'unicorn/new-for-builtins'?: Linter.RuleEntry<[]>
	/**
	 * Enforce specifying rules to disable in `eslint-disable` comments.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-abusive-eslint-disable.md
	 */
	'unicorn/no-abusive-eslint-disable'?: Linter.RuleEntry<[]>
	/**
	 * Disallow recursive access to `this` within getters and setters.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-accessor-recursion.md
	 */
	'unicorn/no-accessor-recursion'?: Linter.RuleEntry<[]>
	/**
	 * Disallow anonymous functions and classes as the default export.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-anonymous-default-export.md
	 */
	'unicorn/no-anonymous-default-export'?: Linter.RuleEntry<[]>
	/**
	 * Prevent passing a function reference directly to iterator methods.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-array-callback-reference.md
	 */
	'unicorn/no-array-callback-reference'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `for…of` over the `forEach` method.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-array-for-each.md
	 */
	'unicorn/no-array-for-each'?: Linter.RuleEntry<[]>
	/**
	 * Disallow using the `this` argument in array methods.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-array-method-this-argument.md
	 */
	'unicorn/no-array-method-this-argument'?: Linter.RuleEntry<[]>
	/**
	 * Replaced by `unicorn/prefer-single-call` which covers more cases.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/deprecated-rules.md#no-array-push-push
	 * @deprecated
	 */
	'unicorn/no-array-push-push'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `Array#reduce()` and `Array#reduceRight()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-array-reduce.md
	 */
	'unicorn/no-array-reduce'?: Linter.RuleEntry<UnicornNoArrayReduce>
	/**
	 * Disallow member access from await expression.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-await-expression-member.md
	 */
	'unicorn/no-await-expression-member'?: Linter.RuleEntry<[]>
	/**
	 * Disallow using `await` in `Promise` method parameters.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-await-in-promise-methods.md
	 */
	'unicorn/no-await-in-promise-methods'?: Linter.RuleEntry<[]>
	/**
	 * Do not use leading/trailing space between `console.log` parameters.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-console-spaces.md
	 */
	'unicorn/no-console-spaces'?: Linter.RuleEntry<[]>
	/**
	 * Do not use `document.cookie` directly.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-document-cookie.md
	 */
	'unicorn/no-document-cookie'?: Linter.RuleEntry<[]>
	/**
	 * Disallow empty files.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-empty-file.md
	 */
	'unicorn/no-empty-file'?: Linter.RuleEntry<[]>
	/**
	 * Do not use a `for` loop that can be replaced with a `for-of` loop.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-for-loop.md
	 */
	'unicorn/no-for-loop'?: Linter.RuleEntry<[]>
	/**
	 * Enforce the use of Unicode escapes instead of hexadecimal escapes.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-hex-escape.md
	 */
	'unicorn/no-hex-escape'?: Linter.RuleEntry<[]>
	/**
	 * Replaced by `unicorn/no-instanceof-builtins` which covers more cases.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/deprecated-rules.md#no-instanceof-array
	 * @deprecated
	 */
	'unicorn/no-instanceof-array'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `instanceof` with built-in objects
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-instanceof-builtins.md
	 */
	'unicorn/no-instanceof-builtins'?: Linter.RuleEntry<UnicornNoInstanceofBuiltins>
	/**
	 * Disallow invalid options in `fetch()` and `new Request()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-invalid-fetch-options.md
	 */
	'unicorn/no-invalid-fetch-options'?: Linter.RuleEntry<[]>
	/**
	 * Prevent calling `EventTarget#removeEventListener()` with the result of an expression.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-invalid-remove-event-listener.md
	 */
	'unicorn/no-invalid-remove-event-listener'?: Linter.RuleEntry<[]>
	/**
	 * Disallow identifiers starting with `new` or `class`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-keyword-prefix.md
	 */
	'unicorn/no-keyword-prefix'?: Linter.RuleEntry<UnicornNoKeywordPrefix>
	/**
	 * Replaced by `unicorn/no-unnecessary-slice-end` which covers more cases.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/deprecated-rules.md#no-length-as-slice-end
	 * @deprecated
	 */
	'unicorn/no-length-as-slice-end'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `if` statements as the only statement in `if` blocks without `else`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-lonely-if.md
	 */
	'unicorn/no-lonely-if'?: Linter.RuleEntry<[]>
	/**
	 * Disallow a magic number as the `depth` argument in `Array#flat(…).`
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-magic-array-flat-depth.md
	 */
	'unicorn/no-magic-array-flat-depth'?: Linter.RuleEntry<[]>
	/**
	 * Disallow named usage of default import and export.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-named-default.md
	 */
	'unicorn/no-named-default'?: Linter.RuleEntry<[]>
	/**
	 * Disallow negated conditions.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-negated-condition.md
	 */
	'unicorn/no-negated-condition'?: Linter.RuleEntry<[]>
	/**
	 * Disallow negated expression in equality check.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-negation-in-equality-check.md
	 */
	'unicorn/no-negation-in-equality-check'?: Linter.RuleEntry<[]>
	/**
	 * Disallow nested ternary expressions.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-nested-ternary.md
	 */
	'unicorn/no-nested-ternary'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `new Array()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-new-array.md
	 */
	'unicorn/no-new-array'?: Linter.RuleEntry<[]>
	/**
	 * Enforce the use of `Buffer.from()` and `Buffer.alloc()` instead of the deprecated `new Buffer()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-new-buffer.md
	 */
	'unicorn/no-new-buffer'?: Linter.RuleEntry<[]>
	/**
	 * Disallow the use of the `null` literal.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-null.md
	 */
	'unicorn/no-null'?: Linter.RuleEntry<UnicornNoNull>
	/**
	 * Disallow the use of objects as default parameters.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-object-as-default-parameter.md
	 */
	'unicorn/no-object-as-default-parameter'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `process.exit()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-process-exit.md
	 */
	'unicorn/no-process-exit'?: Linter.RuleEntry<[]>
	/**
	 * Disallow passing single-element arrays to `Promise` methods.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-single-promise-in-promise-methods.md
	 */
	'unicorn/no-single-promise-in-promise-methods'?: Linter.RuleEntry<[]>
	/**
	 * Disallow classes that only have static members.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-static-only-class.md
	 */
	'unicorn/no-static-only-class'?: Linter.RuleEntry<[]>
	/**
	 * Disallow `then` property.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-thenable.md
	 */
	'unicorn/no-thenable'?: Linter.RuleEntry<[]>
	/**
	 * Disallow assigning `this` to a variable.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-this-assignment.md
	 */
	'unicorn/no-this-assignment'?: Linter.RuleEntry<[]>
	/**
	 * Disallow comparing `undefined` using `typeof`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-typeof-undefined.md
	 */
	'unicorn/no-typeof-undefined'?: Linter.RuleEntry<UnicornNoTypeofUndefined>
	/**
	 * Disallow using `1` as the `depth` argument of `Array#flat()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-unnecessary-array-flat-depth.md
	 */
	'unicorn/no-unnecessary-array-flat-depth'?: Linter.RuleEntry<[]>
	/**
	 * Disallow using `.length` or `Infinity` as the `deleteCount` or `skipCount` argument of `Array#{splice,toSpliced}()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-unnecessary-array-splice-count.md
	 */
	'unicorn/no-unnecessary-array-splice-count'?: Linter.RuleEntry<[]>
	/**
	 * Disallow awaiting non-promise values.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-unnecessary-await.md
	 */
	'unicorn/no-unnecessary-await'?: Linter.RuleEntry<[]>
	/**
	 * Enforce the use of built-in methods instead of unnecessary polyfills.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-unnecessary-polyfills.md
	 */
	'unicorn/no-unnecessary-polyfills'?: Linter.RuleEntry<UnicornNoUnnecessaryPolyfills>
	/**
	 * Disallow using `.length` or `Infinity` as the `end` argument of `{Array,String,TypedArray}#slice()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-unnecessary-slice-end.md
	 */
	'unicorn/no-unnecessary-slice-end'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unreadable array destructuring.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-unreadable-array-destructuring.md
	 */
	'unicorn/no-unreadable-array-destructuring'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unreadable IIFEs.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-unreadable-iife.md
	 */
	'unicorn/no-unreadable-iife'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unused object properties.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-unused-properties.md
	 */
	'unicorn/no-unused-properties'?: Linter.RuleEntry<[]>
	/**
	 * Disallow useless fallback when spreading in object literals.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-useless-fallback-in-spread.md
	 */
	'unicorn/no-useless-fallback-in-spread'?: Linter.RuleEntry<[]>
	/**
	 * Disallow useless array length check.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-useless-length-check.md
	 */
	'unicorn/no-useless-length-check'?: Linter.RuleEntry<[]>
	/**
	 * Disallow returning/yielding `Promise.resolve/reject()` in async functions or promise callbacks
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-useless-promise-resolve-reject.md
	 */
	'unicorn/no-useless-promise-resolve-reject'?: Linter.RuleEntry<[]>
	/**
	 * Disallow unnecessary spread.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-useless-spread.md
	 */
	'unicorn/no-useless-spread'?: Linter.RuleEntry<[]>
	/**
	 * Disallow useless case in switch statements.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-useless-switch-case.md
	 */
	'unicorn/no-useless-switch-case'?: Linter.RuleEntry<[]>
	/**
	 * Disallow useless `undefined`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-useless-undefined.md
	 */
	'unicorn/no-useless-undefined'?: Linter.RuleEntry<UnicornNoUselessUndefined>
	/**
	 * Disallow number literals with zero fractions or dangling dots.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/no-zero-fractions.md
	 */
	'unicorn/no-zero-fractions'?: Linter.RuleEntry<[]>
	/**
	 * Enforce proper case for numeric literals.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/number-literal-case.md
	 */
	'unicorn/number-literal-case'?: Linter.RuleEntry<UnicornNumberLiteralCase>
	/**
	 * Enforce the style of numeric separators by correctly grouping digits.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/numeric-separators-style.md
	 */
	'unicorn/numeric-separators-style'?: Linter.RuleEntry<UnicornNumericSeparatorsStyle>
	/**
	 * Prefer `.addEventListener()` and `.removeEventListener()` over `on`-functions.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-add-event-listener.md
	 */
	'unicorn/prefer-add-event-listener'?: Linter.RuleEntry<UnicornPreferAddEventListener>
	/**
	 * Prefer `.find(…)` and `.findLast(…)` over the first or last element from `.filter(…)`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-array-find.md
	 */
	'unicorn/prefer-array-find'?: Linter.RuleEntry<UnicornPreferArrayFind>
	/**
	 * Prefer `Array#flat()` over legacy techniques to flatten arrays.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-array-flat.md
	 */
	'unicorn/prefer-array-flat'?: Linter.RuleEntry<UnicornPreferArrayFlat>
	/**
	 * Prefer `.flatMap(…)` over `.map(…).flat()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-array-flat-map.md
	 */
	'unicorn/prefer-array-flat-map'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `Array#{indexOf,lastIndexOf}()` over `Array#{findIndex,findLastIndex}()` when looking for the index of an item.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-array-index-of.md
	 */
	'unicorn/prefer-array-index-of'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `.some(…)` over `.filter(…).length` check and `.{find,findLast,findIndex,findLastIndex}(…)`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-array-some.md
	 */
	'unicorn/prefer-array-some'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `.at()` method for index access and `String#charAt()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-at.md
	 */
	'unicorn/prefer-at'?: Linter.RuleEntry<UnicornPreferAt>
	/**
	 * Prefer `Blob#arrayBuffer()` over `FileReader#readAsArrayBuffer(…)` and `Blob#text()` over `FileReader#readAsText(…)`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-blob-reading-methods.md
	 */
	'unicorn/prefer-blob-reading-methods'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `String#codePointAt(…)` over `String#charCodeAt(…)` and `String.fromCodePoint(…)` over `String.fromCharCode(…)`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-code-point.md
	 */
	'unicorn/prefer-code-point'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `Date.now()` to get the number of milliseconds since the Unix Epoch.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-date-now.md
	 */
	'unicorn/prefer-date-now'?: Linter.RuleEntry<[]>
	/**
	 * Prefer default parameters over reassignment.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-default-parameters.md
	 */
	'unicorn/prefer-default-parameters'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `Node#append()` over `Node#appendChild()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-dom-node-append.md
	 */
	'unicorn/prefer-dom-node-append'?: Linter.RuleEntry<[]>
	/**
	 * Prefer using `.dataset` on DOM elements over calling attribute methods.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-dom-node-dataset.md
	 */
	'unicorn/prefer-dom-node-dataset'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `childNode.remove()` over `parentNode.removeChild(childNode)`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-dom-node-remove.md
	 */
	'unicorn/prefer-dom-node-remove'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `.textContent` over `.innerText`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-dom-node-text-content.md
	 */
	'unicorn/prefer-dom-node-text-content'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `EventTarget` over `EventEmitter`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-event-target.md
	 */
	'unicorn/prefer-event-target'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `export…from` when re-exporting.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-export-from.md
	 */
	'unicorn/prefer-export-from'?: Linter.RuleEntry<UnicornPreferExportFrom>
	/**
	 * Prefer `globalThis` over `window`, `self`, and `global`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-global-this.md
	 */
	'unicorn/prefer-global-this'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `import.meta.{dirname,filename}` over legacy techniques for getting file paths.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-import-meta-properties.md
	 */
	'unicorn/prefer-import-meta-properties'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `.includes()` over `.indexOf()`, `.lastIndexOf()`, and `Array#some()` when checking for existence or non-existence.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-includes.md
	 */
	'unicorn/prefer-includes'?: Linter.RuleEntry<[]>
	/**
	 * Prefer reading a JSON file as a buffer.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-json-parse-buffer.md
	 */
	'unicorn/prefer-json-parse-buffer'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `KeyboardEvent#key` over `KeyboardEvent#keyCode`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-keyboard-event-key.md
	 */
	'unicorn/prefer-keyboard-event-key'?: Linter.RuleEntry<[]>
	/**
	 * Prefer using a logical operator over a ternary.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-logical-operator-over-ternary.md
	 */
	'unicorn/prefer-logical-operator-over-ternary'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `Math.min()` and `Math.max()` over ternaries for simple comparisons.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-math-min-max.md
	 */
	'unicorn/prefer-math-min-max'?: Linter.RuleEntry<[]>
	/**
	 * Enforce the use of `Math.trunc` instead of bitwise operators.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-math-trunc.md
	 */
	'unicorn/prefer-math-trunc'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `.before()` over `.insertBefore()`, `.replaceWith()` over `.replaceChild()`, prefer one of `.before()`, `.after()`, `.append()` or `.prepend()` over `insertAdjacentText()` and `insertAdjacentElement()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-modern-dom-apis.md
	 */
	'unicorn/prefer-modern-dom-apis'?: Linter.RuleEntry<[]>
	/**
	 * Prefer modern `Math` APIs over legacy patterns.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-modern-math-apis.md
	 */
	'unicorn/prefer-modern-math-apis'?: Linter.RuleEntry<[]>
	/**
	 * Prefer JavaScript modules (ESM) over CommonJS.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-module.md
	 */
	'unicorn/prefer-module'?: Linter.RuleEntry<[]>
	/**
	 * Prefer using `String`, `Number`, `BigInt`, `Boolean`, and `Symbol` directly.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-native-coercion-functions.md
	 */
	'unicorn/prefer-native-coercion-functions'?: Linter.RuleEntry<[]>
	/**
	 * Prefer negative index over `.length - index` when possible.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-negative-index.md
	 */
	'unicorn/prefer-negative-index'?: Linter.RuleEntry<[]>
	/**
	 * Prefer using the `node:` protocol when importing Node.js builtin modules.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-node-protocol.md
	 */
	'unicorn/prefer-node-protocol'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `Number` static properties over global ones.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-number-properties.md
	 */
	'unicorn/prefer-number-properties'?: Linter.RuleEntry<UnicornPreferNumberProperties>
	/**
	 * Prefer using `Object.fromEntries(…)` to transform a list of key-value pairs into an object.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-object-from-entries.md
	 */
	'unicorn/prefer-object-from-entries'?: Linter.RuleEntry<UnicornPreferObjectFromEntries>
	/**
	 * Prefer omitting the `catch` binding parameter.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-optional-catch-binding.md
	 */
	'unicorn/prefer-optional-catch-binding'?: Linter.RuleEntry<[]>
	/**
	 * Prefer borrowing methods from the prototype instead of the instance.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-prototype-methods.md
	 */
	'unicorn/prefer-prototype-methods'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `.querySelector()` over `.getElementById()`, `.querySelectorAll()` over `.getElementsByClassName()` and `.getElementsByTagName()` and `.getElementsByName()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-query-selector.md
	 */
	'unicorn/prefer-query-selector'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `Reflect.apply()` over `Function#apply()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-reflect-apply.md
	 */
	'unicorn/prefer-reflect-apply'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `RegExp#test()` over `String#match()` and `RegExp#exec()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-regexp-test.md
	 */
	'unicorn/prefer-regexp-test'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `Set#has()` over `Array#includes()` when checking for existence or non-existence.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-set-has.md
	 */
	'unicorn/prefer-set-has'?: Linter.RuleEntry<[]>
	/**
	 * Prefer using `Set#size` instead of `Array#length`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-set-size.md
	 */
	'unicorn/prefer-set-size'?: Linter.RuleEntry<[]>
	/**
	 * Enforce combining multiple `Array#push()`, `Element#classList.{add,remove}()`, and `importScripts()` into one call.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-single-call.md
	 */
	'unicorn/prefer-single-call'?: Linter.RuleEntry<UnicornPreferSingleCall>
	/**
	 * Prefer the spread operator over `Array.from(…)`, `Array#concat(…)`, `Array#{slice,toSpliced}()` and `String#split('')`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-spread.md
	 */
	'unicorn/prefer-spread'?: Linter.RuleEntry<[]>
	/**
	 * Prefer using the `String.raw` tag to avoid escaping `\`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-string-raw.md
	 */
	'unicorn/prefer-string-raw'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `String#replaceAll()` over regex searches with the global flag.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-string-replace-all.md
	 */
	'unicorn/prefer-string-replace-all'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `String#slice()` over `String#substr()` and `String#substring()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-string-slice.md
	 */
	'unicorn/prefer-string-slice'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `String#startsWith()` & `String#endsWith()` over `RegExp#test()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-string-starts-ends-with.md
	 */
	'unicorn/prefer-string-starts-ends-with'?: Linter.RuleEntry<[]>
	/**
	 * Prefer `String#trimStart()` / `String#trimEnd()` over `String#trimLeft()` / `String#trimRight()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-string-trim-start-end.md
	 */
	'unicorn/prefer-string-trim-start-end'?: Linter.RuleEntry<[]>
	/**
	 * Prefer using `structuredClone` to create a deep clone.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-structured-clone.md
	 */
	'unicorn/prefer-structured-clone'?: Linter.RuleEntry<UnicornPreferStructuredClone>
	/**
	 * Prefer `switch` over multiple `else-if`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-switch.md
	 */
	'unicorn/prefer-switch'?: Linter.RuleEntry<UnicornPreferSwitch>
	/**
	 * Prefer ternary expressions over simple `if-else` statements.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-ternary.md
	 */
	'unicorn/prefer-ternary'?: Linter.RuleEntry<UnicornPreferTernary>
	/**
	 * Prefer top-level await over top-level promises and async function calls.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-top-level-await.md
	 */
	'unicorn/prefer-top-level-await'?: Linter.RuleEntry<[]>
	/**
	 * Enforce throwing `TypeError` in type checking conditions.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-type-error.md
	 */
	'unicorn/prefer-type-error'?: Linter.RuleEntry<[]>
	/**
	 * Prevent abbreviations.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prevent-abbreviations.md
	 */
	'unicorn/prevent-abbreviations'?: Linter.RuleEntry<UnicornPreventAbbreviations>
	/**
	 * Enforce consistent relative URL style.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/relative-url-style.md
	 */
	'unicorn/relative-url-style'?: Linter.RuleEntry<UnicornRelativeUrlStyle>
	/**
	 * Enforce using the separator argument with `Array#join()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/require-array-join-separator.md
	 */
	'unicorn/require-array-join-separator'?: Linter.RuleEntry<[]>
	/**
	 * Enforce using the digits argument with `Number#toFixed()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/require-number-to-fixed-digits-argument.md
	 */
	'unicorn/require-number-to-fixed-digits-argument'?: Linter.RuleEntry<[]>
	/**
	 * Enforce using the `targetOrigin` argument with `window.postMessage()`.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/require-post-message-target-origin.md
	 */
	'unicorn/require-post-message-target-origin'?: Linter.RuleEntry<[]>
	/**
	 * Enforce better string content.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/string-content.md
	 */
	'unicorn/string-content'?: Linter.RuleEntry<UnicornStringContent>
	/**
	 * Enforce consistent brace style for `case` clauses.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/switch-case-braces.md
	 */
	'unicorn/switch-case-braces'?: Linter.RuleEntry<UnicornSwitchCaseBraces>
	/**
	 * Fix whitespace-insensitive template indentation.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/template-indent.md
	 */
	'unicorn/template-indent'?: Linter.RuleEntry<UnicornTemplateIndent>
	/**
	 * Enforce consistent case for text encoding identifiers.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/text-encoding-identifier-case.md
	 */
	'unicorn/text-encoding-identifier-case'?: Linter.RuleEntry<[]>
	/**
	 * Require `new` when creating an error.
	 * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/throw-new-error.md
	 */
	'unicorn/throw-new-error'?: Linter.RuleEntry<[]>
	/**
	 * Require calls to `isNaN()` when checking for `NaN`
	 * @see https://eslint.org/docs/latest/rules/use-isnan
	 */
	'use-isnan'?: Linter.RuleEntry<UseIsnan>
	/**
	 * Enforce comparing `typeof` expressions against valid strings
	 * @see https://eslint.org/docs/latest/rules/valid-typeof
	 */
	'valid-typeof'?: Linter.RuleEntry<ValidTypeof>
	/**
	 * Require `var` declarations be placed at the top of their containing scope
	 * @see https://eslint.org/docs/latest/rules/vars-on-top
	 */
	'vars-on-top'?: Linter.RuleEntry<[]>
	/**
	 * Require parentheses around immediate `function` invocations
	 * @see https://eslint.org/docs/latest/rules/wrap-iife
	 * @deprecated
	 */
	'wrap-iife'?: Linter.RuleEntry<WrapIife>
	/**
	 * Require parenthesis around regex literals
	 * @see https://eslint.org/docs/latest/rules/wrap-regex
	 * @deprecated
	 */
	'wrap-regex'?: Linter.RuleEntry<[]>
	/**
	 * require or disallow block style mappings.
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/block-mapping.html
	 */
	'yaml/block-mapping'?: Linter.RuleEntry<YamlBlockMapping>
	/**
	 * enforce consistent line breaks after `:` indicator
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/block-mapping-colon-indicator-newline.html
	 */
	'yaml/block-mapping-colon-indicator-newline'?: Linter.RuleEntry<YamlBlockMappingColonIndicatorNewline>
	/**
	 * enforce consistent line breaks after `?` indicator
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/block-mapping-question-indicator-newline.html
	 */
	'yaml/block-mapping-question-indicator-newline'?: Linter.RuleEntry<YamlBlockMappingQuestionIndicatorNewline>
	/**
	 * require or disallow block style sequences.
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/block-sequence.html
	 */
	'yaml/block-sequence'?: Linter.RuleEntry<YamlBlockSequence>
	/**
	 * enforce consistent line breaks after `-` indicator
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/block-sequence-hyphen-indicator-newline.html
	 */
	'yaml/block-sequence-hyphen-indicator-newline'?: Linter.RuleEntry<YamlBlockSequenceHyphenIndicatorNewline>
	/**
	 * enforce YAML file extension
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/file-extension.html
	 */
	'yaml/file-extension'?: Linter.RuleEntry<YamlFileExtension>
	/**
	 * enforce consistent line breaks inside braces
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/flow-mapping-curly-newline.html
	 */
	'yaml/flow-mapping-curly-newline'?: Linter.RuleEntry<YamlFlowMappingCurlyNewline>
	/**
	 * enforce consistent spacing inside braces
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/flow-mapping-curly-spacing.html
	 */
	'yaml/flow-mapping-curly-spacing'?: Linter.RuleEntry<YamlFlowMappingCurlySpacing>
	/**
	 * enforce linebreaks after opening and before closing flow sequence brackets
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/flow-sequence-bracket-newline.html
	 */
	'yaml/flow-sequence-bracket-newline'?: Linter.RuleEntry<YamlFlowSequenceBracketNewline>
	/**
	 * enforce consistent spacing inside flow sequence brackets
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/flow-sequence-bracket-spacing.html
	 */
	'yaml/flow-sequence-bracket-spacing'?: Linter.RuleEntry<YamlFlowSequenceBracketSpacing>
	/**
	 * enforce consistent indentation
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/indent.html
	 */
	'yaml/indent'?: Linter.RuleEntry<YamlIndent>
	/**
	 * enforce naming convention to key names
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/key-name-casing.html
	 */
	'yaml/key-name-casing'?: Linter.RuleEntry<YamlKeyNameCasing>
	/**
	 * enforce consistent spacing between keys and values in mapping pairs
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/key-spacing.html
	 */
	'yaml/key-spacing'?: Linter.RuleEntry<YamlKeySpacing>
	/**
	 * disallow empty document
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-empty-document.html
	 */
	'yaml/no-empty-document'?: Linter.RuleEntry<[]>
	/**
	 * disallow empty mapping keys
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-empty-key.html
	 */
	'yaml/no-empty-key'?: Linter.RuleEntry<[]>
	/**
	 * disallow empty mapping values
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-empty-mapping-value.html
	 */
	'yaml/no-empty-mapping-value'?: Linter.RuleEntry<[]>
	/**
	 * disallow empty sequence entries
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-empty-sequence-entry.html
	 */
	'yaml/no-empty-sequence-entry'?: Linter.RuleEntry<[]>
	/**
	 * disallow irregular whitespace
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-irregular-whitespace.html
	 */
	'yaml/no-irregular-whitespace'?: Linter.RuleEntry<YamlNoIrregularWhitespace>
	/**
	 * disallow multiple empty lines
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-multiple-empty-lines.html
	 */
	'yaml/no-multiple-empty-lines'?: Linter.RuleEntry<YamlNoMultipleEmptyLines>
	/**
	 * disallow tabs for indentation.
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-tab-indent.html
	 */
	'yaml/no-tab-indent'?: Linter.RuleEntry<[]>
	/**
	 * disallow trailing zeros for floats
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-trailing-zeros.html
	 */
	'yaml/no-trailing-zeros'?: Linter.RuleEntry<[]>
	/**
	 * require or disallow plain style scalar.
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/plain-scalar.html
	 */
	'yaml/plain-scalar'?: Linter.RuleEntry<YamlPlainScalar>
	/**
	 * enforce the consistent use of either double, or single quotes
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/quotes.html
	 */
	'yaml/quotes'?: Linter.RuleEntry<YamlQuotes>
	/**
	 * disallow mapping keys other than strings
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/require-string-key.html
	 */
	'yaml/require-string-key'?: Linter.RuleEntry<[]>
	/**
	 * require mapping keys to be sorted
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/sort-keys.html
	 */
	'yaml/sort-keys'?: Linter.RuleEntry<YamlSortKeys>
	/**
	 * require sequence values to be sorted
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/sort-sequence-values.html
	 */
	'yaml/sort-sequence-values'?: Linter.RuleEntry<YamlSortSequenceValues>
	/**
	 * enforce consistent spacing after the `#` in a comment
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/spaced-comment.html
	 */
	'yaml/spaced-comment'?: Linter.RuleEntry<YamlSpacedComment>
	/**
	 * disallow parsing errors in Vue custom blocks
	 * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/vue-custom-block/no-parsing-error.html
	 */
	'yaml/vue-custom-block/no-parsing-error'?: Linter.RuleEntry<[]>
	/**
	 * Require or disallow spacing around the `*` in `yield*` expressions
	 * @see https://eslint.org/docs/latest/rules/yield-star-spacing
	 * @deprecated
	 */
	'yield-star-spacing'?: Linter.RuleEntry<YieldStarSpacing>
	/**
	 * Require or disallow "Yoda" conditions
	 * @see https://eslint.org/docs/latest/rules/yoda
	 */
	yoda?: Linter.RuleEntry<Yoda>
}

/* ======= Declarations ======= */
// ----- accessor-pairs -----
type AccessorPairs =
	| []
	| [
			{
				getWithoutSet?: boolean
				setWithoutGet?: boolean
				enforceForClassMembers?: boolean
			},
	  ]
// ----- array-bracket-newline -----
type ArrayBracketNewline =
	| []
	| [
			| ('always' | 'never' | 'consistent')
			| {
					multiline?: boolean
					minItems?: number | null
			  },
	  ]
// ----- array-bracket-spacing -----
type ArrayBracketSpacing =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				singleValue?: boolean
				objectsInArrays?: boolean
				arraysInArrays?: boolean
			},
	  ]
// ----- array-callback-return -----
type ArrayCallbackReturn =
	| []
	| [
			{
				allowImplicit?: boolean
				checkForEach?: boolean
				allowVoid?: boolean
			},
	  ]
// ----- array-element-newline -----
type ArrayElementNewline =
	| []
	| [
			| _ArrayElementNewlineBasicConfig
			| {
					ArrayExpression?: _ArrayElementNewlineBasicConfig
					ArrayPattern?: _ArrayElementNewlineBasicConfig
			  },
	  ]
type _ArrayElementNewlineBasicConfig =
	| ('always' | 'never' | 'consistent')
	| {
			multiline?: boolean
			minItems?: number | null
	  }
// ----- arrow-body-style -----
type ArrowBodyStyle =
	| []
	| ['always' | 'never']
	| []
	| ['as-needed']
	| [
			'as-needed',
			{
				requireReturnForObjectLiteral?: boolean
			},
	  ]
// ----- arrow-parens -----
type ArrowParens =
	| []
	| ['always' | 'as-needed']
	| [
			'always' | 'as-needed',
			{
				requireForBlockBody?: boolean
			},
	  ]
// ----- arrow-spacing -----
type ArrowSpacing =
	| []
	| [
			{
				before?: boolean
				after?: boolean
			},
	  ]
// ----- astro/jsx-a11y/alt-text -----
type AstroJsxA11YAltText =
	| []
	| [
			{
				elements?: string[]
				img?: string[]
				object?: string[]
				area?: string[]
				'input[type="image"]'?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/anchor-ambiguous-text -----
type AstroJsxA11YAnchorAmbiguousText =
	| []
	| [
			{
				words?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/anchor-has-content -----
type AstroJsxA11YAnchorHasContent =
	| []
	| [
			{
				components?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/anchor-is-valid -----
type AstroJsxA11YAnchorIsValid =
	| []
	| [
			{
				components?: string[]
				specialLink?: string[]

				aspects?: [
					'noHref' | 'invalidHref' | 'preferButton',
					...('noHref' | 'invalidHref' | 'preferButton')[],
				]
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/aria-activedescendant-has-tabindex -----
type AstroJsxA11YAriaActivedescendantHasTabindex =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/aria-props -----
type AstroJsxA11YAriaProps =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/aria-proptypes -----
type AstroJsxA11YAriaProptypes =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/aria-role -----
type AstroJsxA11YAriaRole =
	| []
	| [
			{
				allowedInvalidRoles?: string[]
				ignoreNonDOM?: boolean
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/aria-unsupported-elements -----
type AstroJsxA11YAriaUnsupportedElements =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/autocomplete-valid -----
type AstroJsxA11YAutocompleteValid =
	| []
	| [
			{
				inputComponents?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/click-events-have-key-events -----
type AstroJsxA11YClickEventsHaveKeyEvents =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/control-has-associated-label -----
type AstroJsxA11YControlHasAssociatedLabel =
	| []
	| [
			{
				labelAttributes?: string[]
				controlComponents?: string[]
				ignoreElements?: string[]
				ignoreRoles?: string[]

				depth?: number
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/heading-has-content -----
type AstroJsxA11YHeadingHasContent =
	| []
	| [
			{
				components?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/html-has-lang -----
type AstroJsxA11YHtmlHasLang =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/iframe-has-title -----
type AstroJsxA11YIframeHasTitle =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/img-redundant-alt -----
type AstroJsxA11YImgRedundantAlt =
	| []
	| [
			{
				components?: string[]
				words?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/interactive-supports-focus -----
type AstroJsxA11YInteractiveSupportsFocus =
	| []
	| [
			{
				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'
				)[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/label-has-associated-control -----
type AstroJsxA11YLabelHasAssociatedControl =
	| []
	| [
			{
				labelComponents?: string[]
				labelAttributes?: string[]
				controlComponents?: string[]

				assert?: 'htmlFor' | 'nesting' | 'both' | 'either'

				depth?: number
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/lang -----
type AstroJsxA11YLang =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/media-has-caption -----
type AstroJsxA11YMediaHasCaption =
	| []
	| [
			{
				audio?: string[]
				video?: string[]
				track?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/mouse-events-have-key-events -----
type AstroJsxA11YMouseEventsHaveKeyEvents =
	| []
	| [
			{
				hoverInHandlers?: string[]

				hoverOutHandlers?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/no-access-key -----
type AstroJsxA11YNoAccessKey =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/no-aria-hidden-on-focusable -----
type AstroJsxA11YNoAriaHiddenOnFocusable =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/no-autofocus -----
type AstroJsxA11YNoAutofocus =
	| []
	| [
			{
				ignoreNonDOM?: boolean
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/no-distracting-elements -----
type AstroJsxA11YNoDistractingElements =
	| []
	| [
			{
				elements?: ('marquee' | 'blink')[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/no-interactive-element-to-noninteractive-role -----
type AstroJsxA11YNoInteractiveElementToNoninteractiveRole =
	| []
	| [
			{
				[k: string]: string[] | undefined
			},
	  ]
// ----- astro/jsx-a11y/no-noninteractive-element-interactions -----
type AstroJsxA11YNoNoninteractiveElementInteractions =
	| []
	| [
			{
				handlers?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/no-noninteractive-element-to-interactive-role -----
type AstroJsxA11YNoNoninteractiveElementToInteractiveRole =
	| []
	| [
			{
				[k: string]: string[] | undefined
			},
	  ]
// ----- astro/jsx-a11y/no-noninteractive-tabindex -----
type AstroJsxA11YNoNoninteractiveTabindex =
	| []
	| [
			{
				roles?: string[]

				tags?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/no-redundant-roles -----
type AstroJsxA11YNoRedundantRoles =
	| []
	| [
			{
				[k: string]: string[] | undefined
			},
	  ]
// ----- astro/jsx-a11y/no-static-element-interactions -----
type AstroJsxA11YNoStaticElementInteractions =
	| []
	| [
			{
				handlers?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/prefer-tag-over-role -----
type AstroJsxA11YPreferTagOverRole =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/role-has-required-aria-props -----
type AstroJsxA11YRoleHasRequiredAriaProps =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/role-supports-aria-props -----
type AstroJsxA11YRoleSupportsAriaProps =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/scope -----
type AstroJsxA11YScope =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/jsx-a11y/tabindex-no-positive -----
type AstroJsxA11YTabindexNoPositive =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- astro/prefer-split-class-list -----
type AstroPreferSplitClassList =
	| []
	| [
			{
				splitLiteral?: boolean
			},
	  ]
// ----- astro/semi -----
type AstroSemi =
	| []
	| ['never']
	| [
			'never',
			{
				beforeStatementContinuationChars?: 'always' | 'any' | 'never'
			},
	  ]
	| []
	| ['always']
	| [
			'always',
			{
				omitLastInOneLineBlock?: boolean
				omitLastInOneLineClassBody?: boolean
			},
	  ]
// ----- astro/sort-attributes -----
type AstroSortAttributes =
	| []
	| [
			{
				type?: 'alphabetical' | 'line-length'
				ignoreCase?: boolean
				order?: 'asc' | 'desc'
			},
	  ]
// ----- block-spacing -----
type BlockSpacing = [] | ['always' | 'never']
// ----- brace-style -----
type BraceStyle =
	| []
	| ['1tbs' | 'stroustrup' | 'allman']
	| [
			'1tbs' | 'stroustrup' | 'allman',
			{
				allowSingleLine?: boolean
			},
	  ]
// ----- callback-return -----
type CallbackReturn = [] | [string[]]
// ----- camelcase -----
type Camelcase =
	| []
	| [
			{
				ignoreDestructuring?: boolean
				ignoreImports?: boolean
				ignoreGlobals?: boolean
				properties?: 'always' | 'never'

				allow?: string[]
			},
	  ]
// ----- capitalized-comments -----
type CapitalizedComments =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			(
				| {
						ignorePattern?: string
						ignoreInlineComments?: boolean
						ignoreConsecutiveComments?: boolean
				  }
				| {
						line?: {
							ignorePattern?: string
							ignoreInlineComments?: boolean
							ignoreConsecutiveComments?: boolean
						}
						block?: {
							ignorePattern?: string
							ignoreInlineComments?: boolean
							ignoreConsecutiveComments?: boolean
						}
				  }
			),
	  ]
// ----- class-methods-use-this -----
type ClassMethodsUseThis =
	| []
	| [
			{
				exceptMethods?: string[]
				enforceForClassFields?: boolean
				ignoreOverrideMethods?: boolean
				ignoreClassesWithImplements?: 'all' | 'public-fields'
			},
	  ]
// ----- comma-dangle -----
type CommaDangle =
	| []
	| [
			| _CommaDangleValue
			| {
					arrays?: _CommaDangleValueWithIgnore
					objects?: _CommaDangleValueWithIgnore
					imports?: _CommaDangleValueWithIgnore
					exports?: _CommaDangleValueWithIgnore
					functions?: _CommaDangleValueWithIgnore
			  },
	  ]
type _CommaDangleValue = 'always-multiline' | 'always' | 'never' | 'only-multiline'
type _CommaDangleValueWithIgnore =
	| 'always-multiline'
	| 'always'
	| 'ignore'
	| 'never'
	| 'only-multiline'
// ----- comma-spacing -----
type CommaSpacing =
	| []
	| [
			{
				before?: boolean
				after?: boolean
			},
	  ]
// ----- comma-style -----
type CommaStyle =
	| []
	| ['first' | 'last']
	| [
			'first' | 'last',
			{
				exceptions?: {
					[k: string]: boolean | undefined
				}
			},
	  ]
// ----- complexity -----
type Complexity =
	| []
	| [
			| number
			| {
					maximum?: number
					max?: number
					variant?: 'classic' | 'modified'
			  },
	  ]
// ----- computed-property-spacing -----
type ComputedPropertySpacing =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				enforceForClassMembers?: boolean
			},
	  ]
// ----- consistent-return -----
type ConsistentReturn =
	| []
	| [
			{
				treatUndefinedAsUnspecified?: boolean
			},
	  ]
// ----- consistent-this -----
type ConsistentThis = string[]
// ----- curly -----
type Curly =
	| []
	| ['all']
	| []
	| ['multi' | 'multi-line' | 'multi-or-nest']
	| ['multi' | 'multi-line' | 'multi-or-nest', 'consistent']
// ----- default-case -----
type DefaultCase =
	| []
	| [
			{
				commentPattern?: string
			},
	  ]
// ----- depend/ban-dependencies -----
type DependBanDependencies =
	| []
	| [
			{
				presets?: string[]
				modules?: string[]
				allowed?: string[]
			},
	  ]
// ----- dot-location -----
type DotLocation = [] | ['object' | 'property']
// ----- dot-notation -----
type DotNotation =
	| []
	| [
			{
				allowKeywords?: boolean
				allowPattern?: string
			},
	  ]
// ----- eol-last -----
type EolLast = [] | ['always' | 'never' | 'unix' | 'windows']
// ----- eqeqeq -----
type Eqeqeq =
	| []
	| ['always']
	| [
			'always',
			{
				null?: 'always' | 'never' | 'ignore'
			},
	  ]
	| []
	| ['smart' | 'allow-null']
// ----- eslint-comments/disable-enable-pair -----
type EslintCommentsDisableEnablePair =
	| []
	| [
			{
				allowWholeFile?: boolean
			},
	  ]
// ----- eslint-comments/no-restricted-disable -----
type EslintCommentsNoRestrictedDisable = string[]
// ----- eslint-comments/no-use -----
type EslintCommentsNoUse =
	| []
	| [
			{
				allow?: (
					| 'eslint'
					| 'eslint-disable'
					| 'eslint-disable-line'
					| 'eslint-disable-next-line'
					| 'eslint-enable'
					| 'eslint-env'
					| 'exported'
					| 'global'
					| 'globals'
				)[]
			},
	  ]
// ----- eslint-comments/require-description -----
type EslintCommentsRequireDescription =
	| []
	| [
			{
				ignore?: (
					| 'eslint'
					| 'eslint-disable'
					| 'eslint-disable-line'
					| 'eslint-disable-next-line'
					| 'eslint-enable'
					| 'eslint-env'
					| 'exported'
					| 'global'
					| 'globals'
				)[]
			},
	  ]
// ----- func-call-spacing -----
type FuncCallSpacing =
	| []
	| ['never']
	| []
	| ['always']
	| [
			'always',
			{
				allowNewlines?: boolean
			},
	  ]
// ----- func-name-matching -----
type FuncNameMatching =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				considerPropertyDescriptor?: boolean
				includeCommonJSModuleExports?: boolean
			},
	  ]
	| []
	| [
			{
				considerPropertyDescriptor?: boolean
				includeCommonJSModuleExports?: boolean
			},
	  ]
// ----- func-names -----
type FuncNames =
	| []
	| [_FuncNamesValue]
	| [
			_FuncNamesValue,
			{
				generators?: _FuncNamesValue
			},
	  ]
type _FuncNamesValue = 'always' | 'as-needed' | 'never'
// ----- func-style -----
type FuncStyle =
	| []
	| ['declaration' | 'expression']
	| [
			'declaration' | 'expression',
			{
				allowArrowFunctions?: boolean
				allowTypeAnnotation?: boolean
				overrides?: {
					namedExports?: 'declaration' | 'expression' | 'ignore'
				}
			},
	  ]
// ----- function-call-argument-newline -----
type FunctionCallArgumentNewline = [] | ['always' | 'never' | 'consistent']
// ----- function-paren-newline -----
type FunctionParenNewline =
	| []
	| [
			| ('always' | 'never' | 'consistent' | 'multiline' | 'multiline-arguments')
			| {
					minItems?: number
			  },
	  ]
// ----- generator-star-spacing -----
type GeneratorStarSpacing =
	| []
	| [
			| ('before' | 'after' | 'both' | 'neither')
			| {
					before?: boolean
					after?: boolean
					named?:
						| ('before' | 'after' | 'both' | 'neither')
						| {
								before?: boolean
								after?: boolean
						  }
					anonymous?:
						| ('before' | 'after' | 'both' | 'neither')
						| {
								before?: boolean
								after?: boolean
						  }
					method?:
						| ('before' | 'after' | 'both' | 'neither')
						| {
								before?: boolean
								after?: boolean
						  }
			  },
	  ]
// ----- getter-return -----
type GetterReturn =
	| []
	| [
			{
				allowImplicit?: boolean
			},
	  ]
// ----- grouped-accessor-pairs -----
type GroupedAccessorPairs = [] | ['anyOrder' | 'getBeforeSet' | 'setBeforeGet']
// ----- handle-callback-err -----
type HandleCallbackErr = [] | [string]
// ----- html/attrs-newline -----
type HtmlAttrsNewline =
	| []
	| [
			{
				closeStyle?: 'newline' | 'sameline'
				ifAttrsMoreThan?: number
				[k: string]: unknown | undefined
			},
	  ]
// ----- html/element-newline -----
type HtmlElementNewline =
	| []
	| [
			{
				inline?: string[]
				skip?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- html/id-naming-convention -----
type HtmlIdNamingConvention =
	| []
	| ['camelCase' | 'snake_case' | 'PascalCase' | 'kebab-case' | 'regex']
	| [
			'camelCase' | 'snake_case' | 'PascalCase' | 'kebab-case' | 'regex',
			{
				pattern?: string
				flags?: string
			},
	  ]
// ----- html/indent -----
type HtmlIndent =
	| []
	| ['tab' | number]
	| [
			'tab' | number,
			{
				Attribute?: number
				tagChildrenIndent?: {
					[k: string]: number
				}
				[k: string]: unknown | undefined
			},
	  ]
// ----- html/max-element-depth -----
type HtmlMaxElementDepth =
	| []
	| [
			{
				max: number
			},
	  ]
// ----- html/no-extra-spacing-attrs -----
type HtmlNoExtraSpacingAttrs =
	| []
	| [
			{
				disallowInAssignment?: boolean
				disallowMissing?: boolean
				disallowTabs?: boolean
				enforceBeforeSelfClose?: boolean
				[k: string]: unknown | undefined
			},
	  ]
// ----- html/no-extra-spacing-text -----
type HtmlNoExtraSpacingText =
	| []
	| [
			{
				skip?: string[]
			},
	  ]
// ----- html/no-multiple-empty-lines -----
type HtmlNoMultipleEmptyLines =
	| []
	| [
			{
				max: number
			},
	  ]
// ----- html/no-restricted-attr-values -----
type HtmlNoRestrictedAttrValues = {
	attrPatterns: string[]
	attrValuePatterns: string[]
	message?: string
	[k: string]: unknown | undefined
}[]
// ----- html/no-restricted-attrs -----
type HtmlNoRestrictedAttrs = {
	tagPatterns: string[]
	attrPatterns: string[]
	message?: string
	[k: string]: unknown | undefined
}[]
// ----- html/quotes -----
type HtmlQuotes = [] | ['single' | 'double']
// ----- html/require-attrs -----
type HtmlRequireAttrs = {
	tag: string
	attr: string
	value?: string
}[]
// ----- html/require-closing-tags -----
type HtmlRequireClosingTags =
	| []
	| [
			{
				selfClosing?: 'always' | 'never'
				selfClosingCustomPatterns?: string[]
			},
	  ]
// ----- html/require-explicit-size -----
type HtmlRequireExplicitSize =
	| []
	| [
			{
				allowClass?: string[]
				allowId?: string[]
			},
	  ]
// ----- html/require-img-alt -----
type HtmlRequireImgAlt =
	| []
	| [
			{
				substitute?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- html/require-open-graph-protocol -----
type HtmlRequireOpenGraphProtocol = [] | [string[]]
// ----- html/sort-attrs -----
type HtmlSortAttrs =
	| []
	| [
			{
				priority?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- html/use-baseline -----
type HtmlUseBaseline =
	| []
	| [
			{
				available?: ('widely' | 'newly') | number
			},
	  ]
// ----- id-blacklist -----
type IdBlacklist = string[]
// ----- id-denylist -----
type IdDenylist = string[]
// ----- id-length -----
type IdLength =
	| []
	| [
			{
				min?: number
				max?: number
				exceptions?: string[]
				exceptionPatterns?: string[]
				properties?: 'always' | 'never'
			},
	  ]
// ----- id-match -----
type IdMatch =
	| []
	| [string]
	| [
			string,
			{
				properties?: boolean
				classFields?: boolean
				onlyDeclarations?: boolean
				ignoreDestructuring?: boolean
			},
	  ]
// ----- implicit-arrow-linebreak -----
type ImplicitArrowLinebreak = [] | ['beside' | 'below']
// ----- import/consistent-type-specifier-style -----
type ImportConsistentTypeSpecifierStyle = [] | ['prefer-top-level' | 'prefer-inline']
// ----- import/dynamic-import-chunkname -----
type ImportDynamicImportChunkname =
	| []
	| [
			{
				importFunctions?: string[]
				allowEmpty?: boolean
				webpackChunknameFormat?: string
				[k: string]: unknown | undefined
			},
	  ]
// ----- import/extensions -----
type ImportExtensions =
	| []
	| ['always' | 'ignorePackages' | 'never']
	| []
	| ['always' | 'ignorePackages' | 'never']
	| [
			'always' | 'ignorePackages' | 'never',
			{
				pattern?: {
					[k: string]: 'always' | 'ignorePackages' | 'never'
				}
				ignorePackages?: boolean
				checkTypeImports?: boolean
				pathGroupOverrides?: {
					pattern: string
					patternOptions?: {
						[k: string]: unknown | undefined
					}
					action: 'enforce' | 'ignore'
				}[]
				fix?: boolean
				[k: string]: unknown | undefined
			},
	  ]
	| []
	| [
			{
				pattern?: {
					[k: string]: 'always' | 'ignorePackages' | 'never'
				}
				ignorePackages?: boolean
				checkTypeImports?: boolean
				pathGroupOverrides?: {
					pattern: string
					patternOptions?: {
						[k: string]: unknown | undefined
					}
					action: 'enforce' | 'ignore'
				}[]
				fix?: boolean
				[k: string]: unknown | undefined
			},
	  ]
	| []
	| ['always' | 'ignorePackages' | 'never']
	| [
			'always' | 'ignorePackages' | 'never',
			{
				[k: string]: 'always' | 'ignorePackages' | 'never'
			},
	  ]
	| []
	| [
			{
				[k: string]: 'always' | 'ignorePackages' | 'never'
			},
	  ]
// ----- import/first -----
type ImportFirst = [] | ['absolute-first' | 'disable-absolute-first']
// ----- import/imports-first -----
type ImportImportsFirst = [] | ['absolute-first' | 'disable-absolute-first']
// ----- import/max-dependencies -----
type ImportMaxDependencies =
	| []
	| [
			{
				max?: number
				ignoreTypeImports?: boolean
			},
	  ]
// ----- import/named -----
type ImportNamed =
	| []
	| [
			{
				commonjs?: boolean
			},
	  ]
// ----- import/namespace -----
type ImportNamespace =
	| []
	| [
			{
				allowComputed?: boolean
			},
	  ]
// ----- import/newline-after-import -----
type ImportNewlineAfterImport =
	| []
	| [
			{
				count?: number
				exactCount?: boolean
				considerComments?: boolean
			},
	  ]
// ----- import/no-absolute-path -----
type ImportNoAbsolutePath =
	| []
	| [
			{
				commonjs?: boolean
				amd?: boolean
				esmodule?: boolean

				ignore?: [string, ...string[]]
			},
	  ]
// ----- import/no-anonymous-default-export -----
type ImportNoAnonymousDefaultExport =
	| []
	| [
			{
				allowArray?: boolean

				allowArrowFunction?: boolean

				allowCallExpression?: boolean

				allowAnonymousClass?: boolean

				allowAnonymousFunction?: boolean

				allowLiteral?: boolean

				allowObject?: boolean

				allowNew?: boolean
			},
	  ]
// ----- import/no-commonjs -----
type ImportNoCommonjs =
	| []
	| ['allow-primitive-modules']
	| []
	| [
			{
				allowPrimitiveModules?: boolean
				allowRequire?: boolean
				allowConditionalRequire?: boolean
			},
	  ]
// ----- import/no-cycle -----
type ImportNoCycle =
	| []
	| [
			{
				commonjs?: boolean
				amd?: boolean
				esmodule?: boolean

				ignore?: [string, ...string[]]
				maxDepth?: number | '∞'

				ignoreExternal?: boolean

				allowUnsafeDynamicCyclicDependency?: boolean
			},
	  ]
// ----- import/no-duplicates -----
type ImportNoDuplicates =
	| []
	| [
			{
				considerQueryString?: boolean
				'prefer-inline'?: boolean
			},
	  ]
// ----- import/no-dynamic-require -----
type ImportNoDynamicRequire =
	| []
	| [
			{
				esmodule?: boolean
			},
	  ]
// ----- import/no-extraneous-dependencies -----
type ImportNoExtraneousDependencies =
	| []
	| [
			{
				devDependencies?: boolean | unknown[]
				optionalDependencies?: boolean | unknown[]
				peerDependencies?: boolean | unknown[]
				bundledDependencies?: boolean | unknown[]
				packageDir?: string | unknown[]
				includeInternal?: boolean
				includeTypes?: boolean
				whitelist?: unknown[]
			},
	  ]
// ----- import/no-import-module-exports -----
type ImportNoImportModuleExports =
	| []
	| [
			{
				exceptions?: unknown[]
			},
	  ]
// ----- import/no-internal-modules -----
type ImportNoInternalModules =
	| []
	| [
			| {
					allow?: string[]
			  }
			| {
					forbid?: string[]
			  },
	  ]
// ----- import/no-namespace -----
type ImportNoNamespace =
	| []
	| [
			{
				ignore?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- import/no-nodejs-modules -----
type ImportNoNodejsModules =
	| []
	| [
			{
				allow?: string[]
			},
	  ]
// ----- import/no-relative-packages -----
type ImportNoRelativePackages =
	| []
	| [
			{
				commonjs?: boolean
				amd?: boolean
				esmodule?: boolean

				ignore?: [string, ...string[]]
			},
	  ]
// ----- import/no-relative-parent-imports -----
type ImportNoRelativeParentImports =
	| []
	| [
			{
				commonjs?: boolean
				amd?: boolean
				esmodule?: boolean

				ignore?: [string, ...string[]]
			},
	  ]
// ----- import/no-rename-default -----
type ImportNoRenameDefault =
	| []
	| [
			{
				commonjs?: boolean
				preventRenamingBindings?: boolean
			},
	  ]
// ----- import/no-restricted-paths -----
type ImportNoRestrictedPaths =
	| []
	| [
			{
				zones?: [
					{
						target?: string | [string, ...string[]]
						from?: string | [string, ...string[]]
						except?: string[]
						message?: string
					},
					...{
						target?: string | [string, ...string[]]
						from?: string | [string, ...string[]]
						except?: string[]
						message?: string
					}[],
				]
				basePath?: string
			},
	  ]
// ----- import/no-unassigned-import -----
type ImportNoUnassignedImport =
	| []
	| [
			{
				devDependencies?: boolean | unknown[]
				optionalDependencies?: boolean | unknown[]
				peerDependencies?: boolean | unknown[]
				allow?: string[]
			},
	  ]
// ----- import/no-unresolved -----
type ImportNoUnresolved =
	| []
	| [
			{
				commonjs?: boolean
				amd?: boolean
				esmodule?: boolean

				ignore?: [string, ...string[]]
				caseSensitive?: boolean
				caseSensitiveStrict?: boolean
			},
	  ]
// ----- import/no-unused-modules -----
type ImportNoUnusedModules =
	| []
	| [
			| {
					unusedExports: true

					src?: [unknown, ...unknown[]]
					[k: string]: unknown | undefined
			  }
			| {
					missingExports: true
					[k: string]: unknown | undefined
			  },
	  ]
// ----- import/no-useless-path-segments -----
type ImportNoUselessPathSegments =
	| []
	| [
			{
				commonjs?: boolean
				noUselessIndex?: boolean
			},
	  ]
// ----- import/order -----
type ImportOrder =
	| []
	| [
			{
				groups?: unknown[]
				pathGroupsExcludedImportTypes?: unknown[]
				distinctGroup?: boolean
				pathGroups?: {
					pattern: string
					patternOptions?: {
						[k: string]: unknown | undefined
					}
					group:
						| 'builtin'
						| 'external'
						| 'internal'
						| 'unknown'
						| 'parent'
						| 'sibling'
						| 'index'
						| 'object'
						| 'type'
					position?: 'after' | 'before'
				}[]
				'newlines-between'?: 'ignore' | 'always' | 'always-and-inside-groups' | 'never'
				'newlines-between-types'?: 'ignore' | 'always' | 'always-and-inside-groups' | 'never'
				consolidateIslands?: 'inside-groups' | 'never'
				sortTypesGroup?: boolean
				named?:
					| boolean
					| {
							enabled?: boolean
							import?: boolean
							export?: boolean
							require?: boolean
							cjsExports?: boolean
							types?: 'mixed' | 'types-first' | 'types-last'
					  }
				alphabetize?: {
					caseInsensitive?: boolean
					order?: 'ignore' | 'asc' | 'desc'
					orderImportKind?: 'ignore' | 'asc' | 'desc'
				}
				warnOnUnassignedImports?: boolean
			},
	  ]
// ----- import/prefer-default-export -----
type ImportPreferDefaultExport =
	| []
	| [
			{
				target?: 'single' | 'any'
			},
	  ]
// ----- indent -----
type Indent =
	| []
	| ['tab' | number]
	| [
			'tab' | number,
			{
				SwitchCase?: number
				VariableDeclarator?:
					| (number | ('first' | 'off'))
					| {
							var?: number | ('first' | 'off')
							let?: number | ('first' | 'off')
							const?: number | ('first' | 'off')
					  }
				outerIIFEBody?: number | 'off'
				MemberExpression?: number | 'off'
				FunctionDeclaration?: {
					parameters?: number | ('first' | 'off')
					body?: number
				}
				FunctionExpression?: {
					parameters?: number | ('first' | 'off')
					body?: number
				}
				StaticBlock?: {
					body?: number
				}
				CallExpression?: {
					arguments?: number | ('first' | 'off')
				}
				ArrayExpression?: number | ('first' | 'off')
				ObjectExpression?: number | ('first' | 'off')
				ImportDeclaration?: number | ('first' | 'off')
				flatTernaryExpressions?: boolean
				offsetTernaryExpressions?: boolean
				ignoredNodes?: string[]
				ignoreComments?: boolean
			},
	  ]
// ----- indent-legacy -----
type IndentLegacy =
	| []
	| ['tab' | number]
	| [
			'tab' | number,
			{
				SwitchCase?: number
				VariableDeclarator?:
					| number
					| {
							var?: number
							let?: number
							const?: number
							[k: string]: unknown | undefined
					  }
				outerIIFEBody?: number
				MemberExpression?: number
				FunctionDeclaration?: {
					parameters?: number | 'first'
					body?: number
					[k: string]: unknown | undefined
				}
				FunctionExpression?: {
					parameters?: number | 'first'
					body?: number
					[k: string]: unknown | undefined
				}
				CallExpression?: {
					parameters?: number | 'first'
					[k: string]: unknown | undefined
				}
				ArrayExpression?: number | 'first'
				ObjectExpression?: number | 'first'
			},
	  ]
// ----- init-declarations -----
type InitDeclarations =
	| []
	| ['always']
	| []
	| ['never']
	| [
			'never',
			{
				ignoreForLoopInit?: boolean
			},
	  ]
// ----- jsdoc/check-examples -----
type JsdocCheckExamples =
	| []
	| [
			{
				allowInlineConfig?: boolean
				baseConfig?: {
					[k: string]: unknown | undefined
				}
				captionRequired?: boolean
				checkDefaults?: boolean
				checkEslintrc?: boolean
				checkParams?: boolean
				checkProperties?: boolean
				configFile?: string
				exampleCodeRegex?: string
				matchingFileName?: string
				matchingFileNameDefaults?: string
				matchingFileNameParams?: string
				matchingFileNameProperties?: string
				noDefaultExampleRules?: boolean
				paddedIndent?: number
				rejectExampleCodeRegex?: string
				reportUnusedDisableDirectives?: boolean
			},
	  ]
// ----- jsdoc/check-indentation -----
type JsdocCheckIndentation =
	| []
	| [
			{
				excludeTags?: string[]
			},
	  ]
// ----- jsdoc/check-line-alignment -----
type JsdocCheckLineAlignment =
	| []
	| ['always' | 'never' | 'any']
	| [
			'always' | 'never' | 'any',
			{
				customSpacings?: {
					postDelimiter?: number
					postHyphen?: number
					postName?: number
					postTag?: number
					postType?: number
				}
				disableWrapIndent?: boolean
				preserveMainDescriptionPostDelimiter?: boolean
				tags?: string[]
				wrapIndent?: string
			},
	  ]
// ----- jsdoc/check-param-names -----
type JsdocCheckParamNames =
	| []
	| [
			{
				allowExtraTrailingParamDocs?: boolean
				checkDestructured?: boolean
				checkRestProperty?: boolean
				checkTypesPattern?: string
				disableExtraPropertyReporting?: boolean
				disableMissingParamChecks?: boolean
				enableFixer?: boolean
				useDefaultObjectProperties?: boolean
			},
	  ]
// ----- jsdoc/check-property-names -----
type JsdocCheckPropertyNames =
	| []
	| [
			{
				enableFixer?: boolean
			},
	  ]
// ----- jsdoc/check-tag-names -----
type JsdocCheckTagNames =
	| []
	| [
			{
				definedTags?: string[]
				enableFixer?: boolean
				jsxTags?: boolean
				typed?: boolean
			},
	  ]
// ----- jsdoc/check-types -----
type JsdocCheckTypes =
	| []
	| [
			{
				exemptTagContexts?: {
					tag?: string
					types?: boolean | string[]
				}[]
				noDefaults?: boolean
				unifyParentAndChildTypeChecks?: boolean
			},
	  ]
// ----- jsdoc/check-values -----
type JsdocCheckValues =
	| []
	| [
			{
				allowedAuthors?: string[]
				allowedLicenses?: string[] | boolean
				licensePattern?: string
				numericOnlyVariation?: boolean
			},
	  ]
// ----- jsdoc/convert-to-jsdoc-comments -----
type JsdocConvertToJsdocComments =
	| []
	| [
			{
				allowedPrefixes?: string[]
				contexts?: (
					| string
					| {
							context?: string
							inlineCommentBlock?: boolean
					  }
				)[]
				contextsAfter?: (
					| string
					| {
							context?: string
							inlineCommentBlock?: boolean
					  }
				)[]
				contextsBeforeAndAfter?: (
					| string
					| {
							context?: string
							inlineCommentBlock?: boolean
					  }
				)[]
				enableFixer?: boolean
				enforceJsdocLineStyle?: 'multi' | 'single'
				lineOrBlockStyle?: 'block' | 'line' | 'both'
			},
	  ]
// ----- jsdoc/empty-tags -----
type JsdocEmptyTags =
	| []
	| [
			{
				tags?: string[]
			},
	  ]
// ----- jsdoc/implements-on-classes -----
type JsdocImplementsOnClasses =
	| []
	| [
			{
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
					  }
				)[]
			},
	  ]
// ----- jsdoc/informative-docs -----
type JsdocInformativeDocs =
	| []
	| [
			{
				aliases?: {
					[k: string]: string[]
				}
				excludedTags?: string[]
				uselessWords?: string[]
			},
	  ]
// ----- jsdoc/lines-before-block -----
type JsdocLinesBeforeBlock =
	| []
	| [
			{
				checkBlockStarts?: boolean
				excludedTags?: string[]
				ignoreSameLine?: boolean
				lines?: number
			},
	  ]
// ----- jsdoc/match-description -----
type JsdocMatchDescription =
	| []
	| [
			{
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
					  }
				)[]
				mainDescription?:
					| string
					| boolean
					| {
							match?: string | boolean
							message?: string
					  }
				matchDescription?: string
				message?: string
				nonemptyTags?: boolean
				tags?: {
					[k: string]:
						| string
						| true
						| {
								match?: string | true
								message?: string
						  }
				}
			},
	  ]
// ----- jsdoc/match-name -----
type JsdocMatchName =
	| []
	| [
			{
				match: {
					allowName?: string
					comment?: string
					context?: string
					disallowName?: string
					message?: string
					tags?: string[]
					[k: string]: unknown | undefined
				}[]
			},
	  ]
// ----- jsdoc/multiline-blocks -----
type JsdocMultilineBlocks =
	| []
	| [
			{
				allowMultipleTags?: boolean
				minimumLengthForMultiline?: number
				multilineTags?: '*' | string[]
				noFinalLineText?: boolean
				noMultilineBlocks?: boolean
				noSingleLineBlocks?: boolean
				noZeroLineText?: boolean
				singleLineTags?: string[]
			},
	  ]
// ----- jsdoc/no-bad-blocks -----
type JsdocNoBadBlocks =
	| []
	| [
			{
				ignore?: string[]
				preventAllMultiAsteriskBlocks?: boolean
			},
	  ]
// ----- jsdoc/no-blank-blocks -----
type JsdocNoBlankBlocks =
	| []
	| [
			{
				enableFixer?: boolean
			},
	  ]
// ----- jsdoc/no-defaults -----
type JsdocNoDefaults =
	| []
	| [
			{
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
					  }
				)[]
				noOptionalParamNames?: boolean
			},
	  ]
// ----- jsdoc/no-missing-syntax -----
type JsdocNoMissingSyntax =
	| []
	| [
			{
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
							message?: string
							minimum?: number
					  }
				)[]
			},
	  ]
// ----- jsdoc/no-multi-asterisks -----
type JsdocNoMultiAsterisks =
	| []
	| [
			{
				allowWhitespace?: boolean
				preventAtEnd?: boolean
				preventAtMiddleLines?: boolean
			},
	  ]
// ----- jsdoc/no-restricted-syntax -----
type JsdocNoRestrictedSyntax =
	| []
	| [
			{
				contexts: (
					| string
					| {
							comment?: string
							context?: string
							message?: string
					  }
				)[]
			},
	  ]
// ----- jsdoc/no-types -----
type JsdocNoTypes =
	| []
	| [
			{
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
					  }
				)[]
			},
	  ]
// ----- jsdoc/no-undefined-types -----
type JsdocNoUndefinedTypes =
	| []
	| [
			{
				definedTypes?: string[]
				disableReporting?: boolean
				markVariablesAsUsed?: boolean
			},
	  ]
// ----- jsdoc/require-asterisk-prefix -----
type JsdocRequireAsteriskPrefix =
	| []
	| ['always' | 'never' | 'any']
	| [
			'always' | 'never' | 'any',
			{
				tags?: {
					always?: string[]
					any?: string[]
					never?: string[]
					[k: string]: unknown | undefined
				}
			},
	  ]
// ----- jsdoc/require-description -----
type JsdocRequireDescription =
	| []
	| [
			{
				checkConstructors?: boolean
				checkGetters?: boolean
				checkSetters?: boolean
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
					  }
				)[]
				descriptionStyle?: 'body' | 'tag' | 'any'
				exemptedBy?: string[]
			},
	  ]
// ----- jsdoc/require-description-complete-sentence -----
type JsdocRequireDescriptionCompleteSentence =
	| []
	| [
			{
				abbreviations?: string[]
				newlineBeforeCapsAssumesBadSentenceEnd?: boolean
				tags?: string[]
			},
	  ]
// ----- jsdoc/require-example -----
type JsdocRequireExample =
	| []
	| [
			{
				checkConstructors?: boolean
				checkGetters?: boolean
				checkSetters?: boolean
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
					  }
				)[]
				enableFixer?: boolean
				exemptedBy?: string[]
				exemptNoArguments?: boolean
			},
	  ]
// ----- jsdoc/require-file-overview -----
type JsdocRequireFileOverview =
	| []
	| [
			{
				tags?: {
					[k: string]: {
						initialCommentsOnly?: boolean
						mustExist?: boolean
						preventDuplicates?: boolean
					}
				}
			},
	  ]
// ----- jsdoc/require-hyphen-before-param-description -----
type JsdocRequireHyphenBeforeParamDescription =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				tags?:
					| {
							[k: string]: 'always' | 'never'
					  }
					| 'any'
			},
	  ]
// ----- jsdoc/require-jsdoc -----
type JsdocRequireJsdoc =
	| []
	| [
			{
				checkConstructors?: boolean
				checkGetters?: boolean | 'no-setter'
				checkSetters?: boolean | 'no-getter'
				contexts?: (
					| string
					| {
							context?: string
							inlineCommentBlock?: boolean
							minLineCount?: number
					  }
				)[]
				enableFixer?: boolean
				exemptEmptyConstructors?: boolean
				exemptEmptyFunctions?: boolean
				fixerMessage?: string
				minLineCount?: number
				publicOnly?:
					| boolean
					| {
							ancestorsOnly?: boolean
							cjs?: boolean
							esm?: boolean
							window?: boolean
					  }
				require?: {
					ArrowFunctionExpression?: boolean
					ClassDeclaration?: boolean
					ClassExpression?: boolean
					FunctionDeclaration?: boolean
					FunctionExpression?: boolean
					MethodDefinition?: boolean
				}
			},
	  ]
// ----- jsdoc/require-param -----
type JsdocRequireParam =
	| []
	| [
			{
				autoIncrementBase?: number
				checkConstructors?: boolean
				checkDestructured?: boolean
				checkDestructuredRoots?: boolean
				checkGetters?: boolean
				checkRestProperty?: boolean
				checkSetters?: boolean
				checkTypesPattern?: string
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
					  }
				)[]
				enableFixer?: boolean
				enableRestElementFixer?: boolean
				enableRootFixer?: boolean
				exemptedBy?: string[]
				ignoreWhenAllParamsMissing?: boolean
				unnamedRootBase?: string[]
				useDefaultObjectProperties?: boolean
			},
	  ]
// ----- jsdoc/require-param-description -----
type JsdocRequireParamDescription =
	| []
	| [
			{
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
					  }
				)[]
				defaultDestructuredRootDescription?: string
				setDefaultDestructuredRootDescription?: boolean
			},
	  ]
// ----- jsdoc/require-param-name -----
type JsdocRequireParamName =
	| []
	| [
			{
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
					  }
				)[]
			},
	  ]
// ----- jsdoc/require-param-type -----
type JsdocRequireParamType =
	| []
	| [
			{
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
					  }
				)[]
				defaultDestructuredRootType?: string
				setDefaultDestructuredRootType?: boolean
			},
	  ]
// ----- jsdoc/require-returns -----
type JsdocRequireReturns =
	| []
	| [
			{
				checkConstructors?: boolean
				checkGetters?: boolean
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
							forceRequireReturn?: boolean
					  }
				)[]
				enableFixer?: boolean
				exemptedBy?: string[]
				forceRequireReturn?: boolean
				forceReturnsWithAsync?: boolean
				publicOnly?:
					| boolean
					| {
							ancestorsOnly?: boolean
							cjs?: boolean
							esm?: boolean
							window?: boolean
					  }
			},
	  ]
// ----- jsdoc/require-returns-check -----
type JsdocRequireReturnsCheck =
	| []
	| [
			{
				exemptAsync?: boolean
				exemptGenerators?: boolean
				reportMissingReturnForUndefinedTypes?: boolean
			},
	  ]
// ----- jsdoc/require-returns-description -----
type JsdocRequireReturnsDescription =
	| []
	| [
			{
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
					  }
				)[]
			},
	  ]
// ----- jsdoc/require-returns-type -----
type JsdocRequireReturnsType =
	| []
	| [
			{
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
					  }
				)[]
			},
	  ]
// ----- jsdoc/require-template -----
type JsdocRequireTemplate =
	| []
	| [
			{
				requireSeparateTemplates?: boolean
			},
	  ]
// ----- jsdoc/require-throws -----
type JsdocRequireThrows =
	| []
	| [
			{
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
					  }
				)[]
				exemptedBy?: string[]
			},
	  ]
// ----- jsdoc/require-yields -----
type JsdocRequireYields =
	| []
	| [
			{
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
					  }
				)[]
				exemptedBy?: string[]
				forceRequireNext?: boolean
				forceRequireYields?: boolean
				next?: boolean
				nextWithGeneratorTag?: boolean
				withGeneratorTag?: boolean
			},
	  ]
// ----- jsdoc/require-yields-check -----
type JsdocRequireYieldsCheck =
	| []
	| [
			{
				checkGeneratorsOnly?: boolean
				contexts?: (
					| string
					| {
							comment?: string
							context?: string
					  }
				)[]
				exemptedBy?: string[]
				next?: boolean
			},
	  ]
// ----- jsdoc/sort-tags -----
type JsdocSortTags =
	| []
	| [
			{
				alphabetizeExtras?: boolean
				linesBetween?: number
				reportIntraTagGroupSpacing?: boolean
				reportTagGroupSpacing?: boolean
				tagSequence?: {
					tags?: string[]
					[k: string]: unknown | undefined
				}[]
			},
	  ]
// ----- jsdoc/tag-lines -----
type JsdocTagLines =
	| []
	| ['always' | 'any' | 'never']
	| [
			'always' | 'any' | 'never',
			{
				applyToEndTag?: boolean
				count?: number
				endLines?: number | null
				startLines?: number | null
				tags?: {
					[k: string]: {
						count?: number
						lines?: 'always' | 'never' | 'any'
					}
				}
			},
	  ]
// ----- jsdoc/text-escaping -----
type JsdocTextEscaping =
	| []
	| [
			{
				escapeHTML?: boolean
				escapeMarkdown?: boolean
			},
	  ]
// ----- jsdoc/valid-types -----
type JsdocValidTypes =
	| []
	| [
			{
				allowEmptyNamepaths?: boolean
			},
	  ]
// ----- json-package/order-properties -----
type JsonPackageOrderProperties =
	| []
	| [
			{
				order?: ('legacy' | 'sort-package-json') | string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- json-package/repository-shorthand -----
type JsonPackageRepositoryShorthand =
	| []
	| [
			{
				form?: 'object' | 'shorthand'
				[k: string]: unknown | undefined
			},
	  ]
// ----- json-package/restrict-dependency-ranges -----
type JsonPackageRestrictDependencyRanges =
	| []
	| [
			| {
					forDependencyTypes?: (
						| 'dependencies'
						| 'devDependencies'
						| 'optionalDependencies'
						| 'peerDependencies'
					)[]
					forPackages?: string[]
					forVersions?: string
					rangeType: ('caret' | 'pin' | 'tilde') | ('caret' | 'pin' | 'tilde')[]
			  }
			| {
					forDependencyTypes?: (
						| 'dependencies'
						| 'devDependencies'
						| 'optionalDependencies'
						| 'peerDependencies'
					)[]
					forPackages?: string[]
					forVersions?: string
					rangeType: ('caret' | 'pin' | 'tilde') | ('caret' | 'pin' | 'tilde')[]
			  }[],
	  ]
// ----- json-package/sort-collections -----
type JsonPackageSortCollections = [] | [string[]]
// ----- json-package/valid-package-def -----
type JsonPackageValidPackageDef =
	| []
	| [
			{
				ignoreProperties?: string[]
			},
	  ]
// ----- json-package/valid-package-definition -----
type JsonPackageValidPackageDefinition =
	| []
	| [
			{
				ignoreProperties?: string[]
			},
	  ]
// ----- json/array-bracket-newline -----
type JsonArrayBracketNewline =
	| []
	| [
			| ('always' | 'never' | 'consistent')
			| {
					multiline?: boolean
					minItems?: number | null
			  },
	  ]
// ----- json/array-bracket-spacing -----
type JsonArrayBracketSpacing =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				singleValue?: boolean
				objectsInArrays?: boolean
				arraysInArrays?: boolean
			},
	  ]
// ----- json/array-element-newline -----
type JsonArrayElementNewline =
	| []
	| [
			| _JsonArrayElementNewlineBasicConfig
			| {
					ArrayExpression?: _JsonArrayElementNewlineBasicConfig
					JSONArrayExpression?: _JsonArrayElementNewlineBasicConfig
					ArrayPattern?: _JsonArrayElementNewlineBasicConfig
			  },
	  ]
type _JsonArrayElementNewlineBasicConfig =
	| ('always' | 'never' | 'consistent')
	| {
			multiline?: boolean
			minItems?: number | null
	  }
// ----- json/comma-dangle -----
type JsonCommaDangle =
	| []
	| [
			| _JsonCommaDangleValue
			| {
					arrays?: _JsonCommaDangleValueWithIgnore
					objects?: _JsonCommaDangleValueWithIgnore
					imports?: _JsonCommaDangleValueWithIgnore
					exports?: _JsonCommaDangleValueWithIgnore
					functions?: _JsonCommaDangleValueWithIgnore
			  },
	  ]
type _JsonCommaDangleValue = 'always-multiline' | 'always' | 'never' | 'only-multiline'
type _JsonCommaDangleValueWithIgnore =
	| 'always-multiline'
	| 'always'
	| 'ignore'
	| 'never'
	| 'only-multiline'
// ----- json/comma-style -----
type JsonCommaStyle =
	| []
	| ['first' | 'last']
	| [
			'first' | 'last',
			{
				exceptions?: {
					[k: string]: boolean | undefined
				}
			},
	  ]
// ----- json/indent -----
type JsonIndent =
	| []
	| ['tab' | number]
	| [
			'tab' | number,
			{
				SwitchCase?: number
				VariableDeclarator?:
					| (number | ('first' | 'off'))
					| {
							var?: number | ('first' | 'off')
							let?: number | ('first' | 'off')
							const?: number | ('first' | 'off')
					  }
				outerIIFEBody?: number | 'off'
				MemberExpression?: number | 'off'
				FunctionDeclaration?: {
					parameters?: number | ('first' | 'off')
					body?: number
				}
				FunctionExpression?: {
					parameters?: number | ('first' | 'off')
					body?: number
				}
				StaticBlock?: {
					body?: number
				}
				CallExpression?: {
					arguments?: number | ('first' | 'off')
				}
				ArrayExpression?: number | ('first' | 'off')
				ObjectExpression?: number | ('first' | 'off')
				ImportDeclaration?: number | ('first' | 'off')
				flatTernaryExpressions?: boolean
				offsetTernaryExpressions?: boolean
				ignoredNodes?: string[]
				ignoreComments?: boolean
			},
	  ]
// ----- json/key-name-casing -----
type JsonKeyNameCasing =
	| []
	| [
			{
				camelCase?: boolean
				PascalCase?: boolean
				SCREAMING_SNAKE_CASE?: boolean
				'kebab-case'?: boolean
				snake_case?: boolean
				ignores?: string[]
			},
	  ]
// ----- json/key-spacing -----
type JsonKeySpacing =
	| []
	| [
			| {
					align?:
						| ('colon' | 'value')
						| {
								mode?: 'strict' | 'minimum'
								on?: 'colon' | 'value'
								beforeColon?: boolean
								afterColon?: boolean
						  }
					mode?: 'strict' | 'minimum'
					beforeColon?: boolean
					afterColon?: boolean
			  }
			| {
					singleLine?: {
						mode?: 'strict' | 'minimum'
						beforeColon?: boolean
						afterColon?: boolean
					}
					multiLine?: {
						align?:
							| ('colon' | 'value')
							| {
									mode?: 'strict' | 'minimum'
									on?: 'colon' | 'value'
									beforeColon?: boolean
									afterColon?: boolean
							  }
						mode?: 'strict' | 'minimum'
						beforeColon?: boolean
						afterColon?: boolean
					}
			  }
			| {
					singleLine?: {
						mode?: 'strict' | 'minimum'
						beforeColon?: boolean
						afterColon?: boolean
					}
					multiLine?: {
						mode?: 'strict' | 'minimum'
						beforeColon?: boolean
						afterColon?: boolean
					}
					align?: {
						mode?: 'strict' | 'minimum'
						on?: 'colon' | 'value'
						beforeColon?: boolean
						afterColon?: boolean
					}
			  },
	  ]
// ----- json/no-irregular-whitespace -----
type JsonNoIrregularWhitespace =
	| []
	| [
			{
				skipComments?: boolean
				skipStrings?: boolean
				skipTemplates?: boolean
				skipRegExps?: boolean
				skipJSXText?: boolean
			},
	  ]
// ----- json/no-useless-escape -----
type JsonNoUselessEscape =
	| []
	| [
			{
				allowRegexCharacters?: string[]
			},
	  ]
// ----- json/object-curly-newline -----
type JsonObjectCurlyNewline =
	| []
	| [
			| (
					| ('always' | 'never')
					| {
							multiline?: boolean
							minProperties?: number
							consistent?: boolean
					  }
			  )
			| {
					ObjectExpression?:
						| ('always' | 'never')
						| {
								multiline?: boolean
								minProperties?: number
								consistent?: boolean
						  }
					ObjectPattern?:
						| ('always' | 'never')
						| {
								multiline?: boolean
								minProperties?: number
								consistent?: boolean
						  }
					ImportDeclaration?:
						| ('always' | 'never')
						| {
								multiline?: boolean
								minProperties?: number
								consistent?: boolean
						  }
					ExportDeclaration?:
						| ('always' | 'never')
						| {
								multiline?: boolean
								minProperties?: number
								consistent?: boolean
						  }
			  },
	  ]
// ----- json/object-curly-spacing -----
type JsonObjectCurlySpacing =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				arraysInObjects?: boolean
				objectsInObjects?: boolean
			},
	  ]
// ----- json/object-property-newline -----
type JsonObjectPropertyNewline =
	| []
	| [
			{
				allowAllPropertiesOnSameLine?: boolean
				allowMultiplePropertiesPerLine?: boolean
			},
	  ]
// ----- json/quote-props -----
type JsonQuoteProps =
	| []
	| ['always' | 'as-needed' | 'consistent' | 'consistent-as-needed']
	| []
	| ['always' | 'as-needed' | 'consistent' | 'consistent-as-needed']
	| [
			'always' | 'as-needed' | 'consistent' | 'consistent-as-needed',
			{
				keywords?: boolean
				unnecessary?: boolean
				numbers?: boolean
			},
	  ]
// ----- json/quotes -----
type JsonQuotes =
	| []
	| ['single' | 'double' | 'backtick']
	| [
			'single' | 'double' | 'backtick',
			(
				| 'avoid-escape'
				| {
						avoidEscape?: boolean
						allowTemplateLiterals?: boolean
				  }
			),
	  ]
// ----- json/sort-array-values -----
type JsonSortArrayValues = [
	{
		pathPattern: string
		order:
			| (
					| string
					| {
							valuePattern?: string
							order?: {
								type?: 'asc' | 'desc'
								caseSensitive?: boolean
								natural?: boolean
							}
					  }
			  )[]
			| {
					type?: 'asc' | 'desc'
					caseSensitive?: boolean
					natural?: boolean
			  }
		minValues?: number
	},
	...{
		pathPattern: string
		order:
			| (
					| string
					| {
							valuePattern?: string
							order?: {
								type?: 'asc' | 'desc'
								caseSensitive?: boolean
								natural?: boolean
							}
					  }
			  )[]
			| {
					type?: 'asc' | 'desc'
					caseSensitive?: boolean
					natural?: boolean
			  }
		minValues?: number
	}[],
]
// ----- json/sort-keys -----
type JsonSortKeys =
	| [
			{
				pathPattern: string
				hasProperties?: string[]
				order:
					| (
							| string
							| {
									keyPattern?: string
									order?: {
										type?: 'asc' | 'desc'
										caseSensitive?: boolean
										natural?: boolean
									}
							  }
					  )[]
					| {
							type?: 'asc' | 'desc'
							caseSensitive?: boolean
							natural?: boolean
					  }
				minKeys?: number
				allowLineSeparatedGroups?: boolean
			},
			...{
				pathPattern: string
				hasProperties?: string[]
				order:
					| (
							| string
							| {
									keyPattern?: string
									order?: {
										type?: 'asc' | 'desc'
										caseSensitive?: boolean
										natural?: boolean
									}
							  }
					  )[]
					| {
							type?: 'asc' | 'desc'
							caseSensitive?: boolean
							natural?: boolean
					  }
				minKeys?: number
				allowLineSeparatedGroups?: boolean
			}[],
	  ]
	| []
	| ['asc' | 'desc']
	| [
			'asc' | 'desc',
			{
				caseSensitive?: boolean
				natural?: boolean
				minKeys?: number
				allowLineSeparatedGroups?: boolean
			},
	  ]
// ----- json/space-unary-ops -----
type JsonSpaceUnaryOps =
	| []
	| [
			{
				words?: boolean
				nonwords?: boolean
				overrides?: {
					[k: string]: boolean | undefined
				}
			},
	  ]
// ----- jsx-a11y/accessible-emoji -----
type JsxA11YAccessibleEmoji =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/alt-text -----
type JsxA11YAltText =
	| []
	| [
			{
				elements?: string[]
				img?: string[]
				object?: string[]
				area?: string[]
				'input[type="image"]'?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/anchor-ambiguous-text -----
type JsxA11YAnchorAmbiguousText =
	| []
	| [
			{
				words?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/anchor-has-content -----
type JsxA11YAnchorHasContent =
	| []
	| [
			{
				components?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/anchor-is-valid -----
type JsxA11YAnchorIsValid =
	| []
	| [
			{
				components?: string[]
				specialLink?: string[]

				aspects?: [
					'noHref' | 'invalidHref' | 'preferButton',
					...('noHref' | 'invalidHref' | 'preferButton')[],
				]
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/aria-activedescendant-has-tabindex -----
type JsxA11YAriaActivedescendantHasTabindex =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/aria-props -----
type JsxA11YAriaProps =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/aria-proptypes -----
type JsxA11YAriaProptypes =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/aria-role -----
type JsxA11YAriaRole =
	| []
	| [
			{
				allowedInvalidRoles?: string[]
				ignoreNonDOM?: boolean
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/aria-unsupported-elements -----
type JsxA11YAriaUnsupportedElements =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/autocomplete-valid -----
type JsxA11YAutocompleteValid =
	| []
	| [
			{
				inputComponents?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/click-events-have-key-events -----
type JsxA11YClickEventsHaveKeyEvents =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/control-has-associated-label -----
type JsxA11YControlHasAssociatedLabel =
	| []
	| [
			{
				labelAttributes?: string[]
				controlComponents?: string[]
				ignoreElements?: string[]
				ignoreRoles?: string[]

				depth?: number
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/heading-has-content -----
type JsxA11YHeadingHasContent =
	| []
	| [
			{
				components?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/html-has-lang -----
type JsxA11YHtmlHasLang =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/iframe-has-title -----
type JsxA11YIframeHasTitle =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/img-redundant-alt -----
type JsxA11YImgRedundantAlt =
	| []
	| [
			{
				components?: string[]
				words?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/interactive-supports-focus -----
type JsxA11YInteractiveSupportsFocus =
	| []
	| [
			{
				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'
				)[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/label-has-associated-control -----
type JsxA11YLabelHasAssociatedControl =
	| []
	| [
			{
				labelComponents?: string[]
				labelAttributes?: string[]
				controlComponents?: string[]

				assert?: 'htmlFor' | 'nesting' | 'both' | 'either'

				depth?: number
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/label-has-for -----
type JsxA11YLabelHasFor =
	| []
	| [
			{
				components?: string[]
				required?:
					| ('nesting' | 'id')
					| {
							some: ('nesting' | 'id')[]
							[k: string]: unknown | undefined
					  }
					| {
							every: ('nesting' | 'id')[]
							[k: string]: unknown | undefined
					  }
				allowChildren?: boolean
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/lang -----
type JsxA11YLang =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/media-has-caption -----
type JsxA11YMediaHasCaption =
	| []
	| [
			{
				audio?: string[]
				video?: string[]
				track?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/mouse-events-have-key-events -----
type JsxA11YMouseEventsHaveKeyEvents =
	| []
	| [
			{
				hoverInHandlers?: string[]

				hoverOutHandlers?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/no-access-key -----
type JsxA11YNoAccessKey =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/no-aria-hidden-on-focusable -----
type JsxA11YNoAriaHiddenOnFocusable =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/no-autofocus -----
type JsxA11YNoAutofocus =
	| []
	| [
			{
				ignoreNonDOM?: boolean
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/no-distracting-elements -----
type JsxA11YNoDistractingElements =
	| []
	| [
			{
				elements?: ('marquee' | 'blink')[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/no-interactive-element-to-noninteractive-role -----
type JsxA11YNoInteractiveElementToNoninteractiveRole =
	| []
	| [
			{
				[k: string]: string[] | undefined
			},
	  ]
// ----- jsx-a11y/no-noninteractive-element-interactions -----
type JsxA11YNoNoninteractiveElementInteractions =
	| []
	| [
			{
				handlers?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/no-noninteractive-element-to-interactive-role -----
type JsxA11YNoNoninteractiveElementToInteractiveRole =
	| []
	| [
			{
				[k: string]: string[] | undefined
			},
	  ]
// ----- jsx-a11y/no-noninteractive-tabindex -----
type JsxA11YNoNoninteractiveTabindex =
	| []
	| [
			{
				roles?: string[]

				tags?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/no-onchange -----
type JsxA11YNoOnchange =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/no-redundant-roles -----
type JsxA11YNoRedundantRoles =
	| []
	| [
			{
				[k: string]: string[] | undefined
			},
	  ]
// ----- jsx-a11y/no-static-element-interactions -----
type JsxA11YNoStaticElementInteractions =
	| []
	| [
			{
				handlers?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/prefer-tag-over-role -----
type JsxA11YPreferTagOverRole =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/role-has-required-aria-props -----
type JsxA11YRoleHasRequiredAriaProps =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/role-supports-aria-props -----
type JsxA11YRoleSupportsAriaProps =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/scope -----
type JsxA11YScope =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-a11y/tabindex-no-positive -----
type JsxA11YTabindexNoPositive =
	| []
	| [
			{
				[k: string]: unknown | undefined
			},
	  ]
// ----- jsx-quotes -----
type JsxQuotes = [] | ['prefer-single' | 'prefer-double']
// ----- key-spacing -----
type KeySpacing =
	| []
	| [
			| {
					align?:
						| ('colon' | 'value')
						| {
								mode?: 'strict' | 'minimum'
								on?: 'colon' | 'value'
								beforeColon?: boolean
								afterColon?: boolean
						  }
					mode?: 'strict' | 'minimum'
					beforeColon?: boolean
					afterColon?: boolean
			  }
			| {
					singleLine?: {
						mode?: 'strict' | 'minimum'
						beforeColon?: boolean
						afterColon?: boolean
					}
					multiLine?: {
						align?:
							| ('colon' | 'value')
							| {
									mode?: 'strict' | 'minimum'
									on?: 'colon' | 'value'
									beforeColon?: boolean
									afterColon?: boolean
							  }
						mode?: 'strict' | 'minimum'
						beforeColon?: boolean
						afterColon?: boolean
					}
			  }
			| {
					singleLine?: {
						mode?: 'strict' | 'minimum'
						beforeColon?: boolean
						afterColon?: boolean
					}
					multiLine?: {
						mode?: 'strict' | 'minimum'
						beforeColon?: boolean
						afterColon?: boolean
					}
					align?: {
						mode?: 'strict' | 'minimum'
						on?: 'colon' | 'value'
						beforeColon?: boolean
						afterColon?: boolean
					}
			  },
	  ]
// ----- keyword-spacing -----
type KeywordSpacing =
	| []
	| [
			{
				before?: boolean
				after?: boolean
				overrides?: {
					abstract?: {
						before?: boolean
						after?: boolean
					}
					as?: {
						before?: boolean
						after?: boolean
					}
					async?: {
						before?: boolean
						after?: boolean
					}
					await?: {
						before?: boolean
						after?: boolean
					}
					boolean?: {
						before?: boolean
						after?: boolean
					}
					break?: {
						before?: boolean
						after?: boolean
					}
					byte?: {
						before?: boolean
						after?: boolean
					}
					case?: {
						before?: boolean
						after?: boolean
					}
					catch?: {
						before?: boolean
						after?: boolean
					}
					char?: {
						before?: boolean
						after?: boolean
					}
					class?: {
						before?: boolean
						after?: boolean
					}
					const?: {
						before?: boolean
						after?: boolean
					}
					continue?: {
						before?: boolean
						after?: boolean
					}
					debugger?: {
						before?: boolean
						after?: boolean
					}
					default?: {
						before?: boolean
						after?: boolean
					}
					delete?: {
						before?: boolean
						after?: boolean
					}
					do?: {
						before?: boolean
						after?: boolean
					}
					double?: {
						before?: boolean
						after?: boolean
					}
					else?: {
						before?: boolean
						after?: boolean
					}
					enum?: {
						before?: boolean
						after?: boolean
					}
					export?: {
						before?: boolean
						after?: boolean
					}
					extends?: {
						before?: boolean
						after?: boolean
					}
					false?: {
						before?: boolean
						after?: boolean
					}
					final?: {
						before?: boolean
						after?: boolean
					}
					finally?: {
						before?: boolean
						after?: boolean
					}
					float?: {
						before?: boolean
						after?: boolean
					}
					for?: {
						before?: boolean
						after?: boolean
					}
					from?: {
						before?: boolean
						after?: boolean
					}
					function?: {
						before?: boolean
						after?: boolean
					}
					get?: {
						before?: boolean
						after?: boolean
					}
					goto?: {
						before?: boolean
						after?: boolean
					}
					if?: {
						before?: boolean
						after?: boolean
					}
					implements?: {
						before?: boolean
						after?: boolean
					}
					import?: {
						before?: boolean
						after?: boolean
					}
					in?: {
						before?: boolean
						after?: boolean
					}
					instanceof?: {
						before?: boolean
						after?: boolean
					}
					int?: {
						before?: boolean
						after?: boolean
					}
					interface?: {
						before?: boolean
						after?: boolean
					}
					let?: {
						before?: boolean
						after?: boolean
					}
					long?: {
						before?: boolean
						after?: boolean
					}
					native?: {
						before?: boolean
						after?: boolean
					}
					new?: {
						before?: boolean
						after?: boolean
					}
					null?: {
						before?: boolean
						after?: boolean
					}
					of?: {
						before?: boolean
						after?: boolean
					}
					package?: {
						before?: boolean
						after?: boolean
					}
					private?: {
						before?: boolean
						after?: boolean
					}
					protected?: {
						before?: boolean
						after?: boolean
					}
					public?: {
						before?: boolean
						after?: boolean
					}
					return?: {
						before?: boolean
						after?: boolean
					}
					set?: {
						before?: boolean
						after?: boolean
					}
					short?: {
						before?: boolean
						after?: boolean
					}
					static?: {
						before?: boolean
						after?: boolean
					}
					super?: {
						before?: boolean
						after?: boolean
					}
					switch?: {
						before?: boolean
						after?: boolean
					}
					synchronized?: {
						before?: boolean
						after?: boolean
					}
					this?: {
						before?: boolean
						after?: boolean
					}
					throw?: {
						before?: boolean
						after?: boolean
					}
					throws?: {
						before?: boolean
						after?: boolean
					}
					transient?: {
						before?: boolean
						after?: boolean
					}
					true?: {
						before?: boolean
						after?: boolean
					}
					try?: {
						before?: boolean
						after?: boolean
					}
					typeof?: {
						before?: boolean
						after?: boolean
					}
					var?: {
						before?: boolean
						after?: boolean
					}
					void?: {
						before?: boolean
						after?: boolean
					}
					volatile?: {
						before?: boolean
						after?: boolean
					}
					while?: {
						before?: boolean
						after?: boolean
					}
					with?: {
						before?: boolean
						after?: boolean
					}
					yield?: {
						before?: boolean
						after?: boolean
					}
				}
			},
	  ]
// ----- line-comment-position -----
type LineCommentPosition =
	| []
	| [
			| ('above' | 'beside')
			| {
					position?: 'above' | 'beside'
					ignorePattern?: string
					applyDefaultPatterns?: boolean
					applyDefaultIgnorePatterns?: boolean
			  },
	  ]
// ----- linebreak-style -----
type LinebreakStyle = [] | ['unix' | 'windows']
// ----- lines-around-comment -----
type LinesAroundComment =
	| []
	| [
			{
				beforeBlockComment?: boolean
				afterBlockComment?: boolean
				beforeLineComment?: boolean
				afterLineComment?: boolean
				allowBlockStart?: boolean
				allowBlockEnd?: boolean
				allowClassStart?: boolean
				allowClassEnd?: boolean
				allowObjectStart?: boolean
				allowObjectEnd?: boolean
				allowArrayStart?: boolean
				allowArrayEnd?: boolean
				ignorePattern?: string
				applyDefaultIgnorePatterns?: boolean
				afterHashbangComment?: boolean
			},
	  ]
// ----- lines-around-directive -----
type LinesAroundDirective =
	| []
	| [
			| ('always' | 'never')
			| {
					before?: 'always' | 'never'
					after?: 'always' | 'never'
			  },
	  ]
// ----- lines-between-class-members -----
type LinesBetweenClassMembers =
	| []
	| [
			| {
					enforce: [
						{
							blankLine: 'always' | 'never'
							prev: 'method' | 'field' | '*'
							next: 'method' | 'field' | '*'
						},
						...{
							blankLine: 'always' | 'never'
							prev: 'method' | 'field' | '*'
							next: 'method' | 'field' | '*'
						}[],
					]
			  }
			| ('always' | 'never'),
	  ]
	| [
			(
				| {
						enforce: [
							{
								blankLine: 'always' | 'never'
								prev: 'method' | 'field' | '*'
								next: 'method' | 'field' | '*'
							},
							...{
								blankLine: 'always' | 'never'
								prev: 'method' | 'field' | '*'
								next: 'method' | 'field' | '*'
							}[],
						]
				  }
				| ('always' | 'never')
			),
			{
				exceptAfterSingleLine?: boolean
			},
	  ]
// ----- logical-assignment-operators -----
type LogicalAssignmentOperators = (
	| []
	| ['always']
	| [
			'always',
			{
				enforceForIfStatements?: boolean
			},
	  ]
	| ['never']
) &
	unknown[]
// ----- max-classes-per-file -----
type MaxClassesPerFile =
	| []
	| [
			| number
			| {
					ignoreExpressions?: boolean
					max?: number
			  },
	  ]
// ----- max-depth -----
type MaxDepth =
	| []
	| [
			| number
			| {
					maximum?: number
					max?: number
			  },
	  ]
// ----- max-len -----
type MaxLen =
	| []
	| [
			| {
					code?: number
					comments?: number
					tabWidth?: number
					ignorePattern?: string
					ignoreComments?: boolean
					ignoreStrings?: boolean
					ignoreUrls?: boolean
					ignoreTemplateLiterals?: boolean
					ignoreRegExpLiterals?: boolean
					ignoreTrailingComments?: boolean
			  }
			| number,
	  ]
	| [
			(
				| {
						code?: number
						comments?: number
						tabWidth?: number
						ignorePattern?: string
						ignoreComments?: boolean
						ignoreStrings?: boolean
						ignoreUrls?: boolean
						ignoreTemplateLiterals?: boolean
						ignoreRegExpLiterals?: boolean
						ignoreTrailingComments?: boolean
				  }
				| number
			),
			(
				| {
						code?: number
						comments?: number
						tabWidth?: number
						ignorePattern?: string
						ignoreComments?: boolean
						ignoreStrings?: boolean
						ignoreUrls?: boolean
						ignoreTemplateLiterals?: boolean
						ignoreRegExpLiterals?: boolean
						ignoreTrailingComments?: boolean
				  }
				| number
			),
	  ]
	| [
			(
				| {
						code?: number
						comments?: number
						tabWidth?: number
						ignorePattern?: string
						ignoreComments?: boolean
						ignoreStrings?: boolean
						ignoreUrls?: boolean
						ignoreTemplateLiterals?: boolean
						ignoreRegExpLiterals?: boolean
						ignoreTrailingComments?: boolean
				  }
				| number
			),
			(
				| {
						code?: number
						comments?: number
						tabWidth?: number
						ignorePattern?: string
						ignoreComments?: boolean
						ignoreStrings?: boolean
						ignoreUrls?: boolean
						ignoreTemplateLiterals?: boolean
						ignoreRegExpLiterals?: boolean
						ignoreTrailingComments?: boolean
				  }
				| number
			),
			{
				code?: number
				comments?: number
				tabWidth?: number
				ignorePattern?: string
				ignoreComments?: boolean
				ignoreStrings?: boolean
				ignoreUrls?: boolean
				ignoreTemplateLiterals?: boolean
				ignoreRegExpLiterals?: boolean
				ignoreTrailingComments?: boolean
			},
	  ]
// ----- max-lines -----
type MaxLines =
	| []
	| [
			| number
			| {
					max?: number
					skipComments?: boolean
					skipBlankLines?: boolean
			  },
	  ]
// ----- max-lines-per-function -----
type MaxLinesPerFunction =
	| []
	| [
			| {
					max?: number
					skipComments?: boolean
					skipBlankLines?: boolean
					IIFEs?: boolean
			  }
			| number,
	  ]
// ----- max-nested-callbacks -----
type MaxNestedCallbacks =
	| []
	| [
			| number
			| {
					maximum?: number
					max?: number
			  },
	  ]
// ----- max-params -----
type MaxParams =
	| []
	| [
			| number
			| {
					maximum?: number
					max?: number

					countVoidThis?: boolean
			  },
	  ]
// ----- max-statements -----
type MaxStatements =
	| []
	| [
			| number
			| {
					maximum?: number
					max?: number
			  },
	  ]
	| [
			(
				| number
				| {
						maximum?: number
						max?: number
				  }
			),
			{
				ignoreTopLevelFunctions?: boolean
			},
	  ]
// ----- max-statements-per-line -----
type MaxStatementsPerLine =
	| []
	| [
			{
				max?: number
			},
	  ]
// ----- multiline-comment-style -----
type MultilineCommentStyle =
	| []
	| ['starred-block' | 'bare-block']
	| []
	| ['separate-lines']
	| [
			'separate-lines',
			{
				checkJSDoc?: boolean
			},
	  ]
// ----- multiline-ternary -----
type MultilineTernary = [] | ['always' | 'always-multiline' | 'never']
// ----- new-cap -----
type NewCap =
	| []
	| [
			{
				newIsCap?: boolean
				capIsNew?: boolean
				newIsCapExceptions?: string[]
				newIsCapExceptionPattern?: string
				capIsNewExceptions?: string[]
				capIsNewExceptionPattern?: string
				properties?: boolean
			},
	  ]
// ----- new-parens -----
type NewParens = [] | ['always' | 'never']
// ----- newline-after-var -----
type NewlineAfterVar = [] | ['never' | 'always']
// ----- newline-per-chained-call -----
type NewlinePerChainedCall =
	| []
	| [
			{
				ignoreChainWithDepth?: number
			},
	  ]
// ----- no-bitwise -----
type NoBitwise =
	| []
	| [
			{
				allow?: (
					| '^'
					| '|'
					| '&'
					| '<<'
					| '>>'
					| '>>>'
					| '^='
					| '|='
					| '&='
					| '<<='
					| '>>='
					| '>>>='
					| '~'
				)[]
				int32Hint?: boolean
			},
	  ]
// ----- no-cond-assign -----
type NoCondAssign = [] | ['except-parens' | 'always']
// ----- no-confusing-arrow -----
type NoConfusingArrow =
	| []
	| [
			{
				allowParens?: boolean
				onlyOneSimpleParam?: boolean
			},
	  ]
// ----- no-console -----
type NoConsole =
	| []
	| [
			{
				allow?: [string, ...string[]]
			},
	  ]
// ----- no-constant-condition -----
type NoConstantCondition =
	| []
	| [
			{
				checkLoops?: 'all' | 'allExceptWhileTrue' | 'none' | true | false
			},
	  ]
// ----- no-duplicate-imports -----
type NoDuplicateImports =
	| []
	| [
			{
				includeExports?: boolean
			},
	  ]
// ----- no-else-return -----
type NoElseReturn =
	| []
	| [
			{
				allowElseIf?: boolean
			},
	  ]
// ----- no-empty -----
type NoEmpty =
	| []
	| [
			{
				allowEmptyCatch?: boolean
			},
	  ]
// ----- no-empty-function -----
type NoEmptyFunction =
	| []
	| [
			{
				allow?: (
					| 'functions'
					| 'arrowFunctions'
					| 'generatorFunctions'
					| 'methods'
					| 'generatorMethods'
					| 'getters'
					| 'setters'
					| 'constructors'
					| 'asyncFunctions'
					| 'asyncMethods'
					| 'privateConstructors'
					| 'protectedConstructors'
					| 'decoratedFunctions'
					| 'overrideMethods'
				)[]
			},
	  ]
// ----- no-empty-pattern -----
type NoEmptyPattern =
	| []
	| [
			{
				allowObjectPatternsAsParameters?: boolean
			},
	  ]
// ----- no-eval -----
type NoEval =
	| []
	| [
			{
				allowIndirect?: boolean
			},
	  ]
// ----- no-extend-native -----
type NoExtendNative =
	| []
	| [
			{
				exceptions?: string[]
			},
	  ]
// ----- no-extra-boolean-cast -----
type NoExtraBooleanCast =
	| []
	| [
			| {
					enforceForInnerExpressions?: boolean
			  }
			| {
					enforceForLogicalOperands?: boolean
			  },
	  ]
// ----- no-extra-parens -----
type NoExtraParens =
	| []
	| ['functions']
	| []
	| ['all']
	| [
			'all',
			{
				conditionalAssign?: boolean
				ternaryOperandBinaryExpressions?: boolean
				nestedBinaryExpressions?: boolean
				returnAssign?: boolean
				ignoreJSX?: 'none' | 'all' | 'single-line' | 'multi-line'
				enforceForArrowConditionals?: boolean
				enforceForSequenceExpressions?: boolean
				enforceForNewInMemberExpressions?: boolean
				enforceForFunctionPrototypeMethods?: boolean
				allowParensAfterCommentPattern?: string
			},
	  ]
// ----- no-fallthrough -----
type NoFallthrough =
	| []
	| [
			{
				commentPattern?: string
				allowEmptyCase?: boolean
				reportUnusedFallthroughComment?: boolean
			},
	  ]
// ----- no-global-assign -----
type NoGlobalAssign =
	| []
	| [
			{
				exceptions?: string[]
			},
	  ]
// ----- no-implicit-coercion -----
type NoImplicitCoercion =
	| []
	| [
			{
				boolean?: boolean
				number?: boolean
				string?: boolean
				disallowTemplateShorthand?: boolean
				allow?: ('~' | '!!' | '+' | '- -' | '-' | '*')[]
			},
	  ]
// ----- no-implicit-globals -----
type NoImplicitGlobals =
	| []
	| [
			{
				lexicalBindings?: boolean
			},
	  ]
// ----- no-inline-comments -----
type NoInlineComments =
	| []
	| [
			{
				ignorePattern?: string
			},
	  ]
// ----- no-inner-declarations -----
type NoInnerDeclarations =
	| []
	| ['functions' | 'both']
	| [
			'functions' | 'both',
			{
				blockScopedFunctions?: 'allow' | 'disallow'
			},
	  ]
// ----- no-invalid-regexp -----
type NoInvalidRegexp =
	| []
	| [
			{
				allowConstructorFlags?: string[]
			},
	  ]
// ----- no-invalid-this -----
type NoInvalidThis =
	| []
	| [
			{
				capIsConstructor?: boolean
			},
	  ]
// ----- no-irregular-whitespace -----
type NoIrregularWhitespace =
	| []
	| [
			{
				skipComments?: boolean
				skipStrings?: boolean
				skipTemplates?: boolean
				skipRegExps?: boolean
				skipJSXText?: boolean
			},
	  ]
// ----- no-labels -----
type NoLabels =
	| []
	| [
			{
				allowLoop?: boolean
				allowSwitch?: boolean
			},
	  ]
// ----- no-magic-numbers -----
type NoMagicNumbers =
	| []
	| [
			{
				detectObjects?: boolean
				enforceConst?: boolean
				ignore?: (number | string)[]
				ignoreArrayIndexes?: boolean
				ignoreDefaultValues?: boolean
				ignoreClassFieldInitialValues?: boolean
				ignoreEnums?: boolean
				ignoreNumericLiteralTypes?: boolean
				ignoreReadonlyClassProperties?: boolean
				ignoreTypeIndexes?: boolean
			},
	  ]
// ----- no-misleading-character-class -----
type NoMisleadingCharacterClass =
	| []
	| [
			{
				allowEscape?: boolean
			},
	  ]
// ----- no-mixed-operators -----
type NoMixedOperators =
	| []
	| [
			{
				groups?: [
					(
						| '+'
						| '-'
						| '*'
						| '/'
						| '%'
						| '**'
						| '&'
						| '|'
						| '^'
						| '~'
						| '<<'
						| '>>'
						| '>>>'
						| '=='
						| '!='
						| '==='
						| '!=='
						| '>'
						| '>='
						| '<'
						| '<='
						| '&&'
						| '||'
						| 'in'
						| 'instanceof'
						| '?:'
						| '??'
					),
					(
						| '+'
						| '-'
						| '*'
						| '/'
						| '%'
						| '**'
						| '&'
						| '|'
						| '^'
						| '~'
						| '<<'
						| '>>'
						| '>>>'
						| '=='
						| '!='
						| '==='
						| '!=='
						| '>'
						| '>='
						| '<'
						| '<='
						| '&&'
						| '||'
						| 'in'
						| 'instanceof'
						| '?:'
						| '??'
					),
					...(
						| '+'
						| '-'
						| '*'
						| '/'
						| '%'
						| '**'
						| '&'
						| '|'
						| '^'
						| '~'
						| '<<'
						| '>>'
						| '>>>'
						| '=='
						| '!='
						| '==='
						| '!=='
						| '>'
						| '>='
						| '<'
						| '<='
						| '&&'
						| '||'
						| 'in'
						| 'instanceof'
						| '?:'
						| '??'
					)[],
				][]
				allowSamePrecedence?: boolean
			},
	  ]
// ----- no-mixed-requires -----
type NoMixedRequires =
	| []
	| [
			| boolean
			| {
					grouping?: boolean
					allowCall?: boolean
			  },
	  ]
// ----- no-mixed-spaces-and-tabs -----
type NoMixedSpacesAndTabs = [] | ['smart-tabs' | true | false]
// ----- no-multi-assign -----
type NoMultiAssign =
	| []
	| [
			{
				ignoreNonDeclaration?: boolean
			},
	  ]
// ----- no-multi-spaces -----
type NoMultiSpaces =
	| []
	| [
			{
				exceptions?: {
					[k: string]: boolean
				}
				ignoreEOLComments?: boolean
			},
	  ]
// ----- no-multiple-empty-lines -----
type NoMultipleEmptyLines =
	| []
	| [
			{
				max: number
				maxEOF?: number
				maxBOF?: number
			},
	  ]
// ----- no-native-reassign -----
type NoNativeReassign =
	| []
	| [
			{
				exceptions?: string[]
			},
	  ]
// ----- no-param-reassign -----
type NoParamReassign =
	| []
	| [
			| {
					props?: false
			  }
			| {
					props?: true
					ignorePropertyModificationsFor?: string[]
					ignorePropertyModificationsForRegex?: string[]
			  },
	  ]
// ----- no-plusplus -----
type NoPlusplus =
	| []
	| [
			{
				allowForLoopAfterthoughts?: boolean
			},
	  ]
// ----- no-promise-executor-return -----
type NoPromiseExecutorReturn =
	| []
	| [
			{
				allowVoid?: boolean
			},
	  ]
// ----- no-redeclare -----
type NoRedeclare =
	| []
	| [
			{
				builtinGlobals?: boolean
			},
	  ]
// ----- no-restricted-exports -----
type NoRestrictedExports =
	| []
	| [
			| {
					restrictedNamedExports?: string[]
					restrictedNamedExportsPattern?: string
			  }
			| {
					restrictedNamedExports?: string[]
					restrictedNamedExportsPattern?: string
					restrictDefaultExports?: {
						direct?: boolean
						named?: boolean
						defaultFrom?: boolean
						namedFrom?: boolean
						namespaceFrom?: boolean
					}
			  },
	  ]
// ----- no-restricted-globals -----
type NoRestrictedGlobals = (
	| string
	| {
			name: string
			message?: string
	  }
)[]
// ----- no-restricted-imports -----
type NoRestrictedImports =
	| (
			| string
			| {
					name: string
					message?: string
					importNames?: string[]
					allowImportNames?: string[]
			  }
	  )[]
	| []
	| [
			{
				paths?: (
					| string
					| {
							name: string
							message?: string
							importNames?: string[]
							allowImportNames?: string[]
					  }
				)[]
				patterns?:
					| string[]
					| (
							| {
									[k: string]: unknown | undefined
							  }
							| {
									[k: string]: unknown | undefined
							  }
					  )[]
			},
	  ]
// ----- no-restricted-modules -----
type NoRestrictedModules =
	| (
			| string
			| {
					name: string
					message?: string
			  }
	  )[]
	| {
			paths?: (
				| string
				| {
						name: string
						message?: string
				  }
			)[]
			patterns?: string[]
	  }[]
// ----- no-restricted-properties -----
type NoRestrictedProperties = (
	| {
			[k: string]: unknown | undefined
	  }
	| {
			[k: string]: unknown | undefined
	  }
)[]
// ----- no-restricted-syntax -----
type NoRestrictedSyntax = (
	| string
	| {
			selector: string
			message?: string
	  }
)[]
// ----- no-return-assign -----
type NoReturnAssign = [] | ['except-parens' | 'always']
// ----- no-self-assign -----
type NoSelfAssign =
	| []
	| [
			{
				props?: boolean
			},
	  ]
// ----- no-sequences -----
type NoSequences =
	| []
	| [
			{
				allowInParentheses?: boolean
			},
	  ]
// ----- no-shadow -----
type NoShadow =
	| []
	| [
			{
				builtinGlobals?: boolean
				hoist?: 'all' | 'functions' | 'never' | 'types' | 'functions-and-types'
				allow?: string[]
				ignoreOnInitialization?: boolean
				ignoreTypeValueShadow?: boolean
				ignoreFunctionTypeParameterNameValueShadow?: boolean
			},
	  ]
// ----- no-shadow-restricted-names -----
type NoShadowRestrictedNames =
	| []
	| [
			{
				reportGlobalThis?: boolean
			},
	  ]
// ----- no-sync -----
type NoSync =
	| []
	| [
			{
				allowAtRootLevel?: boolean
			},
	  ]
// ----- no-tabs -----
type NoTabs =
	| []
	| [
			{
				allowIndentationTabs?: boolean
			},
	  ]
// ----- no-trailing-spaces -----
type NoTrailingSpaces =
	| []
	| [
			{
				skipBlankLines?: boolean
				ignoreComments?: boolean
			},
	  ]
// ----- no-undef -----
type NoUndef =
	| []
	| [
			{
				typeof?: boolean
			},
	  ]
// ----- no-underscore-dangle -----
type NoUnderscoreDangle =
	| []
	| [
			{
				allow?: string[]
				allowAfterThis?: boolean
				allowAfterSuper?: boolean
				allowAfterThisConstructor?: boolean
				enforceInMethodNames?: boolean
				allowFunctionParams?: boolean
				enforceInClassFields?: boolean
				allowInArrayDestructuring?: boolean
				allowInObjectDestructuring?: boolean
			},
	  ]
// ----- no-unneeded-ternary -----
type NoUnneededTernary =
	| []
	| [
			{
				defaultAssignment?: boolean
			},
	  ]
// ----- no-unreachable-loop -----
type NoUnreachableLoop =
	| []
	| [
			{
				ignore?: (
					| 'WhileStatement'
					| 'DoWhileStatement'
					| 'ForStatement'
					| 'ForInStatement'
					| 'ForOfStatement'
				)[]
			},
	  ]
// ----- no-unsafe-negation -----
type NoUnsafeNegation =
	| []
	| [
			{
				enforceForOrderingRelations?: boolean
			},
	  ]
// ----- no-unsafe-optional-chaining -----
type NoUnsafeOptionalChaining =
	| []
	| [
			{
				disallowArithmeticOperators?: boolean
			},
	  ]
// ----- no-unused-expressions -----
type NoUnusedExpressions =
	| []
	| [
			{
				allowShortCircuit?: boolean
				allowTernary?: boolean
				allowTaggedTemplates?: boolean
				enforceForJSX?: boolean
				ignoreDirectives?: boolean
			},
	  ]
// ----- no-unused-vars -----
type NoUnusedVars =
	| []
	| [
			| ('all' | 'local')
			| {
					vars?: 'all' | 'local'
					varsIgnorePattern?: string
					args?: 'all' | 'after-used' | 'none'
					ignoreRestSiblings?: boolean
					argsIgnorePattern?: string
					caughtErrors?: 'all' | 'none'
					caughtErrorsIgnorePattern?: string
					destructuredArrayIgnorePattern?: string
					ignoreClassWithStaticInitBlock?: boolean
					reportUsedIgnorePattern?: boolean
			  },
	  ]
// ----- no-use-before-define -----
type NoUseBeforeDefine =
	| []
	| [
			| 'nofunc'
			| {
					functions?: boolean
					classes?: boolean
					variables?: boolean
					allowNamedExports?: boolean
					enums?: boolean
					typedefs?: boolean
					ignoreTypeReferences?: boolean
			  },
	  ]
// ----- no-useless-computed-key -----
type NoUselessComputedKey =
	| []
	| [
			{
				enforceForClassMembers?: boolean
			},
	  ]
// ----- no-useless-escape -----
type NoUselessEscape =
	| []
	| [
			{
				allowRegexCharacters?: string[]
			},
	  ]
// ----- no-useless-rename -----
type NoUselessRename =
	| []
	| [
			{
				ignoreDestructuring?: boolean
				ignoreImport?: boolean
				ignoreExport?: boolean
			},
	  ]
// ----- no-void -----
type NoVoid =
	| []
	| [
			{
				allowAsStatement?: boolean
			},
	  ]
// ----- no-warning-comments -----
type NoWarningComments =
	| []
	| [
			{
				terms?: string[]
				location?: 'start' | 'anywhere'

				decoration?: [string, ...string[]]
			},
	  ]
// ----- node/callback-return -----
type NodeCallbackReturn = [] | [string[]]
// ----- node/exports-style -----
type NodeExportsStyle =
	| []
	| ['module.exports' | 'exports']
	| [
			'module.exports' | 'exports',
			{
				allowBatchAssign?: boolean
			},
	  ]
// ----- node/file-extension-in-import -----
type NodeFileExtensionInImport =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				[k: string]: ('always' | 'never') | undefined
			},
	  ]
// ----- node/handle-callback-err -----
type NodeHandleCallbackErr = [] | [string]
// ----- node/hashbang -----
type NodeHashbang =
	| []
	| [
			{
				convertPath?:
					| {
							[k: string]: [string, string]
					  }
					| [
							{
								include: [string, ...string[]]
								exclude?: string[]

								replace: [string, string]
							},
							...{
								include: [string, ...string[]]
								exclude?: string[]

								replace: [string, string]
							}[],
					  ]
				ignoreUnpublished?: boolean
				additionalExecutables?: string[]
				executableMap?: {
					[k: string]: string
				}
			},
	  ]
// ----- node/no-deprecated-api -----
type NodeNoDeprecatedApi =
	| []
	| [
			{
				version?: string
				ignoreModuleItems?: (
					| '_linklist'
					| '_stream_wrap'
					| 'async_hooks.currentId'
					| 'async_hooks.triggerId'
					| 'buffer.Buffer()'
					| 'new buffer.Buffer()'
					| 'buffer.SlowBuffer'
					| 'constants'
					| 'crypto._toBuf'
					| 'crypto.Credentials'
					| 'crypto.DEFAULT_ENCODING'
					| 'crypto.createCipher'
					| 'crypto.createCredentials'
					| 'crypto.createDecipher'
					| 'crypto.fips'
					| 'crypto.prng'
					| 'crypto.pseudoRandomBytes'
					| 'crypto.rng'
					| 'domain'
					| 'events.EventEmitter.listenerCount'
					| 'events.listenerCount'
					| 'freelist'
					| 'fs.SyncWriteStream'
					| 'fs.exists'
					| 'fs.lchmod'
					| 'fs.lchmodSync'
					| 'http.createClient'
					| 'module.Module.createRequireFromPath'
					| 'module.Module.requireRepl'
					| 'module.Module._debug'
					| 'module.createRequireFromPath'
					| 'module.requireRepl'
					| 'module._debug'
					| 'net._setSimultaneousAccepts'
					| 'os.getNetworkInterfaces'
					| 'os.tmpDir'
					| 'path._makeLong'
					| 'process.EventEmitter'
					| 'process.assert'
					| 'process.binding'
					| 'process.env.NODE_REPL_HISTORY_FILE'
					| 'process.report.triggerReport'
					| 'punycode'
					| 'readline.codePointAt'
					| 'readline.getStringWidth'
					| 'readline.isFullWidthCodePoint'
					| 'readline.stripVTControlCharacters'
					| 'repl.REPLServer'
					| 'repl.Recoverable'
					| 'repl.REPL_MODE_MAGIC'
					| 'safe-buffer.Buffer()'
					| 'new safe-buffer.Buffer()'
					| 'safe-buffer.SlowBuffer'
					| 'sys'
					| 'timers.enroll'
					| 'timers.unenroll'
					| 'tls.CleartextStream'
					| 'tls.CryptoStream'
					| 'tls.SecurePair'
					| 'tls.convertNPNProtocols'
					| 'tls.createSecurePair'
					| 'tls.parseCertString'
					| 'tty.setRawMode'
					| 'url.parse'
					| 'url.resolve'
					| 'util.debug'
					| 'util.error'
					| 'util.isArray'
					| 'util.isBoolean'
					| 'util.isBuffer'
					| 'util.isDate'
					| 'util.isError'
					| 'util.isFunction'
					| 'util.isNull'
					| 'util.isNullOrUndefined'
					| 'util.isNumber'
					| 'util.isObject'
					| 'util.isPrimitive'
					| 'util.isRegExp'
					| 'util.isString'
					| 'util.isSymbol'
					| 'util.isUndefined'
					| 'util.log'
					| 'util.print'
					| 'util.pump'
					| 'util.puts'
					| 'util._extend'
					| 'vm.runInDebugContext'
					| 'zlib.BrotliCompress()'
					| 'zlib.BrotliDecompress()'
					| 'zlib.Deflate()'
					| 'zlib.DeflateRaw()'
					| 'zlib.Gunzip()'
					| 'zlib.Gzip()'
					| 'zlib.Inflate()'
					| 'zlib.InflateRaw()'
					| 'zlib.Unzip()'
				)[]
				ignoreGlobalItems?: (
					| 'Buffer()'
					| 'new Buffer()'
					| 'COUNTER_NET_SERVER_CONNECTION'
					| 'COUNTER_NET_SERVER_CONNECTION_CLOSE'
					| 'COUNTER_HTTP_SERVER_REQUEST'
					| 'COUNTER_HTTP_SERVER_RESPONSE'
					| 'COUNTER_HTTP_CLIENT_REQUEST'
					| 'COUNTER_HTTP_CLIENT_RESPONSE'
					| 'GLOBAL'
					| 'Intl.v8BreakIterator'
					| 'require.extensions'
					| 'root'
					| 'process.EventEmitter'
					| 'process.assert'
					| 'process.binding'
					| 'process.env.NODE_REPL_HISTORY_FILE'
					| 'process.report.triggerReport'
				)[]
				ignoreIndirectDependencies?: boolean
			},
	  ]
// ----- node/no-extraneous-import -----
type NodeNoExtraneousImport =
	| []
	| [
			{
				allowModules?: string[]
				convertPath?:
					| {
							[k: string]: [string, string]
					  }
					| [
							{
								include: [string, ...string[]]
								exclude?: string[]

								replace: [string, string]
							},
							...{
								include: [string, ...string[]]
								exclude?: string[]

								replace: [string, string]
							}[],
					  ]
				resolvePaths?: string[]
				resolverConfig?: {
					[k: string]: unknown | undefined
				}
			},
	  ]
// ----- node/no-extraneous-require -----
type NodeNoExtraneousRequire =
	| []
	| [
			{
				allowModules?: string[]
				convertPath?:
					| {
							[k: string]: [string, string]
					  }
					| [
							{
								include: [string, ...string[]]
								exclude?: string[]

								replace: [string, string]
							},
							...{
								include: [string, ...string[]]
								exclude?: string[]

								replace: [string, string]
							}[],
					  ]
				resolvePaths?: string[]
				resolverConfig?: {
					[k: string]: unknown | undefined
				}
				tryExtensions?: string[]
			},
	  ]
// ----- node/no-hide-core-modules -----
type NodeNoHideCoreModules =
	| []
	| [
			{
				allow?: (
					| 'assert'
					| 'buffer'
					| 'child_process'
					| 'cluster'
					| 'console'
					| 'constants'
					| 'crypto'
					| 'dgram'
					| 'dns'
					| 'events'
					| 'fs'
					| 'http'
					| 'https'
					| 'module'
					| 'net'
					| 'os'
					| 'path'
					| 'querystring'
					| 'readline'
					| 'repl'
					| 'stream'
					| 'string_decoder'
					| 'timers'
					| 'tls'
					| 'tty'
					| 'url'
					| 'util'
					| 'vm'
					| 'zlib'
				)[]
				ignoreDirectDependencies?: boolean
				ignoreIndirectDependencies?: boolean
			},
	  ]
// ----- node/no-missing-import -----
type NodeNoMissingImport =
	| []
	| [
			{
				allowModules?: string[]
				resolvePaths?: string[]
				resolverConfig?: {
					[k: string]: unknown | undefined
				}
				tryExtensions?: string[]
				ignoreTypeImport?: boolean
				tsconfigPath?: string
				typescriptExtensionMap?:
					| unknown[][]
					| ('react' | 'react-jsx' | 'react-jsxdev' | 'react-native' | 'preserve')
			},
	  ]
// ----- node/no-missing-require -----
type NodeNoMissingRequire =
	| []
	| [
			{
				allowModules?: string[]
				tryExtensions?: string[]
				resolvePaths?: string[]
				resolverConfig?: {
					[k: string]: unknown | undefined
				}
				typescriptExtensionMap?:
					| unknown[][]
					| ('react' | 'react-jsx' | 'react-jsxdev' | 'react-native' | 'preserve')
				tsconfigPath?: string
			},
	  ]
// ----- node/no-mixed-requires -----
type NodeNoMixedRequires =
	| []
	| [
			| boolean
			| {
					grouping?: boolean
					allowCall?: boolean
			  },
	  ]
// ----- node/no-process-env -----
type NodeNoProcessEnv =
	| []
	| [
			{
				allowedVariables?: string[]
			},
	  ]
// ----- node/no-restricted-import -----
type NodeNoRestrictedImport =
	| []
	| [
			(
				| string
				| {
						name: string | string[]
						message?: string
				  }
			)[],
	  ]
// ----- node/no-restricted-require -----
type NodeNoRestrictedRequire =
	| []
	| [
			(
				| string
				| {
						name: string | string[]
						message?: string
				  }
			)[],
	  ]
// ----- node/no-sync -----
type NodeNoSync =
	| []
	| [
			{
				allowAtRootLevel?: boolean
				ignores?: (
					| string
					| {
							from?: 'file'
							path?: string
							name?: string[]
					  }
					| {
							from?: 'lib'
							name?: string[]
					  }
					| {
							from?: 'package'
							package?: string
							name?: string[]
					  }
				)[]
			},
	  ]
// ----- node/no-top-level-await -----
type NodeNoTopLevelAwait =
	| []
	| [
			{
				ignoreBin?: boolean
				convertPath?:
					| {
							[k: string]: [string, string]
					  }
					| [
							{
								include: [string, ...string[]]
								exclude?: string[]

								replace: [string, string]
							},
							...{
								include: [string, ...string[]]
								exclude?: string[]

								replace: [string, string]
							}[],
					  ]
			},
	  ]
// ----- node/no-unpublished-bin -----
type NodeNoUnpublishedBin =
	| []
	| [
			{
				convertPath?:
					| {
							[k: string]: [string, string]
					  }
					| [
							{
								include: [string, ...string[]]
								exclude?: string[]

								replace: [string, string]
							},
							...{
								include: [string, ...string[]]
								exclude?: string[]

								replace: [string, string]
							}[],
					  ]
				[k: string]: unknown | undefined
			},
	  ]
// ----- node/no-unpublished-import -----
type NodeNoUnpublishedImport =
	| []
	| [
			{
				allowModules?: string[]
				convertPath?:
					| {
							[k: string]: [string, string]
					  }
					| [
							{
								include: [string, ...string[]]
								exclude?: string[]

								replace: [string, string]
							},
							...{
								include: [string, ...string[]]
								exclude?: string[]

								replace: [string, string]
							}[],
					  ]
				resolvePaths?: string[]
				resolverConfig?: {
					[k: string]: unknown | undefined
				}
				tryExtensions?: string[]
				ignoreTypeImport?: boolean
				ignorePrivate?: boolean
			},
	  ]
// ----- node/no-unpublished-require -----
type NodeNoUnpublishedRequire =
	| []
	| [
			{
				allowModules?: string[]
				convertPath?:
					| {
							[k: string]: [string, string]
					  }
					| [
							{
								include: [string, ...string[]]
								exclude?: string[]

								replace: [string, string]
							},
							...{
								include: [string, ...string[]]
								exclude?: string[]

								replace: [string, string]
							}[],
					  ]
				resolvePaths?: string[]
				resolverConfig?: {
					[k: string]: unknown | undefined
				}
				tryExtensions?: string[]
				ignorePrivate?: boolean
			},
	  ]
// ----- node/no-unsupported-features/es-builtins -----
type NodeNoUnsupportedFeaturesEsBuiltins =
	| []
	| [
			{
				version?: string
				ignores?: (
					| 'AggregateError'
					| 'Array'
					| 'Array.from'
					| 'Array.isArray'
					| 'Array.length'
					| 'Array.of'
					| 'Array.toLocaleString'
					| 'ArrayBuffer'
					| 'ArrayBuffer.isView'
					| 'Atomics'
					| 'Atomics.add'
					| 'Atomics.and'
					| 'Atomics.compareExchange'
					| 'Atomics.exchange'
					| 'Atomics.isLockFree'
					| 'Atomics.load'
					| 'Atomics.notify'
					| 'Atomics.or'
					| 'Atomics.store'
					| 'Atomics.sub'
					| 'Atomics.wait'
					| 'Atomics.waitAsync'
					| 'Atomics.xor'
					| 'BigInt'
					| 'BigInt.asIntN'
					| 'BigInt.asUintN'
					| 'BigInt64Array'
					| 'BigInt64Array.BYTES_PER_ELEMENT'
					| 'BigInt64Array.from'
					| 'BigInt64Array.name'
					| 'BigInt64Array.of'
					| 'BigUint64Array'
					| 'BigUint64Array.BYTES_PER_ELEMENT'
					| 'BigUint64Array.from'
					| 'BigUint64Array.name'
					| 'BigUint64Array.of'
					| 'Boolean'
					| 'DataView'
					| 'Date'
					| 'Date.UTC'
					| 'Date.now'
					| 'Date.parse'
					| 'Date.toLocaleDateString'
					| 'Date.toLocaleString'
					| 'Date.toLocaleTimeString'
					| 'Error'
					| 'Error.cause'
					| 'EvalError'
					| 'FinalizationRegistry'
					| 'Float32Array'
					| 'Float32Array.BYTES_PER_ELEMENT'
					| 'Float32Array.from'
					| 'Float32Array.name'
					| 'Float32Array.of'
					| 'Float64Array'
					| 'Float64Array.BYTES_PER_ELEMENT'
					| 'Float64Array.from'
					| 'Float64Array.name'
					| 'Float64Array.of'
					| 'Function'
					| 'Function.length'
					| 'Function.name'
					| 'Infinity'
					| 'Int16Array'
					| 'Int16Array.BYTES_PER_ELEMENT'
					| 'Int16Array.from'
					| 'Int16Array.name'
					| 'Int16Array.of'
					| 'Int32Array'
					| 'Int32Array.BYTES_PER_ELEMENT'
					| 'Int32Array.from'
					| 'Int32Array.name'
					| 'Int32Array.of'
					| 'Int8Array'
					| 'Int8Array.BYTES_PER_ELEMENT'
					| 'Int8Array.from'
					| 'Int8Array.name'
					| 'Int8Array.of'
					| 'Intl'
					| 'Intl.Collator'
					| 'Intl.DateTimeFormat'
					| 'Intl.DisplayNames'
					| 'Intl.ListFormat'
					| 'Intl.Locale'
					| 'Intl.NumberFormat'
					| 'Intl.PluralRules'
					| 'Intl.RelativeTimeFormat'
					| 'Intl.Segmenter'
					| 'Intl.Segments'
					| 'Intl.getCanonicalLocales'
					| 'Intl.supportedValuesOf'
					| 'JSON'
					| 'JSON.parse'
					| 'JSON.stringify'
					| 'Map'
					| 'Map.groupBy'
					| 'Math'
					| 'Math.E'
					| 'Math.LN10'
					| 'Math.LN2'
					| 'Math.LOG10E'
					| 'Math.LOG2E'
					| 'Math.PI'
					| 'Math.SQRT1_2'
					| 'Math.SQRT2'
					| 'Math.abs'
					| 'Math.acos'
					| 'Math.acosh'
					| 'Math.asin'
					| 'Math.asinh'
					| 'Math.atan'
					| 'Math.atan2'
					| 'Math.atanh'
					| 'Math.cbrt'
					| 'Math.ceil'
					| 'Math.clz32'
					| 'Math.cos'
					| 'Math.cosh'
					| 'Math.exp'
					| 'Math.expm1'
					| 'Math.floor'
					| 'Math.fround'
					| 'Math.hypot'
					| 'Math.imul'
					| 'Math.log'
					| 'Math.log10'
					| 'Math.log1p'
					| 'Math.log2'
					| 'Math.max'
					| 'Math.min'
					| 'Math.pow'
					| 'Math.random'
					| 'Math.round'
					| 'Math.sign'
					| 'Math.sin'
					| 'Math.sinh'
					| 'Math.sqrt'
					| 'Math.tan'
					| 'Math.tanh'
					| 'Math.trunc'
					| 'NaN'
					| 'Number.EPSILON'
					| 'Number.MAX_SAFE_INTEGER'
					| 'Number.MAX_VALUE'
					| 'Number.MIN_SAFE_INTEGER'
					| 'Number.MIN_VALUE'
					| 'Number.NEGATIVE_INFINITY'
					| 'Number.NaN'
					| 'Number.POSITIVE_INFINITY'
					| 'Number.isFinite'
					| 'Number.isInteger'
					| 'Number.isNaN'
					| 'Number.isSafeInteger'
					| 'Number.parseFloat'
					| 'Number.parseInt'
					| 'Number.toLocaleString'
					| 'Object.assign'
					| 'Object.create'
					| 'Object.defineGetter'
					| 'Object.defineProperties'
					| 'Object.defineProperty'
					| 'Object.defineSetter'
					| 'Object.entries'
					| 'Object.freeze'
					| 'Object.fromEntries'
					| 'Object.getOwnPropertyDescriptor'
					| 'Object.getOwnPropertyDescriptors'
					| 'Object.getOwnPropertyNames'
					| 'Object.getOwnPropertySymbols'
					| 'Object.getPrototypeOf'
					| 'Object.groupBy'
					| 'Object.hasOwn'
					| 'Object.is'
					| 'Object.isExtensible'
					| 'Object.isFrozen'
					| 'Object.isSealed'
					| 'Object.keys'
					| 'Object.lookupGetter'
					| 'Object.lookupSetter'
					| 'Object.preventExtensions'
					| 'Object.proto'
					| 'Object.seal'
					| 'Object.setPrototypeOf'
					| 'Object.values'
					| 'Promise'
					| 'Promise.all'
					| 'Promise.allSettled'
					| 'Promise.any'
					| 'Promise.race'
					| 'Promise.reject'
					| 'Promise.resolve'
					| 'Proxy'
					| 'Proxy.revocable'
					| 'RangeError'
					| 'ReferenceError'
					| 'Reflect'
					| 'Reflect.apply'
					| 'Reflect.construct'
					| 'Reflect.defineProperty'
					| 'Reflect.deleteProperty'
					| 'Reflect.get'
					| 'Reflect.getOwnPropertyDescriptor'
					| 'Reflect.getPrototypeOf'
					| 'Reflect.has'
					| 'Reflect.isExtensible'
					| 'Reflect.ownKeys'
					| 'Reflect.preventExtensions'
					| 'Reflect.set'
					| 'Reflect.setPrototypeOf'
					| 'RegExp'
					| 'RegExp.dotAll'
					| 'RegExp.hasIndices'
					| 'RegExp.input'
					| 'RegExp.lastIndex'
					| 'RegExp.lastMatch'
					| 'RegExp.lastParen'
					| 'RegExp.leftContext'
					| 'RegExp.n'
					| 'RegExp.rightContext'
					| 'Set'
					| 'SharedArrayBuffer'
					| 'String'
					| 'String.fromCharCode'
					| 'String.fromCodePoint'
					| 'String.length'
					| 'String.localeCompare'
					| 'String.raw'
					| 'String.toLocaleLowerCase'
					| 'String.toLocaleUpperCase'
					| 'Symbol'
					| 'Symbol.asyncIterator'
					| 'Symbol.for'
					| 'Symbol.hasInstance'
					| 'Symbol.isConcatSpreadable'
					| 'Symbol.iterator'
					| 'Symbol.keyFor'
					| 'Symbol.match'
					| 'Symbol.matchAll'
					| 'Symbol.replace'
					| 'Symbol.search'
					| 'Symbol.species'
					| 'Symbol.split'
					| 'Symbol.toPrimitive'
					| 'Symbol.toStringTag'
					| 'Symbol.unscopables'
					| 'SyntaxError'
					| 'TypeError'
					| 'URIError'
					| 'Uint16Array'
					| 'Uint16Array.BYTES_PER_ELEMENT'
					| 'Uint16Array.from'
					| 'Uint16Array.name'
					| 'Uint16Array.of'
					| 'Uint32Array'
					| 'Uint32Array.BYTES_PER_ELEMENT'
					| 'Uint32Array.from'
					| 'Uint32Array.name'
					| 'Uint32Array.of'
					| 'Uint8Array'
					| 'Uint8Array.BYTES_PER_ELEMENT'
					| 'Uint8Array.from'
					| 'Uint8Array.name'
					| 'Uint8Array.of'
					| 'Uint8ClampedArray'
					| 'Uint8ClampedArray.BYTES_PER_ELEMENT'
					| 'Uint8ClampedArray.from'
					| 'Uint8ClampedArray.name'
					| 'Uint8ClampedArray.of'
					| 'WeakMap'
					| 'WeakRef'
					| 'WeakSet'
					| 'decodeURI'
					| 'decodeURIComponent'
					| 'encodeURI'
					| 'encodeURIComponent'
					| 'escape'
					| 'eval'
					| 'globalThis'
					| 'isFinite'
					| 'isNaN'
					| 'parseFloat'
					| 'parseInt'
					| 'unescape'
				)[]
			},
	  ]
// ----- node/no-unsupported-features/es-syntax -----
type NodeNoUnsupportedFeaturesEsSyntax =
	| []
	| [
			{
				version?: string
				ignores?: (
					| 'no-accessor-properties'
					| 'accessor-properties'
					| 'accessorProperties'
					| 'no-arbitrary-module-namespace-names'
					| 'arbitrary-module-namespace-names'
					| 'arbitraryModuleNamespaceNames'
					| 'no-array-from'
					| 'array-from'
					| 'arrayFrom'
					| 'no-array-isarray'
					| 'array-isarray'
					| 'arrayIsarray'
					| 'no-array-of'
					| 'array-of'
					| 'arrayOf'
					| 'no-array-prototype-copywithin'
					| 'array-prototype-copywithin'
					| 'arrayPrototypeCopywithin'
					| 'no-array-prototype-entries'
					| 'array-prototype-entries'
					| 'arrayPrototypeEntries'
					| 'no-array-prototype-every'
					| 'array-prototype-every'
					| 'arrayPrototypeEvery'
					| 'no-array-prototype-fill'
					| 'array-prototype-fill'
					| 'arrayPrototypeFill'
					| 'no-array-prototype-filter'
					| 'array-prototype-filter'
					| 'arrayPrototypeFilter'
					| 'no-array-prototype-find'
					| 'array-prototype-find'
					| 'arrayPrototypeFind'
					| 'no-array-prototype-findindex'
					| 'array-prototype-findindex'
					| 'arrayPrototypeFindindex'
					| 'no-array-prototype-findlast-findlastindex'
					| 'array-prototype-findlast-findlastindex'
					| 'arrayPrototypeFindlastFindlastindex'
					| 'no-array-prototype-flat'
					| 'array-prototype-flat'
					| 'arrayPrototypeFlat'
					| 'no-array-prototype-foreach'
					| 'array-prototype-foreach'
					| 'arrayPrototypeForeach'
					| 'no-array-prototype-includes'
					| 'array-prototype-includes'
					| 'arrayPrototypeIncludes'
					| 'no-array-prototype-indexof'
					| 'array-prototype-indexof'
					| 'arrayPrototypeIndexof'
					| 'no-array-prototype-keys'
					| 'array-prototype-keys'
					| 'arrayPrototypeKeys'
					| 'no-array-prototype-lastindexof'
					| 'array-prototype-lastindexof'
					| 'arrayPrototypeLastindexof'
					| 'no-array-prototype-map'
					| 'array-prototype-map'
					| 'arrayPrototypeMap'
					| 'no-array-prototype-reduce'
					| 'array-prototype-reduce'
					| 'arrayPrototypeReduce'
					| 'no-array-prototype-reduceright'
					| 'array-prototype-reduceright'
					| 'arrayPrototypeReduceright'
					| 'no-array-prototype-some'
					| 'array-prototype-some'
					| 'arrayPrototypeSome'
					| 'no-array-prototype-toreversed'
					| 'array-prototype-toreversed'
					| 'arrayPrototypeToreversed'
					| 'no-array-prototype-tosorted'
					| 'array-prototype-tosorted'
					| 'arrayPrototypeTosorted'
					| 'no-array-prototype-tospliced'
					| 'array-prototype-tospliced'
					| 'arrayPrototypeTospliced'
					| 'no-array-prototype-values'
					| 'array-prototype-values'
					| 'arrayPrototypeValues'
					| 'no-array-prototype-with'
					| 'array-prototype-with'
					| 'arrayPrototypeWith'
					| 'no-array-string-prototype-at'
					| 'array-string-prototype-at'
					| 'arrayStringPrototypeAt'
					| 'no-arrow-functions'
					| 'arrow-functions'
					| 'arrowFunctions'
					| 'no-async-functions'
					| 'async-functions'
					| 'asyncFunctions'
					| 'no-async-iteration'
					| 'async-iteration'
					| 'asyncIteration'
					| 'no-atomics-waitasync'
					| 'atomics-waitasync'
					| 'atomicsWaitasync'
					| 'no-atomics'
					| 'atomics'
					| 'no-bigint'
					| 'bigint'
					| 'no-binary-numeric-literals'
					| 'binary-numeric-literals'
					| 'binaryNumericLiterals'
					| 'no-block-scoped-functions'
					| 'block-scoped-functions'
					| 'blockScopedFunctions'
					| 'no-block-scoped-variables'
					| 'block-scoped-variables'
					| 'blockScopedVariables'
					| 'no-class-fields'
					| 'class-fields'
					| 'classFields'
					| 'no-class-static-block'
					| 'class-static-block'
					| 'classStaticBlock'
					| 'no-classes'
					| 'classes'
					| 'no-computed-properties'
					| 'computed-properties'
					| 'computedProperties'
					| 'no-date-now'
					| 'date-now'
					| 'dateNow'
					| 'no-date-prototype-getyear-setyear'
					| 'date-prototype-getyear-setyear'
					| 'datePrototypeGetyearSetyear'
					| 'no-date-prototype-togmtstring'
					| 'date-prototype-togmtstring'
					| 'datePrototypeTogmtstring'
					| 'no-default-parameters'
					| 'default-parameters'
					| 'defaultParameters'
					| 'no-destructuring'
					| 'destructuring'
					| 'no-dynamic-import'
					| 'dynamic-import'
					| 'dynamicImport'
					| 'no-error-cause'
					| 'error-cause'
					| 'errorCause'
					| 'no-escape-unescape'
					| 'escape-unescape'
					| 'escapeUnescape'
					| 'no-exponential-operators'
					| 'exponential-operators'
					| 'exponentialOperators'
					| 'no-export-ns-from'
					| 'export-ns-from'
					| 'exportNsFrom'
					| 'no-for-of-loops'
					| 'for-of-loops'
					| 'forOfLoops'
					| 'no-function-declarations-in-if-statement-clauses-without-block'
					| 'function-declarations-in-if-statement-clauses-without-block'
					| 'functionDeclarationsInIfStatementClausesWithoutBlock'
					| 'no-function-prototype-bind'
					| 'function-prototype-bind'
					| 'functionPrototypeBind'
					| 'no-generators'
					| 'generators'
					| 'no-global-this'
					| 'global-this'
					| 'globalThis'
					| 'no-hashbang'
					| 'hashbang'
					| 'no-import-meta'
					| 'import-meta'
					| 'importMeta'
					| 'no-initializers-in-for-in'
					| 'initializers-in-for-in'
					| 'initializersInForIn'
					| 'no-intl-datetimeformat-prototype-formatrange'
					| 'intl-datetimeformat-prototype-formatrange'
					| 'intlDatetimeformatPrototypeFormatrange'
					| 'no-intl-datetimeformat-prototype-formattoparts'
					| 'intl-datetimeformat-prototype-formattoparts'
					| 'intlDatetimeformatPrototypeFormattoparts'
					| 'no-intl-displaynames'
					| 'intl-displaynames'
					| 'intlDisplaynames'
					| 'no-intl-getcanonicallocales'
					| 'intl-getcanonicallocales'
					| 'intlGetcanonicallocales'
					| 'no-intl-listformat'
					| 'intl-listformat'
					| 'intlListformat'
					| 'no-intl-locale'
					| 'intl-locale'
					| 'intlLocale'
					| 'no-intl-numberformat-prototype-formatrange'
					| 'intl-numberformat-prototype-formatrange'
					| 'intlNumberformatPrototypeFormatrange'
					| 'no-intl-numberformat-prototype-formatrangetoparts'
					| 'intl-numberformat-prototype-formatrangetoparts'
					| 'intlNumberformatPrototypeFormatrangetoparts'
					| 'no-intl-numberformat-prototype-formattoparts'
					| 'intl-numberformat-prototype-formattoparts'
					| 'intlNumberformatPrototypeFormattoparts'
					| 'no-intl-pluralrules-prototype-selectrange'
					| 'intl-pluralrules-prototype-selectrange'
					| 'intlPluralrulesPrototypeSelectrange'
					| 'no-intl-pluralrules'
					| 'intl-pluralrules'
					| 'intlPluralrules'
					| 'no-intl-relativetimeformat'
					| 'intl-relativetimeformat'
					| 'intlRelativetimeformat'
					| 'no-intl-segmenter'
					| 'intl-segmenter'
					| 'intlSegmenter'
					| 'no-intl-supportedvaluesof'
					| 'intl-supportedvaluesof'
					| 'intlSupportedvaluesof'
					| 'no-json-superset'
					| 'json-superset'
					| 'jsonSuperset'
					| 'no-json'
					| 'json'
					| 'no-keyword-properties'
					| 'keyword-properties'
					| 'keywordProperties'
					| 'no-labelled-function-declarations'
					| 'labelled-function-declarations'
					| 'labelledFunctionDeclarations'
					| 'no-legacy-object-prototype-accessor-methods'
					| 'legacy-object-prototype-accessor-methods'
					| 'legacyObjectPrototypeAccessorMethods'
					| 'no-logical-assignment-operators'
					| 'logical-assignment-operators'
					| 'logicalAssignmentOperators'
					| 'no-malformed-template-literals'
					| 'malformed-template-literals'
					| 'malformedTemplateLiterals'
					| 'no-map'
					| 'map'
					| 'no-math-acosh'
					| 'math-acosh'
					| 'mathAcosh'
					| 'no-math-asinh'
					| 'math-asinh'
					| 'mathAsinh'
					| 'no-math-atanh'
					| 'math-atanh'
					| 'mathAtanh'
					| 'no-math-cbrt'
					| 'math-cbrt'
					| 'mathCbrt'
					| 'no-math-clz32'
					| 'math-clz32'
					| 'mathClz32'
					| 'no-math-cosh'
					| 'math-cosh'
					| 'mathCosh'
					| 'no-math-expm1'
					| 'math-expm1'
					| 'mathExpm1'
					| 'no-math-fround'
					| 'math-fround'
					| 'mathFround'
					| 'no-math-hypot'
					| 'math-hypot'
					| 'mathHypot'
					| 'no-math-imul'
					| 'math-imul'
					| 'mathImul'
					| 'no-math-log10'
					| 'math-log10'
					| 'mathLog10'
					| 'no-math-log1p'
					| 'math-log1p'
					| 'mathLog1p'
					| 'no-math-log2'
					| 'math-log2'
					| 'mathLog2'
					| 'no-math-sign'
					| 'math-sign'
					| 'mathSign'
					| 'no-math-sinh'
					| 'math-sinh'
					| 'mathSinh'
					| 'no-math-tanh'
					| 'math-tanh'
					| 'mathTanh'
					| 'no-math-trunc'
					| 'math-trunc'
					| 'mathTrunc'
					| 'no-modules'
					| 'modules'
					| 'no-new-target'
					| 'new-target'
					| 'newTarget'
					| 'new.target'
					| 'no-nullish-coalescing-operators'
					| 'nullish-coalescing-operators'
					| 'nullishCoalescingOperators'
					| 'no-number-epsilon'
					| 'number-epsilon'
					| 'numberEpsilon'
					| 'no-number-isfinite'
					| 'number-isfinite'
					| 'numberIsfinite'
					| 'no-number-isinteger'
					| 'number-isinteger'
					| 'numberIsinteger'
					| 'no-number-isnan'
					| 'number-isnan'
					| 'numberIsnan'
					| 'no-number-issafeinteger'
					| 'number-issafeinteger'
					| 'numberIssafeinteger'
					| 'no-number-maxsafeinteger'
					| 'number-maxsafeinteger'
					| 'numberMaxsafeinteger'
					| 'no-number-minsafeinteger'
					| 'number-minsafeinteger'
					| 'numberMinsafeinteger'
					| 'no-number-parsefloat'
					| 'number-parsefloat'
					| 'numberParsefloat'
					| 'no-number-parseint'
					| 'number-parseint'
					| 'numberParseint'
					| 'no-numeric-separators'
					| 'numeric-separators'
					| 'numericSeparators'
					| 'no-object-assign'
					| 'object-assign'
					| 'objectAssign'
					| 'no-object-create'
					| 'object-create'
					| 'objectCreate'
					| 'no-object-defineproperties'
					| 'object-defineproperties'
					| 'objectDefineproperties'
					| 'no-object-defineproperty'
					| 'object-defineproperty'
					| 'objectDefineproperty'
					| 'no-object-entries'
					| 'object-entries'
					| 'objectEntries'
					| 'no-object-freeze'
					| 'object-freeze'
					| 'objectFreeze'
					| 'no-object-fromentries'
					| 'object-fromentries'
					| 'objectFromentries'
					| 'no-object-getownpropertydescriptor'
					| 'object-getownpropertydescriptor'
					| 'objectGetownpropertydescriptor'
					| 'no-object-getownpropertydescriptors'
					| 'object-getownpropertydescriptors'
					| 'objectGetownpropertydescriptors'
					| 'no-object-getownpropertynames'
					| 'object-getownpropertynames'
					| 'objectGetownpropertynames'
					| 'no-object-getownpropertysymbols'
					| 'object-getownpropertysymbols'
					| 'objectGetownpropertysymbols'
					| 'no-object-getprototypeof'
					| 'object-getprototypeof'
					| 'objectGetprototypeof'
					| 'no-object-hasown'
					| 'object-hasown'
					| 'objectHasown'
					| 'no-object-is'
					| 'object-is'
					| 'objectIs'
					| 'no-object-isextensible'
					| 'object-isextensible'
					| 'objectIsextensible'
					| 'no-object-isfrozen'
					| 'object-isfrozen'
					| 'objectIsfrozen'
					| 'no-object-issealed'
					| 'object-issealed'
					| 'objectIssealed'
					| 'no-object-keys'
					| 'object-keys'
					| 'objectKeys'
					| 'no-object-map-groupby'
					| 'object-map-groupby'
					| 'objectMapGroupby'
					| 'no-object-preventextensions'
					| 'object-preventextensions'
					| 'objectPreventextensions'
					| 'no-object-seal'
					| 'object-seal'
					| 'objectSeal'
					| 'no-object-setprototypeof'
					| 'object-setprototypeof'
					| 'objectSetprototypeof'
					| 'no-object-super-properties'
					| 'object-super-properties'
					| 'objectSuperProperties'
					| 'no-object-values'
					| 'object-values'
					| 'objectValues'
					| 'no-octal-numeric-literals'
					| 'octal-numeric-literals'
					| 'octalNumericLiterals'
					| 'no-optional-catch-binding'
					| 'optional-catch-binding'
					| 'optionalCatchBinding'
					| 'no-optional-chaining'
					| 'optional-chaining'
					| 'optionalChaining'
					| 'no-private-in'
					| 'private-in'
					| 'privateIn'
					| 'no-promise-all-settled'
					| 'promise-all-settled'
					| 'promiseAllSettled'
					| 'no-promise-any'
					| 'promise-any'
					| 'promiseAny'
					| 'no-promise-prototype-finally'
					| 'promise-prototype-finally'
					| 'promisePrototypeFinally'
					| 'no-promise-withresolvers'
					| 'promise-withresolvers'
					| 'promiseWithresolvers'
					| 'no-promise'
					| 'promise'
					| 'no-property-shorthands'
					| 'property-shorthands'
					| 'propertyShorthands'
					| 'no-proxy'
					| 'proxy'
					| 'no-reflect'
					| 'reflect'
					| 'no-regexp-d-flag'
					| 'regexp-d-flag'
					| 'regexpDFlag'
					| 'no-regexp-lookbehind-assertions'
					| 'regexp-lookbehind-assertions'
					| 'regexpLookbehindAssertions'
					| 'regexpLookbehind'
					| 'no-regexp-named-capture-groups'
					| 'regexp-named-capture-groups'
					| 'regexpNamedCaptureGroups'
					| 'no-regexp-prototype-compile'
					| 'regexp-prototype-compile'
					| 'regexpPrototypeCompile'
					| 'no-regexp-prototype-flags'
					| 'regexp-prototype-flags'
					| 'regexpPrototypeFlags'
					| 'no-regexp-s-flag'
					| 'regexp-s-flag'
					| 'regexpSFlag'
					| 'regexpS'
					| 'no-regexp-u-flag'
					| 'regexp-u-flag'
					| 'regexpUFlag'
					| 'regexpU'
					| 'no-regexp-unicode-property-escapes-2019'
					| 'regexp-unicode-property-escapes-2019'
					| 'regexpUnicodePropertyEscapes2019'
					| 'no-regexp-unicode-property-escapes-2020'
					| 'regexp-unicode-property-escapes-2020'
					| 'regexpUnicodePropertyEscapes2020'
					| 'no-regexp-unicode-property-escapes-2021'
					| 'regexp-unicode-property-escapes-2021'
					| 'regexpUnicodePropertyEscapes2021'
					| 'no-regexp-unicode-property-escapes-2022'
					| 'regexp-unicode-property-escapes-2022'
					| 'regexpUnicodePropertyEscapes2022'
					| 'no-regexp-unicode-property-escapes-2023'
					| 'regexp-unicode-property-escapes-2023'
					| 'regexpUnicodePropertyEscapes2023'
					| 'no-regexp-unicode-property-escapes'
					| 'regexp-unicode-property-escapes'
					| 'regexpUnicodePropertyEscapes'
					| 'regexpUnicodeProperties'
					| 'no-regexp-v-flag'
					| 'regexp-v-flag'
					| 'regexpVFlag'
					| 'no-regexp-y-flag'
					| 'regexp-y-flag'
					| 'regexpYFlag'
					| 'regexpY'
					| 'no-resizable-and-growable-arraybuffers'
					| 'resizable-and-growable-arraybuffers'
					| 'resizableAndGrowableArraybuffers'
					| 'no-rest-parameters'
					| 'rest-parameters'
					| 'restParameters'
					| 'no-rest-spread-properties'
					| 'rest-spread-properties'
					| 'restSpreadProperties'
					| 'no-set'
					| 'set'
					| 'no-shadow-catch-param'
					| 'shadow-catch-param'
					| 'shadowCatchParam'
					| 'no-shared-array-buffer'
					| 'shared-array-buffer'
					| 'sharedArrayBuffer'
					| 'no-spread-elements'
					| 'spread-elements'
					| 'spreadElements'
					| 'no-string-create-html-methods'
					| 'string-create-html-methods'
					| 'stringCreateHtmlMethods'
					| 'no-string-fromcodepoint'
					| 'string-fromcodepoint'
					| 'stringFromcodepoint'
					| 'no-string-prototype-codepointat'
					| 'string-prototype-codepointat'
					| 'stringPrototypeCodepointat'
					| 'no-string-prototype-endswith'
					| 'string-prototype-endswith'
					| 'stringPrototypeEndswith'
					| 'no-string-prototype-includes'
					| 'string-prototype-includes'
					| 'stringPrototypeIncludes'
					| 'no-string-prototype-iswellformed-towellformed'
					| 'string-prototype-iswellformed-towellformed'
					| 'stringPrototypeIswellformedTowellformed'
					| 'no-string-prototype-matchall'
					| 'string-prototype-matchall'
					| 'stringPrototypeMatchall'
					| 'no-string-prototype-normalize'
					| 'string-prototype-normalize'
					| 'stringPrototypeNormalize'
					| 'no-string-prototype-padstart-padend'
					| 'string-prototype-padstart-padend'
					| 'stringPrototypePadstartPadend'
					| 'no-string-prototype-repeat'
					| 'string-prototype-repeat'
					| 'stringPrototypeRepeat'
					| 'no-string-prototype-replaceall'
					| 'string-prototype-replaceall'
					| 'stringPrototypeReplaceall'
					| 'no-string-prototype-startswith'
					| 'string-prototype-startswith'
					| 'stringPrototypeStartswith'
					| 'no-string-prototype-substr'
					| 'string-prototype-substr'
					| 'stringPrototypeSubstr'
					| 'no-string-prototype-trim'
					| 'string-prototype-trim'
					| 'stringPrototypeTrim'
					| 'no-string-prototype-trimleft-trimright'
					| 'string-prototype-trimleft-trimright'
					| 'stringPrototypeTrimleftTrimright'
					| 'no-string-prototype-trimstart-trimend'
					| 'string-prototype-trimstart-trimend'
					| 'stringPrototypeTrimstartTrimend'
					| 'no-string-raw'
					| 'string-raw'
					| 'stringRaw'
					| 'no-subclassing-builtins'
					| 'subclassing-builtins'
					| 'subclassingBuiltins'
					| 'no-symbol-prototype-description'
					| 'symbol-prototype-description'
					| 'symbolPrototypeDescription'
					| 'no-symbol'
					| 'symbol'
					| 'no-template-literals'
					| 'template-literals'
					| 'templateLiterals'
					| 'no-top-level-await'
					| 'top-level-await'
					| 'topLevelAwait'
					| 'no-trailing-commas'
					| 'trailing-commas'
					| 'trailingCommas'
					| 'no-trailing-function-commas'
					| 'trailing-function-commas'
					| 'trailingFunctionCommas'
					| 'trailingCommasInFunctions'
					| 'no-typed-arrays'
					| 'typed-arrays'
					| 'typedArrays'
					| 'no-unicode-codepoint-escapes'
					| 'unicode-codepoint-escapes'
					| 'unicodeCodepointEscapes'
					| 'unicodeCodePointEscapes'
					| 'no-weak-map'
					| 'weak-map'
					| 'weakMap'
					| 'no-weak-set'
					| 'weak-set'
					| 'weakSet'
					| 'no-weakrefs'
					| 'weakrefs'
				)[]
			},
	  ]
// ----- node/no-unsupported-features/node-builtins -----
type NodeNoUnsupportedFeaturesNodeBuiltins =
	| []
	| [
			{
				version?: string
				allowExperimental?: boolean
				ignores?: (
					| '__filename'
					| '__dirname'
					| 'require'
					| 'require.cache'
					| 'require.extensions'
					| 'require.main'
					| 'require.resolve'
					| 'require.resolve.paths'
					| 'module'
					| 'module.children'
					| 'module.exports'
					| 'module.filename'
					| 'module.id'
					| 'module.isPreloading'
					| 'module.loaded'
					| 'module.parent'
					| 'module.path'
					| 'module.paths'
					| 'module.require'
					| 'exports'
					| 'AbortController'
					| 'AbortSignal'
					| 'AbortSignal.abort'
					| 'AbortSignal.timeout'
					| 'AbortSignal.any'
					| 'DOMException'
					| 'FormData'
					| 'Headers'
					| 'MessageEvent'
					| 'Navigator'
					| 'Request'
					| 'Response'
					| 'WebAssembly'
					| 'WebSocket'
					| 'fetch'
					| 'global'
					| 'queueMicrotask'
					| 'navigator'
					| 'navigator.hardwareConcurrency'
					| 'navigator.language'
					| 'navigator.languages'
					| 'navigator.platform'
					| 'navigator.userAgent'
					| 'structuredClone'
					| 'localStorage'
					| 'sessionStorage'
					| 'Storage'
					| 'Blob'
					| 'new Buffer()'
					| 'Buffer'
					| 'Buffer.alloc'
					| 'Buffer.allocUnsafe'
					| 'Buffer.allocUnsafeSlow'
					| 'Buffer.byteLength'
					| 'Buffer.compare'
					| 'Buffer.concat'
					| 'Buffer.copyBytesFrom'
					| 'Buffer.from'
					| 'Buffer.isBuffer'
					| 'Buffer.isEncoding'
					| 'File'
					| 'atob'
					| 'btoa'
					| 'console'
					| 'console.profile'
					| 'console.profileEnd'
					| 'console.timeStamp'
					| 'console.Console'
					| 'console.assert'
					| 'console.clear'
					| 'console.count'
					| 'console.countReset'
					| 'console.debug'
					| 'console.dir'
					| 'console.dirxml'
					| 'console.error'
					| 'console.group'
					| 'console.groupCollapsed'
					| 'console.groupEnd'
					| 'console.info'
					| 'console.log'
					| 'console.table'
					| 'console.time'
					| 'console.timeEnd'
					| 'console.timeLog'
					| 'console.trace'
					| 'console.warn'
					| 'crypto'
					| 'crypto.subtle'
					| 'crypto.subtle.decrypt'
					| 'crypto.subtle.deriveBits'
					| 'crypto.subtle.deriveKey'
					| 'crypto.subtle.digest'
					| 'crypto.subtle.encrypt'
					| 'crypto.subtle.exportKey'
					| 'crypto.subtle.generateKey'
					| 'crypto.subtle.importKey'
					| 'crypto.subtle.sign'
					| 'crypto.subtle.unwrapKey'
					| 'crypto.subtle.verify'
					| 'crypto.subtle.wrapKey'
					| 'crypto.getRandomValues'
					| 'crypto.randomUUID'
					| 'Crypto'
					| 'CryptoKey'
					| 'SubtleCrypto'
					| 'CloseEvent'
					| 'CustomEvent'
					| 'Event'
					| 'EventSource'
					| 'EventTarget'
					| 'PerformanceEntry'
					| 'PerformanceMark'
					| 'PerformanceMeasure'
					| 'PerformanceObserver'
					| 'PerformanceObserverEntryList'
					| 'PerformanceResourceTiming'
					| 'performance'
					| 'performance.clearMarks'
					| 'performance.clearMeasures'
					| 'performance.clearResourceTimings'
					| 'performance.eventLoopUtilization'
					| 'performance.getEntries'
					| 'performance.getEntriesByName'
					| 'performance.getEntriesByType'
					| 'performance.mark'
					| 'performance.markResourceTiming'
					| 'performance.measure'
					| 'performance.nodeTiming'
					| 'performance.nodeTiming.bootstrapComplete'
					| 'performance.nodeTiming.environment'
					| 'performance.nodeTiming.idleTime'
					| 'performance.nodeTiming.loopExit'
					| 'performance.nodeTiming.loopStart'
					| 'performance.nodeTiming.nodeStart'
					| 'performance.nodeTiming.uvMetricsInfo'
					| 'performance.nodeTiming.v8Start'
					| 'performance.now'
					| 'performance.onresourcetimingbufferfull'
					| 'performance.setResourceTimingBufferSize'
					| 'performance.timeOrigin'
					| 'performance.timerify'
					| 'performance.toJSON'
					| 'process'
					| 'process.allowedNodeEnvironmentFlags'
					| 'process.availableMemory'
					| 'process.arch'
					| 'process.argv'
					| 'process.argv0'
					| 'process.channel'
					| 'process.config'
					| 'process.connected'
					| 'process.debugPort'
					| 'process.env'
					| 'process.execArgv'
					| 'process.execPath'
					| 'process.exitCode'
					| 'process.features.cached_builtins'
					| 'process.features.debug'
					| 'process.features.inspector'
					| 'process.features.ipv6'
					| 'process.features.require_module'
					| 'process.features.tls'
					| 'process.features.tls_alpn'
					| 'process.features.tls_ocsp'
					| 'process.features.tls_sni'
					| 'process.features.typescript'
					| 'process.features.uv'
					| 'process.finalization.register'
					| 'process.finalization.registerBeforeExit'
					| 'process.finalization.unregister'
					| 'process.getBuiltinModule'
					| 'process.mainModule'
					| 'process.noDeprecation'
					| 'process.permission'
					| 'process.pid'
					| 'process.platform'
					| 'process.ppid'
					| 'process.release'
					| 'process.report'
					| 'process.report.excludeEnv'
					| 'process.sourceMapsEnabled'
					| 'process.stdin'
					| 'process.stdin.isRaw'
					| 'process.stdin.isTTY'
					| 'process.stdin.setRawMode'
					| 'process.stdout'
					| 'process.stdout.clearLine'
					| 'process.stdout.clearScreenDown'
					| 'process.stdout.columns'
					| 'process.stdout.cursorTo'
					| 'process.stdout.getColorDepth'
					| 'process.stdout.getWindowSize'
					| 'process.stdout.hasColors'
					| 'process.stdout.isTTY'
					| 'process.stdout.moveCursor'
					| 'process.stdout.rows'
					| 'process.stderr'
					| 'process.stderr.clearLine'
					| 'process.stderr.clearScreenDown'
					| 'process.stderr.columns'
					| 'process.stderr.cursorTo'
					| 'process.stderr.getColorDepth'
					| 'process.stderr.getWindowSize'
					| 'process.stderr.hasColors'
					| 'process.stderr.isTTY'
					| 'process.stderr.moveCursor'
					| 'process.stderr.rows'
					| 'process.throwDeprecation'
					| 'process.title'
					| 'process.traceDeprecation'
					| 'process.version'
					| 'process.versions'
					| 'process.abort'
					| 'process.chdir'
					| 'process.constrainedMemory'
					| 'process.cpuUsage'
					| 'process.cwd'
					| 'process.disconnect'
					| 'process.dlopen'
					| 'process.emitWarning'
					| 'process.exit'
					| 'process.getActiveResourcesInfo'
					| 'process.getegid'
					| 'process.geteuid'
					| 'process.getgid'
					| 'process.getgroups'
					| 'process.getuid'
					| 'process.hasUncaughtExceptionCaptureCallback'
					| 'process.hrtime'
					| 'process.hrtime.bigint'
					| 'process.initgroups'
					| 'process.kill'
					| 'process.loadEnvFile'
					| 'process.memoryUsage'
					| 'process.rss'
					| 'process.nextTick'
					| 'process.resourceUsage'
					| 'process.send'
					| 'process.setegid'
					| 'process.seteuid'
					| 'process.setgid'
					| 'process.setgroups'
					| 'process.setuid'
					| 'process.setSourceMapsEnabled'
					| 'process.setUncaughtExceptionCaptureCallback'
					| 'process.umask'
					| 'process.uptime'
					| 'ReadableStream'
					| 'ReadableStream.from'
					| 'ReadableStreamDefaultReader'
					| 'ReadableStreamBYOBReader'
					| 'ReadableStreamDefaultController'
					| 'ReadableByteStreamController'
					| 'ReadableStreamBYOBRequest'
					| 'WritableStream'
					| 'WritableStreamDefaultWriter'
					| 'WritableStreamDefaultController'
					| 'TransformStream'
					| 'TransformStreamDefaultController'
					| 'ByteLengthQueuingStrategy'
					| 'CountQueuingStrategy'
					| 'TextEncoderStream'
					| 'TextDecoderStream'
					| 'CompressionStream'
					| 'DecompressionStream'
					| 'setInterval'
					| 'clearInterval'
					| 'setTimeout'
					| 'clearTimeout'
					| 'setImmediate'
					| 'clearImmediate'
					| 'URL'
					| 'URL.canParse'
					| 'URL.createObjectURL'
					| 'URL.revokeObjectURL'
					| 'URLSearchParams'
					| 'TextDecoder'
					| 'TextEncoder'
					| 'BroadcastChannel'
					| 'MessageChannel'
					| 'MessagePort'
					| 'assert'
					| 'assert.assert'
					| 'assert.deepEqual'
					| 'assert.deepStrictEqual'
					| 'assert.doesNotMatch'
					| 'assert.doesNotReject'
					| 'assert.doesNotThrow'
					| 'assert.equal'
					| 'assert.fail'
					| 'assert.ifError'
					| 'assert.match'
					| 'assert.notDeepEqual'
					| 'assert.notDeepStrictEqual'
					| 'assert.notEqual'
					| 'assert.notStrictEqual'
					| 'assert.ok'
					| 'assert.rejects'
					| 'assert.strictEqual'
					| 'assert.throws'
					| 'assert.CallTracker'
					| 'assert.strict'
					| 'assert.strict.assert'
					| 'assert.strict.deepEqual'
					| 'assert.strict.deepStrictEqual'
					| 'assert.strict.doesNotMatch'
					| 'assert.strict.doesNotReject'
					| 'assert.strict.doesNotThrow'
					| 'assert.strict.equal'
					| 'assert.strict.fail'
					| 'assert.strict.ifError'
					| 'assert.strict.match'
					| 'assert.strict.notDeepEqual'
					| 'assert.strict.notDeepStrictEqual'
					| 'assert.strict.notEqual'
					| 'assert.strict.notStrictEqual'
					| 'assert.strict.ok'
					| 'assert.strict.rejects'
					| 'assert.strict.strictEqual'
					| 'assert.strict.throws'
					| 'assert.strict.CallTracker'
					| 'assert/strict'
					| 'assert/strict.assert'
					| 'assert/strict.deepEqual'
					| 'assert/strict.deepStrictEqual'
					| 'assert/strict.doesNotMatch'
					| 'assert/strict.doesNotReject'
					| 'assert/strict.doesNotThrow'
					| 'assert/strict.equal'
					| 'assert/strict.fail'
					| 'assert/strict.ifError'
					| 'assert/strict.match'
					| 'assert/strict.notDeepEqual'
					| 'assert/strict.notDeepStrictEqual'
					| 'assert/strict.notEqual'
					| 'assert/strict.notStrictEqual'
					| 'assert/strict.ok'
					| 'assert/strict.rejects'
					| 'assert/strict.strictEqual'
					| 'assert/strict.throws'
					| 'assert/strict.CallTracker'
					| 'async_hooks'
					| 'async_hooks.createHook'
					| 'async_hooks.executionAsyncResource'
					| 'async_hooks.executionAsyncId'
					| 'async_hooks.triggerAsyncId'
					| 'async_hooks.AsyncLocalStorage'
					| 'async_hooks.AsyncLocalStorage.bind'
					| 'async_hooks.AsyncLocalStorage.snapshot'
					| 'async_hooks.AsyncResource'
					| 'async_hooks.AsyncResource.bind'
					| 'buffer'
					| 'buffer.constants'
					| 'buffer.INSPECT_MAX_BYTES'
					| 'buffer.kMaxLength'
					| 'buffer.kStringMaxLength'
					| 'buffer.atob'
					| 'buffer.btoa'
					| 'buffer.isAscii'
					| 'buffer.isUtf8'
					| 'buffer.resolveObjectURL'
					| 'buffer.transcode'
					| 'buffer.SlowBuffer'
					| 'buffer.Blob'
					| 'new buffer.Buffer()'
					| 'buffer.Buffer'
					| 'buffer.Buffer.alloc'
					| 'buffer.Buffer.allocUnsafe'
					| 'buffer.Buffer.allocUnsafeSlow'
					| 'buffer.Buffer.byteLength'
					| 'buffer.Buffer.compare'
					| 'buffer.Buffer.concat'
					| 'buffer.Buffer.copyBytesFrom'
					| 'buffer.Buffer.from'
					| 'buffer.Buffer.isBuffer'
					| 'buffer.Buffer.isEncoding'
					| 'buffer.File'
					| 'child_process'
					| 'child_process.exec'
					| 'child_process.execFile'
					| 'child_process.fork'
					| 'child_process.spawn'
					| 'child_process.execFileSync'
					| 'child_process.execSync'
					| 'child_process.spawnSync'
					| 'child_process.ChildProcess'
					| 'cluster'
					| 'cluster.isMaster'
					| 'cluster.isPrimary'
					| 'cluster.isWorker'
					| 'cluster.schedulingPolicy'
					| 'cluster.settings'
					| 'cluster.worker'
					| 'cluster.workers'
					| 'cluster.disconnect'
					| 'cluster.fork'
					| 'cluster.setupMaster'
					| 'cluster.setupPrimary'
					| 'cluster.Worker'
					| 'crypto.constants'
					| 'crypto.fips'
					| 'crypto.webcrypto'
					| 'crypto.webcrypto.subtle'
					| 'crypto.webcrypto.subtle.decrypt'
					| 'crypto.webcrypto.subtle.deriveBits'
					| 'crypto.webcrypto.subtle.deriveKey'
					| 'crypto.webcrypto.subtle.digest'
					| 'crypto.webcrypto.subtle.encrypt'
					| 'crypto.webcrypto.subtle.exportKey'
					| 'crypto.webcrypto.subtle.generateKey'
					| 'crypto.webcrypto.subtle.importKey'
					| 'crypto.webcrypto.subtle.sign'
					| 'crypto.webcrypto.subtle.unwrapKey'
					| 'crypto.webcrypto.subtle.verify'
					| 'crypto.webcrypto.subtle.wrapKey'
					| 'crypto.webcrypto.getRandomValues'
					| 'crypto.webcrypto.randomUUID'
					| 'crypto.checkPrime'
					| 'crypto.checkPrimeSync'
					| 'crypto.createCipher'
					| 'crypto.createCipheriv'
					| 'crypto.createDecipher'
					| 'crypto.createDecipheriv'
					| 'crypto.createDiffieHellman'
					| 'crypto.createDiffieHellmanGroup'
					| 'crypto.createECDH'
					| 'crypto.createHash'
					| 'crypto.createHmac'
					| 'crypto.createPrivateKey'
					| 'crypto.createPublicKey'
					| 'crypto.createSecretKey'
					| 'crypto.createSign'
					| 'crypto.createVerify'
					| 'crypto.diffieHellman'
					| 'crypto.generateKey'
					| 'crypto.generateKeyPair'
					| 'crypto.generateKeyPairSync'
					| 'crypto.generateKeySync'
					| 'crypto.generatePrime'
					| 'crypto.generatePrimeSync'
					| 'crypto.getCipherInfo'
					| 'crypto.getCiphers'
					| 'crypto.getCurves'
					| 'crypto.getDiffieHellman'
					| 'crypto.getFips'
					| 'crypto.getHashes'
					| 'crypto.hash'
					| 'crypto.hkdf'
					| 'crypto.hkdfSync'
					| 'crypto.pbkdf2'
					| 'crypto.pbkdf2Sync'
					| 'crypto.privateDecrypt'
					| 'crypto.privateEncrypt'
					| 'crypto.publicDecrypt'
					| 'crypto.publicEncrypt'
					| 'crypto.randomBytes'
					| 'crypto.randomFillSync'
					| 'crypto.randomFill'
					| 'crypto.randomInt'
					| 'crypto.scrypt'
					| 'crypto.scryptSync'
					| 'crypto.secureHeapUsed'
					| 'crypto.setEngine'
					| 'crypto.setFips'
					| 'crypto.sign'
					| 'crypto.timingSafeEqual'
					| 'crypto.verify'
					| 'crypto.Certificate'
					| 'crypto.Certificate.exportChallenge'
					| 'crypto.Certificate.exportPublicKey'
					| 'crypto.Certificate.verifySpkac'
					| 'crypto.Cipher'
					| 'crypto.Decipher'
					| 'crypto.DiffieHellman'
					| 'crypto.DiffieHellmanGroup'
					| 'crypto.ECDH'
					| 'crypto.ECDH.convertKey'
					| 'crypto.Hash()'
					| 'new crypto.Hash()'
					| 'crypto.Hash'
					| 'crypto.Hmac()'
					| 'new crypto.Hmac()'
					| 'crypto.Hmac'
					| 'crypto.KeyObject'
					| 'crypto.KeyObject.from'
					| 'crypto.Sign'
					| 'crypto.Verify'
					| 'crypto.X509Certificate'
					| 'dgram'
					| 'dgram.createSocket'
					| 'dgram.Socket'
					| 'diagnostics_channel'
					| 'diagnostics_channel.hasSubscribers'
					| 'diagnostics_channel.channel'
					| 'diagnostics_channel.subscribe'
					| 'diagnostics_channel.unsubscribe'
					| 'diagnostics_channel.tracingChannel'
					| 'diagnostics_channel.Channel'
					| 'diagnostics_channel.TracingChannel'
					| 'dns'
					| 'dns.Resolver'
					| 'dns.getServers'
					| 'dns.lookup'
					| 'dns.lookupService'
					| 'dns.resolve'
					| 'dns.resolve4'
					| 'dns.resolve6'
					| 'dns.resolveAny'
					| 'dns.resolveCname'
					| 'dns.resolveCaa'
					| 'dns.resolveMx'
					| 'dns.resolveNaptr'
					| 'dns.resolveNs'
					| 'dns.resolvePtr'
					| 'dns.resolveSoa'
					| 'dns.resolveSrv'
					| 'dns.resolveTxt'
					| 'dns.reverse'
					| 'dns.setDefaultResultOrder'
					| 'dns.getDefaultResultOrder'
					| 'dns.setServers'
					| 'dns.promises'
					| 'dns.promises.Resolver'
					| 'dns.promises.cancel'
					| 'dns.promises.getServers'
					| 'dns.promises.lookup'
					| 'dns.promises.lookupService'
					| 'dns.promises.resolve'
					| 'dns.promises.resolve4'
					| 'dns.promises.resolve6'
					| 'dns.promises.resolveAny'
					| 'dns.promises.resolveCaa'
					| 'dns.promises.resolveCname'
					| 'dns.promises.resolveMx'
					| 'dns.promises.resolveNaptr'
					| 'dns.promises.resolveNs'
					| 'dns.promises.resolvePtr'
					| 'dns.promises.resolveSoa'
					| 'dns.promises.resolveSrv'
					| 'dns.promises.resolveTxt'
					| 'dns.promises.reverse'
					| 'dns.promises.setDefaultResultOrder'
					| 'dns.promises.getDefaultResultOrder'
					| 'dns.promises.setServers'
					| 'dns/promises'
					| 'dns/promises.Resolver'
					| 'dns/promises.cancel'
					| 'dns/promises.getServers'
					| 'dns/promises.lookup'
					| 'dns/promises.lookupService'
					| 'dns/promises.resolve'
					| 'dns/promises.resolve4'
					| 'dns/promises.resolve6'
					| 'dns/promises.resolveAny'
					| 'dns/promises.resolveCaa'
					| 'dns/promises.resolveCname'
					| 'dns/promises.resolveMx'
					| 'dns/promises.resolveNaptr'
					| 'dns/promises.resolveNs'
					| 'dns/promises.resolvePtr'
					| 'dns/promises.resolveSoa'
					| 'dns/promises.resolveSrv'
					| 'dns/promises.resolveTxt'
					| 'dns/promises.reverse'
					| 'dns/promises.setDefaultResultOrder'
					| 'dns/promises.getDefaultResultOrder'
					| 'dns/promises.setServers'
					| 'domain'
					| 'domain.create'
					| 'domain.Domain'
					| 'events'
					| 'events.Event'
					| 'events.EventTarget'
					| 'events.CustomEvent'
					| 'events.NodeEventTarget'
					| 'events.EventEmitter'
					| 'events.EventEmitter.defaultMaxListeners'
					| 'events.EventEmitter.errorMonitor'
					| 'events.EventEmitter.captureRejections'
					| 'events.EventEmitter.captureRejectionSymbol'
					| 'events.EventEmitter.getEventListeners'
					| 'events.EventEmitter.getMaxListeners'
					| 'events.EventEmitter.once'
					| 'events.EventEmitter.listenerCount'
					| 'events.EventEmitter.on'
					| 'events.EventEmitter.setMaxListeners'
					| 'events.EventEmitter.addAbortListener'
					| 'events.EventEmitterAsyncResource'
					| 'events.EventEmitterAsyncResource.defaultMaxListeners'
					| 'events.EventEmitterAsyncResource.errorMonitor'
					| 'events.EventEmitterAsyncResource.captureRejections'
					| 'events.EventEmitterAsyncResource.captureRejectionSymbol'
					| 'events.EventEmitterAsyncResource.getEventListeners'
					| 'events.EventEmitterAsyncResource.getMaxListeners'
					| 'events.EventEmitterAsyncResource.once'
					| 'events.EventEmitterAsyncResource.listenerCount'
					| 'events.EventEmitterAsyncResource.on'
					| 'events.EventEmitterAsyncResource.setMaxListeners'
					| 'events.EventEmitterAsyncResource.addAbortListener'
					| 'events.defaultMaxListeners'
					| 'events.errorMonitor'
					| 'events.captureRejections'
					| 'events.captureRejectionSymbol'
					| 'events.getEventListeners'
					| 'events.getMaxListeners'
					| 'events.once'
					| 'events.listenerCount'
					| 'events.on'
					| 'events.setMaxListeners'
					| 'events.addAbortListener'
					| 'fs'
					| 'fs.promises'
					| 'fs.promises.FileHandle'
					| 'fs.promises.access'
					| 'fs.promises.appendFile'
					| 'fs.promises.chmod'
					| 'fs.promises.chown'
					| 'fs.promises.constants'
					| 'fs.promises.copyFile'
					| 'fs.promises.cp'
					| 'fs.promises.glob'
					| 'fs.promises.lchmod'
					| 'fs.promises.lchown'
					| 'fs.promises.link'
					| 'fs.promises.lstat'
					| 'fs.promises.lutimes'
					| 'fs.promises.mkdir'
					| 'fs.promises.mkdtemp'
					| 'fs.promises.open'
					| 'fs.promises.opendir'
					| 'fs.promises.readFile'
					| 'fs.promises.readdir'
					| 'fs.promises.readlink'
					| 'fs.promises.realpath'
					| 'fs.promises.rename'
					| 'fs.promises.rm'
					| 'fs.promises.rmdir'
					| 'fs.promises.stat'
					| 'fs.promises.statfs'
					| 'fs.promises.symlink'
					| 'fs.promises.truncate'
					| 'fs.promises.unlink'
					| 'fs.promises.utimes'
					| 'fs.promises.watch'
					| 'fs.promises.writeFile'
					| 'fs.access'
					| 'fs.appendFile'
					| 'fs.chmod'
					| 'fs.chown'
					| 'fs.close'
					| 'fs.copyFile'
					| 'fs.cp'
					| 'fs.createReadStream'
					| 'fs.createWriteStream'
					| 'fs.exists'
					| 'fs.fchmod'
					| 'fs.fchown'
					| 'fs.fdatasync'
					| 'fs.fstat'
					| 'fs.fsync'
					| 'fs.ftruncate'
					| 'fs.futimes'
					| 'fs.glob'
					| 'fs.lchmod'
					| 'fs.lchown'
					| 'fs.link'
					| 'fs.lstat'
					| 'fs.lutimes'
					| 'fs.mkdir'
					| 'fs.mkdtemp'
					| 'fs.native'
					| 'fs.open'
					| 'fs.openAsBlob'
					| 'fs.opendir'
					| 'fs.read'
					| 'fs.readdir'
					| 'fs.readFile'
					| 'fs.readlink'
					| 'fs.readv'
					| 'fs.realpath'
					| 'fs.realpath.native'
					| 'fs.rename'
					| 'fs.rm'
					| 'fs.rmdir'
					| 'fs.stat'
					| 'fs.statfs'
					| 'fs.symlink'
					| 'fs.truncate'
					| 'fs.unlink'
					| 'fs.unwatchFile'
					| 'fs.utimes'
					| 'fs.watch'
					| 'fs.watchFile'
					| 'fs.write'
					| 'fs.writeFile'
					| 'fs.writev'
					| 'fs.accessSync'
					| 'fs.appendFileSync'
					| 'fs.chmodSync'
					| 'fs.chownSync'
					| 'fs.closeSync'
					| 'fs.copyFileSync'
					| 'fs.cpSync'
					| 'fs.existsSync'
					| 'fs.fchmodSync'
					| 'fs.fchownSync'
					| 'fs.fdatasyncSync'
					| 'fs.fstatSync'
					| 'fs.fsyncSync'
					| 'fs.ftruncateSync'
					| 'fs.futimesSync'
					| 'fs.globSync'
					| 'fs.lchmodSync'
					| 'fs.lchownSync'
					| 'fs.linkSync'
					| 'fs.lstatSync'
					| 'fs.lutimesSync'
					| 'fs.mkdirSync'
					| 'fs.mkdtempSync'
					| 'fs.opendirSync'
					| 'fs.openSync'
					| 'fs.readdirSync'
					| 'fs.readFileSync'
					| 'fs.readlinkSync'
					| 'fs.readSync'
					| 'fs.readvSync'
					| 'fs.realpathSync'
					| 'fs.realpathSync.native'
					| 'fs.renameSync'
					| 'fs.rmdirSync'
					| 'fs.rmSync'
					| 'fs.statfsSync'
					| 'fs.statSync'
					| 'fs.symlinkSync'
					| 'fs.truncateSync'
					| 'fs.unlinkSync'
					| 'fs.utimesSync'
					| 'fs.writeFileSync'
					| 'fs.writeSync'
					| 'fs.writevSync'
					| 'fs.constants'
					| 'fs.Dir'
					| 'fs.Dirent'
					| 'fs.FSWatcher'
					| 'fs.StatWatcher'
					| 'fs.ReadStream'
					| 'fs.Stats()'
					| 'new fs.Stats()'
					| 'fs.Stats'
					| 'fs.StatFs'
					| 'fs.WriteStream'
					| 'fs.common_objects'
					| 'fs/promises'
					| 'fs/promises.FileHandle'
					| 'fs/promises.access'
					| 'fs/promises.appendFile'
					| 'fs/promises.chmod'
					| 'fs/promises.chown'
					| 'fs/promises.constants'
					| 'fs/promises.copyFile'
					| 'fs/promises.cp'
					| 'fs/promises.glob'
					| 'fs/promises.lchmod'
					| 'fs/promises.lchown'
					| 'fs/promises.link'
					| 'fs/promises.lstat'
					| 'fs/promises.lutimes'
					| 'fs/promises.mkdir'
					| 'fs/promises.mkdtemp'
					| 'fs/promises.open'
					| 'fs/promises.opendir'
					| 'fs/promises.readFile'
					| 'fs/promises.readdir'
					| 'fs/promises.readlink'
					| 'fs/promises.realpath'
					| 'fs/promises.rename'
					| 'fs/promises.rm'
					| 'fs/promises.rmdir'
					| 'fs/promises.stat'
					| 'fs/promises.statfs'
					| 'fs/promises.symlink'
					| 'fs/promises.truncate'
					| 'fs/promises.unlink'
					| 'fs/promises.utimes'
					| 'fs/promises.watch'
					| 'fs/promises.writeFile'
					| 'http2'
					| 'http2.constants'
					| 'http2.sensitiveHeaders'
					| 'http2.createServer'
					| 'http2.createSecureServer'
					| 'http2.connect'
					| 'http2.getDefaultSettings'
					| 'http2.getPackedSettings'
					| 'http2.getUnpackedSettings'
					| 'http2.performServerHandshake'
					| 'http2.Http2Session'
					| 'http2.ServerHttp2Session'
					| 'http2.ClientHttp2Session'
					| 'http2.Http2Stream'
					| 'http2.ClientHttp2Stream'
					| 'http2.ServerHttp2Stream'
					| 'http2.Http2Server'
					| 'http2.Http2SecureServer'
					| 'http2.Http2ServerRequest'
					| 'http2.Http2ServerResponse'
					| 'http'
					| 'http.METHODS'
					| 'http.STATUS_CODES'
					| 'http.globalAgent'
					| 'http.maxHeaderSize'
					| 'http.createServer'
					| 'http.get'
					| 'http.request'
					| 'http.validateHeaderName'
					| 'http.validateHeaderValue'
					| 'http.setMaxIdleHTTPParsers'
					| 'http.Agent'
					| 'http.ClientRequest'
					| 'http.Server'
					| 'http.ServerResponse'
					| 'http.IncomingMessage'
					| 'http.OutgoingMessage'
					| 'http.WebSocket'
					| 'https'
					| 'https.globalAgent'
					| 'https.createServer'
					| 'https.get'
					| 'https.request'
					| 'https.Agent'
					| 'https.Server'
					| 'inspector'
					| 'inspector.Session'
					| 'inspector.Network.loadingFailed'
					| 'inspector.Network.loadingFinished'
					| 'inspector.Network.requestWillBeSent'
					| 'inspector.Network.responseReceived'
					| 'inspector.console'
					| 'inspector.close'
					| 'inspector.open'
					| 'inspector.url'
					| 'inspector.waitForDebugger'
					| 'inspector/promises'
					| 'inspector/promises.Session'
					| 'inspector/promises.Network.loadingFailed'
					| 'inspector/promises.Network.loadingFinished'
					| 'inspector/promises.Network.requestWillBeSent'
					| 'inspector/promises.Network.responseReceived'
					| 'inspector/promises.console'
					| 'inspector/promises.close'
					| 'inspector/promises.open'
					| 'inspector/promises.url'
					| 'inspector/promises.waitForDebugger'
					| 'module.builtinModules'
					| 'module.constants.compileCacheStatus'
					| 'module.createRequire'
					| 'module.createRequireFromPath'
					| 'module.enableCompileCache'
					| 'module.findPackageJSON'
					| 'module.flushCompileCache'
					| 'module.getCompileCacheDir'
					| 'module.isBuiltin'
					| 'module.register'
					| 'module.stripTypeScriptTypes'
					| 'module.syncBuiltinESMExports'
					| 'module.findSourceMap'
					| 'module.SourceMap'
					| 'module.Module.builtinModules'
					| 'module.Module.createRequire'
					| 'module.Module.createRequireFromPath'
					| 'module.Module.enableCompileCache'
					| 'module.Module.findPackageJSON'
					| 'module.Module.flushCompileCache'
					| 'module.Module.getCompileCacheDir'
					| 'module.Module.isBuiltin'
					| 'module.Module.register'
					| 'module.Module.stripTypeScriptTypes'
					| 'module.Module.syncBuiltinESMExports'
					| 'module.Module.findSourceMap'
					| 'module.Module.SourceMap'
					| 'net'
					| 'net.connect'
					| 'net.createConnection'
					| 'net.createServer'
					| 'net.getDefaultAutoSelectFamily'
					| 'net.setDefaultAutoSelectFamily'
					| 'net.getDefaultAutoSelectFamilyAttemptTimeout'
					| 'net.setDefaultAutoSelectFamilyAttemptTimeout'
					| 'net.isIP'
					| 'net.isIPv4'
					| 'net.isIPv6'
					| 'net.BlockList'
					| 'net.SocketAddress'
					| 'net.Server'
					| 'net.Socket'
					| 'os'
					| 'os.EOL'
					| 'os.constants'
					| 'os.constants.priority'
					| 'os.devNull'
					| 'os.availableParallelism'
					| 'os.arch'
					| 'os.cpus'
					| 'os.endianness'
					| 'os.freemem'
					| 'os.getPriority'
					| 'os.homedir'
					| 'os.hostname'
					| 'os.loadavg'
					| 'os.machine'
					| 'os.networkInterfaces'
					| 'os.platform'
					| 'os.release'
					| 'os.setPriority'
					| 'os.tmpdir'
					| 'os.totalmem'
					| 'os.type'
					| 'os.uptime'
					| 'os.userInfo'
					| 'os.version'
					| 'path'
					| 'path.posix'
					| 'path.posix.delimiter'
					| 'path.posix.sep'
					| 'path.posix.basename'
					| 'path.posix.dirname'
					| 'path.posix.extname'
					| 'path.posix.format'
					| 'path.posix.matchesGlob'
					| 'path.posix.isAbsolute'
					| 'path.posix.join'
					| 'path.posix.normalize'
					| 'path.posix.parse'
					| 'path.posix.relative'
					| 'path.posix.resolve'
					| 'path.posix.toNamespacedPath'
					| 'path.win32'
					| 'path.win32.delimiter'
					| 'path.win32.sep'
					| 'path.win32.basename'
					| 'path.win32.dirname'
					| 'path.win32.extname'
					| 'path.win32.format'
					| 'path.win32.matchesGlob'
					| 'path.win32.isAbsolute'
					| 'path.win32.join'
					| 'path.win32.normalize'
					| 'path.win32.parse'
					| 'path.win32.relative'
					| 'path.win32.resolve'
					| 'path.win32.toNamespacedPath'
					| 'path.delimiter'
					| 'path.sep'
					| 'path.basename'
					| 'path.dirname'
					| 'path.extname'
					| 'path.format'
					| 'path.matchesGlob'
					| 'path.isAbsolute'
					| 'path.join'
					| 'path.normalize'
					| 'path.parse'
					| 'path.relative'
					| 'path.resolve'
					| 'path.toNamespacedPath'
					| 'path/posix'
					| 'path/posix.delimiter'
					| 'path/posix.sep'
					| 'path/posix.basename'
					| 'path/posix.dirname'
					| 'path/posix.extname'
					| 'path/posix.format'
					| 'path/posix.matchesGlob'
					| 'path/posix.isAbsolute'
					| 'path/posix.join'
					| 'path/posix.normalize'
					| 'path/posix.parse'
					| 'path/posix.relative'
					| 'path/posix.resolve'
					| 'path/posix.toNamespacedPath'
					| 'path/win32'
					| 'path/win32.delimiter'
					| 'path/win32.sep'
					| 'path/win32.basename'
					| 'path/win32.dirname'
					| 'path/win32.extname'
					| 'path/win32.format'
					| 'path/win32.matchesGlob'
					| 'path/win32.isAbsolute'
					| 'path/win32.join'
					| 'path/win32.normalize'
					| 'path/win32.parse'
					| 'path/win32.relative'
					| 'path/win32.resolve'
					| 'path/win32.toNamespacedPath'
					| 'perf_hooks'
					| 'perf_hooks.performance'
					| 'perf_hooks.performance.clearMarks'
					| 'perf_hooks.performance.clearMeasures'
					| 'perf_hooks.performance.clearResourceTimings'
					| 'perf_hooks.performance.eventLoopUtilization'
					| 'perf_hooks.performance.getEntries'
					| 'perf_hooks.performance.getEntriesByName'
					| 'perf_hooks.performance.getEntriesByType'
					| 'perf_hooks.performance.mark'
					| 'perf_hooks.performance.markResourceTiming'
					| 'perf_hooks.performance.measure'
					| 'perf_hooks.performance.nodeTiming'
					| 'perf_hooks.performance.nodeTiming.bootstrapComplete'
					| 'perf_hooks.performance.nodeTiming.environment'
					| 'perf_hooks.performance.nodeTiming.idleTime'
					| 'perf_hooks.performance.nodeTiming.loopExit'
					| 'perf_hooks.performance.nodeTiming.loopStart'
					| 'perf_hooks.performance.nodeTiming.nodeStart'
					| 'perf_hooks.performance.nodeTiming.uvMetricsInfo'
					| 'perf_hooks.performance.nodeTiming.v8Start'
					| 'perf_hooks.performance.now'
					| 'perf_hooks.performance.onresourcetimingbufferfull'
					| 'perf_hooks.performance.setResourceTimingBufferSize'
					| 'perf_hooks.performance.timeOrigin'
					| 'perf_hooks.performance.timerify'
					| 'perf_hooks.performance.toJSON'
					| 'perf_hooks.createHistogram'
					| 'perf_hooks.monitorEventLoopDelay'
					| 'perf_hooks.PerformanceEntry'
					| 'perf_hooks.PerformanceMark'
					| 'perf_hooks.PerformanceMeasure'
					| 'perf_hooks.PerformanceNodeEntry'
					| 'perf_hooks.PerformanceNodeTiming'
					| 'perf_hooks.PerformanceResourceTiming'
					| 'perf_hooks.PerformanceObserver'
					| 'perf_hooks.PerformanceObserverEntryList'
					| 'perf_hooks.Histogram'
					| 'perf_hooks.IntervalHistogram'
					| 'perf_hooks.RecordableHistogram'
					| 'punycode'
					| 'punycode.ucs2'
					| 'punycode.version'
					| 'punycode.decode'
					| 'punycode.encode'
					| 'punycode.toASCII'
					| 'punycode.toUnicode'
					| 'querystring'
					| 'querystring.decode'
					| 'querystring.encode'
					| 'querystring.escape'
					| 'querystring.parse'
					| 'querystring.stringify'
					| 'querystring.unescape'
					| 'readline'
					| 'readline.promises'
					| 'readline.promises.createInterface'
					| 'readline.promises.Interface'
					| 'readline.promises.Readline'
					| 'readline.clearLine'
					| 'readline.clearScreenDown'
					| 'readline.createInterface'
					| 'readline.cursorTo'
					| 'readline.moveCursor'
					| 'readline.Interface'
					| 'readline.emitKeypressEvents'
					| 'readline.InterfaceConstructor'
					| 'readline/promises'
					| 'readline/promises.createInterface'
					| 'readline/promises.Interface'
					| 'readline/promises.Readline'
					| 'repl'
					| 'repl.start'
					| 'repl.writer'
					| 'repl.REPLServer()'
					| 'repl.REPLServer'
					| 'repl.REPL_MODE_MAGIC'
					| 'repl.REPL_MODE_SLOPPY'
					| 'repl.REPL_MODE_STRICT'
					| 'repl.Recoverable()'
					| 'repl.Recoverable'
					| 'repl.builtinModules'
					| 'sea'
					| 'sea.isSea'
					| 'sea.getAsset'
					| 'sea.getAssetAsBlob'
					| 'sea.getRawAsset'
					| 'sea.sea.isSea'
					| 'sea.sea.getAsset'
					| 'sea.sea.getAssetAsBlob'
					| 'sea.sea.getRawAsset'
					| 'stream'
					| 'stream.promises'
					| 'stream.promises.pipeline'
					| 'stream.promises.finished'
					| 'stream.finished'
					| 'stream.pipeline'
					| 'stream.compose'
					| 'stream.duplexPair'
					| 'stream.Readable'
					| 'stream.Readable.from'
					| 'stream.Readable.isDisturbed'
					| 'stream.Readable.fromWeb'
					| 'stream.Readable.toWeb'
					| 'stream.Writable'
					| 'stream.Writable.fromWeb'
					| 'stream.Writable.toWeb'
					| 'stream.Duplex'
					| 'stream.Duplex.from'
					| 'stream.Duplex.fromWeb'
					| 'stream.Duplex.toWeb'
					| 'stream.Transform'
					| 'stream.isErrored'
					| 'stream.isReadable'
					| 'stream.addAbortSignal'
					| 'stream.getDefaultHighWaterMark'
					| 'stream.setDefaultHighWaterMark'
					| 'stream/promises.pipeline'
					| 'stream/promises.finished'
					| 'stream/web'
					| 'stream/web.ReadableStream'
					| 'stream/web.ReadableStream.from'
					| 'stream/web.ReadableStreamDefaultReader'
					| 'stream/web.ReadableStreamBYOBReader'
					| 'stream/web.ReadableStreamDefaultController'
					| 'stream/web.ReadableByteStreamController'
					| 'stream/web.ReadableStreamBYOBRequest'
					| 'stream/web.WritableStream'
					| 'stream/web.WritableStreamDefaultWriter'
					| 'stream/web.WritableStreamDefaultController'
					| 'stream/web.TransformStream'
					| 'stream/web.TransformStreamDefaultController'
					| 'stream/web.ByteLengthQueuingStrategy'
					| 'stream/web.CountQueuingStrategy'
					| 'stream/web.TextEncoderStream'
					| 'stream/web.TextDecoderStream'
					| 'stream/web.CompressionStream'
					| 'stream/web.DecompressionStream'
					| 'stream/consumers'
					| 'stream/consumers.arrayBuffer'
					| 'stream/consumers.blob'
					| 'stream/consumers.buffer'
					| 'stream/consumers.json'
					| 'stream/consumers.text'
					| 'string_decoder'
					| 'string_decoder.StringDecoder'
					| 'sqlite'
					| 'sqlite.DatabaseSync'
					| 'sqlite.StatementSync'
					| 'sqlite.SQLITE_CHANGESET_OMIT'
					| 'sqlite.SQLITE_CHANGESET_REPLACE'
					| 'sqlite.SQLITE_CHANGESET_ABORT'
					| 'test'
					| 'test.after'
					| 'test.afterEach'
					| 'test.before'
					| 'test.beforeEach'
					| 'test.describe'
					| 'test.describe.only'
					| 'test.describe.skip'
					| 'test.describe.todo'
					| 'test.it'
					| 'test.it.only'
					| 'test.it.skip'
					| 'test.it.todo'
					| 'test.mock'
					| 'test.mock.fn'
					| 'test.mock.getter'
					| 'test.mock.method'
					| 'test.mock.module'
					| 'test.mock.reset'
					| 'test.mock.restoreAll'
					| 'test.mock.setter'
					| 'test.mock.timers'
					| 'test.mock.timers.enable'
					| 'test.mock.timers.reset'
					| 'test.mock.timers.tick'
					| 'test.only'
					| 'test.run'
					| 'test.snapshot'
					| 'test.snapshot.setDefaultSnapshotSerializers'
					| 'test.snapshot.setResolveSnapshotPath'
					| 'test.skip'
					| 'test.suite'
					| 'test.test'
					| 'test.test.only'
					| 'test.test.skip'
					| 'test.test.todo'
					| 'test.todo'
					| 'timers'
					| 'timers.Immediate'
					| 'timers.Timeout'
					| 'timers.setImmediate'
					| 'timers.clearImmediate'
					| 'timers.setInterval'
					| 'timers.clearInterval'
					| 'timers.setTimeout'
					| 'timers.clearTimeout'
					| 'timers.promises'
					| 'timers.promises.setTimeout'
					| 'timers.promises.setImmediate'
					| 'timers.promises.setInterval'
					| 'timers.promises.scheduler.wait'
					| 'timers.promises.scheduler.yield'
					| 'timers/promises'
					| 'timers/promises.setTimeout'
					| 'timers/promises.setImmediate'
					| 'timers/promises.setInterval'
					| 'timers/promises.scheduler.wait'
					| 'timers/promises.scheduler.yield'
					| 'tls'
					| 'tls.rootCertificates'
					| 'tls.DEFAULT_ECDH_CURVE'
					| 'tls.DEFAULT_MAX_VERSION'
					| 'tls.DEFAULT_MIN_VERSION'
					| 'tls.DEFAULT_CIPHERS'
					| 'tls.checkServerIdentity'
					| 'tls.connect'
					| 'tls.createSecureContext'
					| 'tls.createSecurePair'
					| 'tls.createServer'
					| 'tls.getCiphers'
					| 'tls.SecureContext'
					| 'tls.CryptoStream'
					| 'tls.SecurePair'
					| 'tls.Server'
					| 'tls.TLSSocket'
					| 'trace_events'
					| 'trace_events.createTracing'
					| 'trace_events.getEnabledCategories'
					| 'tty'
					| 'tty.isatty'
					| 'tty.ReadStream'
					| 'tty.WriteStream'
					| 'url'
					| 'url.domainToASCII'
					| 'url.domainToUnicode'
					| 'url.fileURLToPath'
					| 'url.format'
					| 'url.pathToFileURL'
					| 'url.urlToHttpOptions'
					| 'url.URL'
					| 'url.URL.canParse'
					| 'url.URL.createObjectURL'
					| 'url.URL.revokeObjectURL'
					| 'url.URLSearchParams'
					| 'url.Url'
					| 'util.promisify'
					| 'util.promisify.custom'
					| 'util.callbackify'
					| 'util.debuglog'
					| 'util.debug'
					| 'util.deprecate'
					| 'util.format'
					| 'util.formatWithOptions'
					| 'util.getCallSite'
					| 'util.getCallSites'
					| 'util.getSystemErrorName'
					| 'util.getSystemErrorMap'
					| 'util.getSystemErrorMessage'
					| 'util.inherits'
					| 'util.inspect'
					| 'util.inspect.custom'
					| 'util.inspect.defaultOptions'
					| 'util.inspect.replDefaults'
					| 'util.isDeepStrictEqual'
					| 'util.parseArgs'
					| 'util.parseEnv'
					| 'util.stripVTControlCharacters'
					| 'util.styleText'
					| 'util.toUSVString'
					| 'util.transferableAbortController'
					| 'util.transferableAbortSignal'
					| 'util.aborted'
					| 'util.MIMEType'
					| 'util.MIMEParams'
					| 'util.TextDecoder'
					| 'util.TextEncoder'
					| 'util.types'
					| 'util.types.isExternal'
					| 'util.types.isDate'
					| 'util.types.isArgumentsObject'
					| 'util.types.isBigIntObject'
					| 'util.types.isBooleanObject'
					| 'util.types.isNumberObject'
					| 'util.types.isStringObject'
					| 'util.types.isSymbolObject'
					| 'util.types.isNativeError'
					| 'util.types.isRegExp'
					| 'util.types.isAsyncFunction'
					| 'util.types.isGeneratorFunction'
					| 'util.types.isGeneratorObject'
					| 'util.types.isPromise'
					| 'util.types.isMap'
					| 'util.types.isSet'
					| 'util.types.isMapIterator'
					| 'util.types.isSetIterator'
					| 'util.types.isWeakMap'
					| 'util.types.isWeakSet'
					| 'util.types.isArrayBuffer'
					| 'util.types.isDataView'
					| 'util.types.isSharedArrayBuffer'
					| 'util.types.isProxy'
					| 'util.types.isModuleNamespaceObject'
					| 'util.types.isAnyArrayBuffer'
					| 'util.types.isBoxedPrimitive'
					| 'util.types.isArrayBufferView'
					| 'util.types.isTypedArray'
					| 'util.types.isUint8Array'
					| 'util.types.isUint8ClampedArray'
					| 'util.types.isUint16Array'
					| 'util.types.isUint32Array'
					| 'util.types.isInt8Array'
					| 'util.types.isInt16Array'
					| 'util.types.isInt32Array'
					| 'util.types.isFloat32Array'
					| 'util.types.isFloat64Array'
					| 'util.types.isBigInt64Array'
					| 'util.types.isBigUint64Array'
					| 'util.types.isKeyObject'
					| 'util.types.isCryptoKey'
					| 'util.types.isWebAssemblyCompiledModule'
					| 'util._extend'
					| 'util.isArray'
					| 'util.isBoolean'
					| 'util.isBuffer'
					| 'util.isDate'
					| 'util.isError'
					| 'util.isFunction'
					| 'util.isNull'
					| 'util.isNullOrUndefined'
					| 'util.isNumber'
					| 'util.isObject'
					| 'util.isPrimitive'
					| 'util.isRegExp'
					| 'util.isString'
					| 'util.isSymbol'
					| 'util.isUndefined'
					| 'util.log'
					| 'util'
					| 'util/types'
					| 'util/types.isExternal'
					| 'util/types.isDate'
					| 'util/types.isArgumentsObject'
					| 'util/types.isBigIntObject'
					| 'util/types.isBooleanObject'
					| 'util/types.isNumberObject'
					| 'util/types.isStringObject'
					| 'util/types.isSymbolObject'
					| 'util/types.isNativeError'
					| 'util/types.isRegExp'
					| 'util/types.isAsyncFunction'
					| 'util/types.isGeneratorFunction'
					| 'util/types.isGeneratorObject'
					| 'util/types.isPromise'
					| 'util/types.isMap'
					| 'util/types.isSet'
					| 'util/types.isMapIterator'
					| 'util/types.isSetIterator'
					| 'util/types.isWeakMap'
					| 'util/types.isWeakSet'
					| 'util/types.isArrayBuffer'
					| 'util/types.isDataView'
					| 'util/types.isSharedArrayBuffer'
					| 'util/types.isProxy'
					| 'util/types.isModuleNamespaceObject'
					| 'util/types.isAnyArrayBuffer'
					| 'util/types.isBoxedPrimitive'
					| 'util/types.isArrayBufferView'
					| 'util/types.isTypedArray'
					| 'util/types.isUint8Array'
					| 'util/types.isUint8ClampedArray'
					| 'util/types.isUint16Array'
					| 'util/types.isUint32Array'
					| 'util/types.isInt8Array'
					| 'util/types.isInt16Array'
					| 'util/types.isInt32Array'
					| 'util/types.isFloat32Array'
					| 'util/types.isFloat64Array'
					| 'util/types.isBigInt64Array'
					| 'util/types.isBigUint64Array'
					| 'util/types.isKeyObject'
					| 'util/types.isCryptoKey'
					| 'util/types.isWebAssemblyCompiledModule'
					| 'v8'
					| 'v8.serialize'
					| 'v8.deserialize'
					| 'v8.Serializer'
					| 'v8.Deserializer'
					| 'v8.DefaultSerializer'
					| 'v8.DefaultDeserializer'
					| 'v8.promiseHooks'
					| 'v8.promiseHooks.onInit'
					| 'v8.promiseHooks.onSettled'
					| 'v8.promiseHooks.onBefore'
					| 'v8.promiseHooks.onAfter'
					| 'v8.promiseHooks.createHook'
					| 'v8.startupSnapshot'
					| 'v8.startupSnapshot.addSerializeCallback'
					| 'v8.startupSnapshot.addDeserializeCallback'
					| 'v8.startupSnapshot.setDeserializeMainFunction'
					| 'v8.startupSnapshot.isBuildingSnapshot'
					| 'v8.cachedDataVersionTag'
					| 'v8.getHeapCodeStatistics'
					| 'v8.getHeapSnapshot'
					| 'v8.getHeapSpaceStatistics'
					| 'v8.getHeapStatistics'
					| 'v8.queryObjects'
					| 'v8.setFlagsFromString'
					| 'v8.stopCoverage'
					| 'v8.takeCoverage'
					| 'v8.writeHeapSnapshot'
					| 'v8.setHeapSnapshotNearHeapLimit'
					| 'v8.GCProfiler'
					| 'vm.constants'
					| 'vm.compileFunction'
					| 'vm.createContext'
					| 'vm.isContext'
					| 'vm.measureMemory'
					| 'vm.runInContext'
					| 'vm.runInNewContext'
					| 'vm.runInThisContext'
					| 'vm.Script'
					| 'vm.Module'
					| 'vm.SourceTextModule'
					| 'vm.SyntheticModule'
					| 'vm'
					| 'wasi.WASI'
					| 'wasi'
					| 'worker_threads'
					| 'worker_threads.isMainThread'
					| 'worker_threads.parentPort'
					| 'worker_threads.resourceLimits'
					| 'worker_threads.SHARE_ENV'
					| 'worker_threads.threadId'
					| 'worker_threads.workerData'
					| 'worker_threads.getEnvironmentData'
					| 'worker_threads.markAsUncloneable'
					| 'worker_threads.markAsUntransferable'
					| 'worker_threads.isMarkedAsUntransferable'
					| 'worker_threads.moveMessagePortToContext'
					| 'worker_threads.postMessageToThread'
					| 'worker_threads.receiveMessageOnPort'
					| 'worker_threads.setEnvironmentData'
					| 'worker_threads.BroadcastChannel'
					| 'worker_threads.MessageChannel'
					| 'worker_threads.MessagePort'
					| 'worker_threads.Worker'
					| 'zlib.constants'
					| 'zlib.crc32'
					| 'zlib.createBrotliCompress'
					| 'zlib.createBrotliDecompress'
					| 'zlib.createDeflate'
					| 'zlib.createDeflateRaw'
					| 'zlib.createGunzip'
					| 'zlib.createGzip'
					| 'zlib.createInflate'
					| 'zlib.createInflateRaw'
					| 'zlib.createUnzip'
					| 'zlib.brotliCompress'
					| 'zlib.brotliCompressSync'
					| 'zlib.brotliDecompress'
					| 'zlib.brotliDecompressSync'
					| 'zlib.deflate'
					| 'zlib.deflateSync'
					| 'zlib.deflateRaw'
					| 'zlib.deflateRawSync'
					| 'zlib.gunzip'
					| 'zlib.gunzipSync'
					| 'zlib.gzip'
					| 'zlib.gzipSync'
					| 'zlib.inflate'
					| 'zlib.inflateSync'
					| 'zlib.inflateRaw'
					| 'zlib.inflateRawSync'
					| 'zlib.unzip'
					| 'zlib.unzipSync'
					| 'zlib.BrotliCompress()'
					| 'zlib.BrotliCompress'
					| 'zlib.BrotliDecompress()'
					| 'zlib.BrotliDecompress'
					| 'zlib.Deflate()'
					| 'zlib.Deflate'
					| 'zlib.DeflateRaw()'
					| 'zlib.DeflateRaw'
					| 'zlib.Gunzip()'
					| 'zlib.Gunzip'
					| 'zlib.Gzip()'
					| 'zlib.Gzip'
					| 'zlib.Inflate()'
					| 'zlib.Inflate'
					| 'zlib.InflateRaw()'
					| 'zlib.InflateRaw'
					| 'zlib.Unzip()'
					| 'zlib.Unzip'
					| 'zlib'
					| 'import.meta.resolve'
					| 'import.meta.dirname'
					| 'import.meta.filename'
				)[]
			},
	  ]
// ----- node/prefer-global/buffer -----
type NodePreferGlobalBuffer = [] | ['always' | 'never']
// ----- node/prefer-global/console -----
type NodePreferGlobalConsole = [] | ['always' | 'never']
// ----- node/prefer-global/process -----
type NodePreferGlobalProcess = [] | ['always' | 'never']
// ----- node/prefer-global/text-decoder -----
type NodePreferGlobalTextDecoder = [] | ['always' | 'never']
// ----- node/prefer-global/text-encoder -----
type NodePreferGlobalTextEncoder = [] | ['always' | 'never']
// ----- node/prefer-global/url -----
type NodePreferGlobalUrl = [] | ['always' | 'never']
// ----- node/prefer-global/url-search-params -----
type NodePreferGlobalUrlSearchParams = [] | ['always' | 'never']
// ----- node/prefer-node-protocol -----
type NodePreferNodeProtocol =
	| []
	| [
			{
				version?: string
			},
	  ]
// ----- node/shebang -----
type NodeShebang =
	| []
	| [
			{
				convertPath?:
					| {
							[k: string]: [string, string]
					  }
					| [
							{
								include: [string, ...string[]]
								exclude?: string[]

								replace: [string, string]
							},
							...{
								include: [string, ...string[]]
								exclude?: string[]

								replace: [string, string]
							}[],
					  ]
				ignoreUnpublished?: boolean
				additionalExecutables?: string[]
				executableMap?: {
					[k: string]: string
				}
			},
	  ]
// ----- nonblock-statement-body-position -----
type NonblockStatementBodyPosition =
	| []
	| ['beside' | 'below' | 'any']
	| [
			'beside' | 'below' | 'any',
			{
				overrides?: {
					if?: 'beside' | 'below' | 'any'
					else?: 'beside' | 'below' | 'any'
					while?: 'beside' | 'below' | 'any'
					do?: 'beside' | 'below' | 'any'
					for?: 'beside' | 'below' | 'any'
				}
			},
	  ]
// ----- object-curly-newline -----
type ObjectCurlyNewline =
	| []
	| [
			| (
					| ('always' | 'never')
					| {
							multiline?: boolean
							minProperties?: number
							consistent?: boolean
					  }
			  )
			| {
					ObjectExpression?:
						| ('always' | 'never')
						| {
								multiline?: boolean
								minProperties?: number
								consistent?: boolean
						  }
					ObjectPattern?:
						| ('always' | 'never')
						| {
								multiline?: boolean
								minProperties?: number
								consistent?: boolean
						  }
					ImportDeclaration?:
						| ('always' | 'never')
						| {
								multiline?: boolean
								minProperties?: number
								consistent?: boolean
						  }
					ExportDeclaration?:
						| ('always' | 'never')
						| {
								multiline?: boolean
								minProperties?: number
								consistent?: boolean
						  }
			  },
	  ]
// ----- object-curly-spacing -----
type ObjectCurlySpacing =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				arraysInObjects?: boolean
				objectsInObjects?: boolean
			},
	  ]
// ----- object-property-newline -----
type ObjectPropertyNewline =
	| []
	| [
			{
				allowAllPropertiesOnSameLine?: boolean
				allowMultiplePropertiesPerLine?: boolean
			},
	  ]
// ----- object-shorthand -----
type ObjectShorthand =
	| []
	| ['always' | 'methods' | 'properties' | 'never' | 'consistent' | 'consistent-as-needed']
	| []
	| ['always' | 'methods' | 'properties']
	| [
			'always' | 'methods' | 'properties',
			{
				avoidQuotes?: boolean
			},
	  ]
	| []
	| ['always' | 'methods']
	| [
			'always' | 'methods',
			{
				ignoreConstructors?: boolean
				methodsIgnorePattern?: string
				avoidQuotes?: boolean
				avoidExplicitReturnArrows?: boolean
			},
	  ]
// ----- one-var -----
type OneVar =
	| []
	| [
			| ('always' | 'never' | 'consecutive')
			| {
					separateRequires?: boolean
					var?: 'always' | 'never' | 'consecutive'
					let?: 'always' | 'never' | 'consecutive'
					const?: 'always' | 'never' | 'consecutive'
			  }
			| {
					initialized?: 'always' | 'never' | 'consecutive'
					uninitialized?: 'always' | 'never' | 'consecutive'
			  },
	  ]
// ----- one-var-declaration-per-line -----
type OneVarDeclarationPerLine = [] | ['always' | 'initializations']
// ----- operator-assignment -----
type OperatorAssignment = [] | ['always' | 'never']
// ----- operator-linebreak -----
type OperatorLinebreak =
	| []
	| ['after' | 'before' | 'none' | null]
	| [
			'after' | 'before' | 'none' | null,
			{
				overrides?: {
					[k: string]: ('after' | 'before' | 'none' | 'ignore') | undefined
				}
			},
	  ]
// ----- padded-blocks -----
type PaddedBlocks =
	| []
	| [
			| ('always' | 'never')
			| {
					blocks?: 'always' | 'never'
					switches?: 'always' | 'never'
					classes?: 'always' | 'never'
			  },
	  ]
	| [
			(
				| ('always' | 'never')
				| {
						blocks?: 'always' | 'never'
						switches?: 'always' | 'never'
						classes?: 'always' | 'never'
				  }
			),
			{
				allowSingleLineBlocks?: boolean
			},
	  ]
// ----- padding-line-between-statements -----
type _PaddingLineBetweenStatementsPaddingType = 'any' | 'never' | 'always'
type _PaddingLineBetweenStatementsStatementType =
	| (
			| '*'
			| 'block-like'
			| 'cjs-export'
			| 'cjs-import'
			| 'directive'
			| 'expression'
			| 'iife'
			| 'multiline-block-like'
			| 'multiline-expression'
			| 'multiline-const'
			| 'multiline-let'
			| 'multiline-var'
			| 'singleline-const'
			| 'singleline-let'
			| 'singleline-var'
			| 'block'
			| 'empty'
			| 'function'
			| 'break'
			| 'case'
			| 'class'
			| 'const'
			| 'continue'
			| 'debugger'
			| 'default'
			| 'do'
			| 'export'
			| 'for'
			| 'if'
			| 'import'
			| 'let'
			| 'return'
			| 'switch'
			| 'throw'
			| 'try'
			| 'var'
			| 'while'
			| 'with'
	  )
	| [
			(
				| '*'
				| 'block-like'
				| 'cjs-export'
				| 'cjs-import'
				| 'directive'
				| 'expression'
				| 'iife'
				| 'multiline-block-like'
				| 'multiline-expression'
				| 'multiline-const'
				| 'multiline-let'
				| 'multiline-var'
				| 'singleline-const'
				| 'singleline-let'
				| 'singleline-var'
				| 'block'
				| 'empty'
				| 'function'
				| 'break'
				| 'case'
				| 'class'
				| 'const'
				| 'continue'
				| 'debugger'
				| 'default'
				| 'do'
				| 'export'
				| 'for'
				| 'if'
				| 'import'
				| 'let'
				| 'return'
				| 'switch'
				| 'throw'
				| 'try'
				| 'var'
				| 'while'
				| 'with'
			),
			...(
				| '*'
				| 'block-like'
				| 'cjs-export'
				| 'cjs-import'
				| 'directive'
				| 'expression'
				| 'iife'
				| 'multiline-block-like'
				| 'multiline-expression'
				| 'multiline-const'
				| 'multiline-let'
				| 'multiline-var'
				| 'singleline-const'
				| 'singleline-let'
				| 'singleline-var'
				| 'block'
				| 'empty'
				| 'function'
				| 'break'
				| 'case'
				| 'class'
				| 'const'
				| 'continue'
				| 'debugger'
				| 'default'
				| 'do'
				| 'export'
				| 'for'
				| 'if'
				| 'import'
				| 'let'
				| 'return'
				| 'switch'
				| 'throw'
				| 'try'
				| 'var'
				| 'while'
				| 'with'
			)[],
	  ]
type PaddingLineBetweenStatements = {
	blankLine: _PaddingLineBetweenStatementsPaddingType
	prev: _PaddingLineBetweenStatementsStatementType
	next: _PaddingLineBetweenStatementsStatementType
}[]
// ----- perfectionist/sort-array-includes -----
type PerfectionistSortArrayIncludes = {
	fallbackSort?: {
		order?: 'asc' | 'desc'

		type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
	}

	specialCharacters?: 'remove' | 'trim' | 'keep'

	ignoreCase?: boolean

	alphabet?: string

	locales?: string | string[]

	order?: 'asc' | 'desc'

	type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

	groupKind?: 'mixed' | 'literals-first' | 'spreads-first'

	customGroups?: (
		| {
				newlinesInside?: 'always' | 'never'

				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				groupName: string

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				anyOf?: {
					selector?: 'literal' | 'spread'

					elementNamePattern?:
						| (
								| {
										pattern: string

										flags?: string
								  }
								| string
						  )[]
						| (
								| {
										pattern: string

										flags?: string
								  }
								| string
						  )
				}[]
		  }
		| {
				newlinesInside?: 'always' | 'never'

				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				groupName: string

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

				selector?: 'literal' | 'spread'

				elementNamePattern?:
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )[]
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )
		  }
	)[]

	useConfigurationIf?: {
		allNamesMatchPattern?:
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )[]
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )
	}

	partitionByComment?:
		| boolean
		| (
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )[]
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )
		  )
		| {
				block?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )

				line?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
		  }

	partitionByNewLine?: boolean

	newlinesBetween?: 'ignore' | 'always' | 'never'

	groups?: (
		| string
		| string[]
		| {
				newlinesBetween?: 'ignore' | 'always' | 'never'

				commentAbove?: string
		  }
	)[]
}[]
// ----- perfectionist/sort-classes -----
type PerfectionistSortClasses =
	| []
	| [
			{
				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				specialCharacters?: 'remove' | 'trim' | 'keep'

				ignoreCase?: boolean

				alphabet?: string

				locales?: string | string[]

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

				customGroups?: (
					| {
							newlinesInside?: 'always' | 'never'

							fallbackSort?: {
								order?: 'asc' | 'desc'

								type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
							}

							groupName: string

							order?: 'asc' | 'desc'

							type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
							anyOf?: {
								modifiers?: (
									| 'async'
									| 'protected'
									| 'private'
									| 'public'
									| 'static'
									| 'abstract'
									| 'override'
									| 'readonly'
									| 'decorated'
									| 'declare'
									| 'optional'
								)[]

								selector?:
									| 'accessor-property'
									| 'index-signature'
									| 'constructor'
									| 'static-block'
									| 'get-method'
									| 'set-method'
									| 'function-property'
									| 'property'
									| 'method'

								decoratorNamePattern?:
									| (
											| {
													pattern: string

													flags?: string
											  }
											| string
									  )[]
									| (
											| {
													pattern: string

													flags?: string
											  }
											| string
									  )

								elementValuePattern?:
									| (
											| {
													pattern: string

													flags?: string
											  }
											| string
									  )[]
									| (
											| {
													pattern: string

													flags?: string
											  }
											| string
									  )

								elementNamePattern?:
									| (
											| {
													pattern: string

													flags?: string
											  }
											| string
									  )[]
									| (
											| {
													pattern: string

													flags?: string
											  }
											| string
									  )
							}[]
					  }
					| {
							newlinesInside?: 'always' | 'never'

							fallbackSort?: {
								order?: 'asc' | 'desc'

								type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
							}

							groupName: string

							order?: 'asc' | 'desc'

							type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

							modifiers?: (
								| 'async'
								| 'protected'
								| 'private'
								| 'public'
								| 'static'
								| 'abstract'
								| 'override'
								| 'readonly'
								| 'decorated'
								| 'declare'
								| 'optional'
							)[]

							selector?:
								| 'accessor-property'
								| 'index-signature'
								| 'constructor'
								| 'static-block'
								| 'get-method'
								| 'set-method'
								| 'function-property'
								| 'property'
								| 'method'

							decoratorNamePattern?:
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )[]
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )

							elementValuePattern?:
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )[]
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )

							elementNamePattern?:
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )[]
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )
					  }
				)[]

				ignoreCallbackDependenciesPatterns?:
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )[]
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )

				partitionByComment?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
					| {
							block?:
								| boolean
								| (
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )[]
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )
								  )

							line?:
								| boolean
								| (
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )[]
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )
								  )
					  }

				partitionByNewLine?: boolean

				newlinesBetween?: 'ignore' | 'always' | 'never'

				groups?: (
					| string
					| string[]
					| {
							newlinesBetween?: 'ignore' | 'always' | 'never'

							commentAbove?: string
					  }
				)[]
			},
	  ]
// ----- perfectionist/sort-decorators -----
type PerfectionistSortDecorators =
	| []
	| [
			{
				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				specialCharacters?: 'remove' | 'trim' | 'keep'

				ignoreCase?: boolean

				alphabet?: string

				locales?: string | string[]

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

				sortOnParameters?: boolean

				sortOnProperties?: boolean

				sortOnAccessors?: boolean

				sortOnMethods?: boolean

				sortOnClasses?: boolean

				partitionByComment?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
					| {
							block?:
								| boolean
								| (
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )[]
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )
								  )

							line?:
								| boolean
								| (
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )[]
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )
								  )
					  }

				customGroups?: {
					[k: string]: (string | string[]) | undefined
				}

				groups?: (
					| string
					| string[]
					| {
							newlinesBetween?: 'ignore' | 'always' | 'never'

							commentAbove?: string
					  }
				)[]
			},
	  ]
// ----- perfectionist/sort-enums -----
type PerfectionistSortEnums =
	| []
	| [
			{
				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				specialCharacters?: 'remove' | 'trim' | 'keep'

				ignoreCase?: boolean

				alphabet?: string

				locales?: string | string[]

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				customGroups?:
					| {
							[k: string]: (string | string[]) | undefined
					  }
					| (
							| {
									newlinesInside?: 'always' | 'never'

									fallbackSort?: {
										order?: 'asc' | 'desc'

										type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
									}

									groupName: string

									order?: 'asc' | 'desc'

									type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
									anyOf?: {
										elementValuePattern?:
											| (
													| {
															pattern: string

															flags?: string
													  }
													| string
											  )[]
											| (
													| {
															pattern: string

															flags?: string
													  }
													| string
											  )

										elementNamePattern?:
											| (
													| {
															pattern: string

															flags?: string
													  }
													| string
											  )[]
											| (
													| {
															pattern: string

															flags?: string
													  }
													| string
											  )
									}[]
							  }
							| {
									newlinesInside?: 'always' | 'never'

									fallbackSort?: {
										order?: 'asc' | 'desc'

										type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
									}

									groupName: string

									order?: 'asc' | 'desc'

									type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

									elementValuePattern?:
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )[]
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )

									elementNamePattern?:
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )[]
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )
							  }
					  )[]

				forceNumericSort?: boolean

				sortByValue?: boolean

				partitionByComment?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
					| {
							block?:
								| boolean
								| (
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )[]
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )
								  )

							line?:
								| boolean
								| (
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )[]
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )
								  )
					  }

				partitionByNewLine?: boolean

				newlinesBetween?: 'ignore' | 'always' | 'never'

				groups?: (
					| string
					| string[]
					| {
							newlinesBetween?: 'ignore' | 'always' | 'never'

							commentAbove?: string
					  }
				)[]
			},
	  ]
// ----- perfectionist/sort-exports -----
type PerfectionistSortExports = {
	fallbackSort?: {
		order?: 'asc' | 'desc'

		type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
	}

	specialCharacters?: 'remove' | 'trim' | 'keep'

	ignoreCase?: boolean

	alphabet?: string

	locales?: string | string[]

	order?: 'asc' | 'desc'

	type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

	groupKind?: 'mixed' | 'values-first' | 'types-first'

	customGroups?: (
		| {
				newlinesInside?: 'always' | 'never'

				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				groupName: string

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				anyOf?: {
					modifiers?: ('value' | 'type')[]

					selector?: 'export'

					elementNamePattern?:
						| (
								| {
										pattern: string

										flags?: string
								  }
								| string
						  )[]
						| (
								| {
										pattern: string

										flags?: string
								  }
								| string
						  )
				}[]
		  }
		| {
				newlinesInside?: 'always' | 'never'

				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				groupName: string

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

				modifiers?: ('value' | 'type')[]

				selector?: 'export'

				elementNamePattern?:
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )[]
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )
		  }
	)[]

	partitionByComment?:
		| boolean
		| (
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )[]
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )
		  )
		| {
				block?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )

				line?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
		  }

	partitionByNewLine?: boolean

	newlinesBetween?: 'ignore' | 'always' | 'never'

	groups?: (
		| string
		| string[]
		| {
				newlinesBetween?: 'ignore' | 'always' | 'never'

				commentAbove?: string
		  }
	)[]
}[]
// ----- perfectionist/sort-heritage-clauses -----
type PerfectionistSortHeritageClauses =
	| []
	| [
			{
				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				specialCharacters?: 'remove' | 'trim' | 'keep'

				ignoreCase?: boolean

				alphabet?: string

				locales?: string | string[]

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

				customGroups?: {
					[k: string]: (string | string[]) | undefined
				}

				groups?: (
					| string
					| string[]
					| {
							newlinesBetween?: 'ignore' | 'always' | 'never'

							commentAbove?: string
					  }
				)[]
			},
	  ]
// ----- perfectionist/sort-imports -----
type PerfectionistSortImports = {
	fallbackSort?: {
		order?: 'asc' | 'desc'

		type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
	}

	specialCharacters?: 'remove' | 'trim' | 'keep'

	ignoreCase?: boolean

	alphabet?: string

	locales?: string | string[]

	order?: 'asc' | 'desc'

	type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
	customGroups?:
		| {
				value?: {
					[k: string]: (string | string[]) | undefined
				}

				type?: {
					[k: string]: (string | string[]) | undefined
				}
		  }
		| (
				| {
						newlinesInside?: 'always' | 'never'

						fallbackSort?: {
							order?: 'asc' | 'desc'

							type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
						}

						groupName: string

						order?: 'asc' | 'desc'

						type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
						anyOf?: {
							modifiers?: (
								| 'default'
								| 'named'
								| 'require'
								| 'side-effect'
								| 'ts-equals'
								| 'type'
								| 'value'
								| 'wildcard'
							)[]

							selector?:
								| 'side-effect-style'
								| 'tsconfig-path'
								| 'side-effect'
								| 'external'
								| 'internal'
								| 'builtin'
								| 'sibling'
								| 'subpath'
								| 'import'
								| 'parent'
								| 'index'
								| 'style'
								| 'type'

							elementValuePattern?:
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )[]
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )

							elementNamePattern?:
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )[]
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )
						}[]
				  }
				| {
						newlinesInside?: 'always' | 'never'

						fallbackSort?: {
							order?: 'asc' | 'desc'

							type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
						}

						groupName: string

						order?: 'asc' | 'desc'

						type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

						modifiers?: (
							| 'default'
							| 'named'
							| 'require'
							| 'side-effect'
							| 'ts-equals'
							| 'type'
							| 'value'
							| 'wildcard'
						)[]

						selector?:
							| 'side-effect-style'
							| 'tsconfig-path'
							| 'side-effect'
							| 'external'
							| 'internal'
							| 'builtin'
							| 'sibling'
							| 'subpath'
							| 'import'
							| 'parent'
							| 'index'
							| 'style'
							| 'type'

						elementValuePattern?:
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )

						elementNamePattern?:
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
				  }
		  )[]
	tsconfig?: {
		rootDir: string

		filename?: string
	}

	maxLineLength?: number

	sortSideEffects?: boolean

	environment?: 'node' | 'bun'

	tsconfigRootDir?: string

	partitionByComment?:
		| boolean
		| (
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )[]
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )
		  )
		| {
				block?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )

				line?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
		  }

	partitionByNewLine?: boolean

	newlinesBetween?: 'ignore' | 'always' | 'never'

	internalPattern?:
		| (
				| {
						pattern: string

						flags?: string
				  }
				| string
		  )[]
		| (
				| {
						pattern: string

						flags?: string
				  }
				| string
		  )

	groups?: (
		| string
		| string[]
		| {
				newlinesBetween?: 'ignore' | 'always' | 'never'

				commentAbove?: string
		  }
	)[]
}[]
// ----- perfectionist/sort-interfaces -----
type PerfectionistSortInterfaces = {
	fallbackSort?: {
		order?: 'asc' | 'desc'

		type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
		sortBy?: 'name' | 'value'
	}

	specialCharacters?: 'remove' | 'trim' | 'keep'

	ignoreCase?: boolean

	alphabet?: string

	locales?: string | string[]

	order?: 'asc' | 'desc'

	type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
	customGroups?:
		| {
				[k: string]: (string | string[]) | undefined
		  }
		| (
				| {
						newlinesInside?: 'always' | 'never'

						fallbackSort?: {
							order?: 'asc' | 'desc'

							type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
							sortBy?: 'name' | 'value'
						}

						groupName: string

						order?: 'asc' | 'desc'

						type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
						anyOf?: {
							modifiers?: ('optional' | 'required' | 'multiline')[]

							selector?: 'index-signature' | 'member' | 'method' | 'multiline' | 'property'

							elementValuePattern?:
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )[]
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )

							elementNamePattern?:
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )[]
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )
							sortBy?: 'name' | 'value'
						}[]
				  }
				| {
						newlinesInside?: 'always' | 'never'

						fallbackSort?: {
							order?: 'asc' | 'desc'

							type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
							sortBy?: 'name' | 'value'
						}

						groupName: string

						order?: 'asc' | 'desc'

						type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

						modifiers?: ('optional' | 'required' | 'multiline')[]

						selector?: 'index-signature' | 'member' | 'method' | 'multiline' | 'property'

						elementValuePattern?:
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )

						elementNamePattern?:
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
						sortBy?: 'name' | 'value'
				  }
		  )[]

	groupKind?: 'mixed' | 'required-first' | 'optional-first'

	useConfigurationIf?: {
		allNamesMatchPattern?:
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )[]
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )

		declarationMatchesPattern?:
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )[]
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )
	}

	partitionByComment?:
		| boolean
		| (
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )[]
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )
		  )
		| {
				block?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )

				line?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
		  }

	partitionByNewLine?: boolean

	newlinesBetween?: 'ignore' | 'always' | 'never'

	ignorePattern?:
		| (
				| {
						pattern: string

						flags?: string
				  }
				| string
		  )[]
		| (
				| {
						pattern: string

						flags?: string
				  }
				| string
		  )
	sortBy?: 'name' | 'value'

	groups?: (
		| string
		| string[]
		| {
				newlinesBetween?: 'ignore' | 'always' | 'never'

				commentAbove?: string
		  }
	)[]
}[]
// ----- perfectionist/sort-intersection-types -----
type PerfectionistSortIntersectionTypes = {
	fallbackSort?: {
		order?: 'asc' | 'desc'

		type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
	}

	specialCharacters?: 'remove' | 'trim' | 'keep'

	ignoreCase?: boolean

	alphabet?: string

	locales?: string | string[]

	order?: 'asc' | 'desc'

	type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

	customGroups?: (
		| {
				newlinesInside?: 'always' | 'never'

				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				groupName: string

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				anyOf?: {
					selector?:
						| 'intersection'
						| 'conditional'
						| 'function'
						| 'operator'
						| 'keyword'
						| 'literal'
						| 'nullish'
						| 'import'
						| 'object'
						| 'named'
						| 'tuple'
						| 'union'

					elementNamePattern?:
						| (
								| {
										pattern: string

										flags?: string
								  }
								| string
						  )[]
						| (
								| {
										pattern: string

										flags?: string
								  }
								| string
						  )
				}[]
		  }
		| {
				newlinesInside?: 'always' | 'never'

				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				groupName: string

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

				selector?:
					| 'intersection'
					| 'conditional'
					| 'function'
					| 'operator'
					| 'keyword'
					| 'literal'
					| 'nullish'
					| 'import'
					| 'object'
					| 'named'
					| 'tuple'
					| 'union'

				elementNamePattern?:
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )[]
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )
		  }
	)[]

	partitionByComment?:
		| boolean
		| (
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )[]
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )
		  )
		| {
				block?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )

				line?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
		  }

	partitionByNewLine?: boolean

	newlinesBetween?: 'ignore' | 'always' | 'never'

	groups?: (
		| string
		| string[]
		| {
				newlinesBetween?: 'ignore' | 'always' | 'never'

				commentAbove?: string
		  }
	)[]
}[]
// ----- perfectionist/sort-jsx-props -----
type PerfectionistSortJsxProps = {
	fallbackSort?: {
		order?: 'asc' | 'desc'

		type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
	}

	specialCharacters?: 'remove' | 'trim' | 'keep'

	ignoreCase?: boolean

	alphabet?: string

	locales?: string | string[]

	order?: 'asc' | 'desc'

	type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
	customGroups?:
		| {
				[k: string]: (string | string[]) | undefined
		  }
		| (
				| {
						newlinesInside?: 'always' | 'never'

						fallbackSort?: {
							order?: 'asc' | 'desc'

							type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
						}

						groupName: string

						order?: 'asc' | 'desc'

						type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
						anyOf?: {
							modifiers?: ('shorthand' | 'multiline')[]

							selector?: 'multiline' | 'prop' | 'shorthand'

							elementValuePattern?:
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )[]
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )

							elementNamePattern?:
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )[]
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )
						}[]
				  }
				| {
						newlinesInside?: 'always' | 'never'

						fallbackSort?: {
							order?: 'asc' | 'desc'

							type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
						}

						groupName: string

						order?: 'asc' | 'desc'

						type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

						modifiers?: ('shorthand' | 'multiline')[]

						selector?: 'multiline' | 'prop' | 'shorthand'

						elementValuePattern?:
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )

						elementNamePattern?:
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
				  }
		  )[]

	useConfigurationIf?: {
		allNamesMatchPattern?:
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )[]
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )

		tagMatchesPattern?:
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )[]
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )
	}

	partitionByNewLine?: boolean

	newlinesBetween?: 'ignore' | 'always' | 'never'

	ignorePattern?:
		| (
				| {
						pattern: string

						flags?: string
				  }
				| string
		  )[]
		| (
				| {
						pattern: string

						flags?: string
				  }
				| string
		  )

	groups?: (
		| string
		| string[]
		| {
				newlinesBetween?: 'ignore' | 'always' | 'never'

				commentAbove?: string
		  }
	)[]
}[]
// ----- perfectionist/sort-maps -----
type PerfectionistSortMaps = {
	fallbackSort?: {
		order?: 'asc' | 'desc'

		type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
	}

	specialCharacters?: 'remove' | 'trim' | 'keep'

	ignoreCase?: boolean

	alphabet?: string

	locales?: string | string[]

	order?: 'asc' | 'desc'

	type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

	customGroups?: (
		| {
				newlinesInside?: 'always' | 'never'

				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				groupName: string

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				anyOf?: {
					elementNamePattern?:
						| (
								| {
										pattern: string

										flags?: string
								  }
								| string
						  )[]
						| (
								| {
										pattern: string

										flags?: string
								  }
								| string
						  )
				}[]
		  }
		| {
				newlinesInside?: 'always' | 'never'

				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				groupName: string

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

				elementNamePattern?:
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )[]
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )
		  }
	)[]

	useConfigurationIf?: {
		allNamesMatchPattern?:
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )[]
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )
	}

	partitionByComment?:
		| boolean
		| (
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )[]
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )
		  )
		| {
				block?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )

				line?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
		  }

	partitionByNewLine?: boolean

	newlinesBetween?: 'ignore' | 'always' | 'never'

	groups?: (
		| string
		| string[]
		| {
				newlinesBetween?: 'ignore' | 'always' | 'never'

				commentAbove?: string
		  }
	)[]
}[]
// ----- perfectionist/sort-modules -----
type PerfectionistSortModules =
	| []
	| [
			{
				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				specialCharacters?: 'remove' | 'trim' | 'keep'

				ignoreCase?: boolean

				alphabet?: string

				locales?: string | string[]

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

				customGroups?: (
					| {
							newlinesInside?: 'always' | 'never'

							fallbackSort?: {
								order?: 'asc' | 'desc'

								type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
							}

							groupName: string

							order?: 'asc' | 'desc'

							type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
							anyOf?: {
								modifiers?: ('async' | 'declare' | 'decorated' | 'default' | 'export')[]

								selector?: 'enum' | 'function' | 'interface' | 'type' | 'class'

								decoratorNamePattern?:
									| (
											| {
													pattern: string

													flags?: string
											  }
											| string
									  )[]
									| (
											| {
													pattern: string

													flags?: string
											  }
											| string
									  )

								elementNamePattern?:
									| (
											| {
													pattern: string

													flags?: string
											  }
											| string
									  )[]
									| (
											| {
													pattern: string

													flags?: string
											  }
											| string
									  )
							}[]
					  }
					| {
							newlinesInside?: 'always' | 'never'

							fallbackSort?: {
								order?: 'asc' | 'desc'

								type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
							}

							groupName: string

							order?: 'asc' | 'desc'

							type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

							modifiers?: ('async' | 'declare' | 'decorated' | 'default' | 'export')[]

							selector?: 'enum' | 'function' | 'interface' | 'type' | 'class'

							decoratorNamePattern?:
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )[]
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )

							elementNamePattern?:
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )[]
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )
					  }
				)[]

				partitionByComment?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
					| {
							block?:
								| boolean
								| (
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )[]
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )
								  )

							line?:
								| boolean
								| (
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )[]
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )
								  )
					  }

				partitionByNewLine?: boolean

				newlinesBetween?: 'ignore' | 'always' | 'never'

				groups?: (
					| string
					| string[]
					| {
							newlinesBetween?: 'ignore' | 'always' | 'never'

							commentAbove?: string
					  }
				)[]
			},
	  ]
// ----- perfectionist/sort-named-exports -----
type PerfectionistSortNamedExports = {
	fallbackSort?: {
		order?: 'asc' | 'desc'

		type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
	}

	specialCharacters?: 'remove' | 'trim' | 'keep'

	ignoreCase?: boolean

	alphabet?: string

	locales?: string | string[]

	order?: 'asc' | 'desc'

	type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

	groupKind?: 'mixed' | 'values-first' | 'types-first'

	ignoreAlias?: boolean

	customGroups?: (
		| {
				newlinesInside?: 'always' | 'never'

				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				groupName: string

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				anyOf?: {
					modifiers?: ('value' | 'type')[]

					selector?: 'export'

					elementNamePattern?:
						| (
								| {
										pattern: string

										flags?: string
								  }
								| string
						  )[]
						| (
								| {
										pattern: string

										flags?: string
								  }
								| string
						  )
				}[]
		  }
		| {
				newlinesInside?: 'always' | 'never'

				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				groupName: string

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

				modifiers?: ('value' | 'type')[]

				selector?: 'export'

				elementNamePattern?:
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )[]
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )
		  }
	)[]

	partitionByComment?:
		| boolean
		| (
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )[]
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )
		  )
		| {
				block?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )

				line?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
		  }

	partitionByNewLine?: boolean

	newlinesBetween?: 'ignore' | 'always' | 'never'

	groups?: (
		| string
		| string[]
		| {
				newlinesBetween?: 'ignore' | 'always' | 'never'

				commentAbove?: string
		  }
	)[]
}[]
// ----- perfectionist/sort-named-imports -----
type PerfectionistSortNamedImports = {
	fallbackSort?: {
		order?: 'asc' | 'desc'

		type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
	}

	specialCharacters?: 'remove' | 'trim' | 'keep'

	ignoreCase?: boolean

	alphabet?: string

	locales?: string | string[]

	order?: 'asc' | 'desc'

	type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

	groupKind?: 'mixed' | 'values-first' | 'types-first'

	ignoreAlias?: boolean

	customGroups?: (
		| {
				newlinesInside?: 'always' | 'never'

				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				groupName: string

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				anyOf?: {
					modifiers?: ('value' | 'type')[]

					selector?: 'import'

					elementNamePattern?:
						| (
								| {
										pattern: string

										flags?: string
								  }
								| string
						  )[]
						| (
								| {
										pattern: string

										flags?: string
								  }
								| string
						  )
				}[]
		  }
		| {
				newlinesInside?: 'always' | 'never'

				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				groupName: string

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

				modifiers?: ('value' | 'type')[]

				selector?: 'import'

				elementNamePattern?:
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )[]
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )
		  }
	)[]

	partitionByComment?:
		| boolean
		| (
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )[]
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )
		  )
		| {
				block?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )

				line?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
		  }

	partitionByNewLine?: boolean

	newlinesBetween?: 'ignore' | 'always' | 'never'

	groups?: (
		| string
		| string[]
		| {
				newlinesBetween?: 'ignore' | 'always' | 'never'

				commentAbove?: string
		  }
	)[]
}[]
// ----- perfectionist/sort-object-types -----
type PerfectionistSortObjectTypes = {
	fallbackSort?: {
		order?: 'asc' | 'desc'

		type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
		sortBy?: 'name' | 'value'
	}

	specialCharacters?: 'remove' | 'trim' | 'keep'

	ignoreCase?: boolean

	alphabet?: string

	locales?: string | string[]

	order?: 'asc' | 'desc'

	type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
	customGroups?:
		| {
				[k: string]: (string | string[]) | undefined
		  }
		| (
				| {
						newlinesInside?: 'always' | 'never'

						fallbackSort?: {
							order?: 'asc' | 'desc'

							type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
							sortBy?: 'name' | 'value'
						}

						groupName: string

						order?: 'asc' | 'desc'

						type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
						anyOf?: {
							modifiers?: ('optional' | 'required' | 'multiline')[]

							selector?: 'index-signature' | 'member' | 'method' | 'multiline' | 'property'

							elementValuePattern?:
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )[]
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )

							elementNamePattern?:
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )[]
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )
							sortBy?: 'name' | 'value'
						}[]
				  }
				| {
						newlinesInside?: 'always' | 'never'

						fallbackSort?: {
							order?: 'asc' | 'desc'

							type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
							sortBy?: 'name' | 'value'
						}

						groupName: string

						order?: 'asc' | 'desc'

						type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

						modifiers?: ('optional' | 'required' | 'multiline')[]

						selector?: 'index-signature' | 'member' | 'method' | 'multiline' | 'property'

						elementValuePattern?:
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )

						elementNamePattern?:
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
						sortBy?: 'name' | 'value'
				  }
		  )[]

	groupKind?: 'mixed' | 'required-first' | 'optional-first'

	useConfigurationIf?: {
		allNamesMatchPattern?:
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )[]
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )

		declarationMatchesPattern?:
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )[]
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )
	}

	partitionByComment?:
		| boolean
		| (
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )[]
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )
		  )
		| {
				block?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )

				line?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
		  }

	partitionByNewLine?: boolean

	newlinesBetween?: 'ignore' | 'always' | 'never'

	ignorePattern?:
		| (
				| {
						pattern: string

						flags?: string
				  }
				| string
		  )[]
		| (
				| {
						pattern: string

						flags?: string
				  }
				| string
		  )
	sortBy?: 'name' | 'value'

	groups?: (
		| string
		| string[]
		| {
				newlinesBetween?: 'ignore' | 'always' | 'never'

				commentAbove?: string
		  }
	)[]
}[]
// ----- perfectionist/sort-objects -----
type PerfectionistSortObjects = {
	fallbackSort?: {
		order?: 'asc' | 'desc'

		type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
	}

	specialCharacters?: 'remove' | 'trim' | 'keep'

	ignoreCase?: boolean

	alphabet?: string

	locales?: string | string[]

	order?: 'asc' | 'desc'

	type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

	destructuredObjects?:
		| boolean
		| {
				groups?: boolean
		  }
	customGroups?:
		| {
				[k: string]: (string | string[]) | undefined
		  }
		| (
				| {
						newlinesInside?: 'always' | 'never'

						fallbackSort?: {
							order?: 'asc' | 'desc'

							type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
						}

						groupName: string

						order?: 'asc' | 'desc'

						type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
						anyOf?: {
							modifiers?: ('optional' | 'required' | 'multiline')[]

							selector?: 'member' | 'method' | 'multiline' | 'property'

							elementValuePattern?:
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )[]
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )

							elementNamePattern?:
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )[]
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )
						}[]
				  }
				| {
						newlinesInside?: 'always' | 'never'

						fallbackSort?: {
							order?: 'asc' | 'desc'

							type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
						}

						groupName: string

						order?: 'asc' | 'desc'

						type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

						modifiers?: ('optional' | 'required' | 'multiline')[]

						selector?: 'member' | 'method' | 'multiline' | 'property'

						elementValuePattern?:
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )

						elementNamePattern?:
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
				  }
		  )[]

	useConfigurationIf?: {
		allNamesMatchPattern?:
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )[]
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )

		callingFunctionNamePattern?:
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )[]
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )
	}

	destructureOnly?: boolean

	objectDeclarations?: boolean

	styledComponents?: boolean

	partitionByComment?:
		| boolean
		| (
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )[]
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )
		  )
		| {
				block?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )

				line?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
		  }

	partitionByNewLine?: boolean

	newlinesBetween?: 'ignore' | 'always' | 'never'

	ignorePattern?:
		| (
				| {
						pattern: string

						flags?: string
				  }
				| string
		  )[]
		| (
				| {
						pattern: string

						flags?: string
				  }
				| string
		  )

	groups?: (
		| string
		| string[]
		| {
				newlinesBetween?: 'ignore' | 'always' | 'never'

				commentAbove?: string
		  }
	)[]
}[]
// ----- perfectionist/sort-sets -----
type PerfectionistSortSets = {
	fallbackSort?: {
		order?: 'asc' | 'desc'

		type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
	}

	specialCharacters?: 'remove' | 'trim' | 'keep'

	ignoreCase?: boolean

	alphabet?: string

	locales?: string | string[]

	order?: 'asc' | 'desc'

	type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

	groupKind?: 'mixed' | 'literals-first' | 'spreads-first'

	customGroups?: (
		| {
				newlinesInside?: 'always' | 'never'

				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				groupName: string

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				anyOf?: {
					selector?: 'literal' | 'spread'

					elementNamePattern?:
						| (
								| {
										pattern: string

										flags?: string
								  }
								| string
						  )[]
						| (
								| {
										pattern: string

										flags?: string
								  }
								| string
						  )
				}[]
		  }
		| {
				newlinesInside?: 'always' | 'never'

				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				groupName: string

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

				selector?: 'literal' | 'spread'

				elementNamePattern?:
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )[]
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )
		  }
	)[]

	useConfigurationIf?: {
		allNamesMatchPattern?:
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )[]
			| (
					| {
							pattern: string

							flags?: string
					  }
					| string
			  )
	}

	partitionByComment?:
		| boolean
		| (
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )[]
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )
		  )
		| {
				block?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )

				line?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
		  }

	partitionByNewLine?: boolean

	newlinesBetween?: 'ignore' | 'always' | 'never'

	groups?: (
		| string
		| string[]
		| {
				newlinesBetween?: 'ignore' | 'always' | 'never'

				commentAbove?: string
		  }
	)[]
}[]
// ----- perfectionist/sort-switch-case -----
type PerfectionistSortSwitchCase =
	| []
	| [
			{
				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				specialCharacters?: 'remove' | 'trim' | 'keep'

				ignoreCase?: boolean

				alphabet?: string

				locales?: string | string[]

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
			},
	  ]
// ----- perfectionist/sort-union-types -----
type PerfectionistSortUnionTypes = {
	fallbackSort?: {
		order?: 'asc' | 'desc'

		type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
	}

	specialCharacters?: 'remove' | 'trim' | 'keep'

	ignoreCase?: boolean

	alphabet?: string

	locales?: string | string[]

	order?: 'asc' | 'desc'

	type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

	customGroups?: (
		| {
				newlinesInside?: 'always' | 'never'

				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				groupName: string

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				anyOf?: {
					selector?:
						| 'intersection'
						| 'conditional'
						| 'function'
						| 'operator'
						| 'keyword'
						| 'literal'
						| 'nullish'
						| 'import'
						| 'object'
						| 'named'
						| 'tuple'
						| 'union'

					elementNamePattern?:
						| (
								| {
										pattern: string

										flags?: string
								  }
								| string
						  )[]
						| (
								| {
										pattern: string

										flags?: string
								  }
								| string
						  )
				}[]
		  }
		| {
				newlinesInside?: 'always' | 'never'

				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				groupName: string

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

				selector?:
					| 'intersection'
					| 'conditional'
					| 'function'
					| 'operator'
					| 'keyword'
					| 'literal'
					| 'nullish'
					| 'import'
					| 'object'
					| 'named'
					| 'tuple'
					| 'union'

				elementNamePattern?:
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )[]
					| (
							| {
									pattern: string

									flags?: string
							  }
							| string
					  )
		  }
	)[]

	partitionByComment?:
		| boolean
		| (
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )[]
				| (
						| {
								pattern: string

								flags?: string
						  }
						| string
				  )
		  )
		| {
				block?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )

				line?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
		  }

	partitionByNewLine?: boolean

	newlinesBetween?: 'ignore' | 'always' | 'never'

	groups?: (
		| string
		| string[]
		| {
				newlinesBetween?: 'ignore' | 'always' | 'never'

				commentAbove?: string
		  }
	)[]
}[]
// ----- perfectionist/sort-variable-declarations -----
type PerfectionistSortVariableDeclarations =
	| []
	| [
			{
				fallbackSort?: {
					order?: 'asc' | 'desc'

					type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
				}

				specialCharacters?: 'remove' | 'trim' | 'keep'

				ignoreCase?: boolean

				alphabet?: string

				locales?: string | string[]

				order?: 'asc' | 'desc'

				type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

				customGroups?: (
					| {
							newlinesInside?: 'always' | 'never'

							fallbackSort?: {
								order?: 'asc' | 'desc'

								type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
							}

							groupName: string

							order?: 'asc' | 'desc'

							type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
							anyOf?: {
								selector?: 'initialized' | 'uninitialized'

								elementNamePattern?:
									| (
											| {
													pattern: string

													flags?: string
											  }
											| string
									  )[]
									| (
											| {
													pattern: string

													flags?: string
											  }
											| string
									  )
							}[]
					  }
					| {
							newlinesInside?: 'always' | 'never'

							fallbackSort?: {
								order?: 'asc' | 'desc'

								type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'
							}

							groupName: string

							order?: 'asc' | 'desc'

							type?: 'alphabetical' | 'natural' | 'line-length' | 'custom' | 'unsorted'

							selector?: 'initialized' | 'uninitialized'

							elementNamePattern?:
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )[]
								| (
										| {
												pattern: string

												flags?: string
										  }
										| string
								  )
					  }
				)[]

				partitionByComment?:
					| boolean
					| (
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )[]
							| (
									| {
											pattern: string

											flags?: string
									  }
									| string
							  )
					  )
					| {
							block?:
								| boolean
								| (
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )[]
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )
								  )

							line?:
								| boolean
								| (
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )[]
										| (
												| {
														pattern: string

														flags?: string
												  }
												| string
										  )
								  )
					  }

				partitionByNewLine?: boolean

				newlinesBetween?: 'ignore' | 'always' | 'never'

				groups?: (
					| string
					| string[]
					| {
							newlinesBetween?: 'ignore' | 'always' | 'never'

							commentAbove?: string
					  }
				)[]
			},
	  ]
// ----- prefer-arrow-callback -----
type PreferArrowCallback =
	| []
	| [
			{
				allowNamedFunctions?: boolean
				allowUnboundThis?: boolean
			},
	  ]
// ----- prefer-const -----
type PreferConst =
	| []
	| [
			{
				destructuring?: 'any' | 'all'
				ignoreReadBeforeAssign?: boolean
			},
	  ]
// ----- prefer-destructuring -----
type PreferDestructuring =
	| []
	| [
			| {
					VariableDeclarator?: {
						array?: boolean
						object?: boolean
					}
					AssignmentExpression?: {
						array?: boolean
						object?: boolean
					}
			  }
			| {
					array?: boolean
					object?: boolean
			  },
	  ]
	| [
			(
				| {
						VariableDeclarator?: {
							array?: boolean
							object?: boolean
						}
						AssignmentExpression?: {
							array?: boolean
							object?: boolean
						}
				  }
				| {
						array?: boolean
						object?: boolean
				  }
			),
			{
				enforceForRenamedProperties?: boolean
			},
	  ]
// ----- prefer-promise-reject-errors -----
type PreferPromiseRejectErrors =
	| []
	| [
			{
				allowEmptyReject?: boolean
			},
	  ]
// ----- prefer-reflect -----
type PreferReflect =
	| []
	| [
			{
				exceptions?: (
					| 'apply'
					| 'call'
					| 'delete'
					| 'defineProperty'
					| 'getOwnPropertyDescriptor'
					| 'getPrototypeOf'
					| 'setPrototypeOf'
					| 'isExtensible'
					| 'getOwnPropertyNames'
					| 'preventExtensions'
				)[]
			},
	  ]
// ----- prefer-regex-literals -----
type PreferRegexLiterals =
	| []
	| [
			{
				disallowRedundantWrapping?: boolean
			},
	  ]
// ----- quote-props -----
type QuoteProps =
	| []
	| ['always' | 'as-needed' | 'consistent' | 'consistent-as-needed']
	| []
	| ['always' | 'as-needed' | 'consistent' | 'consistent-as-needed']
	| [
			'always' | 'as-needed' | 'consistent' | 'consistent-as-needed',
			{
				keywords?: boolean
				unnecessary?: boolean
				numbers?: boolean
			},
	  ]
// ----- quotes -----
type Quotes =
	| []
	| ['single' | 'double' | 'backtick']
	| [
			'single' | 'double' | 'backtick',
			(
				| 'avoid-escape'
				| {
						avoidEscape?: boolean
						allowTemplateLiterals?: boolean
				  }
			),
	  ]
// ----- radix -----
type Radix = [] | ['always' | 'as-needed']
// ----- react-dom/no-unknown-property -----
type ReactDomNoUnknownProperty =
	| []
	| [
			{
				ignore?: string[]
				requireDataLowercase?: boolean
			},
	  ]
// ----- react-naming-convention/component-name -----
type ReactNamingConventionComponentName =
	| []
	| [
			| ('PascalCase' | 'CONSTANT_CASE')
			| {
					allowAllCaps?: boolean
					allowLeadingUnderscore?: boolean
					allowNamespace?: boolean
					excepts?: string[]
					rule?: 'PascalCase' | 'CONSTANT_CASE'
			  },
	  ]
// ----- react-naming-convention/filename -----
type ReactNamingConventionFilename =
	| []
	| [
			| ('PascalCase' | 'camelCase' | 'kebab-case' | 'snake_case')
			| {
					excepts?: string[]
					extensions?: string[]
					rule?: 'PascalCase' | 'camelCase' | 'kebab-case' | 'snake_case'
			  },
	  ]
// ----- react-naming-convention/filename-extension -----
type ReactNamingConventionFilenameExtension =
	| []
	| [
			| ('always' | 'as-needed')
			| {
					allow?: 'always' | 'as-needed'
					extensions?: string[]
					ignoreFilesWithoutCode?: boolean
			  },
	  ]
// ----- react/no-useless-fragment -----
type ReactNoUselessFragment =
	| []
	| [
			{
				allowExpressions?: boolean
			},
	  ]
// ----- regexp/hexadecimal-escape -----
type RegexpHexadecimalEscape = [] | ['always' | 'never']
// ----- regexp/letter-case -----
type RegexpLetterCase =
	| []
	| [
			{
				caseInsensitive?: 'lowercase' | 'uppercase' | 'ignore'
				unicodeEscape?: 'lowercase' | 'uppercase' | 'ignore'
				hexadecimalEscape?: 'lowercase' | 'uppercase' | 'ignore'
				controlEscape?: 'lowercase' | 'uppercase' | 'ignore'
			},
	  ]
// ----- regexp/match-any -----
type RegexpMatchAny =
	| []
	| [
			{
				allows?: [
					'[\\s\\S]' | '[\\S\\s]' | '[^]' | 'dotAll',
					...('[\\s\\S]' | '[\\S\\s]' | '[^]' | 'dotAll')[],
				]
			},
	  ]
// ----- regexp/no-dupe-disjunctions -----
type RegexpNoDupeDisjunctions =
	| []
	| [
			{
				report?: 'all' | 'trivial' | 'interesting'
				reportExponentialBacktracking?: 'none' | 'certain' | 'potential'
				reportUnreachable?: 'certain' | 'potential'
			},
	  ]
// ----- regexp/no-lazy-ends -----
type RegexpNoLazyEnds =
	| []
	| [
			{
				ignorePartial?: boolean
			},
	  ]
// ----- regexp/no-legacy-features -----
type RegexpNoLegacyFeatures =
	| []
	| [
			{
				staticProperties?: (
					| 'input'
					| '$_'
					| 'lastMatch'
					| '$&'
					| 'lastParen'
					| '$+'
					| 'leftContext'
					| '$`'
					| 'rightContext'
					| "$'"
					| '$1'
					| '$2'
					| '$3'
					| '$4'
					| '$5'
					| '$6'
					| '$7'
					| '$8'
					| '$9'
				)[]
				prototypeMethods?: 'compile'[]
			},
	  ]
// ----- regexp/no-misleading-capturing-group -----
type RegexpNoMisleadingCapturingGroup =
	| []
	| [
			{
				reportBacktrackingEnds?: boolean
			},
	  ]
// ----- regexp/no-misleading-unicode-character -----
type RegexpNoMisleadingUnicodeCharacter =
	| []
	| [
			{
				fixable?: boolean
			},
	  ]
// ----- regexp/no-missing-g-flag -----
type RegexpNoMissingGFlag =
	| []
	| [
			{
				strictTypes?: boolean
			},
	  ]
// ----- regexp/no-obscure-range -----
type RegexpNoObscureRange =
	| []
	| [
			{
				allowed?:
					| ('all' | 'alphanumeric')
					| ['all' | 'alphanumeric']
					| ['alphanumeric' | string, ...('alphanumeric' | string)[]]
			},
	  ]
// ----- regexp/no-super-linear-backtracking -----
type RegexpNoSuperLinearBacktracking =
	| []
	| [
			{
				report?: 'certain' | 'potential'
			},
	  ]
// ----- regexp/no-super-linear-move -----
type RegexpNoSuperLinearMove =
	| []
	| [
			{
				report?: 'certain' | 'potential'
				ignoreSticky?: boolean
				ignorePartial?: boolean
			},
	  ]
// ----- regexp/no-unused-capturing-group -----
type RegexpNoUnusedCapturingGroup =
	| []
	| [
			{
				fixable?: boolean
				allowNamed?: boolean
			},
	  ]
// ----- regexp/no-useless-character-class -----
type RegexpNoUselessCharacterClass =
	| []
	| [
			{
				ignores?: string[]
			},
	  ]
// ----- regexp/no-useless-flag -----
type RegexpNoUselessFlag =
	| []
	| [
			{
				ignore?: ('i' | 'm' | 's' | 'g' | 'y')[]
				strictTypes?: boolean
			},
	  ]
// ----- regexp/no-useless-non-capturing-group -----
type RegexpNoUselessNonCapturingGroup =
	| []
	| [
			{
				allowTop?: boolean | ('always' | 'never' | 'partial')
			},
	  ]
// ----- regexp/optimal-quantifier-concatenation -----
type RegexpOptimalQuantifierConcatenation =
	| []
	| [
			{
				capturingGroups?: 'ignore' | 'report'
			},
	  ]
// ----- regexp/prefer-character-class -----
type RegexpPreferCharacterClass =
	| []
	| [
			{
				minAlternatives?: number
			},
	  ]
// ----- regexp/prefer-d -----
type RegexpPreferD =
	| []
	| [
			{
				insideCharacterClass?: 'ignore' | 'range' | 'd'
			},
	  ]
// ----- regexp/prefer-lookaround -----
type RegexpPreferLookaround =
	| []
	| [
			{
				lookbehind?: boolean
				strictTypes?: boolean
			},
	  ]
// ----- regexp/prefer-named-replacement -----
type RegexpPreferNamedReplacement =
	| []
	| [
			{
				strictTypes?: boolean
			},
	  ]
// ----- regexp/prefer-quantifier -----
type RegexpPreferQuantifier =
	| []
	| [
			{
				allows?: string[]
			},
	  ]
// ----- regexp/prefer-range -----
type RegexpPreferRange =
	| []
	| [
			{
				target?:
					| ('all' | 'alphanumeric')
					| ['all' | 'alphanumeric']
					| ['alphanumeric' | string, ...('alphanumeric' | string)[]]
			},
	  ]
// ----- regexp/prefer-result-array-groups -----
type RegexpPreferResultArrayGroups =
	| []
	| [
			{
				strictTypes?: boolean
			},
	  ]
// ----- regexp/sort-character-class-elements -----
type RegexpSortCharacterClassElements =
	| []
	| [
			{
				order?: ('\\s' | '\\w' | '\\d' | '\\p' | '*' | '\\q' | '[]')[]
			},
	  ]
// ----- regexp/unicode-escape -----
type RegexpUnicodeEscape = [] | ['unicodeCodePointEscape' | 'unicodeEscape']
// ----- regexp/unicode-property -----
type RegexpUnicodeProperty =
	| []
	| [
			{
				generalCategory?: 'always' | 'never' | 'ignore'
				key?: 'short' | 'long' | 'ignore'
				property?:
					| ('short' | 'long' | 'ignore')
					| {
							binary?: 'short' | 'long' | 'ignore'
							generalCategory?: 'short' | 'long' | 'ignore'
							script?: 'short' | 'long' | 'ignore'
					  }
			},
	  ]
// ----- require-atomic-updates -----
type RequireAtomicUpdates =
	| []
	| [
			{
				allowProperties?: boolean
			},
	  ]
// ----- require-unicode-regexp -----
type RequireUnicodeRegexp =
	| []
	| [
			{
				requireFlag?: 'u' | 'v'
			},
	  ]
// ----- rest-spread-spacing -----
type RestSpreadSpacing = [] | ['always' | 'never']
// ----- semi -----
type Semi =
	| []
	| ['never']
	| [
			'never',
			{
				beforeStatementContinuationChars?: 'always' | 'any' | 'never'
			},
	  ]
	| []
	| ['always']
	| [
			'always',
			{
				omitLastInOneLineBlock?: boolean
				omitLastInOneLineClassBody?: boolean
			},
	  ]
// ----- semi-spacing -----
type SemiSpacing =
	| []
	| [
			{
				before?: boolean
				after?: boolean
			},
	  ]
// ----- semi-style -----
type SemiStyle = [] | ['last' | 'first']
// ----- sort-imports -----
type SortImports =
	| []
	| [
			{
				ignoreCase?: boolean

				memberSyntaxSortOrder?: [
					'none' | 'all' | 'multiple' | 'single',
					'none' | 'all' | 'multiple' | 'single',
					'none' | 'all' | 'multiple' | 'single',
					'none' | 'all' | 'multiple' | 'single',
				]
				ignoreDeclarationSort?: boolean
				ignoreMemberSort?: boolean
				allowSeparatedGroups?: boolean
			},
	  ]
// ----- sort-keys -----
type SortKeys =
	| []
	| ['asc' | 'desc']
	| [
			'asc' | 'desc',
			{
				caseSensitive?: boolean
				natural?: boolean
				minKeys?: number
				allowLineSeparatedGroups?: boolean
				ignoreComputedKeys?: boolean
			},
	  ]
// ----- sort-vars -----
type SortVars =
	| []
	| [
			{
				ignoreCase?: boolean
			},
	  ]
// ----- space-before-blocks -----
type SpaceBeforeBlocks =
	| []
	| [
			| ('always' | 'never')
			| {
					keywords?: 'always' | 'never' | 'off'
					functions?: 'always' | 'never' | 'off'
					classes?: 'always' | 'never' | 'off'
			  },
	  ]
// ----- space-before-function-paren -----
type SpaceBeforeFunctionParen =
	| []
	| [
			| ('always' | 'never')
			| {
					anonymous?: 'always' | 'never' | 'ignore'
					named?: 'always' | 'never' | 'ignore'
					asyncArrow?: 'always' | 'never' | 'ignore'
			  },
	  ]
// ----- space-in-parens -----
type SpaceInParens =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				exceptions?: ('{}' | '[]' | '()' | 'empty')[]
			},
	  ]
// ----- space-infix-ops -----
type SpaceInfixOps =
	| []
	| [
			{
				int32Hint?: boolean
			},
	  ]
// ----- space-unary-ops -----
type SpaceUnaryOps =
	| []
	| [
			{
				words?: boolean
				nonwords?: boolean
				overrides?: {
					[k: string]: boolean | undefined
				}
			},
	  ]
// ----- spaced-comment -----
type SpacedComment =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				exceptions?: string[]
				markers?: string[]
				line?: {
					exceptions?: string[]
					markers?: string[]
				}
				block?: {
					exceptions?: string[]
					markers?: string[]
					balanced?: boolean
				}
			},
	  ]
// ----- strict -----
type Strict = [] | ['never' | 'global' | 'function' | 'safe']
// ----- svelte/@typescript-eslint/no-unnecessary-condition -----
type SvelteTypescriptEslintNoUnnecessaryCondition =
	| []
	| [
			{
				allowConstantLoopConditions?: boolean

				allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean
			},
	  ]
// ----- svelte/block-lang -----
type SvelteBlockLang =
	| []
	| [
			{
				enforceScriptPresent?: boolean
				enforceStylePresent?: boolean
				script?: (string | null) | [string | null, ...(string | null)[]]
				style?: (string | null) | [string | null, ...(string | null)[]]
			},
	  ]
// ----- svelte/button-has-type -----
type SvelteButtonHasType =
	| []
	| [
			{
				button?: boolean
				submit?: boolean
				reset?: boolean
			},
	  ]
// ----- svelte/comment-directive -----
type SvelteCommentDirective =
	| []
	| [
			{
				reportUnusedDisableDirectives?: boolean
			},
	  ]
// ----- svelte/consistent-selector-style -----
type SvelteConsistentSelectorStyle =
	| []
	| [
			{
				checkGlobal?: boolean

				style?:
					| []
					| ['class' | 'id' | 'type']
					| ['class' | 'id' | 'type', 'class' | 'id' | 'type']
					| ['class' | 'id' | 'type', 'class' | 'id' | 'type', 'class' | 'id' | 'type']
			},
	  ]
// ----- svelte/first-attribute-linebreak -----
type SvelteFirstAttributeLinebreak =
	| []
	| [
			{
				multiline?: 'below' | 'beside'
				singleline?: 'below' | 'beside'
			},
	  ]
// ----- svelte/html-closing-bracket-new-line -----
type SvelteHtmlClosingBracketNewLine =
	| []
	| [
			{
				singleline?: 'always' | 'never'
				multiline?: 'always' | 'never'
				selfClosingTag?: {
					singleline?: 'always' | 'never'
					multiline?: 'always' | 'never'
				}
			},
	  ]
// ----- svelte/html-closing-bracket-spacing -----
type SvelteHtmlClosingBracketSpacing =
	| []
	| [
			{
				startTag?: 'always' | 'never' | 'ignore'
				endTag?: 'always' | 'never' | 'ignore'
				selfClosingTag?: 'always' | 'never' | 'ignore'
			},
	  ]
// ----- svelte/html-quotes -----
type SvelteHtmlQuotes =
	| []
	| [
			{
				prefer?: 'double' | 'single'
				dynamic?: {
					quoted?: boolean
					avoidInvalidUnquotedInHTML?: boolean
				}
			},
	  ]
// ----- svelte/html-self-closing -----
type SvelteHtmlSelfClosing =
	| []
	| [
			| {
					void?: 'never' | 'always' | 'ignore'
					normal?: 'never' | 'always' | 'ignore'
					svg?: 'never' | 'always' | 'ignore'
					math?: 'never' | 'always' | 'ignore'
					component?: 'never' | 'always' | 'ignore'
					svelte?: 'never' | 'always' | 'ignore'
			  }
			| ('all' | 'html' | 'none'),
	  ]
// ----- svelte/indent -----
type SvelteIndent =
	| []
	| [
			{
				indent?: number | 'tab'
				indentScript?: boolean
				switchCase?: number
				alignAttributesVertically?: boolean
				ignoredNodes?: (string & {
					[k: string]: unknown | undefined
				} & {
					[k: string]: unknown | undefined
				})[]
			},
	  ]
// ----- svelte/max-attributes-per-line -----
type SvelteMaxAttributesPerLine =
	| []
	| [
			{
				multiline?: number
				singleline?: number
			},
	  ]
// ----- svelte/mustache-spacing -----
type SvelteMustacheSpacing =
	| []
	| [
			{
				textExpressions?: 'never' | 'always'
				attributesAndProps?: 'never' | 'always'
				directiveExpressions?: 'never' | 'always'
				tags?: {
					openingBrace?: 'never' | 'always'
					closingBrace?: 'never' | 'always' | 'always-after-expression'
				}
			},
	  ]
// ----- svelte/no-inline-styles -----
type SvelteNoInlineStyles =
	| []
	| [
			{
				allowTransitions?: boolean
			},
	  ]
// ----- svelte/no-inner-declarations -----
type SvelteNoInnerDeclarations =
	| []
	| ['functions' | 'both']
	| [
			'functions' | 'both',
			{
				blockScopedFunctions?: 'allow' | 'disallow'
			},
	  ]
// ----- svelte/no-navigation-without-base -----
type SvelteNoNavigationWithoutBase =
	| []
	| [
			{
				ignoreGoto?: boolean
				ignoreLinks?: boolean
				ignorePushState?: boolean
				ignoreReplaceState?: boolean
			},
	  ]
// ----- svelte/no-reactive-reassign -----
type SvelteNoReactiveReassign =
	| []
	| [
			{
				props?: boolean
			},
	  ]
// ----- svelte/no-restricted-html-elements -----
type SvelteNoRestrictedHtmlElements = [
	(
		| string
		| {
				elements?: [string, ...string[]]
				message?: string
		  }
	),
	...(
		| string
		| {
				elements?: [string, ...string[]]
				message?: string
		  }
	)[],
]
// ----- svelte/no-target-blank -----
type SvelteNoTargetBlank =
	| []
	| [
			{
				allowReferrer?: boolean
				enforceDynamicLinks?: 'always' | 'never'
			},
	  ]
// ----- svelte/no-trailing-spaces -----
type SvelteNoTrailingSpaces =
	| []
	| [
			{
				skipBlankLines?: boolean
				ignoreComments?: boolean
			},
	  ]
// ----- svelte/no-unknown-style-directive-property -----
type SvelteNoUnknownStyleDirectiveProperty =
	| []
	| [
			{
				ignoreProperties?: [string, ...string[]]
				ignorePrefixed?: boolean
			},
	  ]
// ----- svelte/no-unnecessary-state-wrap -----
type SvelteNoUnnecessaryStateWrap =
	| []
	| [
			{
				additionalReactiveClasses?: string[]
				allowReassign?: boolean
			},
	  ]
// ----- svelte/no-unused-class-name -----
type SvelteNoUnusedClassName =
	| []
	| [
			{
				allowedClassNames?: string[]
			},
	  ]
// ----- svelte/no-unused-props -----
type SvelteNoUnusedProps =
	| []
	| [
			{
				checkImportedTypes?: boolean
				ignoreTypePatterns?: string[]
				ignorePropertyPatterns?: string[]
				allowUnusedNestedProperties?: boolean
			},
	  ]
// ----- svelte/no-useless-mustaches -----
type SvelteNoUselessMustaches =
	| []
	| [
			{
				ignoreIncludesComment?: boolean
				ignoreStringEscape?: boolean
			},
	  ]
// ----- svelte/prefer-class-directive -----
type SveltePreferClassDirective =
	| []
	| [
			{
				prefer?: 'always' | 'empty'
			},
	  ]
// ----- svelte/prefer-const -----
type SveltePreferConst =
	| []
	| [
			{
				destructuring?: 'any' | 'all'
				ignoreReadBeforeAssign?: boolean
				excludedRunes?: string[]
				[k: string]: unknown | undefined
			},
	  ]
// ----- svelte/require-event-prefix -----
type SvelteRequireEventPrefix =
	| []
	| [
			{
				checkAsyncFunctions?: boolean
			},
	  ]
// ----- svelte/shorthand-attribute -----
type SvelteShorthandAttribute =
	| []
	| [
			{
				prefer?: 'always' | 'never'
			},
	  ]
// ----- svelte/shorthand-directive -----
type SvelteShorthandDirective =
	| []
	| [
			{
				prefer?: 'always' | 'never'
			},
	  ]
// ----- svelte/sort-attributes -----
type SvelteSortAttributes =
	| []
	| [
			{
				order?: (
					| string
					| [string, ...string[]]
					| {
							match: string | [string, ...string[]]
							sort: 'alphabetical' | 'ignore'
					  }
				)[]
				alphabetical?: boolean
			},
	  ]
// ----- svelte/spaced-html-comment -----
type SvelteSpacedHtmlComment = [] | ['always' | 'never']
// ----- svelte/valid-compile -----
type SvelteValidCompile =
	| []
	| [
			{
				ignoreWarnings?: boolean
			},
	  ]
// ----- switch-colon-spacing -----
type SwitchColonSpacing =
	| []
	| [
			{
				before?: boolean
				after?: boolean
			},
	  ]
// ----- template-curly-spacing -----
type TemplateCurlySpacing = [] | ['always' | 'never']
// ----- template-tag-spacing -----
type TemplateTagSpacing = [] | ['always' | 'never']
// ----- test/consistent-test-filename -----
type TestConsistentTestFilename =
	| []
	| [
			{
				pattern?: string
				allTestPattern?: string
			},
	  ]
// ----- test/consistent-test-it -----
type TestConsistentTestIt =
	| []
	| [
			{
				fn?: 'test' | 'it'
				withinDescribe?: 'test' | 'it'
			},
	  ]
// ----- test/expect-expect -----
type TestExpectExpect =
	| []
	| [
			{
				assertFunctionNames?: string[]
				additionalTestBlockFunctions?: string[]
			},
	  ]
// ----- test/max-expects -----
type TestMaxExpects =
	| []
	| [
			{
				max?: number
			},
	  ]
// ----- test/max-nested-describe -----
type TestMaxNestedDescribe =
	| []
	| [
			{
				max?: number
			},
	  ]
// ----- test/no-focused-tests -----
type TestNoFocusedTests =
	| []
	| [
			{
				fixable?: boolean
			},
	  ]
// ----- test/no-hooks -----
type TestNoHooks =
	| []
	| [
			{
				allow?: unknown[]
			},
	  ]
// ----- test/no-large-snapshots -----
type TestNoLargeSnapshots =
	| []
	| [
			{
				maxSize?: number
				inlineMaxSize?: number
				allowedSnapshots?: {
					[k: string]: unknown[] | undefined
				}
			},
	  ]
// ----- test/no-only-tests -----
type TestNoOnlyTests =
	| []
	| [
			{
				block?: string[]
				focus?: string[]
				functions?: string[]
				fix?: boolean
			},
	  ]
// ----- test/no-restricted-matchers -----
type TestNoRestrictedMatchers =
	| []
	| [
			{
				[k: string]: (string | null) | undefined
			},
	  ]
// ----- test/no-restricted-vi-methods -----
type TestNoRestrictedViMethods =
	| []
	| [
			{
				[k: string]: (string | null) | undefined
			},
	  ]
// ----- test/no-standalone-expect -----
type TestNoStandaloneExpect =
	| []
	| [
			{
				additionalTestBlockFunctions?: string[]
			},
	  ]
// ----- test/prefer-expect-assertions -----
type TestPreferExpectAssertions =
	| []
	| [
			{
				onlyFunctionsWithAsyncKeyword?: boolean
				onlyFunctionsWithExpectInLoop?: boolean
				onlyFunctionsWithExpectInCallback?: boolean
			},
	  ]
// ----- test/prefer-lowercase-title -----
type TestPreferLowercaseTitle =
	| []
	| [
			{
				ignore?: ('describe' | 'test' | 'it')[]
				allowedPrefixes?: string[]
				ignoreTopLevelDescribe?: boolean
				lowercaseFirstCharacterOnly?: boolean
			},
	  ]
// ----- test/prefer-snapshot-hint -----
type TestPreferSnapshotHint = [] | ['always' | 'multi']
// ----- test/require-hook -----
type TestRequireHook =
	| []
	| [
			{
				allowedFunctionCalls?: string[]
			},
	  ]
// ----- test/require-mock-type-parameters -----
type TestRequireMockTypeParameters =
	| []
	| [
			{
				checkImportFunctions?: boolean
			},
	  ]
// ----- test/require-top-level-describe -----
type TestRequireTopLevelDescribe =
	| []
	| [
			{
				maxNumberOfTopLevelDescribes?: number
			},
	  ]
// ----- test/valid-expect -----
type TestValidExpect =
	| []
	| [
			{
				alwaysAwait?: boolean
				asyncMatchers?: string[]
				minArgs?: number
				maxArgs?: number
			},
	  ]
// ----- test/valid-title -----
type TestValidTitle =
	| []
	| [
			{
				ignoreTypeOfDescribeName?: boolean
				allowArguments?: boolean
				disallowedWords?: string[]
				[k: string]:
					| string
					| [string]
					| [string, string]
					| {
							[k: string]: (string | [string] | [string, string]) | undefined
					  }
			},
	  ]
// ----- toml/array-bracket-newline -----
type TomlArrayBracketNewline =
	| []
	| [
			| ('always' | 'never' | 'consistent')
			| {
					multiline?: boolean
					minItems?: number | null
			  },
	  ]
// ----- toml/array-bracket-spacing -----
type TomlArrayBracketSpacing =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				singleValue?: boolean
				objectsInArrays?: boolean
				arraysInArrays?: boolean
			},
	  ]
// ----- toml/array-element-newline -----
type TomlArrayElementNewline =
	| []
	| [
			| _TomlArrayElementNewlineBasicConfig
			| {
					ArrayExpression?: _TomlArrayElementNewlineBasicConfig
					ArrayPattern?: _TomlArrayElementNewlineBasicConfig
					TOMLArray?: _TomlArrayElementNewlineBasicConfig
			  },
	  ]
type _TomlArrayElementNewlineBasicConfig =
	| ('always' | 'never' | 'consistent')
	| {
			multiline?: boolean
			minItems?: number | null
	  }
// ----- toml/comma-style -----
type TomlCommaStyle =
	| []
	| ['first' | 'last']
	| [
			'first' | 'last',
			{
				exceptions?: {
					[k: string]: boolean | undefined
				}
			},
	  ]
// ----- toml/indent -----
type TomlIndent =
	| []
	| ['tab' | number]
	| [
			'tab' | number,
			{
				subTables?: number
				keyValuePairs?: number
			},
	  ]
// ----- toml/inline-table-curly-spacing -----
type TomlInlineTableCurlySpacing =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				arraysInObjects?: boolean
				objectsInObjects?: boolean
			},
	  ]
// ----- toml/key-spacing -----
type TomlKeySpacing =
	| []
	| [
			| {
					align?:
						| ('equal' | 'value')
						| {
								on?: 'equal' | 'value'
								mode?: 'strict' | 'minimum'
								beforeEqual?: boolean
								afterEqual?: boolean
						  }
					mode?: 'strict' | 'minimum'
					beforeEqual?: boolean
					afterEqual?: boolean
			  }
			| {
					singleLine?: {
						mode?: 'strict' | 'minimum'
						beforeEqual?: boolean
						afterEqual?: boolean
					}
					multiLine?: {
						align?:
							| ('equal' | 'value')
							| {
									on?: 'equal' | 'value'
									mode?: 'strict' | 'minimum'
									beforeEqual?: boolean
									afterEqual?: boolean
							  }
						mode?: 'strict' | 'minimum'
						beforeEqual?: boolean
						afterEqual?: boolean
					}
			  }
			| {
					singleLine?: {
						mode?: 'strict' | 'minimum'
						beforeEqual?: boolean
						afterEqual?: boolean
					}
					multiLine?: {
						mode?: 'strict' | 'minimum'
						beforeEqual?: boolean
						afterEqual?: boolean
					}
					align?: {
						on?: 'equal' | 'value'
						mode?: 'strict' | 'minimum'
						beforeEqual?: boolean
						afterEqual?: boolean
					}
			  },
	  ]
// ----- toml/no-mixed-type-in-array -----
type TomlNoMixedTypeInArray =
	| []
	| [
			{
				typeMap?: {
					string?: string
					boolean?: string
					integer?: string
					float?: string
					offsetDateTime?: string
					localDateTime?: string
					localDate?: string
					localTime?: string
					array?: string
					inlineTable?: string
				}
			},
	  ]
// ----- toml/no-non-decimal-integer -----
type TomlNoNonDecimalInteger =
	| []
	| [
			{
				allowHexadecimal?: boolean
				allowOctal?: boolean
				allowBinary?: boolean
			},
	  ]
// ----- toml/precision-of-fractional-seconds -----
type TomlPrecisionOfFractionalSeconds =
	| []
	| [
			{
				max?: number
			},
	  ]
// ----- toml/precision-of-integer -----
type TomlPrecisionOfInteger =
	| []
	| [
			{
				maxBit?: number
			},
	  ]
// ----- toml/quoted-keys -----
type TomlQuotedKeys =
	| []
	| [
			{
				prefer?: 'as-needed' | 'always'
				numbers?: boolean
			},
	  ]
// ----- toml/spaced-comment -----
type TomlSpacedComment =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				exceptions?: string[]
				markers?: string[]
			},
	  ]
// ----- toml/table-bracket-spacing -----
type TomlTableBracketSpacing = [] | ['always' | 'never']
// ----- ts/array-type -----
type TsArrayType =
	| []
	| [
			{
				default?: 'array' | 'generic' | 'array-simple'

				readonly?: 'array' | 'generic' | 'array-simple'
			},
	  ]
// ----- ts/ban-ts-comment -----
type TsBanTsComment =
	| []
	| [
			{
				minimumDescriptionLength?: number
				'ts-check'?:
					| boolean
					| 'allow-with-description'
					| {
							descriptionFormat?: string
					  }
				'ts-expect-error'?:
					| boolean
					| 'allow-with-description'
					| {
							descriptionFormat?: string
					  }
				'ts-ignore'?:
					| boolean
					| 'allow-with-description'
					| {
							descriptionFormat?: string
					  }
				'ts-nocheck'?:
					| boolean
					| 'allow-with-description'
					| {
							descriptionFormat?: string
					  }
			},
	  ]
// ----- ts/class-literal-property-style -----
type TsClassLiteralPropertyStyle = [] | ['fields' | 'getters']
// ----- ts/class-methods-use-this -----
type TsClassMethodsUseThis =
	| []
	| [
			{
				enforceForClassFields?: boolean

				exceptMethods?: string[]

				ignoreClassesThatImplementAnInterface?: boolean | 'public-fields'

				ignoreOverrideMethods?: boolean
			},
	  ]
// ----- ts/consistent-generic-constructors -----
type TsConsistentGenericConstructors = [] | ['type-annotation' | 'constructor']
// ----- ts/consistent-indexed-object-style -----
type TsConsistentIndexedObjectStyle = [] | ['record' | 'index-signature']
// ----- ts/consistent-return -----
type TsConsistentReturn =
	| []
	| [
			{
				treatUndefinedAsUnspecified?: boolean
			},
	  ]
// ----- ts/consistent-type-assertions -----
type TsConsistentTypeAssertions =
	| []
	| [
			| {
					assertionStyle: 'never'
			  }
			| {
					arrayLiteralTypeAssertions?: 'allow' | 'allow-as-parameter' | 'never'

					assertionStyle?: 'as' | 'angle-bracket'

					objectLiteralTypeAssertions?: 'allow' | 'allow-as-parameter' | 'never'
			  },
	  ]
// ----- ts/consistent-type-definitions -----
type TsConsistentTypeDefinitions = [] | ['interface' | 'type']
// ----- ts/consistent-type-exports -----
type TsConsistentTypeExports =
	| []
	| [
			{
				fixMixedExportsWithInlineTypeSpecifier?: boolean
			},
	  ]
// ----- ts/consistent-type-imports -----
type TsConsistentTypeImports =
	| []
	| [
			{
				disallowTypeAnnotations?: boolean

				fixStyle?: 'separate-type-imports' | 'inline-type-imports'

				prefer?: 'type-imports' | 'no-type-imports'
			},
	  ]
// ----- ts/dot-notation -----
type TsDotNotation =
	| []
	| [
			{
				allowIndexSignaturePropertyAccess?: boolean

				allowKeywords?: boolean

				allowPattern?: string

				allowPrivateClassPropertyAccess?: boolean

				allowProtectedClassPropertyAccess?: boolean
			},
	  ]
// ----- ts/explicit-function-return-type -----
type TsExplicitFunctionReturnType =
	| []
	| [
			{
				allowConciseArrowFunctionExpressionsStartingWithVoid?: boolean

				allowDirectConstAssertionInArrowFunctions?: boolean

				allowedNames?: string[]

				allowExpressions?: boolean

				allowFunctionsWithoutTypeParameters?: boolean

				allowHigherOrderFunctions?: boolean

				allowIIFEs?: boolean

				allowTypedFunctionExpressions?: boolean
			},
	  ]
// ----- ts/explicit-member-accessibility -----
type TsExplicitMemberAccessibility =
	| []
	| [
			{
				accessibility?: 'explicit' | 'no-public' | 'off'

				ignoredMethodNames?: string[]

				overrides?: {
					accessors?: 'explicit' | 'no-public' | 'off'
					constructors?: 'explicit' | 'no-public' | 'off'
					methods?: 'explicit' | 'no-public' | 'off'
					parameterProperties?: 'explicit' | 'no-public' | 'off'
					properties?: 'explicit' | 'no-public' | 'off'
				}
			},
	  ]
// ----- ts/explicit-module-boundary-types -----
type TsExplicitModuleBoundaryTypes =
	| []
	| [
			{
				allowArgumentsExplicitlyTypedAsAny?: boolean

				allowDirectConstAssertionInArrowFunctions?: boolean

				allowedNames?: string[]

				allowHigherOrderFunctions?: boolean

				allowOverloadFunctions?: boolean

				allowTypedFunctionExpressions?: boolean
			},
	  ]
// ----- ts/init-declarations -----
type TsInitDeclarations =
	| []
	| ['always']
	| []
	| ['never']
	| [
			'never',
			{
				ignoreForLoopInit?: boolean
			},
	  ]
// ----- ts/max-params -----
type TsMaxParams =
	| []
	| [
			{
				countVoidThis?: boolean

				max?: number

				maximum?: number
			},
	  ]
// ----- ts/member-ordering -----
type TsMemberOrdering =
	| []
	| [
			{
				classes?:
					| 'never'
					| (
							| (
									| 'readonly-signature'
									| 'signature'
									| 'readonly-field'
									| 'public-readonly-field'
									| 'public-decorated-readonly-field'
									| 'decorated-readonly-field'
									| 'static-readonly-field'
									| 'public-static-readonly-field'
									| 'instance-readonly-field'
									| 'public-instance-readonly-field'
									| 'abstract-readonly-field'
									| 'public-abstract-readonly-field'
									| 'protected-readonly-field'
									| 'protected-decorated-readonly-field'
									| 'protected-static-readonly-field'
									| 'protected-instance-readonly-field'
									| 'protected-abstract-readonly-field'
									| 'private-readonly-field'
									| 'private-decorated-readonly-field'
									| 'private-static-readonly-field'
									| 'private-instance-readonly-field'
									| '#private-readonly-field'
									| '#private-static-readonly-field'
									| '#private-instance-readonly-field'
									| 'field'
									| 'public-field'
									| 'public-decorated-field'
									| 'decorated-field'
									| 'static-field'
									| 'public-static-field'
									| 'instance-field'
									| 'public-instance-field'
									| 'abstract-field'
									| 'public-abstract-field'
									| 'protected-field'
									| 'protected-decorated-field'
									| 'protected-static-field'
									| 'protected-instance-field'
									| 'protected-abstract-field'
									| 'private-field'
									| 'private-decorated-field'
									| 'private-static-field'
									| 'private-instance-field'
									| '#private-field'
									| '#private-static-field'
									| '#private-instance-field'
									| 'method'
									| 'public-method'
									| 'public-decorated-method'
									| 'decorated-method'
									| 'static-method'
									| 'public-static-method'
									| 'instance-method'
									| 'public-instance-method'
									| 'abstract-method'
									| 'public-abstract-method'
									| 'protected-method'
									| 'protected-decorated-method'
									| 'protected-static-method'
									| 'protected-instance-method'
									| 'protected-abstract-method'
									| 'private-method'
									| 'private-decorated-method'
									| 'private-static-method'
									| 'private-instance-method'
									| '#private-method'
									| '#private-static-method'
									| '#private-instance-method'
									| 'call-signature'
									| 'constructor'
									| 'public-constructor'
									| 'protected-constructor'
									| 'private-constructor'
									| 'accessor'
									| 'public-accessor'
									| 'public-decorated-accessor'
									| 'decorated-accessor'
									| 'static-accessor'
									| 'public-static-accessor'
									| 'instance-accessor'
									| 'public-instance-accessor'
									| 'abstract-accessor'
									| 'public-abstract-accessor'
									| 'protected-accessor'
									| 'protected-decorated-accessor'
									| 'protected-static-accessor'
									| 'protected-instance-accessor'
									| 'protected-abstract-accessor'
									| 'private-accessor'
									| 'private-decorated-accessor'
									| 'private-static-accessor'
									| 'private-instance-accessor'
									| '#private-accessor'
									| '#private-static-accessor'
									| '#private-instance-accessor'
									| 'get'
									| 'public-get'
									| 'public-decorated-get'
									| 'decorated-get'
									| 'static-get'
									| 'public-static-get'
									| 'instance-get'
									| 'public-instance-get'
									| 'abstract-get'
									| 'public-abstract-get'
									| 'protected-get'
									| 'protected-decorated-get'
									| 'protected-static-get'
									| 'protected-instance-get'
									| 'protected-abstract-get'
									| 'private-get'
									| 'private-decorated-get'
									| 'private-static-get'
									| 'private-instance-get'
									| '#private-get'
									| '#private-static-get'
									| '#private-instance-get'
									| 'set'
									| 'public-set'
									| 'public-decorated-set'
									| 'decorated-set'
									| 'static-set'
									| 'public-static-set'
									| 'instance-set'
									| 'public-instance-set'
									| 'abstract-set'
									| 'public-abstract-set'
									| 'protected-set'
									| 'protected-decorated-set'
									| 'protected-static-set'
									| 'protected-instance-set'
									| 'protected-abstract-set'
									| 'private-set'
									| 'private-decorated-set'
									| 'private-static-set'
									| 'private-instance-set'
									| '#private-set'
									| '#private-static-set'
									| '#private-instance-set'
									| 'static-initialization'
									| 'static-static-initialization'
									| 'public-static-static-initialization'
									| 'instance-static-initialization'
									| 'public-instance-static-initialization'
									| 'abstract-static-initialization'
									| 'public-abstract-static-initialization'
									| 'protected-static-static-initialization'
									| 'protected-instance-static-initialization'
									| 'protected-abstract-static-initialization'
									| 'private-static-static-initialization'
									| 'private-instance-static-initialization'
									| '#private-static-static-initialization'
									| '#private-instance-static-initialization'
							  )
							| (
									| 'readonly-signature'
									| 'signature'
									| 'readonly-field'
									| 'public-readonly-field'
									| 'public-decorated-readonly-field'
									| 'decorated-readonly-field'
									| 'static-readonly-field'
									| 'public-static-readonly-field'
									| 'instance-readonly-field'
									| 'public-instance-readonly-field'
									| 'abstract-readonly-field'
									| 'public-abstract-readonly-field'
									| 'protected-readonly-field'
									| 'protected-decorated-readonly-field'
									| 'protected-static-readonly-field'
									| 'protected-instance-readonly-field'
									| 'protected-abstract-readonly-field'
									| 'private-readonly-field'
									| 'private-decorated-readonly-field'
									| 'private-static-readonly-field'
									| 'private-instance-readonly-field'
									| '#private-readonly-field'
									| '#private-static-readonly-field'
									| '#private-instance-readonly-field'
									| 'field'
									| 'public-field'
									| 'public-decorated-field'
									| 'decorated-field'
									| 'static-field'
									| 'public-static-field'
									| 'instance-field'
									| 'public-instance-field'
									| 'abstract-field'
									| 'public-abstract-field'
									| 'protected-field'
									| 'protected-decorated-field'
									| 'protected-static-field'
									| 'protected-instance-field'
									| 'protected-abstract-field'
									| 'private-field'
									| 'private-decorated-field'
									| 'private-static-field'
									| 'private-instance-field'
									| '#private-field'
									| '#private-static-field'
									| '#private-instance-field'
									| 'method'
									| 'public-method'
									| 'public-decorated-method'
									| 'decorated-method'
									| 'static-method'
									| 'public-static-method'
									| 'instance-method'
									| 'public-instance-method'
									| 'abstract-method'
									| 'public-abstract-method'
									| 'protected-method'
									| 'protected-decorated-method'
									| 'protected-static-method'
									| 'protected-instance-method'
									| 'protected-abstract-method'
									| 'private-method'
									| 'private-decorated-method'
									| 'private-static-method'
									| 'private-instance-method'
									| '#private-method'
									| '#private-static-method'
									| '#private-instance-method'
									| 'call-signature'
									| 'constructor'
									| 'public-constructor'
									| 'protected-constructor'
									| 'private-constructor'
									| 'accessor'
									| 'public-accessor'
									| 'public-decorated-accessor'
									| 'decorated-accessor'
									| 'static-accessor'
									| 'public-static-accessor'
									| 'instance-accessor'
									| 'public-instance-accessor'
									| 'abstract-accessor'
									| 'public-abstract-accessor'
									| 'protected-accessor'
									| 'protected-decorated-accessor'
									| 'protected-static-accessor'
									| 'protected-instance-accessor'
									| 'protected-abstract-accessor'
									| 'private-accessor'
									| 'private-decorated-accessor'
									| 'private-static-accessor'
									| 'private-instance-accessor'
									| '#private-accessor'
									| '#private-static-accessor'
									| '#private-instance-accessor'
									| 'get'
									| 'public-get'
									| 'public-decorated-get'
									| 'decorated-get'
									| 'static-get'
									| 'public-static-get'
									| 'instance-get'
									| 'public-instance-get'
									| 'abstract-get'
									| 'public-abstract-get'
									| 'protected-get'
									| 'protected-decorated-get'
									| 'protected-static-get'
									| 'protected-instance-get'
									| 'protected-abstract-get'
									| 'private-get'
									| 'private-decorated-get'
									| 'private-static-get'
									| 'private-instance-get'
									| '#private-get'
									| '#private-static-get'
									| '#private-instance-get'
									| 'set'
									| 'public-set'
									| 'public-decorated-set'
									| 'decorated-set'
									| 'static-set'
									| 'public-static-set'
									| 'instance-set'
									| 'public-instance-set'
									| 'abstract-set'
									| 'public-abstract-set'
									| 'protected-set'
									| 'protected-decorated-set'
									| 'protected-static-set'
									| 'protected-instance-set'
									| 'protected-abstract-set'
									| 'private-set'
									| 'private-decorated-set'
									| 'private-static-set'
									| 'private-instance-set'
									| '#private-set'
									| '#private-static-set'
									| '#private-instance-set'
									| 'static-initialization'
									| 'static-static-initialization'
									| 'public-static-static-initialization'
									| 'instance-static-initialization'
									| 'public-instance-static-initialization'
									| 'abstract-static-initialization'
									| 'public-abstract-static-initialization'
									| 'protected-static-static-initialization'
									| 'protected-instance-static-initialization'
									| 'protected-abstract-static-initialization'
									| 'private-static-static-initialization'
									| 'private-instance-static-initialization'
									| '#private-static-static-initialization'
									| '#private-instance-static-initialization'
							  )[]
					  )[]
					| {
							memberTypes?:
								| (
										| (
												| 'readonly-signature'
												| 'signature'
												| 'readonly-field'
												| 'public-readonly-field'
												| 'public-decorated-readonly-field'
												| 'decorated-readonly-field'
												| 'static-readonly-field'
												| 'public-static-readonly-field'
												| 'instance-readonly-field'
												| 'public-instance-readonly-field'
												| 'abstract-readonly-field'
												| 'public-abstract-readonly-field'
												| 'protected-readonly-field'
												| 'protected-decorated-readonly-field'
												| 'protected-static-readonly-field'
												| 'protected-instance-readonly-field'
												| 'protected-abstract-readonly-field'
												| 'private-readonly-field'
												| 'private-decorated-readonly-field'
												| 'private-static-readonly-field'
												| 'private-instance-readonly-field'
												| '#private-readonly-field'
												| '#private-static-readonly-field'
												| '#private-instance-readonly-field'
												| 'field'
												| 'public-field'
												| 'public-decorated-field'
												| 'decorated-field'
												| 'static-field'
												| 'public-static-field'
												| 'instance-field'
												| 'public-instance-field'
												| 'abstract-field'
												| 'public-abstract-field'
												| 'protected-field'
												| 'protected-decorated-field'
												| 'protected-static-field'
												| 'protected-instance-field'
												| 'protected-abstract-field'
												| 'private-field'
												| 'private-decorated-field'
												| 'private-static-field'
												| 'private-instance-field'
												| '#private-field'
												| '#private-static-field'
												| '#private-instance-field'
												| 'method'
												| 'public-method'
												| 'public-decorated-method'
												| 'decorated-method'
												| 'static-method'
												| 'public-static-method'
												| 'instance-method'
												| 'public-instance-method'
												| 'abstract-method'
												| 'public-abstract-method'
												| 'protected-method'
												| 'protected-decorated-method'
												| 'protected-static-method'
												| 'protected-instance-method'
												| 'protected-abstract-method'
												| 'private-method'
												| 'private-decorated-method'
												| 'private-static-method'
												| 'private-instance-method'
												| '#private-method'
												| '#private-static-method'
												| '#private-instance-method'
												| 'call-signature'
												| 'constructor'
												| 'public-constructor'
												| 'protected-constructor'
												| 'private-constructor'
												| 'accessor'
												| 'public-accessor'
												| 'public-decorated-accessor'
												| 'decorated-accessor'
												| 'static-accessor'
												| 'public-static-accessor'
												| 'instance-accessor'
												| 'public-instance-accessor'
												| 'abstract-accessor'
												| 'public-abstract-accessor'
												| 'protected-accessor'
												| 'protected-decorated-accessor'
												| 'protected-static-accessor'
												| 'protected-instance-accessor'
												| 'protected-abstract-accessor'
												| 'private-accessor'
												| 'private-decorated-accessor'
												| 'private-static-accessor'
												| 'private-instance-accessor'
												| '#private-accessor'
												| '#private-static-accessor'
												| '#private-instance-accessor'
												| 'get'
												| 'public-get'
												| 'public-decorated-get'
												| 'decorated-get'
												| 'static-get'
												| 'public-static-get'
												| 'instance-get'
												| 'public-instance-get'
												| 'abstract-get'
												| 'public-abstract-get'
												| 'protected-get'
												| 'protected-decorated-get'
												| 'protected-static-get'
												| 'protected-instance-get'
												| 'protected-abstract-get'
												| 'private-get'
												| 'private-decorated-get'
												| 'private-static-get'
												| 'private-instance-get'
												| '#private-get'
												| '#private-static-get'
												| '#private-instance-get'
												| 'set'
												| 'public-set'
												| 'public-decorated-set'
												| 'decorated-set'
												| 'static-set'
												| 'public-static-set'
												| 'instance-set'
												| 'public-instance-set'
												| 'abstract-set'
												| 'public-abstract-set'
												| 'protected-set'
												| 'protected-decorated-set'
												| 'protected-static-set'
												| 'protected-instance-set'
												| 'protected-abstract-set'
												| 'private-set'
												| 'private-decorated-set'
												| 'private-static-set'
												| 'private-instance-set'
												| '#private-set'
												| '#private-static-set'
												| '#private-instance-set'
												| 'static-initialization'
												| 'static-static-initialization'
												| 'public-static-static-initialization'
												| 'instance-static-initialization'
												| 'public-instance-static-initialization'
												| 'abstract-static-initialization'
												| 'public-abstract-static-initialization'
												| 'protected-static-static-initialization'
												| 'protected-instance-static-initialization'
												| 'protected-abstract-static-initialization'
												| 'private-static-static-initialization'
												| 'private-instance-static-initialization'
												| '#private-static-static-initialization'
												| '#private-instance-static-initialization'
										  )
										| (
												| 'readonly-signature'
												| 'signature'
												| 'readonly-field'
												| 'public-readonly-field'
												| 'public-decorated-readonly-field'
												| 'decorated-readonly-field'
												| 'static-readonly-field'
												| 'public-static-readonly-field'
												| 'instance-readonly-field'
												| 'public-instance-readonly-field'
												| 'abstract-readonly-field'
												| 'public-abstract-readonly-field'
												| 'protected-readonly-field'
												| 'protected-decorated-readonly-field'
												| 'protected-static-readonly-field'
												| 'protected-instance-readonly-field'
												| 'protected-abstract-readonly-field'
												| 'private-readonly-field'
												| 'private-decorated-readonly-field'
												| 'private-static-readonly-field'
												| 'private-instance-readonly-field'
												| '#private-readonly-field'
												| '#private-static-readonly-field'
												| '#private-instance-readonly-field'
												| 'field'
												| 'public-field'
												| 'public-decorated-field'
												| 'decorated-field'
												| 'static-field'
												| 'public-static-field'
												| 'instance-field'
												| 'public-instance-field'
												| 'abstract-field'
												| 'public-abstract-field'
												| 'protected-field'
												| 'protected-decorated-field'
												| 'protected-static-field'
												| 'protected-instance-field'
												| 'protected-abstract-field'
												| 'private-field'
												| 'private-decorated-field'
												| 'private-static-field'
												| 'private-instance-field'
												| '#private-field'
												| '#private-static-field'
												| '#private-instance-field'
												| 'method'
												| 'public-method'
												| 'public-decorated-method'
												| 'decorated-method'
												| 'static-method'
												| 'public-static-method'
												| 'instance-method'
												| 'public-instance-method'
												| 'abstract-method'
												| 'public-abstract-method'
												| 'protected-method'
												| 'protected-decorated-method'
												| 'protected-static-method'
												| 'protected-instance-method'
												| 'protected-abstract-method'
												| 'private-method'
												| 'private-decorated-method'
												| 'private-static-method'
												| 'private-instance-method'
												| '#private-method'
												| '#private-static-method'
												| '#private-instance-method'
												| 'call-signature'
												| 'constructor'
												| 'public-constructor'
												| 'protected-constructor'
												| 'private-constructor'
												| 'accessor'
												| 'public-accessor'
												| 'public-decorated-accessor'
												| 'decorated-accessor'
												| 'static-accessor'
												| 'public-static-accessor'
												| 'instance-accessor'
												| 'public-instance-accessor'
												| 'abstract-accessor'
												| 'public-abstract-accessor'
												| 'protected-accessor'
												| 'protected-decorated-accessor'
												| 'protected-static-accessor'
												| 'protected-instance-accessor'
												| 'protected-abstract-accessor'
												| 'private-accessor'
												| 'private-decorated-accessor'
												| 'private-static-accessor'
												| 'private-instance-accessor'
												| '#private-accessor'
												| '#private-static-accessor'
												| '#private-instance-accessor'
												| 'get'
												| 'public-get'
												| 'public-decorated-get'
												| 'decorated-get'
												| 'static-get'
												| 'public-static-get'
												| 'instance-get'
												| 'public-instance-get'
												| 'abstract-get'
												| 'public-abstract-get'
												| 'protected-get'
												| 'protected-decorated-get'
												| 'protected-static-get'
												| 'protected-instance-get'
												| 'protected-abstract-get'
												| 'private-get'
												| 'private-decorated-get'
												| 'private-static-get'
												| 'private-instance-get'
												| '#private-get'
												| '#private-static-get'
												| '#private-instance-get'
												| 'set'
												| 'public-set'
												| 'public-decorated-set'
												| 'decorated-set'
												| 'static-set'
												| 'public-static-set'
												| 'instance-set'
												| 'public-instance-set'
												| 'abstract-set'
												| 'public-abstract-set'
												| 'protected-set'
												| 'protected-decorated-set'
												| 'protected-static-set'
												| 'protected-instance-set'
												| 'protected-abstract-set'
												| 'private-set'
												| 'private-decorated-set'
												| 'private-static-set'
												| 'private-instance-set'
												| '#private-set'
												| '#private-static-set'
												| '#private-instance-set'
												| 'static-initialization'
												| 'static-static-initialization'
												| 'public-static-static-initialization'
												| 'instance-static-initialization'
												| 'public-instance-static-initialization'
												| 'abstract-static-initialization'
												| 'public-abstract-static-initialization'
												| 'protected-static-static-initialization'
												| 'protected-instance-static-initialization'
												| 'protected-abstract-static-initialization'
												| 'private-static-static-initialization'
												| 'private-instance-static-initialization'
												| '#private-static-static-initialization'
												| '#private-instance-static-initialization'
										  )[]
								  )[]
								| 'never'
							optionalityOrder?: 'optional-first' | 'required-first'
							order?:
								| 'alphabetically'
								| 'alphabetically-case-insensitive'
								| 'as-written'
								| 'natural'
								| 'natural-case-insensitive'
					  }
				classExpressions?:
					| 'never'
					| (
							| (
									| 'readonly-signature'
									| 'signature'
									| 'readonly-field'
									| 'public-readonly-field'
									| 'public-decorated-readonly-field'
									| 'decorated-readonly-field'
									| 'static-readonly-field'
									| 'public-static-readonly-field'
									| 'instance-readonly-field'
									| 'public-instance-readonly-field'
									| 'abstract-readonly-field'
									| 'public-abstract-readonly-field'
									| 'protected-readonly-field'
									| 'protected-decorated-readonly-field'
									| 'protected-static-readonly-field'
									| 'protected-instance-readonly-field'
									| 'protected-abstract-readonly-field'
									| 'private-readonly-field'
									| 'private-decorated-readonly-field'
									| 'private-static-readonly-field'
									| 'private-instance-readonly-field'
									| '#private-readonly-field'
									| '#private-static-readonly-field'
									| '#private-instance-readonly-field'
									| 'field'
									| 'public-field'
									| 'public-decorated-field'
									| 'decorated-field'
									| 'static-field'
									| 'public-static-field'
									| 'instance-field'
									| 'public-instance-field'
									| 'abstract-field'
									| 'public-abstract-field'
									| 'protected-field'
									| 'protected-decorated-field'
									| 'protected-static-field'
									| 'protected-instance-field'
									| 'protected-abstract-field'
									| 'private-field'
									| 'private-decorated-field'
									| 'private-static-field'
									| 'private-instance-field'
									| '#private-field'
									| '#private-static-field'
									| '#private-instance-field'
									| 'method'
									| 'public-method'
									| 'public-decorated-method'
									| 'decorated-method'
									| 'static-method'
									| 'public-static-method'
									| 'instance-method'
									| 'public-instance-method'
									| 'abstract-method'
									| 'public-abstract-method'
									| 'protected-method'
									| 'protected-decorated-method'
									| 'protected-static-method'
									| 'protected-instance-method'
									| 'protected-abstract-method'
									| 'private-method'
									| 'private-decorated-method'
									| 'private-static-method'
									| 'private-instance-method'
									| '#private-method'
									| '#private-static-method'
									| '#private-instance-method'
									| 'call-signature'
									| 'constructor'
									| 'public-constructor'
									| 'protected-constructor'
									| 'private-constructor'
									| 'accessor'
									| 'public-accessor'
									| 'public-decorated-accessor'
									| 'decorated-accessor'
									| 'static-accessor'
									| 'public-static-accessor'
									| 'instance-accessor'
									| 'public-instance-accessor'
									| 'abstract-accessor'
									| 'public-abstract-accessor'
									| 'protected-accessor'
									| 'protected-decorated-accessor'
									| 'protected-static-accessor'
									| 'protected-instance-accessor'
									| 'protected-abstract-accessor'
									| 'private-accessor'
									| 'private-decorated-accessor'
									| 'private-static-accessor'
									| 'private-instance-accessor'
									| '#private-accessor'
									| '#private-static-accessor'
									| '#private-instance-accessor'
									| 'get'
									| 'public-get'
									| 'public-decorated-get'
									| 'decorated-get'
									| 'static-get'
									| 'public-static-get'
									| 'instance-get'
									| 'public-instance-get'
									| 'abstract-get'
									| 'public-abstract-get'
									| 'protected-get'
									| 'protected-decorated-get'
									| 'protected-static-get'
									| 'protected-instance-get'
									| 'protected-abstract-get'
									| 'private-get'
									| 'private-decorated-get'
									| 'private-static-get'
									| 'private-instance-get'
									| '#private-get'
									| '#private-static-get'
									| '#private-instance-get'
									| 'set'
									| 'public-set'
									| 'public-decorated-set'
									| 'decorated-set'
									| 'static-set'
									| 'public-static-set'
									| 'instance-set'
									| 'public-instance-set'
									| 'abstract-set'
									| 'public-abstract-set'
									| 'protected-set'
									| 'protected-decorated-set'
									| 'protected-static-set'
									| 'protected-instance-set'
									| 'protected-abstract-set'
									| 'private-set'
									| 'private-decorated-set'
									| 'private-static-set'
									| 'private-instance-set'
									| '#private-set'
									| '#private-static-set'
									| '#private-instance-set'
									| 'static-initialization'
									| 'static-static-initialization'
									| 'public-static-static-initialization'
									| 'instance-static-initialization'
									| 'public-instance-static-initialization'
									| 'abstract-static-initialization'
									| 'public-abstract-static-initialization'
									| 'protected-static-static-initialization'
									| 'protected-instance-static-initialization'
									| 'protected-abstract-static-initialization'
									| 'private-static-static-initialization'
									| 'private-instance-static-initialization'
									| '#private-static-static-initialization'
									| '#private-instance-static-initialization'
							  )
							| (
									| 'readonly-signature'
									| 'signature'
									| 'readonly-field'
									| 'public-readonly-field'
									| 'public-decorated-readonly-field'
									| 'decorated-readonly-field'
									| 'static-readonly-field'
									| 'public-static-readonly-field'
									| 'instance-readonly-field'
									| 'public-instance-readonly-field'
									| 'abstract-readonly-field'
									| 'public-abstract-readonly-field'
									| 'protected-readonly-field'
									| 'protected-decorated-readonly-field'
									| 'protected-static-readonly-field'
									| 'protected-instance-readonly-field'
									| 'protected-abstract-readonly-field'
									| 'private-readonly-field'
									| 'private-decorated-readonly-field'
									| 'private-static-readonly-field'
									| 'private-instance-readonly-field'
									| '#private-readonly-field'
									| '#private-static-readonly-field'
									| '#private-instance-readonly-field'
									| 'field'
									| 'public-field'
									| 'public-decorated-field'
									| 'decorated-field'
									| 'static-field'
									| 'public-static-field'
									| 'instance-field'
									| 'public-instance-field'
									| 'abstract-field'
									| 'public-abstract-field'
									| 'protected-field'
									| 'protected-decorated-field'
									| 'protected-static-field'
									| 'protected-instance-field'
									| 'protected-abstract-field'
									| 'private-field'
									| 'private-decorated-field'
									| 'private-static-field'
									| 'private-instance-field'
									| '#private-field'
									| '#private-static-field'
									| '#private-instance-field'
									| 'method'
									| 'public-method'
									| 'public-decorated-method'
									| 'decorated-method'
									| 'static-method'
									| 'public-static-method'
									| 'instance-method'
									| 'public-instance-method'
									| 'abstract-method'
									| 'public-abstract-method'
									| 'protected-method'
									| 'protected-decorated-method'
									| 'protected-static-method'
									| 'protected-instance-method'
									| 'protected-abstract-method'
									| 'private-method'
									| 'private-decorated-method'
									| 'private-static-method'
									| 'private-instance-method'
									| '#private-method'
									| '#private-static-method'
									| '#private-instance-method'
									| 'call-signature'
									| 'constructor'
									| 'public-constructor'
									| 'protected-constructor'
									| 'private-constructor'
									| 'accessor'
									| 'public-accessor'
									| 'public-decorated-accessor'
									| 'decorated-accessor'
									| 'static-accessor'
									| 'public-static-accessor'
									| 'instance-accessor'
									| 'public-instance-accessor'
									| 'abstract-accessor'
									| 'public-abstract-accessor'
									| 'protected-accessor'
									| 'protected-decorated-accessor'
									| 'protected-static-accessor'
									| 'protected-instance-accessor'
									| 'protected-abstract-accessor'
									| 'private-accessor'
									| 'private-decorated-accessor'
									| 'private-static-accessor'
									| 'private-instance-accessor'
									| '#private-accessor'
									| '#private-static-accessor'
									| '#private-instance-accessor'
									| 'get'
									| 'public-get'
									| 'public-decorated-get'
									| 'decorated-get'
									| 'static-get'
									| 'public-static-get'
									| 'instance-get'
									| 'public-instance-get'
									| 'abstract-get'
									| 'public-abstract-get'
									| 'protected-get'
									| 'protected-decorated-get'
									| 'protected-static-get'
									| 'protected-instance-get'
									| 'protected-abstract-get'
									| 'private-get'
									| 'private-decorated-get'
									| 'private-static-get'
									| 'private-instance-get'
									| '#private-get'
									| '#private-static-get'
									| '#private-instance-get'
									| 'set'
									| 'public-set'
									| 'public-decorated-set'
									| 'decorated-set'
									| 'static-set'
									| 'public-static-set'
									| 'instance-set'
									| 'public-instance-set'
									| 'abstract-set'
									| 'public-abstract-set'
									| 'protected-set'
									| 'protected-decorated-set'
									| 'protected-static-set'
									| 'protected-instance-set'
									| 'protected-abstract-set'
									| 'private-set'
									| 'private-decorated-set'
									| 'private-static-set'
									| 'private-instance-set'
									| '#private-set'
									| '#private-static-set'
									| '#private-instance-set'
									| 'static-initialization'
									| 'static-static-initialization'
									| 'public-static-static-initialization'
									| 'instance-static-initialization'
									| 'public-instance-static-initialization'
									| 'abstract-static-initialization'
									| 'public-abstract-static-initialization'
									| 'protected-static-static-initialization'
									| 'protected-instance-static-initialization'
									| 'protected-abstract-static-initialization'
									| 'private-static-static-initialization'
									| 'private-instance-static-initialization'
									| '#private-static-static-initialization'
									| '#private-instance-static-initialization'
							  )[]
					  )[]
					| {
							memberTypes?:
								| (
										| (
												| 'readonly-signature'
												| 'signature'
												| 'readonly-field'
												| 'public-readonly-field'
												| 'public-decorated-readonly-field'
												| 'decorated-readonly-field'
												| 'static-readonly-field'
												| 'public-static-readonly-field'
												| 'instance-readonly-field'
												| 'public-instance-readonly-field'
												| 'abstract-readonly-field'
												| 'public-abstract-readonly-field'
												| 'protected-readonly-field'
												| 'protected-decorated-readonly-field'
												| 'protected-static-readonly-field'
												| 'protected-instance-readonly-field'
												| 'protected-abstract-readonly-field'
												| 'private-readonly-field'
												| 'private-decorated-readonly-field'
												| 'private-static-readonly-field'
												| 'private-instance-readonly-field'
												| '#private-readonly-field'
												| '#private-static-readonly-field'
												| '#private-instance-readonly-field'
												| 'field'
												| 'public-field'
												| 'public-decorated-field'
												| 'decorated-field'
												| 'static-field'
												| 'public-static-field'
												| 'instance-field'
												| 'public-instance-field'
												| 'abstract-field'
												| 'public-abstract-field'
												| 'protected-field'
												| 'protected-decorated-field'
												| 'protected-static-field'
												| 'protected-instance-field'
												| 'protected-abstract-field'
												| 'private-field'
												| 'private-decorated-field'
												| 'private-static-field'
												| 'private-instance-field'
												| '#private-field'
												| '#private-static-field'
												| '#private-instance-field'
												| 'method'
												| 'public-method'
												| 'public-decorated-method'
												| 'decorated-method'
												| 'static-method'
												| 'public-static-method'
												| 'instance-method'
												| 'public-instance-method'
												| 'abstract-method'
												| 'public-abstract-method'
												| 'protected-method'
												| 'protected-decorated-method'
												| 'protected-static-method'
												| 'protected-instance-method'
												| 'protected-abstract-method'
												| 'private-method'
												| 'private-decorated-method'
												| 'private-static-method'
												| 'private-instance-method'
												| '#private-method'
												| '#private-static-method'
												| '#private-instance-method'
												| 'call-signature'
												| 'constructor'
												| 'public-constructor'
												| 'protected-constructor'
												| 'private-constructor'
												| 'accessor'
												| 'public-accessor'
												| 'public-decorated-accessor'
												| 'decorated-accessor'
												| 'static-accessor'
												| 'public-static-accessor'
												| 'instance-accessor'
												| 'public-instance-accessor'
												| 'abstract-accessor'
												| 'public-abstract-accessor'
												| 'protected-accessor'
												| 'protected-decorated-accessor'
												| 'protected-static-accessor'
												| 'protected-instance-accessor'
												| 'protected-abstract-accessor'
												| 'private-accessor'
												| 'private-decorated-accessor'
												| 'private-static-accessor'
												| 'private-instance-accessor'
												| '#private-accessor'
												| '#private-static-accessor'
												| '#private-instance-accessor'
												| 'get'
												| 'public-get'
												| 'public-decorated-get'
												| 'decorated-get'
												| 'static-get'
												| 'public-static-get'
												| 'instance-get'
												| 'public-instance-get'
												| 'abstract-get'
												| 'public-abstract-get'
												| 'protected-get'
												| 'protected-decorated-get'
												| 'protected-static-get'
												| 'protected-instance-get'
												| 'protected-abstract-get'
												| 'private-get'
												| 'private-decorated-get'
												| 'private-static-get'
												| 'private-instance-get'
												| '#private-get'
												| '#private-static-get'
												| '#private-instance-get'
												| 'set'
												| 'public-set'
												| 'public-decorated-set'
												| 'decorated-set'
												| 'static-set'
												| 'public-static-set'
												| 'instance-set'
												| 'public-instance-set'
												| 'abstract-set'
												| 'public-abstract-set'
												| 'protected-set'
												| 'protected-decorated-set'
												| 'protected-static-set'
												| 'protected-instance-set'
												| 'protected-abstract-set'
												| 'private-set'
												| 'private-decorated-set'
												| 'private-static-set'
												| 'private-instance-set'
												| '#private-set'
												| '#private-static-set'
												| '#private-instance-set'
												| 'static-initialization'
												| 'static-static-initialization'
												| 'public-static-static-initialization'
												| 'instance-static-initialization'
												| 'public-instance-static-initialization'
												| 'abstract-static-initialization'
												| 'public-abstract-static-initialization'
												| 'protected-static-static-initialization'
												| 'protected-instance-static-initialization'
												| 'protected-abstract-static-initialization'
												| 'private-static-static-initialization'
												| 'private-instance-static-initialization'
												| '#private-static-static-initialization'
												| '#private-instance-static-initialization'
										  )
										| (
												| 'readonly-signature'
												| 'signature'
												| 'readonly-field'
												| 'public-readonly-field'
												| 'public-decorated-readonly-field'
												| 'decorated-readonly-field'
												| 'static-readonly-field'
												| 'public-static-readonly-field'
												| 'instance-readonly-field'
												| 'public-instance-readonly-field'
												| 'abstract-readonly-field'
												| 'public-abstract-readonly-field'
												| 'protected-readonly-field'
												| 'protected-decorated-readonly-field'
												| 'protected-static-readonly-field'
												| 'protected-instance-readonly-field'
												| 'protected-abstract-readonly-field'
												| 'private-readonly-field'
												| 'private-decorated-readonly-field'
												| 'private-static-readonly-field'
												| 'private-instance-readonly-field'
												| '#private-readonly-field'
												| '#private-static-readonly-field'
												| '#private-instance-readonly-field'
												| 'field'
												| 'public-field'
												| 'public-decorated-field'
												| 'decorated-field'
												| 'static-field'
												| 'public-static-field'
												| 'instance-field'
												| 'public-instance-field'
												| 'abstract-field'
												| 'public-abstract-field'
												| 'protected-field'
												| 'protected-decorated-field'
												| 'protected-static-field'
												| 'protected-instance-field'
												| 'protected-abstract-field'
												| 'private-field'
												| 'private-decorated-field'
												| 'private-static-field'
												| 'private-instance-field'
												| '#private-field'
												| '#private-static-field'
												| '#private-instance-field'
												| 'method'
												| 'public-method'
												| 'public-decorated-method'
												| 'decorated-method'
												| 'static-method'
												| 'public-static-method'
												| 'instance-method'
												| 'public-instance-method'
												| 'abstract-method'
												| 'public-abstract-method'
												| 'protected-method'
												| 'protected-decorated-method'
												| 'protected-static-method'
												| 'protected-instance-method'
												| 'protected-abstract-method'
												| 'private-method'
												| 'private-decorated-method'
												| 'private-static-method'
												| 'private-instance-method'
												| '#private-method'
												| '#private-static-method'
												| '#private-instance-method'
												| 'call-signature'
												| 'constructor'
												| 'public-constructor'
												| 'protected-constructor'
												| 'private-constructor'
												| 'accessor'
												| 'public-accessor'
												| 'public-decorated-accessor'
												| 'decorated-accessor'
												| 'static-accessor'
												| 'public-static-accessor'
												| 'instance-accessor'
												| 'public-instance-accessor'
												| 'abstract-accessor'
												| 'public-abstract-accessor'
												| 'protected-accessor'
												| 'protected-decorated-accessor'
												| 'protected-static-accessor'
												| 'protected-instance-accessor'
												| 'protected-abstract-accessor'
												| 'private-accessor'
												| 'private-decorated-accessor'
												| 'private-static-accessor'
												| 'private-instance-accessor'
												| '#private-accessor'
												| '#private-static-accessor'
												| '#private-instance-accessor'
												| 'get'
												| 'public-get'
												| 'public-decorated-get'
												| 'decorated-get'
												| 'static-get'
												| 'public-static-get'
												| 'instance-get'
												| 'public-instance-get'
												| 'abstract-get'
												| 'public-abstract-get'
												| 'protected-get'
												| 'protected-decorated-get'
												| 'protected-static-get'
												| 'protected-instance-get'
												| 'protected-abstract-get'
												| 'private-get'
												| 'private-decorated-get'
												| 'private-static-get'
												| 'private-instance-get'
												| '#private-get'
												| '#private-static-get'
												| '#private-instance-get'
												| 'set'
												| 'public-set'
												| 'public-decorated-set'
												| 'decorated-set'
												| 'static-set'
												| 'public-static-set'
												| 'instance-set'
												| 'public-instance-set'
												| 'abstract-set'
												| 'public-abstract-set'
												| 'protected-set'
												| 'protected-decorated-set'
												| 'protected-static-set'
												| 'protected-instance-set'
												| 'protected-abstract-set'
												| 'private-set'
												| 'private-decorated-set'
												| 'private-static-set'
												| 'private-instance-set'
												| '#private-set'
												| '#private-static-set'
												| '#private-instance-set'
												| 'static-initialization'
												| 'static-static-initialization'
												| 'public-static-static-initialization'
												| 'instance-static-initialization'
												| 'public-instance-static-initialization'
												| 'abstract-static-initialization'
												| 'public-abstract-static-initialization'
												| 'protected-static-static-initialization'
												| 'protected-instance-static-initialization'
												| 'protected-abstract-static-initialization'
												| 'private-static-static-initialization'
												| 'private-instance-static-initialization'
												| '#private-static-static-initialization'
												| '#private-instance-static-initialization'
										  )[]
								  )[]
								| 'never'
							optionalityOrder?: 'optional-first' | 'required-first'
							order?:
								| 'alphabetically'
								| 'alphabetically-case-insensitive'
								| 'as-written'
								| 'natural'
								| 'natural-case-insensitive'
					  }
				default?:
					| 'never'
					| (
							| (
									| 'readonly-signature'
									| 'signature'
									| 'readonly-field'
									| 'public-readonly-field'
									| 'public-decorated-readonly-field'
									| 'decorated-readonly-field'
									| 'static-readonly-field'
									| 'public-static-readonly-field'
									| 'instance-readonly-field'
									| 'public-instance-readonly-field'
									| 'abstract-readonly-field'
									| 'public-abstract-readonly-field'
									| 'protected-readonly-field'
									| 'protected-decorated-readonly-field'
									| 'protected-static-readonly-field'
									| 'protected-instance-readonly-field'
									| 'protected-abstract-readonly-field'
									| 'private-readonly-field'
									| 'private-decorated-readonly-field'
									| 'private-static-readonly-field'
									| 'private-instance-readonly-field'
									| '#private-readonly-field'
									| '#private-static-readonly-field'
									| '#private-instance-readonly-field'
									| 'field'
									| 'public-field'
									| 'public-decorated-field'
									| 'decorated-field'
									| 'static-field'
									| 'public-static-field'
									| 'instance-field'
									| 'public-instance-field'
									| 'abstract-field'
									| 'public-abstract-field'
									| 'protected-field'
									| 'protected-decorated-field'
									| 'protected-static-field'
									| 'protected-instance-field'
									| 'protected-abstract-field'
									| 'private-field'
									| 'private-decorated-field'
									| 'private-static-field'
									| 'private-instance-field'
									| '#private-field'
									| '#private-static-field'
									| '#private-instance-field'
									| 'method'
									| 'public-method'
									| 'public-decorated-method'
									| 'decorated-method'
									| 'static-method'
									| 'public-static-method'
									| 'instance-method'
									| 'public-instance-method'
									| 'abstract-method'
									| 'public-abstract-method'
									| 'protected-method'
									| 'protected-decorated-method'
									| 'protected-static-method'
									| 'protected-instance-method'
									| 'protected-abstract-method'
									| 'private-method'
									| 'private-decorated-method'
									| 'private-static-method'
									| 'private-instance-method'
									| '#private-method'
									| '#private-static-method'
									| '#private-instance-method'
									| 'call-signature'
									| 'constructor'
									| 'public-constructor'
									| 'protected-constructor'
									| 'private-constructor'
									| 'accessor'
									| 'public-accessor'
									| 'public-decorated-accessor'
									| 'decorated-accessor'
									| 'static-accessor'
									| 'public-static-accessor'
									| 'instance-accessor'
									| 'public-instance-accessor'
									| 'abstract-accessor'
									| 'public-abstract-accessor'
									| 'protected-accessor'
									| 'protected-decorated-accessor'
									| 'protected-static-accessor'
									| 'protected-instance-accessor'
									| 'protected-abstract-accessor'
									| 'private-accessor'
									| 'private-decorated-accessor'
									| 'private-static-accessor'
									| 'private-instance-accessor'
									| '#private-accessor'
									| '#private-static-accessor'
									| '#private-instance-accessor'
									| 'get'
									| 'public-get'
									| 'public-decorated-get'
									| 'decorated-get'
									| 'static-get'
									| 'public-static-get'
									| 'instance-get'
									| 'public-instance-get'
									| 'abstract-get'
									| 'public-abstract-get'
									| 'protected-get'
									| 'protected-decorated-get'
									| 'protected-static-get'
									| 'protected-instance-get'
									| 'protected-abstract-get'
									| 'private-get'
									| 'private-decorated-get'
									| 'private-static-get'
									| 'private-instance-get'
									| '#private-get'
									| '#private-static-get'
									| '#private-instance-get'
									| 'set'
									| 'public-set'
									| 'public-decorated-set'
									| 'decorated-set'
									| 'static-set'
									| 'public-static-set'
									| 'instance-set'
									| 'public-instance-set'
									| 'abstract-set'
									| 'public-abstract-set'
									| 'protected-set'
									| 'protected-decorated-set'
									| 'protected-static-set'
									| 'protected-instance-set'
									| 'protected-abstract-set'
									| 'private-set'
									| 'private-decorated-set'
									| 'private-static-set'
									| 'private-instance-set'
									| '#private-set'
									| '#private-static-set'
									| '#private-instance-set'
									| 'static-initialization'
									| 'static-static-initialization'
									| 'public-static-static-initialization'
									| 'instance-static-initialization'
									| 'public-instance-static-initialization'
									| 'abstract-static-initialization'
									| 'public-abstract-static-initialization'
									| 'protected-static-static-initialization'
									| 'protected-instance-static-initialization'
									| 'protected-abstract-static-initialization'
									| 'private-static-static-initialization'
									| 'private-instance-static-initialization'
									| '#private-static-static-initialization'
									| '#private-instance-static-initialization'
							  )
							| (
									| 'readonly-signature'
									| 'signature'
									| 'readonly-field'
									| 'public-readonly-field'
									| 'public-decorated-readonly-field'
									| 'decorated-readonly-field'
									| 'static-readonly-field'
									| 'public-static-readonly-field'
									| 'instance-readonly-field'
									| 'public-instance-readonly-field'
									| 'abstract-readonly-field'
									| 'public-abstract-readonly-field'
									| 'protected-readonly-field'
									| 'protected-decorated-readonly-field'
									| 'protected-static-readonly-field'
									| 'protected-instance-readonly-field'
									| 'protected-abstract-readonly-field'
									| 'private-readonly-field'
									| 'private-decorated-readonly-field'
									| 'private-static-readonly-field'
									| 'private-instance-readonly-field'
									| '#private-readonly-field'
									| '#private-static-readonly-field'
									| '#private-instance-readonly-field'
									| 'field'
									| 'public-field'
									| 'public-decorated-field'
									| 'decorated-field'
									| 'static-field'
									| 'public-static-field'
									| 'instance-field'
									| 'public-instance-field'
									| 'abstract-field'
									| 'public-abstract-field'
									| 'protected-field'
									| 'protected-decorated-field'
									| 'protected-static-field'
									| 'protected-instance-field'
									| 'protected-abstract-field'
									| 'private-field'
									| 'private-decorated-field'
									| 'private-static-field'
									| 'private-instance-field'
									| '#private-field'
									| '#private-static-field'
									| '#private-instance-field'
									| 'method'
									| 'public-method'
									| 'public-decorated-method'
									| 'decorated-method'
									| 'static-method'
									| 'public-static-method'
									| 'instance-method'
									| 'public-instance-method'
									| 'abstract-method'
									| 'public-abstract-method'
									| 'protected-method'
									| 'protected-decorated-method'
									| 'protected-static-method'
									| 'protected-instance-method'
									| 'protected-abstract-method'
									| 'private-method'
									| 'private-decorated-method'
									| 'private-static-method'
									| 'private-instance-method'
									| '#private-method'
									| '#private-static-method'
									| '#private-instance-method'
									| 'call-signature'
									| 'constructor'
									| 'public-constructor'
									| 'protected-constructor'
									| 'private-constructor'
									| 'accessor'
									| 'public-accessor'
									| 'public-decorated-accessor'
									| 'decorated-accessor'
									| 'static-accessor'
									| 'public-static-accessor'
									| 'instance-accessor'
									| 'public-instance-accessor'
									| 'abstract-accessor'
									| 'public-abstract-accessor'
									| 'protected-accessor'
									| 'protected-decorated-accessor'
									| 'protected-static-accessor'
									| 'protected-instance-accessor'
									| 'protected-abstract-accessor'
									| 'private-accessor'
									| 'private-decorated-accessor'
									| 'private-static-accessor'
									| 'private-instance-accessor'
									| '#private-accessor'
									| '#private-static-accessor'
									| '#private-instance-accessor'
									| 'get'
									| 'public-get'
									| 'public-decorated-get'
									| 'decorated-get'
									| 'static-get'
									| 'public-static-get'
									| 'instance-get'
									| 'public-instance-get'
									| 'abstract-get'
									| 'public-abstract-get'
									| 'protected-get'
									| 'protected-decorated-get'
									| 'protected-static-get'
									| 'protected-instance-get'
									| 'protected-abstract-get'
									| 'private-get'
									| 'private-decorated-get'
									| 'private-static-get'
									| 'private-instance-get'
									| '#private-get'
									| '#private-static-get'
									| '#private-instance-get'
									| 'set'
									| 'public-set'
									| 'public-decorated-set'
									| 'decorated-set'
									| 'static-set'
									| 'public-static-set'
									| 'instance-set'
									| 'public-instance-set'
									| 'abstract-set'
									| 'public-abstract-set'
									| 'protected-set'
									| 'protected-decorated-set'
									| 'protected-static-set'
									| 'protected-instance-set'
									| 'protected-abstract-set'
									| 'private-set'
									| 'private-decorated-set'
									| 'private-static-set'
									| 'private-instance-set'
									| '#private-set'
									| '#private-static-set'
									| '#private-instance-set'
									| 'static-initialization'
									| 'static-static-initialization'
									| 'public-static-static-initialization'
									| 'instance-static-initialization'
									| 'public-instance-static-initialization'
									| 'abstract-static-initialization'
									| 'public-abstract-static-initialization'
									| 'protected-static-static-initialization'
									| 'protected-instance-static-initialization'
									| 'protected-abstract-static-initialization'
									| 'private-static-static-initialization'
									| 'private-instance-static-initialization'
									| '#private-static-static-initialization'
									| '#private-instance-static-initialization'
							  )[]
					  )[]
					| {
							memberTypes?:
								| (
										| (
												| 'readonly-signature'
												| 'signature'
												| 'readonly-field'
												| 'public-readonly-field'
												| 'public-decorated-readonly-field'
												| 'decorated-readonly-field'
												| 'static-readonly-field'
												| 'public-static-readonly-field'
												| 'instance-readonly-field'
												| 'public-instance-readonly-field'
												| 'abstract-readonly-field'
												| 'public-abstract-readonly-field'
												| 'protected-readonly-field'
												| 'protected-decorated-readonly-field'
												| 'protected-static-readonly-field'
												| 'protected-instance-readonly-field'
												| 'protected-abstract-readonly-field'
												| 'private-readonly-field'
												| 'private-decorated-readonly-field'
												| 'private-static-readonly-field'
												| 'private-instance-readonly-field'
												| '#private-readonly-field'
												| '#private-static-readonly-field'
												| '#private-instance-readonly-field'
												| 'field'
												| 'public-field'
												| 'public-decorated-field'
												| 'decorated-field'
												| 'static-field'
												| 'public-static-field'
												| 'instance-field'
												| 'public-instance-field'
												| 'abstract-field'
												| 'public-abstract-field'
												| 'protected-field'
												| 'protected-decorated-field'
												| 'protected-static-field'
												| 'protected-instance-field'
												| 'protected-abstract-field'
												| 'private-field'
												| 'private-decorated-field'
												| 'private-static-field'
												| 'private-instance-field'
												| '#private-field'
												| '#private-static-field'
												| '#private-instance-field'
												| 'method'
												| 'public-method'
												| 'public-decorated-method'
												| 'decorated-method'
												| 'static-method'
												| 'public-static-method'
												| 'instance-method'
												| 'public-instance-method'
												| 'abstract-method'
												| 'public-abstract-method'
												| 'protected-method'
												| 'protected-decorated-method'
												| 'protected-static-method'
												| 'protected-instance-method'
												| 'protected-abstract-method'
												| 'private-method'
												| 'private-decorated-method'
												| 'private-static-method'
												| 'private-instance-method'
												| '#private-method'
												| '#private-static-method'
												| '#private-instance-method'
												| 'call-signature'
												| 'constructor'
												| 'public-constructor'
												| 'protected-constructor'
												| 'private-constructor'
												| 'accessor'
												| 'public-accessor'
												| 'public-decorated-accessor'
												| 'decorated-accessor'
												| 'static-accessor'
												| 'public-static-accessor'
												| 'instance-accessor'
												| 'public-instance-accessor'
												| 'abstract-accessor'
												| 'public-abstract-accessor'
												| 'protected-accessor'
												| 'protected-decorated-accessor'
												| 'protected-static-accessor'
												| 'protected-instance-accessor'
												| 'protected-abstract-accessor'
												| 'private-accessor'
												| 'private-decorated-accessor'
												| 'private-static-accessor'
												| 'private-instance-accessor'
												| '#private-accessor'
												| '#private-static-accessor'
												| '#private-instance-accessor'
												| 'get'
												| 'public-get'
												| 'public-decorated-get'
												| 'decorated-get'
												| 'static-get'
												| 'public-static-get'
												| 'instance-get'
												| 'public-instance-get'
												| 'abstract-get'
												| 'public-abstract-get'
												| 'protected-get'
												| 'protected-decorated-get'
												| 'protected-static-get'
												| 'protected-instance-get'
												| 'protected-abstract-get'
												| 'private-get'
												| 'private-decorated-get'
												| 'private-static-get'
												| 'private-instance-get'
												| '#private-get'
												| '#private-static-get'
												| '#private-instance-get'
												| 'set'
												| 'public-set'
												| 'public-decorated-set'
												| 'decorated-set'
												| 'static-set'
												| 'public-static-set'
												| 'instance-set'
												| 'public-instance-set'
												| 'abstract-set'
												| 'public-abstract-set'
												| 'protected-set'
												| 'protected-decorated-set'
												| 'protected-static-set'
												| 'protected-instance-set'
												| 'protected-abstract-set'
												| 'private-set'
												| 'private-decorated-set'
												| 'private-static-set'
												| 'private-instance-set'
												| '#private-set'
												| '#private-static-set'
												| '#private-instance-set'
												| 'static-initialization'
												| 'static-static-initialization'
												| 'public-static-static-initialization'
												| 'instance-static-initialization'
												| 'public-instance-static-initialization'
												| 'abstract-static-initialization'
												| 'public-abstract-static-initialization'
												| 'protected-static-static-initialization'
												| 'protected-instance-static-initialization'
												| 'protected-abstract-static-initialization'
												| 'private-static-static-initialization'
												| 'private-instance-static-initialization'
												| '#private-static-static-initialization'
												| '#private-instance-static-initialization'
										  )
										| (
												| 'readonly-signature'
												| 'signature'
												| 'readonly-field'
												| 'public-readonly-field'
												| 'public-decorated-readonly-field'
												| 'decorated-readonly-field'
												| 'static-readonly-field'
												| 'public-static-readonly-field'
												| 'instance-readonly-field'
												| 'public-instance-readonly-field'
												| 'abstract-readonly-field'
												| 'public-abstract-readonly-field'
												| 'protected-readonly-field'
												| 'protected-decorated-readonly-field'
												| 'protected-static-readonly-field'
												| 'protected-instance-readonly-field'
												| 'protected-abstract-readonly-field'
												| 'private-readonly-field'
												| 'private-decorated-readonly-field'
												| 'private-static-readonly-field'
												| 'private-instance-readonly-field'
												| '#private-readonly-field'
												| '#private-static-readonly-field'
												| '#private-instance-readonly-field'
												| 'field'
												| 'public-field'
												| 'public-decorated-field'
												| 'decorated-field'
												| 'static-field'
												| 'public-static-field'
												| 'instance-field'
												| 'public-instance-field'
												| 'abstract-field'
												| 'public-abstract-field'
												| 'protected-field'
												| 'protected-decorated-field'
												| 'protected-static-field'
												| 'protected-instance-field'
												| 'protected-abstract-field'
												| 'private-field'
												| 'private-decorated-field'
												| 'private-static-field'
												| 'private-instance-field'
												| '#private-field'
												| '#private-static-field'
												| '#private-instance-field'
												| 'method'
												| 'public-method'
												| 'public-decorated-method'
												| 'decorated-method'
												| 'static-method'
												| 'public-static-method'
												| 'instance-method'
												| 'public-instance-method'
												| 'abstract-method'
												| 'public-abstract-method'
												| 'protected-method'
												| 'protected-decorated-method'
												| 'protected-static-method'
												| 'protected-instance-method'
												| 'protected-abstract-method'
												| 'private-method'
												| 'private-decorated-method'
												| 'private-static-method'
												| 'private-instance-method'
												| '#private-method'
												| '#private-static-method'
												| '#private-instance-method'
												| 'call-signature'
												| 'constructor'
												| 'public-constructor'
												| 'protected-constructor'
												| 'private-constructor'
												| 'accessor'
												| 'public-accessor'
												| 'public-decorated-accessor'
												| 'decorated-accessor'
												| 'static-accessor'
												| 'public-static-accessor'
												| 'instance-accessor'
												| 'public-instance-accessor'
												| 'abstract-accessor'
												| 'public-abstract-accessor'
												| 'protected-accessor'
												| 'protected-decorated-accessor'
												| 'protected-static-accessor'
												| 'protected-instance-accessor'
												| 'protected-abstract-accessor'
												| 'private-accessor'
												| 'private-decorated-accessor'
												| 'private-static-accessor'
												| 'private-instance-accessor'
												| '#private-accessor'
												| '#private-static-accessor'
												| '#private-instance-accessor'
												| 'get'
												| 'public-get'
												| 'public-decorated-get'
												| 'decorated-get'
												| 'static-get'
												| 'public-static-get'
												| 'instance-get'
												| 'public-instance-get'
												| 'abstract-get'
												| 'public-abstract-get'
												| 'protected-get'
												| 'protected-decorated-get'
												| 'protected-static-get'
												| 'protected-instance-get'
												| 'protected-abstract-get'
												| 'private-get'
												| 'private-decorated-get'
												| 'private-static-get'
												| 'private-instance-get'
												| '#private-get'
												| '#private-static-get'
												| '#private-instance-get'
												| 'set'
												| 'public-set'
												| 'public-decorated-set'
												| 'decorated-set'
												| 'static-set'
												| 'public-static-set'
												| 'instance-set'
												| 'public-instance-set'
												| 'abstract-set'
												| 'public-abstract-set'
												| 'protected-set'
												| 'protected-decorated-set'
												| 'protected-static-set'
												| 'protected-instance-set'
												| 'protected-abstract-set'
												| 'private-set'
												| 'private-decorated-set'
												| 'private-static-set'
												| 'private-instance-set'
												| '#private-set'
												| '#private-static-set'
												| '#private-instance-set'
												| 'static-initialization'
												| 'static-static-initialization'
												| 'public-static-static-initialization'
												| 'instance-static-initialization'
												| 'public-instance-static-initialization'
												| 'abstract-static-initialization'
												| 'public-abstract-static-initialization'
												| 'protected-static-static-initialization'
												| 'protected-instance-static-initialization'
												| 'protected-abstract-static-initialization'
												| 'private-static-static-initialization'
												| 'private-instance-static-initialization'
												| '#private-static-static-initialization'
												| '#private-instance-static-initialization'
										  )[]
								  )[]
								| 'never'
							optionalityOrder?: 'optional-first' | 'required-first'
							order?:
								| 'alphabetically'
								| 'alphabetically-case-insensitive'
								| 'as-written'
								| 'natural'
								| 'natural-case-insensitive'
					  }
				interfaces?:
					| 'never'
					| (
							| (
									| 'readonly-signature'
									| 'signature'
									| 'readonly-field'
									| 'field'
									| 'method'
									| 'constructor'
							  )
							| (
									| 'readonly-signature'
									| 'signature'
									| 'readonly-field'
									| 'field'
									| 'method'
									| 'constructor'
							  )[]
					  )[]
					| {
							memberTypes?:
								| (
										| (
												| 'readonly-signature'
												| 'signature'
												| 'readonly-field'
												| 'field'
												| 'method'
												| 'constructor'
										  )
										| (
												| 'readonly-signature'
												| 'signature'
												| 'readonly-field'
												| 'field'
												| 'method'
												| 'constructor'
										  )[]
								  )[]
								| 'never'
							optionalityOrder?: 'optional-first' | 'required-first'
							order?:
								| 'alphabetically'
								| 'alphabetically-case-insensitive'
								| 'as-written'
								| 'natural'
								| 'natural-case-insensitive'
					  }
				typeLiterals?:
					| 'never'
					| (
							| (
									| 'readonly-signature'
									| 'signature'
									| 'readonly-field'
									| 'field'
									| 'method'
									| 'constructor'
							  )
							| (
									| 'readonly-signature'
									| 'signature'
									| 'readonly-field'
									| 'field'
									| 'method'
									| 'constructor'
							  )[]
					  )[]
					| {
							memberTypes?:
								| (
										| (
												| 'readonly-signature'
												| 'signature'
												| 'readonly-field'
												| 'field'
												| 'method'
												| 'constructor'
										  )
										| (
												| 'readonly-signature'
												| 'signature'
												| 'readonly-field'
												| 'field'
												| 'method'
												| 'constructor'
										  )[]
								  )[]
								| 'never'
							optionalityOrder?: 'optional-first' | 'required-first'
							order?:
								| 'alphabetically'
								| 'alphabetically-case-insensitive'
								| 'as-written'
								| 'natural'
								| 'natural-case-insensitive'
					  }
			},
	  ]
// ----- ts/method-signature-style -----
type TsMethodSignatureStyle = [] | ['property' | 'method']
// ----- ts/naming-convention -----
type _TsNamingConventionFormatOptionsConfig = _TsNamingConventionPredefinedFormats[] | null
type _TsNamingConventionPredefinedFormats =
	| 'camelCase'
	| 'strictCamelCase'
	| 'PascalCase'
	| 'StrictPascalCase'
	| 'snake_case'
	| 'UPPER_CASE'
type _TsNamingConventionUnderscoreOptions =
	| 'forbid'
	| 'allow'
	| 'require'
	| 'requireDouble'
	| 'allowDouble'
	| 'allowSingleOrDouble'
type _TsNamingConvention_PrefixSuffixConfig = string[]
type _TsNamingConventionTypeModifiers = 'boolean' | 'string' | 'number' | 'function' | 'array'
type TsNamingConvention = (
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			modifiers?: (
				| 'const'
				| 'readonly'
				| 'static'
				| 'public'
				| 'protected'
				| 'private'
				| '#private'
				| 'abstract'
				| 'destructured'
				| 'global'
				| 'exported'
				| 'unused'
				| 'requiresQuotes'
				| 'override'
				| 'async'
				| 'default'
				| 'namespace'
			)[]
			selector: (
				| 'default'
				| 'variableLike'
				| 'memberLike'
				| 'typeLike'
				| 'method'
				| 'property'
				| 'accessor'
				| 'variable'
				| 'function'
				| 'parameter'
				| 'parameterProperty'
				| 'classicAccessor'
				| 'enumMember'
				| 'classMethod'
				| 'objectLiteralMethod'
				| 'typeMethod'
				| 'classProperty'
				| 'objectLiteralProperty'
				| 'typeProperty'
				| 'autoAccessor'
				| 'class'
				| 'interface'
				| 'typeAlias'
				| 'enum'
				| 'typeParameter'
				| 'import'
			)[]
			types?: _TsNamingConventionTypeModifiers[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'default'
			modifiers?: (
				| 'const'
				| 'readonly'
				| 'static'
				| 'public'
				| 'protected'
				| 'private'
				| '#private'
				| 'abstract'
				| 'destructured'
				| 'global'
				| 'exported'
				| 'unused'
				| 'requiresQuotes'
				| 'override'
				| 'async'
				| 'default'
				| 'namespace'
			)[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'variableLike'
			modifiers?: ('unused' | 'async')[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'variable'
			modifiers?: ('const' | 'destructured' | 'exported' | 'global' | 'unused' | 'async')[]
			types?: _TsNamingConventionTypeModifiers[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'function'
			modifiers?: ('exported' | 'global' | 'unused' | 'async')[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'parameter'
			modifiers?: ('destructured' | 'unused')[]
			types?: _TsNamingConventionTypeModifiers[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'memberLike'
			modifiers?: (
				| 'abstract'
				| 'private'
				| '#private'
				| 'protected'
				| 'public'
				| 'readonly'
				| 'requiresQuotes'
				| 'static'
				| 'override'
				| 'async'
			)[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'classProperty'
			modifiers?: (
				| 'abstract'
				| 'private'
				| '#private'
				| 'protected'
				| 'public'
				| 'readonly'
				| 'requiresQuotes'
				| 'static'
				| 'override'
			)[]
			types?: _TsNamingConventionTypeModifiers[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'objectLiteralProperty'
			modifiers?: ('public' | 'requiresQuotes')[]
			types?: _TsNamingConventionTypeModifiers[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'typeProperty'
			modifiers?: ('public' | 'readonly' | 'requiresQuotes')[]
			types?: _TsNamingConventionTypeModifiers[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'parameterProperty'
			modifiers?: ('private' | 'protected' | 'public' | 'readonly')[]
			types?: _TsNamingConventionTypeModifiers[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'property'
			modifiers?: (
				| 'abstract'
				| 'private'
				| '#private'
				| 'protected'
				| 'public'
				| 'readonly'
				| 'requiresQuotes'
				| 'static'
				| 'override'
				| 'async'
			)[]
			types?: _TsNamingConventionTypeModifiers[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'classMethod'
			modifiers?: (
				| 'abstract'
				| 'private'
				| '#private'
				| 'protected'
				| 'public'
				| 'requiresQuotes'
				| 'static'
				| 'override'
				| 'async'
			)[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'objectLiteralMethod'
			modifiers?: ('public' | 'requiresQuotes' | 'async')[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'typeMethod'
			modifiers?: ('public' | 'requiresQuotes')[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'method'
			modifiers?: (
				| 'abstract'
				| 'private'
				| '#private'
				| 'protected'
				| 'public'
				| 'requiresQuotes'
				| 'static'
				| 'override'
				| 'async'
			)[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'classicAccessor'
			modifiers?: (
				| 'abstract'
				| 'private'
				| 'protected'
				| 'public'
				| 'requiresQuotes'
				| 'static'
				| 'override'
			)[]
			types?: _TsNamingConventionTypeModifiers[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'autoAccessor'
			modifiers?: (
				| 'abstract'
				| 'private'
				| 'protected'
				| 'public'
				| 'requiresQuotes'
				| 'static'
				| 'override'
			)[]
			types?: _TsNamingConventionTypeModifiers[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'accessor'
			modifiers?: (
				| 'abstract'
				| 'private'
				| 'protected'
				| 'public'
				| 'requiresQuotes'
				| 'static'
				| 'override'
			)[]
			types?: _TsNamingConventionTypeModifiers[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'enumMember'
			modifiers?: 'requiresQuotes'[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'typeLike'
			modifiers?: ('abstract' | 'exported' | 'unused')[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'class'
			modifiers?: ('abstract' | 'exported' | 'unused')[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'interface'
			modifiers?: ('exported' | 'unused')[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'typeAlias'
			modifiers?: ('exported' | 'unused')[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'enum'
			modifiers?: ('exported' | 'unused')[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'typeParameter'
			modifiers?: 'unused'[]
	  }
	| {
			custom?: _TsNamingConvention_MatchRegexConfig
			failureMessage?: string
			format: _TsNamingConventionFormatOptionsConfig
			leadingUnderscore?: _TsNamingConventionUnderscoreOptions
			prefix?: _TsNamingConvention_PrefixSuffixConfig
			suffix?: _TsNamingConvention_PrefixSuffixConfig
			trailingUnderscore?: _TsNamingConventionUnderscoreOptions
			filter?: string | _TsNamingConvention_MatchRegexConfig
			selector: 'import'
			modifiers?: ('default' | 'namespace')[]
	  }
)[]
interface _TsNamingConvention_MatchRegexConfig {
	match: boolean
	regex: string
}
// ----- ts/no-base-to-string -----
type TsNoBaseToString =
	| []
	| [
			{
				ignoredTypeNames?: string[]
			},
	  ]
// ----- ts/no-confusing-void-expression -----
type TsNoConfusingVoidExpression =
	| []
	| [
			{
				ignoreArrowShorthand?: boolean

				ignoreVoidOperator?: boolean

				ignoreVoidReturningFunctions?: boolean
			},
	  ]
// ----- ts/no-deprecated -----
type TsNoDeprecated =
	| []
	| [
			{
				allow?: (
					| string
					| {
							from: 'file'
							name: string | [string, ...string[]]
							path?: string
					  }
					| {
							from: 'lib'
							name: string | [string, ...string[]]
					  }
					| {
							from: 'package'
							name: string | [string, ...string[]]
							package: string
					  }
				)[]
			},
	  ]
// ----- ts/no-duplicate-type-constituents -----
type TsNoDuplicateTypeConstituents =
	| []
	| [
			{
				ignoreIntersections?: boolean

				ignoreUnions?: boolean
			},
	  ]
// ----- ts/no-empty-function -----
type TsNoEmptyFunction =
	| []
	| [
			{
				allow?: (
					| 'functions'
					| 'arrowFunctions'
					| 'generatorFunctions'
					| 'methods'
					| 'generatorMethods'
					| 'getters'
					| 'setters'
					| 'constructors'
					| 'private-constructors'
					| 'protected-constructors'
					| 'asyncFunctions'
					| 'asyncMethods'
					| 'decoratedFunctions'
					| 'overrideMethods'
				)[]
			},
	  ]
// ----- ts/no-empty-interface -----
type TsNoEmptyInterface =
	| []
	| [
			{
				allowSingleExtends?: boolean
			},
	  ]
// ----- ts/no-empty-object-type -----
type TsNoEmptyObjectType =
	| []
	| [
			{
				allowInterfaces?: 'always' | 'never' | 'with-single-extends'

				allowObjectTypes?: 'always' | 'never'

				allowWithName?: string
			},
	  ]
// ----- ts/no-explicit-any -----
type TsNoExplicitAny =
	| []
	| [
			{
				fixToUnknown?: boolean

				ignoreRestArgs?: boolean
			},
	  ]
// ----- ts/no-extraneous-class -----
type TsNoExtraneousClass =
	| []
	| [
			{
				allowConstructorOnly?: boolean

				allowEmpty?: boolean

				allowStaticOnly?: boolean

				allowWithDecorator?: boolean
			},
	  ]
// ----- ts/no-floating-promises -----
type TsNoFloatingPromises =
	| []
	| [
			{
				allowForKnownSafeCalls?: (
					| string
					| {
							from: 'file'
							name: string | [string, ...string[]]
							path?: string
					  }
					| {
							from: 'lib'
							name: string | [string, ...string[]]
					  }
					| {
							from: 'package'
							name: string | [string, ...string[]]
							package: string
					  }
				)[]

				allowForKnownSafePromises?: (
					| string
					| {
							from: 'file'
							name: string | [string, ...string[]]
							path?: string
					  }
					| {
							from: 'lib'
							name: string | [string, ...string[]]
					  }
					| {
							from: 'package'
							name: string | [string, ...string[]]
							package: string
					  }
				)[]

				checkThenables?: boolean

				ignoreIIFE?: boolean

				ignoreVoid?: boolean
			},
	  ]
// ----- ts/no-inferrable-types -----
type TsNoInferrableTypes =
	| []
	| [
			{
				ignoreParameters?: boolean

				ignoreProperties?: boolean
			},
	  ]
// ----- ts/no-invalid-this -----
type TsNoInvalidThis =
	| []
	| [
			{
				capIsConstructor?: boolean
			},
	  ]
// ----- ts/no-invalid-void-type -----
type TsNoInvalidVoidType =
	| []
	| [
			{
				allowAsThisParameter?: boolean

				allowInGenericTypeArguments?: boolean | [string, ...string[]]
			},
	  ]
// ----- ts/no-magic-numbers -----
type TsNoMagicNumbers =
	| []
	| [
			{
				detectObjects?: boolean
				enforceConst?: boolean
				ignore?: (number | string)[]
				ignoreArrayIndexes?: boolean
				ignoreDefaultValues?: boolean
				ignoreClassFieldInitialValues?: boolean

				ignoreEnums?: boolean

				ignoreNumericLiteralTypes?: boolean

				ignoreReadonlyClassProperties?: boolean

				ignoreTypeIndexes?: boolean
			},
	  ]
// ----- ts/no-meaningless-void-operator -----
type TsNoMeaninglessVoidOperator =
	| []
	| [
			{
				checkNever?: boolean
			},
	  ]
// ----- ts/no-misused-promises -----
type TsNoMisusedPromises =
	| []
	| [
			{
				checksConditionals?: boolean

				checksSpreads?: boolean

				checksVoidReturn?:
					| boolean
					| {
							arguments?: boolean

							attributes?: boolean

							inheritedMethods?: boolean

							properties?: boolean

							returns?: boolean

							variables?: boolean
					  }
			},
	  ]
// ----- ts/no-misused-spread -----
type TsNoMisusedSpread =
	| []
	| [
			{
				allow?: (
					| string
					| {
							from: 'file'
							name: string | [string, ...string[]]
							path?: string
					  }
					| {
							from: 'lib'
							name: string | [string, ...string[]]
					  }
					| {
							from: 'package'
							name: string | [string, ...string[]]
							package: string
					  }
				)[]
			},
	  ]
// ----- ts/no-namespace -----
type TsNoNamespace =
	| []
	| [
			{
				allowDeclarations?: boolean

				allowDefinitionFiles?: boolean
			},
	  ]
// ----- ts/no-redeclare -----
type TsNoRedeclare =
	| []
	| [
			{
				builtinGlobals?: boolean

				ignoreDeclarationMerge?: boolean
			},
	  ]
// ----- ts/no-require-imports -----
type TsNoRequireImports =
	| []
	| [
			{
				allow?: string[]

				allowAsImport?: boolean
			},
	  ]
// ----- ts/no-restricted-imports -----
type TsNoRestrictedImports =
	| (
			| string
			| {
					name: string
					message?: string
					importNames?: string[]
					allowImportNames?: string[]

					allowTypeImports?: boolean
			  }
	  )[]
	| []
	| [
			{
				paths?: (
					| string
					| {
							name: string
							message?: string
							importNames?: string[]
							allowImportNames?: string[]

							allowTypeImports?: boolean
					  }
				)[]
				patterns?:
					| string[]
					| {
							importNames?: [string, ...string[]]

							allowImportNames?: [string, ...string[]]

							group?: [string, ...string[]]
							regex?: string
							importNamePattern?: string
							allowImportNamePattern?: string
							message?: string
							caseSensitive?: boolean

							allowTypeImports?: boolean
					  }[]
			},
	  ]
// ----- ts/no-restricted-types -----
type TsNoRestrictedTypes =
	| []
	| [
			{
				types?: {
					[k: string]:
						| (
								| true
								| string
								| {
										fixWith?: string

										message?: string

										suggest?: string[]
								  }
						  )
						| undefined
				}
			},
	  ]
// ----- ts/no-shadow -----
type TsNoShadow =
	| []
	| [
			{
				allow?: string[]

				builtinGlobals?: boolean

				hoist?: 'all' | 'functions' | 'functions-and-types' | 'never' | 'types'

				ignoreFunctionTypeParameterNameValueShadow?: boolean

				ignoreOnInitialization?: boolean

				ignoreTypeValueShadow?: boolean
			},
	  ]
// ----- ts/no-this-alias -----
type TsNoThisAlias =
	| []
	| [
			{
				allowDestructuring?: boolean

				allowedNames?: string[]
			},
	  ]
// ----- ts/no-type-alias -----
type TsNoTypeAlias =
	| []
	| [
			{
				allowAliases?:
					| 'always'
					| 'never'
					| 'in-unions'
					| 'in-intersections'
					| 'in-unions-and-intersections'

				allowCallbacks?: 'always' | 'never'

				allowConditionalTypes?: 'always' | 'never'

				allowConstructors?: 'always' | 'never'

				allowGenerics?: 'always' | 'never'

				allowLiterals?:
					| 'always'
					| 'never'
					| 'in-unions'
					| 'in-intersections'
					| 'in-unions-and-intersections'

				allowMappedTypes?:
					| 'always'
					| 'never'
					| 'in-unions'
					| 'in-intersections'
					| 'in-unions-and-intersections'

				allowTupleTypes?:
					| 'always'
					| 'never'
					| 'in-unions'
					| 'in-intersections'
					| 'in-unions-and-intersections'
			},
	  ]
// ----- ts/no-unnecessary-boolean-literal-compare -----
type TsNoUnnecessaryBooleanLiteralCompare =
	| []
	| [
			{
				allowComparingNullableBooleansToFalse?: boolean

				allowComparingNullableBooleansToTrue?: boolean

				allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean
			},
	  ]
// ----- ts/no-unnecessary-condition -----
type TsNoUnnecessaryCondition =
	| []
	| [
			{
				allowConstantLoopConditions?: boolean | ('always' | 'never' | 'only-allowed-literals')

				allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean

				checkTypePredicates?: boolean
			},
	  ]
// ----- ts/no-unnecessary-type-assertion -----
type TsNoUnnecessaryTypeAssertion =
	| []
	| [
			{
				checkLiteralConstAssertions?: boolean

				typesToIgnore?: string[]
			},
	  ]
// ----- ts/no-unused-expressions -----
type TsNoUnusedExpressions =
	| []
	| [
			{
				allowShortCircuit?: boolean
				allowTernary?: boolean
				allowTaggedTemplates?: boolean
				enforceForJSX?: boolean
				ignoreDirectives?: boolean
			},
	  ]
// ----- ts/no-unused-vars -----
type TsNoUnusedVars =
	| []
	| [
			| ('all' | 'local')
			| {
					args?: 'all' | 'after-used' | 'none'

					argsIgnorePattern?: string

					caughtErrors?: 'all' | 'none'

					caughtErrorsIgnorePattern?: string

					destructuredArrayIgnorePattern?: string

					ignoreClassWithStaticInitBlock?: boolean

					ignoreRestSiblings?: boolean

					reportUsedIgnorePattern?: boolean

					vars?: 'all' | 'local'

					varsIgnorePattern?: string
			  },
	  ]
// ----- ts/no-use-before-define -----
type TsNoUseBeforeDefine =
	| []
	| [
			| 'nofunc'
			| {
					allowNamedExports?: boolean

					classes?: boolean

					enums?: boolean

					functions?: boolean

					ignoreTypeReferences?: boolean

					typedefs?: boolean

					variables?: boolean
			  },
	  ]
// ----- ts/no-var-requires -----
type TsNoVarRequires =
	| []
	| [
			{
				allow?: string[]
			},
	  ]
// ----- ts/only-throw-error -----
type TsOnlyThrowError =
	| []
	| [
			{
				allow?: (
					| string
					| {
							from: 'file'
							name: string | [string, ...string[]]
							path?: string
					  }
					| {
							from: 'lib'
							name: string | [string, ...string[]]
					  }
					| {
							from: 'package'
							name: string | [string, ...string[]]
							package: string
					  }
				)[]

				allowRethrowing?: boolean

				allowThrowingAny?: boolean

				allowThrowingUnknown?: boolean
			},
	  ]
// ----- ts/parameter-properties -----
type TsParameterProperties =
	| []
	| [
			{
				allow?: (
					| 'readonly'
					| 'private'
					| 'protected'
					| 'public'
					| 'private readonly'
					| 'protected readonly'
					| 'public readonly'
				)[]

				prefer?: 'class-property' | 'parameter-property'
			},
	  ]
// ----- ts/prefer-destructuring -----
type TsPreferDestructuring =
	| []
	| [
			| {
					AssignmentExpression?: {
						array?: boolean
						object?: boolean
					}
					VariableDeclarator?: {
						array?: boolean
						object?: boolean
					}
			  }
			| {
					array?: boolean
					object?: boolean
			  },
	  ]
	| [
			(
				| {
						AssignmentExpression?: {
							array?: boolean
							object?: boolean
						}
						VariableDeclarator?: {
							array?: boolean
							object?: boolean
						}
				  }
				| {
						array?: boolean
						object?: boolean
				  }
			),
			{
				enforceForDeclarationWithTypeAnnotation?: boolean

				enforceForRenamedProperties?: boolean
				[k: string]: unknown | undefined
			},
	  ]
// ----- ts/prefer-literal-enum-member -----
type TsPreferLiteralEnumMember =
	| []
	| [
			{
				allowBitwiseExpressions?: boolean
			},
	  ]
// ----- ts/prefer-nullish-coalescing -----
type TsPreferNullishCoalescing =
	| []
	| [
			{
				allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean

				ignoreBooleanCoercion?: boolean

				ignoreConditionalTests?: boolean

				ignoreIfStatements?: boolean

				ignoreMixedLogicalExpressions?: boolean

				ignorePrimitives?:
					| {
							bigint?: boolean

							boolean?: boolean

							number?: boolean

							string?: boolean
							[k: string]: unknown | undefined
					  }
					| true

				ignoreTernaryTests?: boolean
			},
	  ]
// ----- ts/prefer-optional-chain -----
type TsPreferOptionalChain =
	| []
	| [
			{
				allowPotentiallyUnsafeFixesThatModifyTheReturnTypeIKnowWhatImDoing?: boolean

				checkAny?: boolean

				checkBigInt?: boolean

				checkBoolean?: boolean

				checkNumber?: boolean

				checkString?: boolean

				checkUnknown?: boolean

				requireNullish?: boolean
			},
	  ]
// ----- ts/prefer-promise-reject-errors -----
type TsPreferPromiseRejectErrors =
	| []
	| [
			{
				allowEmptyReject?: boolean

				allowThrowingAny?: boolean

				allowThrowingUnknown?: boolean
			},
	  ]
// ----- ts/prefer-readonly -----
type TsPreferReadonly =
	| []
	| [
			{
				onlyInlineLambdas?: boolean
			},
	  ]
// ----- ts/prefer-readonly-parameter-types -----
type TsPreferReadonlyParameterTypes =
	| []
	| [
			{
				allow?: (
					| string
					| {
							from: 'file'
							name: string | [string, ...string[]]
							path?: string
					  }
					| {
							from: 'lib'
							name: string | [string, ...string[]]
					  }
					| {
							from: 'package'
							name: string | [string, ...string[]]
							package: string
					  }
				)[]

				checkParameterProperties?: boolean

				ignoreInferredTypes?: boolean

				treatMethodsAsReadonly?: boolean
			},
	  ]
// ----- ts/prefer-string-starts-ends-with -----
type TsPreferStringStartsEndsWith =
	| []
	| [
			{
				allowSingleElementEquality?: 'always' | 'never'
			},
	  ]
// ----- ts/promise-function-async -----
type TsPromiseFunctionAsync =
	| []
	| [
			{
				allowAny?: boolean

				allowedPromiseNames?: string[]

				checkArrowFunctions?: boolean

				checkFunctionDeclarations?: boolean

				checkFunctionExpressions?: boolean

				checkMethodDeclarations?: boolean
			},
	  ]
// ----- ts/require-array-sort-compare -----
type TsRequireArraySortCompare =
	| []
	| [
			{
				ignoreStringArrays?: boolean
			},
	  ]
// ----- ts/restrict-plus-operands -----
type TsRestrictPlusOperands =
	| []
	| [
			{
				allowAny?: boolean

				allowBoolean?: boolean

				allowNullish?: boolean

				allowNumberAndString?: boolean

				allowRegExp?: boolean

				skipCompoundAssignments?: boolean
			},
	  ]
// ----- ts/restrict-template-expressions -----
type TsRestrictTemplateExpressions =
	| []
	| [
			{
				allowAny?: boolean

				allowArray?: boolean

				allowBoolean?: boolean

				allowNullish?: boolean

				allowNumber?: boolean

				allowRegExp?: boolean

				allowNever?: boolean

				allow?: (
					| string
					| {
							from: 'file'
							name: string | [string, ...string[]]
							path?: string
					  }
					| {
							from: 'lib'
							name: string | [string, ...string[]]
					  }
					| {
							from: 'package'
							name: string | [string, ...string[]]
							package: string
					  }
				)[]
			},
	  ]
// ----- ts/return-await -----
type TsReturnAwait =
	| []
	| [('always' | 'error-handling-correctness-only' | 'in-try-catch' | 'never') & string]
// ----- ts/sort-type-constituents -----
type TsSortTypeConstituents =
	| []
	| [
			{
				caseSensitive?: boolean

				checkIntersections?: boolean

				checkUnions?: boolean

				groupOrder?: (
					| 'conditional'
					| 'function'
					| 'import'
					| 'intersection'
					| 'keyword'
					| 'nullish'
					| 'literal'
					| 'named'
					| 'object'
					| 'operator'
					| 'tuple'
					| 'union'
				)[]
			},
	  ]
// ----- ts/strict-boolean-expressions -----
type TsStrictBooleanExpressions =
	| []
	| [
			{
				allowAny?: boolean

				allowNullableBoolean?: boolean

				allowNullableEnum?: boolean

				allowNullableNumber?: boolean

				allowNullableObject?: boolean

				allowNullableString?: boolean

				allowNumber?: boolean

				allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean

				allowString?: boolean
			},
	  ]
// ----- ts/switch-exhaustiveness-check -----
type TsSwitchExhaustivenessCheck =
	| []
	| [
			{
				allowDefaultCaseForExhaustiveSwitch?: boolean

				considerDefaultExhaustiveForUnions?: boolean

				defaultCaseCommentPattern?: string

				requireDefaultForNonUnion?: boolean
			},
	  ]
// ----- ts/triple-slash-reference -----
type TsTripleSlashReference =
	| []
	| [
			{
				lib?: 'always' | 'never'

				path?: 'always' | 'never'

				types?: 'always' | 'never' | 'prefer-import'
			},
	  ]
// ----- ts/typedef -----
type TsTypedef =
	| []
	| [
			{
				arrayDestructuring?: boolean

				arrowParameter?: boolean

				memberVariableDeclaration?: boolean

				objectDestructuring?: boolean

				parameter?: boolean

				propertyDeclaration?: boolean

				variableDeclaration?: boolean

				variableDeclarationIgnoreFunction?: boolean
			},
	  ]
// ----- ts/unbound-method -----
type TsUnboundMethod =
	| []
	| [
			{
				ignoreStatic?: boolean
			},
	  ]
// ----- ts/unified-signatures -----
type TsUnifiedSignatures =
	| []
	| [
			{
				ignoreDifferentlyNamedParameters?: boolean

				ignoreOverloadsWithDifferentJSDoc?: boolean
			},
	  ]
// ----- unicode-bom -----
type UnicodeBom = [] | ['always' | 'never']
// ----- unicorn/better-regex -----
type UnicornBetterRegex =
	| []
	| [
			{
				sortCharacterClasses?: boolean
			},
	  ]
// ----- unicorn/catch-error-name -----
type UnicornCatchErrorName =
	| []
	| [
			{
				name?: string
				ignore?: unknown[]
			},
	  ]
// ----- unicorn/consistent-function-scoping -----
type UnicornConsistentFunctionScoping =
	| []
	| [
			{
				checkArrowFunctions?: boolean
			},
	  ]
// ----- unicorn/escape-case -----
type UnicornEscapeCase = [] | ['uppercase' | 'lowercase']
// ----- unicorn/expiring-todo-comments -----
type UnicornExpiringTodoComments =
	| []
	| [
			{
				terms?: string[]
				ignore?: unknown[]
				ignoreDatesOnPullRequests?: boolean
				allowWarningComments?: boolean
				date?: string
			},
	  ]
// ----- unicorn/explicit-length-check -----
type UnicornExplicitLengthCheck =
	| []
	| [
			{
				'non-zero'?: 'greater-than' | 'not-equal'
			},
	  ]
// ----- unicorn/filename-case -----
type UnicornFilenameCase =
	| []
	| [
			| {
					case?: 'camelCase' | 'snakeCase' | 'kebabCase' | 'pascalCase'
					ignore?: unknown[]
					multipleFileExtensions?: boolean
			  }
			| {
					cases?: {
						camelCase?: boolean
						snakeCase?: boolean
						kebabCase?: boolean
						pascalCase?: boolean
					}
					ignore?: unknown[]
					multipleFileExtensions?: boolean
			  },
	  ]
// ----- unicorn/import-style -----
type UnicornImportStyle =
	| []
	| [
			{
				checkImport?: boolean
				checkDynamicImport?: boolean
				checkExportFrom?: boolean
				checkRequire?: boolean
				extendDefaultStyles?: boolean
				styles?: _UnicornImportStyle_ModuleStyles
			},
	  ]
type _UnicornImportStyleStyles = (false | _UnicornImportStyle_BooleanObject) | undefined
interface _UnicornImportStyle_ModuleStyles {
	[k: string]: _UnicornImportStyleStyles | undefined
}
interface _UnicornImportStyle_BooleanObject {
	[k: string]: boolean | undefined
}
// ----- unicorn/no-array-reduce -----
type UnicornNoArrayReduce =
	| []
	| [
			{
				allowSimpleOperations?: boolean
			},
	  ]
// ----- unicorn/no-instanceof-builtins -----
type UnicornNoInstanceofBuiltins =
	| []
	| [
			{
				useErrorIsError?: boolean
				strategy?: 'loose' | 'strict'
				include?: string[]
				exclude?: string[]
			},
	  ]
// ----- unicorn/no-keyword-prefix -----
type UnicornNoKeywordPrefix =
	| []
	| [
			{
				disallowedPrefixes?: [] | [string]
				checkProperties?: boolean
				onlyCamelCase?: boolean
			},
	  ]
// ----- unicorn/no-null -----
type UnicornNoNull =
	| []
	| [
			{
				checkStrictEquality?: boolean
			},
	  ]
// ----- unicorn/no-typeof-undefined -----
type UnicornNoTypeofUndefined =
	| []
	| [
			{
				checkGlobalVariables?: boolean
			},
	  ]
// ----- unicorn/no-unnecessary-polyfills -----
type UnicornNoUnnecessaryPolyfills =
	| []
	| [
			{
				targets:
					| string
					| unknown[]
					| {
							[k: string]: unknown | undefined
					  }
			},
	  ]
// ----- unicorn/no-useless-undefined -----
type UnicornNoUselessUndefined =
	| []
	| [
			{
				checkArguments?: boolean
				checkArrowFunctionBody?: boolean
			},
	  ]
// ----- unicorn/number-literal-case -----
type UnicornNumberLiteralCase =
	| []
	| [
			{
				hexadecimalValue?: 'uppercase' | 'lowercase'
			},
	  ]
// ----- unicorn/numeric-separators-style -----
type UnicornNumericSeparatorsStyle =
	| []
	| [
			{
				binary?: {
					onlyIfContainsSeparator?: boolean
					minimumDigits?: number
					groupLength?: number
				}
				octal?: {
					onlyIfContainsSeparator?: boolean
					minimumDigits?: number
					groupLength?: number
				}
				hexadecimal?: {
					onlyIfContainsSeparator?: boolean
					minimumDigits?: number
					groupLength?: number
				}
				number?: {
					onlyIfContainsSeparator?: boolean
					minimumDigits?: number
					groupLength?: number
				}
				onlyIfContainsSeparator?: boolean
			},
	  ]
// ----- unicorn/prefer-add-event-listener -----
type UnicornPreferAddEventListener =
	| []
	| [
			{
				excludedPackages?: string[]
			},
	  ]
// ----- unicorn/prefer-array-find -----
type UnicornPreferArrayFind =
	| []
	| [
			{
				checkFromLast?: boolean
			},
	  ]
// ----- unicorn/prefer-array-flat -----
type UnicornPreferArrayFlat =
	| []
	| [
			{
				functions?: unknown[]
			},
	  ]
// ----- unicorn/prefer-at -----
type UnicornPreferAt =
	| []
	| [
			{
				getLastElementFunctions?: unknown[]
				checkAllIndexAccess?: boolean
			},
	  ]
// ----- unicorn/prefer-export-from -----
type UnicornPreferExportFrom =
	| []
	| [
			{
				ignoreUsedVariables?: boolean
			},
	  ]
// ----- unicorn/prefer-number-properties -----
type UnicornPreferNumberProperties =
	| []
	| [
			{
				checkInfinity?: boolean
				checkNaN?: boolean
			},
	  ]
// ----- unicorn/prefer-object-from-entries -----
type UnicornPreferObjectFromEntries =
	| []
	| [
			{
				functions?: unknown[]
			},
	  ]
// ----- unicorn/prefer-single-call -----
type UnicornPreferSingleCall =
	| []
	| [
			{
				ignore?: unknown[]
			},
	  ]
// ----- unicorn/prefer-structured-clone -----
type UnicornPreferStructuredClone =
	| []
	| [
			{
				functions?: unknown[]
			},
	  ]
// ----- unicorn/prefer-switch -----
type UnicornPreferSwitch =
	| []
	| [
			{
				minimumCases?: number
				emptyDefaultCase?: 'no-default-comment' | 'do-nothing-comment' | 'no-default-case'
			},
	  ]
// ----- unicorn/prefer-ternary -----
type UnicornPreferTernary = [] | ['always' | 'only-single-line']
// ----- unicorn/prevent-abbreviations -----
type UnicornPreventAbbreviations =
	| []
	| [
			{
				checkProperties?: boolean
				checkVariables?: boolean
				checkDefaultAndNamespaceImports?: boolean | string
				checkShorthandImports?: boolean | string
				checkShorthandProperties?: boolean
				checkFilenames?: boolean
				extendDefaultReplacements?: boolean
				replacements?: _UnicornPreventAbbreviations_Abbreviations
				extendDefaultAllowList?: boolean
				allowList?: _UnicornPreventAbbreviations_BooleanObject
				ignore?: unknown[]
			},
	  ]
type _UnicornPreventAbbreviationsReplacements =
	| (false | _UnicornPreventAbbreviations_BooleanObject)
	| undefined
interface _UnicornPreventAbbreviations_Abbreviations {
	[k: string]: _UnicornPreventAbbreviationsReplacements | undefined
}
interface _UnicornPreventAbbreviations_BooleanObject {
	[k: string]: boolean | undefined
}
// ----- unicorn/relative-url-style -----
type UnicornRelativeUrlStyle = [] | ['never' | 'always']
// ----- unicorn/string-content -----
type UnicornStringContent =
	| []
	| [
			{
				patterns?: {
					[k: string]:
						| (
								| string
								| {
										suggest: string
										fix?: boolean
										message?: string
								  }
						  )
						| undefined
				}
			},
	  ]
// ----- unicorn/switch-case-braces -----
type UnicornSwitchCaseBraces = [] | ['always' | 'avoid']
// ----- unicorn/template-indent -----
type UnicornTemplateIndent =
	| []
	| [
			{
				indent?: string | number
				tags?: string[]
				functions?: string[]
				selectors?: string[]
				comments?: string[]
			},
	  ]
// ----- use-isnan -----
type UseIsnan =
	| []
	| [
			{
				enforceForSwitchCase?: boolean
				enforceForIndexOf?: boolean
			},
	  ]
// ----- valid-typeof -----
type ValidTypeof =
	| []
	| [
			{
				requireStringLiterals?: boolean
			},
	  ]
// ----- wrap-iife -----
type WrapIife =
	| []
	| ['outside' | 'inside' | 'any']
	| [
			'outside' | 'inside' | 'any',
			{
				functionPrototypeMethods?: boolean
			},
	  ]
// ----- yaml/block-mapping -----
type YamlBlockMapping =
	| []
	| [
			| ('always' | 'never')
			| {
					singleline?: 'always' | 'never' | 'ignore'
					multiline?: 'always' | 'never' | 'ignore'
			  },
	  ]
// ----- yaml/block-mapping-colon-indicator-newline -----
type YamlBlockMappingColonIndicatorNewline = [] | ['always' | 'never']
// ----- yaml/block-mapping-question-indicator-newline -----
type YamlBlockMappingQuestionIndicatorNewline = [] | ['always' | 'never']
// ----- yaml/block-sequence -----
type YamlBlockSequence =
	| []
	| [
			| ('always' | 'never')
			| {
					singleline?: 'always' | 'never' | 'ignore'
					multiline?: 'always' | 'never' | 'ignore'
			  },
	  ]
// ----- yaml/block-sequence-hyphen-indicator-newline -----
type YamlBlockSequenceHyphenIndicatorNewline =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				nestedHyphen?: 'always' | 'never'
				blockMapping?: 'always' | 'never'
			},
	  ]
// ----- yaml/file-extension -----
type YamlFileExtension =
	| []
	| [
			{
				extension?: 'yaml' | 'yml'
				caseSensitive?: boolean
			},
	  ]
// ----- yaml/flow-mapping-curly-newline -----
type YamlFlowMappingCurlyNewline =
	| []
	| [
			| ('always' | 'never')
			| {
					multiline?: boolean
					minProperties?: number
					consistent?: boolean
			  },
	  ]
// ----- yaml/flow-mapping-curly-spacing -----
type YamlFlowMappingCurlySpacing =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				arraysInObjects?: boolean
				objectsInObjects?: boolean
			},
	  ]
// ----- yaml/flow-sequence-bracket-newline -----
type YamlFlowSequenceBracketNewline =
	| []
	| [
			| ('always' | 'never' | 'consistent')
			| {
					multiline?: boolean
					minItems?: number | null
			  },
	  ]
// ----- yaml/flow-sequence-bracket-spacing -----
type YamlFlowSequenceBracketSpacing =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				singleValue?: boolean
				objectsInArrays?: boolean
				arraysInArrays?: boolean
			},
	  ]
// ----- yaml/indent -----
type YamlIndent =
	| []
	| [number]
	| [
			number,
			{
				indentBlockSequences?: boolean
				indicatorValueIndent?: number
				alignMultilineFlowScalars?: boolean
			},
	  ]
// ----- yaml/key-name-casing -----
type YamlKeyNameCasing =
	| []
	| [
			{
				camelCase?: boolean
				PascalCase?: boolean
				SCREAMING_SNAKE_CASE?: boolean
				'kebab-case'?: boolean
				snake_case?: boolean
				ignores?: string[]
			},
	  ]
// ----- yaml/key-spacing -----
type YamlKeySpacing =
	| []
	| [
			| {
					align?:
						| ('colon' | 'value')
						| {
								on?: 'colon' | 'value'
								mode?: 'strict' | 'minimum'
								beforeColon?: boolean
								afterColon?: boolean
						  }
					mode?: 'strict' | 'minimum'
					beforeColon?: boolean
					afterColon?: boolean
			  }
			| {
					singleLine?: {
						mode?: 'strict' | 'minimum'
						beforeColon?: boolean
						afterColon?: boolean
					}
					multiLine?: {
						align?:
							| ('colon' | 'value')
							| {
									on?: 'colon' | 'value'
									mode?: 'strict' | 'minimum'
									beforeColon?: boolean
									afterColon?: boolean
							  }
						mode?: 'strict' | 'minimum'
						beforeColon?: boolean
						afterColon?: boolean
					}
			  }
			| {
					singleLine?: {
						mode?: 'strict' | 'minimum'
						beforeColon?: boolean
						afterColon?: boolean
					}
					multiLine?: {
						mode?: 'strict' | 'minimum'
						beforeColon?: boolean
						afterColon?: boolean
					}
					align?: {
						on?: 'colon' | 'value'
						mode?: 'strict' | 'minimum'
						beforeColon?: boolean
						afterColon?: boolean
					}
			  },
	  ]
// ----- yaml/no-irregular-whitespace -----
type YamlNoIrregularWhitespace =
	| []
	| [
			{
				skipComments?: boolean
				skipQuotedScalars?: boolean
			},
	  ]
// ----- yaml/no-multiple-empty-lines -----
type YamlNoMultipleEmptyLines =
	| []
	| [
			{
				max: number
				maxEOF?: number
				maxBOF?: number
			},
	  ]
// ----- yaml/plain-scalar -----
type YamlPlainScalar =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				ignorePatterns?: string[]
				overrides?: {
					mappingKey?: 'always' | 'never' | null
				}
			},
	  ]
// ----- yaml/quotes -----
type YamlQuotes =
	| []
	| [
			{
				prefer?: 'double' | 'single'
				avoidEscape?: boolean
			},
	  ]
// ----- yaml/sort-keys -----
type YamlSortKeys =
	| [
			{
				pathPattern: string
				hasProperties?: string[]
				order:
					| (
							| string
							| {
									keyPattern?: string
									order?: {
										type?: 'asc' | 'desc'
										caseSensitive?: boolean
										natural?: boolean
									}
							  }
					  )[]
					| {
							type?: 'asc' | 'desc'
							caseSensitive?: boolean
							natural?: boolean
					  }
				minKeys?: number
				allowLineSeparatedGroups?: boolean
			},
			...{
				pathPattern: string
				hasProperties?: string[]
				order:
					| (
							| string
							| {
									keyPattern?: string
									order?: {
										type?: 'asc' | 'desc'
										caseSensitive?: boolean
										natural?: boolean
									}
							  }
					  )[]
					| {
							type?: 'asc' | 'desc'
							caseSensitive?: boolean
							natural?: boolean
					  }
				minKeys?: number
				allowLineSeparatedGroups?: boolean
			}[],
	  ]
	| []
	| ['asc' | 'desc']
	| [
			'asc' | 'desc',
			{
				caseSensitive?: boolean
				natural?: boolean
				minKeys?: number
				allowLineSeparatedGroups?: boolean
			},
	  ]
// ----- yaml/sort-sequence-values -----
type YamlSortSequenceValues = [
	{
		pathPattern: string
		order:
			| (
					| string
					| {
							valuePattern?: string
							order?: {
								type?: 'asc' | 'desc'
								caseSensitive?: boolean
								natural?: boolean
							}
					  }
			  )[]
			| {
					type?: 'asc' | 'desc'
					caseSensitive?: boolean
					natural?: boolean
			  }
		minValues?: number
	},
	...{
		pathPattern: string
		order:
			| (
					| string
					| {
							valuePattern?: string
							order?: {
								type?: 'asc' | 'desc'
								caseSensitive?: boolean
								natural?: boolean
							}
					  }
			  )[]
			| {
					type?: 'asc' | 'desc'
					caseSensitive?: boolean
					natural?: boolean
			  }
		minValues?: number
	}[],
]
// ----- yaml/spaced-comment -----
type YamlSpacedComment =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				exceptions?: string[]
				markers?: string[]
			},
	  ]
// ----- yield-star-spacing -----
type YieldStarSpacing =
	| []
	| [
			| ('before' | 'after' | 'both' | 'neither')
			| {
					before?: boolean
					after?: boolean
			  },
	  ]
// ----- yoda -----
type Yoda =
	| []
	| ['always' | 'never']
	| [
			'always' | 'never',
			{
				exceptRange?: boolean
				onlyEquality?: boolean
			},
	  ]
// Names of all the configs
type ConfigNames =
	| 'kp/astro/setup'
	| 'kp/astro/rules'
	| 'kp/astro/script-js'
	| 'kp/astro/script-ts'
	| 'kp/disables/dts'
	| 'kp/disables/cjs'
	| 'kp/disables/prettier'
	| 'kp/html-script'
	| 'kp/html/setup'
	| 'kp/html'
	| 'kp/ignores'
	| 'kp/js/rules'
	| 'kp/json/setup'
	| 'kp/json/rules-json'
	| 'kp/json/rules-jsonc'
	| 'kp/json/rules-json5'
	| 'kp/json/rules'
	| 'kp/json/rules-settings'
	| 'kp/json/rules-package'
	| 'kp/json/rules-tsconfig'
	| 'kp/json/rules-overrides'
	| 'kp/jsx/rules'
	| 'kp/markdown/remark'
	| 'kp/markdown/code-blocks'
	| 'kp/mdx/remark'
	| 'kp/mdx/code-blocks'
	| 'kp/react/setup'
	| 'kp/react/rules'
	| 'kp/react/disable-type-aware'
	| 'kp/svelte/setup'
	| 'kp/svelte/rules'
	| 'kp/test/setup'
	| 'kp/test/rules'
	| 'kp/toml/setup'
	| 'kp/toml/rules'
	| 'kp/ts/rules'
	| 'kp/ts/dts'
	| 'kp/tsx/rules'
	| 'kp/yaml/setup'
	| 'kp/yaml/rules'

type Awaitable<T> = Promise<T> | T;
type OptionsConfig = {
    /**
     * Enable Astro support.
     * @default auto-detect based on the dependencies
     * TODO typescript support?
     */
    astro?: boolean | (OptionsOverrides & OptionsOverridesEmbeddedScripts & OptionsTypeAware);
    /**
     * Enable gitignore support.
     *
     * Passing an object to configure the options.
     * @see https://github.com/antfu/eslint-config-flat-gitignore
     * @default true
     */
    gitignore?: boolean | FlatGitignoreOptions;
    /**
     * Enable linting for HTML and HTML script tags.
     * @default true
     */
    html?: OptionsOverrides & OptionsOverridesEmbeddedScripts;
    /**
     * Control to disable some rules in editors.
     * @default auto-detect based on the process.env
     */
    isInEditor?: boolean;
    /**
     * Core rules. Can't be disabled.
     */
    js?: OptionsOverrides & OptionsTypeAware;
    /**
     * Enable JSON support.
     */
    json?: OptionsOverrides;
    /**
     * Core rules. Can't be disabled.
     */
    jsx?: OptionsOverrides & OptionsTypeAware;
    /**
     * Enable linting for Markdown via Remark, and Markdown code snippets
     * @default true
     */
    md?: OptionsOverrides & OptionsOverridesEmbeddedScripts;
    /**
     * Enable linting for MDX via REmark, and MDX code snippets.
     * @default true
     */
    mdx?: OptionsOverrides & OptionsOverridesEmbeddedScripts;
    /**
     * Enable React support.
     * @default auto-detect based on the dependencies
     */
    react?: boolean | (OptionsOverrides & OptionsTypeAware);
    /**
     * Enable Svelte support.
     * @default auto-detect based on the dependencies
     */
    svelte?: boolean | OptionsOverrides;
    /**
     * Enable test support.
     */
    test?: OptionsOverrides;
    /**
     * Enable TOML support.
     * @default true
     */
    toml?: OptionsOverrides;
    /**
     * TypeScript rules. Can't be disabled.
     */
    ts?: OptionsOverrides & OptionsTypeAware;
    /**
     * TypeScript rules. Can't be disabled.
     */
    tsx?: OptionsOverrides & OptionsTypeAware;
    /**
     * Type of the project. `lib` will enable more strict rules for libraries.
     * @default 'app'
     */
    type?: 'app' | 'lib';
    /**
     * Enable YAML support.
     */
    yaml?: OptionsOverrides;
};

type OptionsHasTypeScript = {
    typescript?: boolean;
};
type OptionsIsInEditor = {
    isInEditor?: boolean;
};
type OptionsOverrides = {
    overrides?: TypedFlatConfigItem['rules'];
};
type OptionsOverridesEmbeddedScripts = {
    overridesEmbeddedScripts?: TypedFlatConfigItem['rules'];
};
type OptionsTypeAware = {
    typeAware?: {
        /**
         * Explicitly enable or disable type aware rules.
         *
         * If undefined, the type aware rules will be enabled automatically in TS if a
         * tsconfig is found, and will be enabled in JS if TypeScript is detected
         * _and_ `checkJs` is enabled in your tsconfig.
         * @default undefined
         */
        enabled?: boolean;
        /**
         * [Minimatch](https://github.com/isaacs/minimatch/tree/v3]) patterns of
         * specific files to exclude from type aware rules.
         */
        ignores: string[];
    };
};
type Rules = RuleOptions;
type TypedFlatConfigItem = Omit<Linter.Config<Linter.RulesRecord & Rules>, 'plugins'> & {
    /**
     * An object containing a name-value mapping of plugin names to plugin objects. When `files` is specified, these plugins are only available to the matching files.
     * @see [Using plugins in your configuration](https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new#using-plugins-in-your-configuration)
     */
    plugins?: Record<string, any>;
};

declare function astro(options?: OptionsOverrides & OptionsOverridesEmbeddedScripts & OptionsTypeAware): Promise<TypedFlatConfigItem[]>;

/**
 * Final configuration pass to disable specific rules in specific contexts.
 */
declare function disables(): Promise<TypedFlatConfigItem[]>;

declare function html(options?: OptionsOverrides & OptionsOverridesEmbeddedScripts): Promise<TypedFlatConfigItem[]>;

declare function ignores(userIgnores?: string[]): Promise<TypedFlatConfigItem[]>;

/**
 * JavaScript configuration, note use of TypeScript rules
 */
declare function js(options?: OptionsOverrides & OptionsTypeAware): Promise<TypedFlatConfigItem[]>;

declare function json(options?: OptionsOverrides): Promise<TypedFlatConfigItem[]>;

declare function jsx(options?: OptionsOverrides & OptionsTypeAware): Promise<TypedFlatConfigItem[]>;

declare function md(options?: OptionsOverrides & OptionsOverridesEmbeddedScripts): Promise<TypedFlatConfigItem[]>;

declare function mdx(options?: OptionsOverrides & OptionsOverridesEmbeddedScripts): Promise<TypedFlatConfigItem[]>;

declare function react(options?: OptionsOverrides & OptionsTypeAware): Promise<TypedFlatConfigItem[]>;

declare function svelte(options?: OptionsOverrides): Promise<TypedFlatConfigItem[]>;

declare function test(options?: OptionsIsInEditor & OptionsOverrides): Promise<TypedFlatConfigItem[]>;

declare function toml(options?: OptionsOverrides): Promise<TypedFlatConfigItem[]>;

declare function ts(options?: OptionsOverrides & OptionsTypeAware): Promise<TypedFlatConfigItem[]>;

declare function tsx(options?: OptionsOverrides & OptionsTypeAware): Promise<TypedFlatConfigItem[]>;

declare function yaml(options?: OptionsOverrides): Promise<TypedFlatConfigItem[]>;

declare const defaultPluginRenaming: {
    '@eslint-community/eslint-comments': string;
    '@eslint-react/debug': string;
    '@eslint-react/dom': string;
    '@eslint-react/hooks-extra': string;
    '@eslint-react/naming-convention': string;
    '@eslint-react/web-api': string;
    '@eslint-react': string;
    jsonc: string;
    '@html-eslint': string;
    'package-json': string;
    '@typescript-eslint': string;
    'import-x': string;
    n: string;
    vitest: string;
    yml: string;
};
type ResolvedOptions<T> = T extends boolean ? never : NonNullable<T>;
/**
 * Construct an array of ESLint flat config items.
 * @param options The options for generating the ESLint configurations.
 * @param userConfigs The user configurations to be merged with the generated configurations.
 */
declare function eslintConfig(options?: Omit<TypedFlatConfigItem, 'files'> & OptionsConfig, ...userConfigs: Array<Awaitable<FlatConfigComposer<any, any> | Linter.Config[] | TypedFlatConfigItem | TypedFlatConfigItem[]>>): Promise<FlatConfigComposer<TypedFlatConfigItem, ConfigNames>>;
/**
 * Get ESLint language options object.
 * @param typeAware - Whether to enable type-aware linting.
 * @param jsx - Whether to enable JSX parsing.
 */
declare function getLanguageOptions(typeAware?: boolean, jsx?: boolean): Linter.LanguageOptions;
/**
 * Get the overrides for a specific key.
 * @param options The options object.
 * @param key The key to get the overrides for.
 */
declare function getOverrides<K extends keyof OptionsConfig>(options: OptionsConfig, key: K): Partial<Linter.RulesRecord & RuleOptions>;
/**
 * Get the overrides for embedded scripts for a specific key.
 * @param options The options object.
 * @param key The key to get the overrides for.
 */
declare function getOverridesEmbeddedScripts<K extends keyof OptionsConfig>(options: OptionsConfig, key: K): Partial<Linter.RulesRecord & RuleOptions>;
/**
 * Construct an array of ESLint flat config items.
 * @param options
 *  The options for generating the ESLint configurations.
 * @param userConfigs
 *  The user configurations to be merged with the generated configurations.
 * @returns
 *  The merged ESLint configurations.
 */
/**
 * Resolve the sub options for a specific key.
 * @param options The options object.
 * @param key The key to resolve the sub options for.
 */
declare function resolveSubOptions<K extends keyof OptionsConfig>(options: OptionsConfig, key: K): ResolvedOptions<OptionsConfig[K]>;

declare const GLOB_SRC_EXT = "?([cm])[jt]s?(x)";
declare const GLOB_SRC = "**/*.?([cm])[jt]s?(x)";
declare const GLOB_JS = "**/*.?([cm])js";
declare const GLOB_JSX = "**/*.?([cm])jsx";
declare const GLOB_TS = "**/*.?([cm])ts";
declare const GLOB_TSX = "**/*.?([cm])tsx";
declare const GLOB_STYLE = "**/*.{c,le,sc}ss";
declare const GLOB_CSS = "**/*.css";
declare const GLOB_POSTCSS = "**/*.{p,post}css";
declare const GLOB_LESS = "**/*.less";
declare const GLOB_SCSS = "**/*.scss";
declare const GLOB_JSON = "**/*.json";
declare const GLOB_JSON5 = "**/*.json5";
declare const GLOB_JSONC = "**/*.jsonc";
declare const GLOB_MARKDOWN = "**/*.md";
declare const GLOB_MDX = "**/*.mdx";
declare const GLOB_SVELTE = "**/*.svelte";
declare const GLOB_SVELTE_TS = "**/*.svelte.ts";
declare const GLOB_SVELTE_JS = "**/*.svelte.js";
declare const GLOB_YAML = "**/*.y?(a)ml";
declare const GLOB_TOML = "**/*.toml";
declare const GLOB_XML = "**/*.xml";
declare const GLOB_SVG = "**/*.svg";
declare const GLOB_HTML = "**/*.htm?(l)";
declare const GLOB_ASTRO = "**/*.astro";
declare const GLOB_ASTRO_JS = "**/*.astro/*.js";
declare const GLOB_ASTRO_TS = "**/*.astro/*.ts";
declare const GLOB_GRAPHQL = "**/*.{g,graph}ql";
declare const GLOB_MARKDOWN_CODE = "**/*.md/**/*.?([cm])[jt]s?(x)";
declare const GLOB_MDX_CODE = "**/*.mdx/**/*.?([cm])[jt]s?(x)";
declare const GLOB_TESTS: string[];
declare const GLOB_ALL_SRC: string[];
declare const GLOB_EXCLUDE: string[];

/**
 * Combine array and non-array configs into a single array.
 * @param configs - An array of configs or a single config.
 */
declare function combine(...configs: Array<Awaitable<TypedFlatConfigItem | TypedFlatConfigItem[]>>): Promise<TypedFlatConfigItem[]>;
/**
 * Import a module dynamically and return the default export.
 * @param m - The module to import.
 */
declare function interopDefault<T>(m: Awaitable<T>): Promise<T extends {
    default: infer U;
} ? U : T>;
/**
 * Determines if the code is running in an editor environment.
 *
 * This function checks various environment variables to detect if the code
 * is being executed within a code editor or IDE. It accounts for common
 * editors like VS Code, JetBrains IDEs, VIM, and Neovim.
 * @returns True if running in an editor environment, false otherwise
 */
declare function isInEditorEnv(): boolean;
/**
 * Checks if the code is running within Git hooks or lint-staged.
 *
 * This function detects if the current execution context is within
 * Git hooks, VS Code Git operations, or lint-staged npm scripts.
 * @returns True if running in Git hooks or lint-staged, false otherwise
 */
declare function isInGitHooksOrLintStaged(): boolean;
/**
 * Rename plugin names a flat configs array.
 * @param configs - The flat configs array.
 * @param map - A map of global to local plugin names.
 * @example
 * ```ts
 * import { renamePluginInConfigs } from '@kitschpatrol/eslint-config'
 * import someConfigs from './some-configs'
 *
 * export default renamePluginInConfigs(someConfigs, {
 *   '@typescript-eslint': 'ts',
 *   'import-x': 'import',
 * })
 * ```
 */
declare function renamePluginInConfigs(configs: TypedFlatConfigItem[], map: Record<string, string>): TypedFlatConfigItem[];
/**
 * Rename plugin prefixes in a rule object.
 * @param rules - The rules object.
 * @param map - A map of plugin prefixes to rename.
 * @example
 * ```ts
 * import { renameRules } from '@kitschpatrol/eslint-config'
 *
 * export default [{
 *   rules: renameRules(
 *     {
 *       '@typescript-eslint/indent': 'error'
 *     },
 *     { '@typescript-eslint': 'ts' }
 *   )
 * }]
 * ```
 */
declare function renameRules(rules: Record<string, any>, map: Record<string, string>): Record<string, any>;
/**
 * Convert a value to an array.
 * @param value - The value to convert.
 */
declare function toArray<T>(value: T | T[]): T[];
/**
 * Generates a Perfectionist sort configuration object from an array of strings
 * @see https://perfectionist.dev/rules/sort-objects#useconfigurationif
 * @param strings - Array of strings to generate config from
 * @param matchType - How to match the strings:
 *   - 'exact': Match exact name (default)
 *   - 'leading': Match start of name (prefix)
 *   - 'trailing': Match end of name (suffix)
 */
declare function generatePerfectionistSortConfig(strings: string[], matchType?: 'exact' | 'leading' | 'trailing'): {
    customGroups: Record<string, string>;
    groups: string[];
    useConfigurationIf: {
        allNamesMatchPattern: string;
    };
};

export { type Awaitable, type ConfigNames, GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_JS, 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_MDX, GLOB_MDX_CODE, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_SVELTE_JS, GLOB_SVELTE_TS, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_XML, GLOB_YAML, type OptionsConfig, type OptionsHasTypeScript, type OptionsIsInEditor, type OptionsOverrides, type OptionsOverridesEmbeddedScripts, type OptionsTypeAware, type ResolvedOptions, type Rules, type TypedFlatConfigItem, astro, combine, eslintConfig as default, defaultPluginRenaming, disables, eslintConfig, generatePerfectionistSortConfig, getLanguageOptions, getOverrides, getOverridesEmbeddedScripts, html, ignores, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, js, json, jsx, md, mdx, react, renamePluginInConfigs, renameRules, resolveSubOptions, svelte, test, toArray, toml, ts, tsx, yaml };
