import { Linter } from 'eslint';
import { FlatConfigComposer } from 'eslint-flat-config-utils';
import { StylisticCustomizeOptions } from '@stylistic/eslint-plugin';
import { ParserOptions } from '@typescript-eslint/parser';
import { NormalizedPackageJson } from '@visulima/package';
import { FlatGitignoreOptions } from 'eslint-config-flat-gitignore';
interface RuleOptions {
  /**
   * Enforce linebreaks after opening and before closing array brackets
   * @see https://eslint.style/rules/array-bracket-newline
   */
  '@stylistic/array-bracket-newline'?: Linter.RuleEntry<StylisticArrayBracketNewline>;
  /**
   * Enforce consistent spacing inside array brackets
   * @see https://eslint.style/rules/array-bracket-spacing
   */
  '@stylistic/array-bracket-spacing'?: Linter.RuleEntry<StylisticArrayBracketSpacing>;
  /**
   * Enforce line breaks after each array element
   * @see https://eslint.style/rules/array-element-newline
   */
  '@stylistic/array-element-newline'?: Linter.RuleEntry<StylisticArrayElementNewline>;
  /**
   * Require parentheses around arrow function arguments
   * @see https://eslint.style/rules/arrow-parens
   */
  '@stylistic/arrow-parens'?: Linter.RuleEntry<StylisticArrowParens>;
  /**
   * Enforce consistent spacing before and after the arrow in arrow functions
   * @see https://eslint.style/rules/arrow-spacing
   */
  '@stylistic/arrow-spacing'?: Linter.RuleEntry<StylisticArrowSpacing>;
  /**
   * Disallow or enforce spaces inside of blocks after opening block and before closing block
   * @see https://eslint.style/rules/block-spacing
   */
  '@stylistic/block-spacing'?: Linter.RuleEntry<StylisticBlockSpacing>;
  /**
   * Enforce consistent brace style for blocks
   * @see https://eslint.style/rules/brace-style
   */
  '@stylistic/brace-style'?: Linter.RuleEntry<StylisticBraceStyle>;
  /**
   * Require or disallow trailing commas
   * @see https://eslint.style/rules/comma-dangle
   */
  '@stylistic/comma-dangle'?: Linter.RuleEntry<StylisticCommaDangle>;
  /**
   * Enforce consistent spacing before and after commas
   * @see https://eslint.style/rules/comma-spacing
   */
  '@stylistic/comma-spacing'?: Linter.RuleEntry<StylisticCommaSpacing>;
  /**
   * Enforce consistent comma style
   * @see https://eslint.style/rules/comma-style
   */
  '@stylistic/comma-style'?: Linter.RuleEntry<StylisticCommaStyle>;
  /**
   * Enforce consistent spacing inside computed property brackets
   * @see https://eslint.style/rules/computed-property-spacing
   */
  '@stylistic/computed-property-spacing'?: Linter.RuleEntry<StylisticComputedPropertySpacing>;
  /**
   * Enforce consistent line breaks after opening and before closing braces
   * @see https://eslint.style/rules/curly-newline
   */
  '@stylistic/curly-newline'?: Linter.RuleEntry<StylisticCurlyNewline>;
  /**
   * Enforce consistent newlines before and after dots
   * @see https://eslint.style/rules/dot-location
   */
  '@stylistic/dot-location'?: Linter.RuleEntry<StylisticDotLocation>;
  /**
   * Require or disallow newline at the end of files
   * @see https://eslint.style/rules/eol-last
   */
  '@stylistic/eol-last'?: Linter.RuleEntry<StylisticEolLast>;
  /**
   * Enforce consistent line break styles for JSX props
   * @see https://eslint.style/rules/jsx-props-style
   */
  '@stylistic/exp-jsx-props-style'?: Linter.RuleEntry<StylisticExpJsxPropsStyle>;
  /**
   * Enforce consistent spacing and line break styles inside brackets.
   * @see https://eslint.style/rules/list-style
   */
  '@stylistic/exp-list-style'?: Linter.RuleEntry<StylisticExpListStyle>;
  /**
   * Enforce line breaks between arguments of a function call
   * @see https://eslint.style/rules/function-call-argument-newline
   */
  '@stylistic/function-call-argument-newline'?: Linter.RuleEntry<StylisticFunctionCallArgumentNewline>;
  /**
   * Require or disallow spacing between function identifiers and their invocations
   * @see https://eslint.style/rules/function-call-spacing
   */
  '@stylistic/function-call-spacing'?: Linter.RuleEntry<StylisticFunctionCallSpacing>;
  /**
   * Enforce consistent line breaks inside function parentheses
   * @see https://eslint.style/rules/function-paren-newline
   */
  '@stylistic/function-paren-newline'?: Linter.RuleEntry<StylisticFunctionParenNewline>;
  /**
   * Enforce consistent spacing around `*` operators in generator functions
   * @see https://eslint.style/rules/generator-star-spacing
   */
  '@stylistic/generator-star-spacing'?: Linter.RuleEntry<StylisticGeneratorStarSpacing>;
  /**
   * Enforce the location of arrow function bodies
   * @see https://eslint.style/rules/implicit-arrow-linebreak
   */
  '@stylistic/implicit-arrow-linebreak'?: Linter.RuleEntry<StylisticImplicitArrowLinebreak>;
  /**
   * Enforce consistent indentation
   * @see https://eslint.style/rules/indent
   */
  '@stylistic/indent'?: Linter.RuleEntry<StylisticIndent>;
  /**
   * Indentation for binary operators
   * @see https://eslint.style/rules/indent-binary-ops
   */
  '@stylistic/indent-binary-ops'?: Linter.RuleEntry<StylisticIndentBinaryOps>;
  /**
   * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions
   * @see https://eslint.style/rules/jsx-child-element-spacing
   */
  '@stylistic/jsx-child-element-spacing'?: Linter.RuleEntry<[]>;
  /**
   * Enforce closing bracket location in JSX
   * @see https://eslint.style/rules/jsx-closing-bracket-location
   */
  '@stylistic/jsx-closing-bracket-location'?: Linter.RuleEntry<StylisticJsxClosingBracketLocation>;
  /**
   * Enforce closing tag location for multiline JSX
   * @see https://eslint.style/rules/jsx-closing-tag-location
   */
  '@stylistic/jsx-closing-tag-location'?: Linter.RuleEntry<StylisticJsxClosingTagLocation>;
  /**
   * Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes
   * @see https://eslint.style/rules/jsx-curly-brace-presence
   */
  '@stylistic/jsx-curly-brace-presence'?: Linter.RuleEntry<StylisticJsxCurlyBracePresence>;
  /**
   * Enforce consistent linebreaks in curly braces in JSX attributes and expressions
   * @see https://eslint.style/rules/jsx-curly-newline
   */
  '@stylistic/jsx-curly-newline'?: Linter.RuleEntry<StylisticJsxCurlyNewline>;
  /**
   * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions
   * @see https://eslint.style/rules/jsx-curly-spacing
   */
  '@stylistic/jsx-curly-spacing'?: Linter.RuleEntry<StylisticJsxCurlySpacing>;
  /**
   * Enforce or disallow spaces around equal signs in JSX attributes
   * @see https://eslint.style/rules/jsx-equals-spacing
   */
  '@stylistic/jsx-equals-spacing'?: Linter.RuleEntry<StylisticJsxEqualsSpacing>;
  /**
   * Enforce proper position of the first property in JSX
   * @see https://eslint.style/rules/jsx-first-prop-new-line
   */
  '@stylistic/jsx-first-prop-new-line'?: Linter.RuleEntry<StylisticJsxFirstPropNewLine>;
  /**
   * Enforce line breaks before and after JSX elements when they are used as arguments to a function.
   * @see https://eslint.style/rules/jsx-function-call-newline
   */
  '@stylistic/jsx-function-call-newline'?: Linter.RuleEntry<StylisticJsxFunctionCallNewline>;
  /**
   * Enforce JSX indentation. Deprecated, use `indent` rule instead.
   * @see https://eslint.style/rules/jsx-indent
   * @deprecated
   */
  '@stylistic/jsx-indent'?: Linter.RuleEntry<StylisticJsxIndent>;
  /**
   * Enforce props indentation in JSX
   * @see https://eslint.style/rules/jsx-indent-props
   */
  '@stylistic/jsx-indent-props'?: Linter.RuleEntry<StylisticJsxIndentProps>;
  /**
   * Enforce maximum of props on a single line in JSX
   * @see https://eslint.style/rules/jsx-max-props-per-line
   */
  '@stylistic/jsx-max-props-per-line'?: Linter.RuleEntry<StylisticJsxMaxPropsPerLine>;
  /**
   * Require or prevent a new line after jsx elements and expressions.
   * @see https://eslint.style/rules/jsx-newline
   */
  '@stylistic/jsx-newline'?: Linter.RuleEntry<StylisticJsxNewline>;
  /**
   * Require one JSX element per line
   * @see https://eslint.style/rules/jsx-one-expression-per-line
   */
  '@stylistic/jsx-one-expression-per-line'?: Linter.RuleEntry<StylisticJsxOneExpressionPerLine>;
  /**
   * Enforce PascalCase for user-defined JSX components
   * @see https://eslint.style/rules/jsx-pascal-case
   */
  '@stylistic/jsx-pascal-case'?: Linter.RuleEntry<StylisticJsxPascalCase>;
  /**
   * Disallow multiple spaces between inline JSX props. Deprecated, use `no-multi-spaces` rule instead.
   * @see https://eslint.style/rules/jsx-props-no-multi-spaces
   * @deprecated
   */
  '@stylistic/jsx-props-no-multi-spaces'?: Linter.RuleEntry<[]>;
  /**
   * Enforce the consistent use of either double or single quotes in JSX attributes
   * @see https://eslint.style/rules/jsx-quotes
   */
  '@stylistic/jsx-quotes'?: Linter.RuleEntry<StylisticJsxQuotes>;
  /**
   * Disallow extra closing tags for components without children
   * @see https://eslint.style/rules/jsx-self-closing-comp
   */
  '@stylistic/jsx-self-closing-comp'?: Linter.RuleEntry<StylisticJsxSelfClosingComp>;
  /**
   * Enforce props alphabetical sorting
   * @see https://eslint.style/rules/jsx-sort-props
   * @deprecated
   */
  '@stylistic/jsx-sort-props'?: Linter.RuleEntry<StylisticJsxSortProps>;
  /**
   * Enforce whitespace in and around the JSX opening and closing brackets
   * @see https://eslint.style/rules/jsx-tag-spacing
   */
  '@stylistic/jsx-tag-spacing'?: Linter.RuleEntry<StylisticJsxTagSpacing>;
  /**
   * Disallow missing parentheses around multiline JSX
   * @see https://eslint.style/rules/jsx-wrap-multilines
   */
  '@stylistic/jsx-wrap-multilines'?: Linter.RuleEntry<StylisticJsxWrapMultilines>;
  /**
   * Enforce consistent spacing between property names and type annotations in types and interfaces
   * @see https://eslint.style/rules/key-spacing
   */
  '@stylistic/key-spacing'?: Linter.RuleEntry<StylisticKeySpacing>;
  /**
   * Enforce consistent spacing before and after keywords
   * @see https://eslint.style/rules/keyword-spacing
   */
  '@stylistic/keyword-spacing'?: Linter.RuleEntry<StylisticKeywordSpacing>;
  /**
   * Enforce position of line comments
   * @see https://eslint.style/rules/line-comment-position
   */
  '@stylistic/line-comment-position'?: Linter.RuleEntry<StylisticLineCommentPosition>;
  /**
   * Enforce consistent linebreak style
   * @see https://eslint.style/rules/linebreak-style
   */
  '@stylistic/linebreak-style'?: Linter.RuleEntry<StylisticLinebreakStyle>;
  /**
   * Require empty lines around comments
   * @see https://eslint.style/rules/lines-around-comment
   */
  '@stylistic/lines-around-comment'?: Linter.RuleEntry<StylisticLinesAroundComment>;
  /**
   * Require or disallow an empty line between class members
   * @see https://eslint.style/rules/lines-between-class-members
   */
  '@stylistic/lines-between-class-members'?: Linter.RuleEntry<StylisticLinesBetweenClassMembers>;
  /**
   * Enforce a maximum line length
   * @see https://eslint.style/rules/max-len
   */
  '@stylistic/max-len'?: Linter.RuleEntry<StylisticMaxLen>;
  /**
   * Enforce a maximum number of statements allowed per line
   * @see https://eslint.style/rules/max-statements-per-line
   */
  '@stylistic/max-statements-per-line'?: Linter.RuleEntry<StylisticMaxStatementsPerLine>;
  /**
   * Require a specific member delimiter style for interfaces and type literals
   * @see https://eslint.style/rules/member-delimiter-style
   */
  '@stylistic/member-delimiter-style'?: Linter.RuleEntry<StylisticMemberDelimiterStyle>;
  /**
   * Enforce a particular style for multiline comments
   * @see https://eslint.style/rules/multiline-comment-style
   */
  '@stylistic/multiline-comment-style'?: Linter.RuleEntry<StylisticMultilineCommentStyle>;
  /**
   * Enforce newlines between operands of ternary expressions
   * @see https://eslint.style/rules/multiline-ternary
   */
  '@stylistic/multiline-ternary'?: Linter.RuleEntry<StylisticMultilineTernary>;
  /**
   * Enforce or disallow parentheses when invoking a constructor with no arguments
   * @see https://eslint.style/rules/new-parens
   */
  '@stylistic/new-parens'?: Linter.RuleEntry<StylisticNewParens>;
  /**
   * Require a newline after each call in a method chain
   * @see https://eslint.style/rules/newline-per-chained-call
   */
  '@stylistic/newline-per-chained-call'?: Linter.RuleEntry<StylisticNewlinePerChainedCall>;
  /**
   * Disallow arrow functions where they could be confused with comparisons
   * @see https://eslint.style/rules/no-confusing-arrow
   */
  '@stylistic/no-confusing-arrow'?: Linter.RuleEntry<StylisticNoConfusingArrow>;
  /**
   * Disallow unnecessary parentheses
   * @see https://eslint.style/rules/no-extra-parens
   */
  '@stylistic/no-extra-parens'?: Linter.RuleEntry<StylisticNoExtraParens>;
  /**
   * Disallow unnecessary semicolons
   * @see https://eslint.style/rules/no-extra-semi
   */
  '@stylistic/no-extra-semi'?: Linter.RuleEntry<[]>;
  /**
   * Disallow leading or trailing decimal points in numeric literals
   * @see https://eslint.style/rules/no-floating-decimal
   */
  '@stylistic/no-floating-decimal'?: Linter.RuleEntry<[]>;
  /**
   * Disallow mixed binary operators
   * @see https://eslint.style/rules/no-mixed-operators
   */
  '@stylistic/no-mixed-operators'?: Linter.RuleEntry<StylisticNoMixedOperators>;
  /**
   * Disallow mixed spaces and tabs for indentation
   * @see https://eslint.style/rules/no-mixed-spaces-and-tabs
   */
  '@stylistic/no-mixed-spaces-and-tabs'?: Linter.RuleEntry<StylisticNoMixedSpacesAndTabs>;
  /**
   * Disallow multiple spaces
   * @see https://eslint.style/rules/no-multi-spaces
   */
  '@stylistic/no-multi-spaces'?: Linter.RuleEntry<StylisticNoMultiSpaces>;
  /**
   * Disallow multiple empty lines
   * @see https://eslint.style/rules/no-multiple-empty-lines
   */
  '@stylistic/no-multiple-empty-lines'?: Linter.RuleEntry<StylisticNoMultipleEmptyLines>;
  /**
   * Disallow all tabs
   * @see https://eslint.style/rules/no-tabs
   */
  '@stylistic/no-tabs'?: Linter.RuleEntry<StylisticNoTabs>;
  /**
   * Disallow trailing whitespace at the end of lines
   * @see https://eslint.style/rules/no-trailing-spaces
   */
  '@stylistic/no-trailing-spaces'?: Linter.RuleEntry<StylisticNoTrailingSpaces>;
  /**
   * Disallow whitespace before properties
   * @see https://eslint.style/rules/no-whitespace-before-property
   */
  '@stylistic/no-whitespace-before-property'?: Linter.RuleEntry<[]>;
  /**
   * Enforce the location of single-line statements
   * @see https://eslint.style/rules/nonblock-statement-body-position
   */
  '@stylistic/nonblock-statement-body-position'?: Linter.RuleEntry<StylisticNonblockStatementBodyPosition>;
  /**
   * Enforce consistent line breaks after opening and before closing braces
   * @see https://eslint.style/rules/object-curly-newline
   */
  '@stylistic/object-curly-newline'?: Linter.RuleEntry<StylisticObjectCurlyNewline>;
  /**
   * Enforce consistent spacing inside braces
   * @see https://eslint.style/rules/object-curly-spacing
   */
  '@stylistic/object-curly-spacing'?: Linter.RuleEntry<StylisticObjectCurlySpacing>;
  /**
   * Enforce placing object properties on separate lines
   * @see https://eslint.style/rules/object-property-newline
   */
  '@stylistic/object-property-newline'?: Linter.RuleEntry<StylisticObjectPropertyNewline>;
  /**
   * Require or disallow newlines around variable declarations
   * @see https://eslint.style/rules/one-var-declaration-per-line
   */
  '@stylistic/one-var-declaration-per-line'?: Linter.RuleEntry<StylisticOneVarDeclarationPerLine>;
  /**
   * Enforce consistent linebreak style for operators
   * @see https://eslint.style/rules/operator-linebreak
   */
  '@stylistic/operator-linebreak'?: Linter.RuleEntry<StylisticOperatorLinebreak>;
  /**
   * Require or disallow padding within blocks
   * @see https://eslint.style/rules/padded-blocks
   */
  '@stylistic/padded-blocks'?: Linter.RuleEntry<StylisticPaddedBlocks>;
  /**
   * Require or disallow padding lines between statements
   * @see https://eslint.style/rules/padding-line-between-statements
   */
  '@stylistic/padding-line-between-statements'?: Linter.RuleEntry<StylisticPaddingLineBetweenStatements>;
  /**
   * Require quotes around object literal, type literal, interfaces and enums property names
   * @see https://eslint.style/rules/quote-props
   */
  '@stylistic/quote-props'?: Linter.RuleEntry<StylisticQuoteProps>;
  /**
   * Enforce the consistent use of either backticks, double, or single quotes
   * @see https://eslint.style/rules/quotes
   */
  '@stylistic/quotes'?: Linter.RuleEntry<StylisticQuotes>;
  /**
   * Enforce spacing between rest and spread operators and their expressions
   * @see https://eslint.style/rules/rest-spread-spacing
   */
  '@stylistic/rest-spread-spacing'?: Linter.RuleEntry<StylisticRestSpreadSpacing>;
  /**
   * Require or disallow semicolons instead of ASI
   * @see https://eslint.style/rules/semi
   */
  '@stylistic/semi'?: Linter.RuleEntry<StylisticSemi>;
  /**
   * Enforce consistent spacing before and after semicolons
   * @see https://eslint.style/rules/semi-spacing
   */
  '@stylistic/semi-spacing'?: Linter.RuleEntry<StylisticSemiSpacing>;
  /**
   * Enforce location of semicolons
   * @see https://eslint.style/rules/semi-style
   */
  '@stylistic/semi-style'?: Linter.RuleEntry<StylisticSemiStyle>;
  /**
   * Enforce consistent spacing before blocks
   * @see https://eslint.style/rules/space-before-blocks
   */
  '@stylistic/space-before-blocks'?: Linter.RuleEntry<StylisticSpaceBeforeBlocks>;
  /**
   * Enforce consistent spacing before function parenthesis
   * @see https://eslint.style/rules/space-before-function-paren
   */
  '@stylistic/space-before-function-paren'?: Linter.RuleEntry<StylisticSpaceBeforeFunctionParen>;
  /**
   * Enforce consistent spacing inside parentheses
   * @see https://eslint.style/rules/space-in-parens
   */
  '@stylistic/space-in-parens'?: Linter.RuleEntry<StylisticSpaceInParens>;
  /**
   * Require spacing around infix operators
   * @see https://eslint.style/rules/space-infix-ops
   */
  '@stylistic/space-infix-ops'?: Linter.RuleEntry<StylisticSpaceInfixOps>;
  /**
   * Enforce consistent spacing before or after unary operators
   * @see https://eslint.style/rules/space-unary-ops
   */
  '@stylistic/space-unary-ops'?: Linter.RuleEntry<StylisticSpaceUnaryOps>;
  /**
   * Enforce consistent spacing after the `//` or `/*` in a comment
   * @see https://eslint.style/rules/spaced-comment
   */
  '@stylistic/spaced-comment'?: Linter.RuleEntry<StylisticSpacedComment>;
  /**
   * Enforce spacing around colons of switch statements
   * @see https://eslint.style/rules/switch-colon-spacing
   */
  '@stylistic/switch-colon-spacing'?: Linter.RuleEntry<StylisticSwitchColonSpacing>;
  /**
   * Require or disallow spacing around embedded expressions of template strings
   * @see https://eslint.style/rules/template-curly-spacing
   */
  '@stylistic/template-curly-spacing'?: Linter.RuleEntry<StylisticTemplateCurlySpacing>;
  /**
   * Require or disallow spacing between template tags and their literals
   * @see https://eslint.style/rules/template-tag-spacing
   */
  '@stylistic/template-tag-spacing'?: Linter.RuleEntry<StylisticTemplateTagSpacing>;
  /**
   * Require consistent spacing around type annotations
   * @see https://eslint.style/rules/type-annotation-spacing
   */
  '@stylistic/type-annotation-spacing'?: Linter.RuleEntry<StylisticTypeAnnotationSpacing>;
  /**
   * Enforces consistent spacing inside TypeScript type generics
   * @see https://eslint.style/rules/type-generic-spacing
   */
  '@stylistic/type-generic-spacing'?: Linter.RuleEntry<[]>;
  /**
   * Expect space before the type declaration in the named tuple
   * @see https://eslint.style/rules/type-named-tuple-spacing
   */
  '@stylistic/type-named-tuple-spacing'?: Linter.RuleEntry<[]>;
  /**
   * Require parentheses around immediate `function` invocations
   * @see https://eslint.style/rules/wrap-iife
   */
  '@stylistic/wrap-iife'?: Linter.RuleEntry<StylisticWrapIife>;
  /**
   * Require parenthesis around regex literals
   * @see https://eslint.style/rules/wrap-regex
   */
  '@stylistic/wrap-regex'?: Linter.RuleEntry<[]>;
  /**
   * Require or disallow spacing around the `*` in `yield*` expressions
   * @see https://eslint.style/rules/yield-star-spacing
   */
  '@stylistic/yield-star-spacing'?: Linter.RuleEntry<StylisticYieldStarSpacing>;
  /**
   * Exhaustive deps rule for useQuery
   * @see https://tanstack.com/query/latest/docs/eslint/exhaustive-deps
   */
  '@tanstack/query/exhaustive-deps'?: Linter.RuleEntry<TanstackQueryExhaustiveDeps>;
  /**
   * Ensure correct order of inference sensitive properties for infinite queries
   * @see https://tanstack.com/query/latest/docs/eslint/infinite-query-property-order
   */
  '@tanstack/query/infinite-query-property-order'?: Linter.RuleEntry<[]>;
  /**
   * Ensure correct order of inference-sensitive properties in useMutation()
   * @see https://tanstack.com/query/latest/docs/eslint/mutation-property-order
   */
  '@tanstack/query/mutation-property-order'?: Linter.RuleEntry<[]>;
  /**
   * Disallows rest destructuring in queries
   * @see https://tanstack.com/query/latest/docs/eslint/no-rest-destructuring
   */
  '@tanstack/query/no-rest-destructuring'?: Linter.RuleEntry<[]>;
  /**
   * Disallow putting the result of query hooks directly in a React hook dependency array
   * @see https://tanstack.com/query/latest/docs/eslint/no-unstable-deps
   */
  '@tanstack/query/no-unstable-deps'?: Linter.RuleEntry<[]>;
  /**
   * Ensures queryFn returns a non-undefined value
   * @see https://tanstack.com/query/latest/docs/eslint/no-void-query-fn
   */
  '@tanstack/query/no-void-query-fn'?: Linter.RuleEntry<[]>;
  /**
   * Prefer using queryOptions() to co-locate queryKey and queryFn
   * @see https://tanstack.com/query/latest/docs/eslint/prefer-query-options
   */
  '@tanstack/query/prefer-query-options'?: Linter.RuleEntry<[]>;
  /**
   * Makes sure that QueryClient is stable
   * @see https://tanstack.com/query/latest/docs/eslint/stable-query-client
   */
  '@tanstack/query/stable-query-client'?: Linter.RuleEntry<[]>;
  /**
   * Ensure correct order of inference sensitive properties for createRoute functions
   * @see https://tanstack.com/router/latest/docs/eslint/create-route-property-order
   */
  '@tanstack/router/create-route-property-order'?: Linter.RuleEntry<[]>;
  /**
   * Ensure route param names are valid JavaScript identifiers
   * @see https://tanstack.com/router/latest/docs/eslint/route-param-names
   */
  '@tanstack/router/route-param-names'?: Linter.RuleEntry<[]>;
  /**
   * Require that function overload signatures be consecutive
   * @see https://typescript-eslint.io/rules/adjacent-overload-signatures
   */
  '@typescript-eslint/adjacent-overload-signatures'?: Linter.RuleEntry<[]>;
  /**
   * Require consistently using either `T[]` or `Array<T>` for arrays
   * @see https://typescript-eslint.io/rules/array-type
   */
  '@typescript-eslint/array-type'?: Linter.RuleEntry<TypescriptEslintArrayType>;
  /**
   * Disallow awaiting a value that is not a Thenable
   * @see https://typescript-eslint.io/rules/await-thenable
   */
  '@typescript-eslint/await-thenable'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `@ts-<directive>` comments or require descriptions after directives
   * @see https://typescript-eslint.io/rules/ban-ts-comment
   */
  '@typescript-eslint/ban-ts-comment'?: Linter.RuleEntry<TypescriptEslintBanTsComment>;
  /**
   * Disallow `// tslint:<rule-flag>` comments
   * @see https://typescript-eslint.io/rules/ban-tslint-comment
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/class-literal-property-style'?: Linter.RuleEntry<TypescriptEslintClassLiteralPropertyStyle>;
  /**
   * Enforce that class methods utilize `this`
   * @see https://typescript-eslint.io/rules/class-methods-use-this
   */
  '@typescript-eslint/class-methods-use-this'?: Linter.RuleEntry<TypescriptEslintClassMethodsUseThis>;
  /**
   * Enforce specifying generic type arguments on type annotation or constructor name of a constructor call
   * @see https://typescript-eslint.io/rules/consistent-generic-constructors
   */
  '@typescript-eslint/consistent-generic-constructors'?: Linter.RuleEntry<TypescriptEslintConsistentGenericConstructors>;
  /**
   * Require or disallow the `Record` type
   * @see https://typescript-eslint.io/rules/consistent-indexed-object-style
   */
  '@typescript-eslint/consistent-indexed-object-style'?: Linter.RuleEntry<TypescriptEslintConsistentIndexedObjectStyle>;
  /**
   * Require `return` statements to either always or never specify values
   * @see https://typescript-eslint.io/rules/consistent-return
   */
  '@typescript-eslint/consistent-return'?: Linter.RuleEntry<TypescriptEslintConsistentReturn>;
  /**
   * Enforce consistent usage of type assertions
   * @see https://typescript-eslint.io/rules/consistent-type-assertions
   */
  '@typescript-eslint/consistent-type-assertions'?: Linter.RuleEntry<TypescriptEslintConsistentTypeAssertions>;
  /**
   * Enforce type definitions to consistently use either `interface` or `type`
   * @see https://typescript-eslint.io/rules/consistent-type-definitions
   */
  '@typescript-eslint/consistent-type-definitions'?: Linter.RuleEntry<TypescriptEslintConsistentTypeDefinitions>;
  /**
   * Enforce consistent usage of type exports
   * @see https://typescript-eslint.io/rules/consistent-type-exports
   */
  '@typescript-eslint/consistent-type-exports'?: Linter.RuleEntry<TypescriptEslintConsistentTypeExports>;
  /**
   * Enforce consistent usage of type imports
   * @see https://typescript-eslint.io/rules/consistent-type-imports
   */
  '@typescript-eslint/consistent-type-imports'?: Linter.RuleEntry<TypescriptEslintConsistentTypeImports>;
  /**
   * Enforce default parameters to be last
   * @see https://typescript-eslint.io/rules/default-param-last
   */
  '@typescript-eslint/default-param-last'?: Linter.RuleEntry<[]>;
  /**
   * Enforce dot notation whenever possible
   * @see https://typescript-eslint.io/rules/dot-notation
   */
  '@typescript-eslint/dot-notation'?: Linter.RuleEntry<TypescriptEslintDotNotation>;
  /**
   * Require explicit return types on functions and class methods
   * @see https://typescript-eslint.io/rules/explicit-function-return-type
   */
  '@typescript-eslint/explicit-function-return-type'?: Linter.RuleEntry<TypescriptEslintExplicitFunctionReturnType>;
  /**
   * Require explicit accessibility modifiers on class properties and methods
   * @see https://typescript-eslint.io/rules/explicit-member-accessibility
   */
  '@typescript-eslint/explicit-member-accessibility'?: Linter.RuleEntry<TypescriptEslintExplicitMemberAccessibility>;
  /**
   * Require explicit return and argument types on exported functions' and classes' public class methods
   * @see https://typescript-eslint.io/rules/explicit-module-boundary-types
   */
  '@typescript-eslint/explicit-module-boundary-types'?: Linter.RuleEntry<TypescriptEslintExplicitModuleBoundaryTypes>;
  /**
   * Require or disallow initialization in variable declarations
   * @see https://typescript-eslint.io/rules/init-declarations
   */
  '@typescript-eslint/init-declarations'?: Linter.RuleEntry<TypescriptEslintInitDeclarations>;
  /**
   * Enforce a maximum number of parameters in function definitions
   * @see https://typescript-eslint.io/rules/max-params
   */
  '@typescript-eslint/max-params'?: Linter.RuleEntry<TypescriptEslintMaxParams>;
  /**
   * Require a consistent member declaration order
   * @see https://typescript-eslint.io/rules/member-ordering
   */
  '@typescript-eslint/member-ordering'?: Linter.RuleEntry<TypescriptEslintMemberOrdering>;
  /**
   * Enforce using a particular method signature syntax
   * @see https://typescript-eslint.io/rules/method-signature-style
   */
  '@typescript-eslint/method-signature-style'?: Linter.RuleEntry<TypescriptEslintMethodSignatureStyle>;
  /**
   * Enforce naming conventions for everything across a codebase
   * @see https://typescript-eslint.io/rules/naming-convention
   */
  '@typescript-eslint/naming-convention'?: Linter.RuleEntry<TypescriptEslintNamingConvention>;
  /**
   * Disallow generic `Array` constructors
   * @see https://typescript-eslint.io/rules/no-array-constructor
   */
  '@typescript-eslint/no-array-constructor'?: Linter.RuleEntry<[]>;
  /**
   * Disallow using the `delete` operator on array values
   * @see https://typescript-eslint.io/rules/no-array-delete
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/no-base-to-string'?: Linter.RuleEntry<TypescriptEslintNoBaseToString>;
  /**
   * Disallow non-null assertion in locations that may be confusing
   * @see https://typescript-eslint.io/rules/no-confusing-non-null-assertion
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/no-confusing-void-expression'?: Linter.RuleEntry<TypescriptEslintNoConfusingVoidExpression>;
  /**
   * Disallow using code marked as `@deprecated`
   * @see https://typescript-eslint.io/rules/no-deprecated
   */
  '@typescript-eslint/no-deprecated'?: Linter.RuleEntry<TypescriptEslintNoDeprecated>;
  /**
   * Disallow duplicate class members
   * @see https://typescript-eslint.io/rules/no-dupe-class-members
   */
  '@typescript-eslint/no-dupe-class-members'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate enum member values
   * @see https://typescript-eslint.io/rules/no-duplicate-enum-values
   */
  '@typescript-eslint/no-duplicate-enum-values'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate constituents of union or intersection types
   * @see https://typescript-eslint.io/rules/no-duplicate-type-constituents
   */
  '@typescript-eslint/no-duplicate-type-constituents'?: Linter.RuleEntry<TypescriptEslintNoDuplicateTypeConstituents>;
  /**
   * Disallow using the `delete` operator on computed key expressions
   * @see https://typescript-eslint.io/rules/no-dynamic-delete
   */
  '@typescript-eslint/no-dynamic-delete'?: Linter.RuleEntry<[]>;
  /**
   * Disallow empty functions
   * @see https://typescript-eslint.io/rules/no-empty-function
   */
  '@typescript-eslint/no-empty-function'?: Linter.RuleEntry<TypescriptEslintNoEmptyFunction>;
  /**
   * Disallow the declaration of empty interfaces
   * @see https://typescript-eslint.io/rules/no-empty-interface
   * @deprecated
   */
  '@typescript-eslint/no-empty-interface'?: Linter.RuleEntry<TypescriptEslintNoEmptyInterface>;
  /**
   * Disallow accidentally using the "empty object" type
   * @see https://typescript-eslint.io/rules/no-empty-object-type
   */
  '@typescript-eslint/no-empty-object-type'?: Linter.RuleEntry<TypescriptEslintNoEmptyObjectType>;
  /**
   * Disallow the `any` type
   * @see https://typescript-eslint.io/rules/no-explicit-any
   */
  '@typescript-eslint/no-explicit-any'?: Linter.RuleEntry<TypescriptEslintNoExplicitAny>;
  /**
   * Disallow extra non-null assertions
   * @see https://typescript-eslint.io/rules/no-extra-non-null-assertion
   */
  '@typescript-eslint/no-extra-non-null-assertion'?: Linter.RuleEntry<[]>;
  /**
   * Disallow classes used as namespaces
   * @see https://typescript-eslint.io/rules/no-extraneous-class
   */
  '@typescript-eslint/no-extraneous-class'?: Linter.RuleEntry<TypescriptEslintNoExtraneousClass>;
  /**
   * Require Promise-like statements to be handled appropriately
   * @see https://typescript-eslint.io/rules/no-floating-promises
   */
  '@typescript-eslint/no-floating-promises'?: Linter.RuleEntry<TypescriptEslintNoFloatingPromises>;
  /**
   * Disallow iterating over an array with a for-in loop
   * @see https://typescript-eslint.io/rules/no-for-in-array
   */
  '@typescript-eslint/no-for-in-array'?: Linter.RuleEntry<[]>;
  /**
   * Disallow the use of `eval()`-like functions
   * @see https://typescript-eslint.io/rules/no-implied-eval
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/no-inferrable-types'?: Linter.RuleEntry<TypescriptEslintNoInferrableTypes>;
  /**
   * Disallow `this` keywords outside of classes or class-like objects
   * @see https://typescript-eslint.io/rules/no-invalid-this
   */
  '@typescript-eslint/no-invalid-this'?: Linter.RuleEntry<TypescriptEslintNoInvalidThis>;
  /**
   * Disallow `void` type outside of generic or return types
   * @see https://typescript-eslint.io/rules/no-invalid-void-type
   */
  '@typescript-eslint/no-invalid-void-type'?: Linter.RuleEntry<TypescriptEslintNoInvalidVoidType>;
  /**
   * Disallow function declarations that contain unsafe references inside loop statements
   * @see https://typescript-eslint.io/rules/no-loop-func
   * @deprecated
   */
  '@typescript-eslint/no-loop-func'?: Linter.RuleEntry<[]>;
  /**
   * Disallow literal numbers that lose precision
   * @see https://typescript-eslint.io/rules/no-loss-of-precision
   * @deprecated
   */
  '@typescript-eslint/no-loss-of-precision'?: Linter.RuleEntry<[]>;
  /**
   * Disallow magic numbers
   * @see https://typescript-eslint.io/rules/no-magic-numbers
   */
  '@typescript-eslint/no-magic-numbers'?: Linter.RuleEntry<TypescriptEslintNoMagicNumbers>;
  /**
   * Disallow the `void` operator except when used to discard a value
   * @see https://typescript-eslint.io/rules/no-meaningless-void-operator
   */
  '@typescript-eslint/no-meaningless-void-operator'?: Linter.RuleEntry<TypescriptEslintNoMeaninglessVoidOperator>;
  /**
   * Enforce valid definition of `new` and `constructor`
   * @see https://typescript-eslint.io/rules/no-misused-new
   */
  '@typescript-eslint/no-misused-new'?: Linter.RuleEntry<[]>;
  /**
   * Disallow Promises in places not designed to handle them
   * @see https://typescript-eslint.io/rules/no-misused-promises
   */
  '@typescript-eslint/no-misused-promises'?: Linter.RuleEntry<TypescriptEslintNoMisusedPromises>;
  /**
   * Disallow using the spread operator when it might cause unexpected behavior
   * @see https://typescript-eslint.io/rules/no-misused-spread
   */
  '@typescript-eslint/no-misused-spread'?: Linter.RuleEntry<TypescriptEslintNoMisusedSpread>;
  /**
   * Disallow enums from having both number and string members
   * @see https://typescript-eslint.io/rules/no-mixed-enums
   */
  '@typescript-eslint/no-mixed-enums'?: Linter.RuleEntry<[]>;
  /**
   * Disallow TypeScript namespaces
   * @see https://typescript-eslint.io/rules/no-namespace
   */
  '@typescript-eslint/no-namespace'?: Linter.RuleEntry<TypescriptEslintNoNamespace>;
  /**
   * 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
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/no-non-null-assertion'?: Linter.RuleEntry<[]>;
  /**
   * Disallow variable redeclaration
   * @see https://typescript-eslint.io/rules/no-redeclare
   */
  '@typescript-eslint/no-redeclare'?: Linter.RuleEntry<TypescriptEslintNoRedeclare>;
  /**
   * Disallow members of unions and intersections that do nothing or override type information
   * @see https://typescript-eslint.io/rules/no-redundant-type-constituents
   */
  '@typescript-eslint/no-redundant-type-constituents'?: Linter.RuleEntry<[]>;
  /**
   * Disallow invocation of `require()`
   * @see https://typescript-eslint.io/rules/no-require-imports
   */
  '@typescript-eslint/no-require-imports'?: Linter.RuleEntry<TypescriptEslintNoRequireImports>;
  /**
   * Disallow specified modules when loaded by `import`
   * @see https://typescript-eslint.io/rules/no-restricted-imports
   * @deprecated
   */
  '@typescript-eslint/no-restricted-imports'?: Linter.RuleEntry<TypescriptEslintNoRestrictedImports>;
  /**
   * Disallow certain types
   * @see https://typescript-eslint.io/rules/no-restricted-types
   */
  '@typescript-eslint/no-restricted-types'?: Linter.RuleEntry<TypescriptEslintNoRestrictedTypes>;
  /**
   * Disallow variable declarations from shadowing variables declared in the outer scope
   * @see https://typescript-eslint.io/rules/no-shadow
   */
  '@typescript-eslint/no-shadow'?: Linter.RuleEntry<TypescriptEslintNoShadow>;
  /**
   * Disallow aliasing `this`
   * @see https://typescript-eslint.io/rules/no-this-alias
   */
  '@typescript-eslint/no-this-alias'?: Linter.RuleEntry<TypescriptEslintNoThisAlias>;
  /**
   * Disallow type aliases
   * @see https://typescript-eslint.io/rules/no-type-alias
   * @deprecated
   */
  '@typescript-eslint/no-type-alias'?: Linter.RuleEntry<TypescriptEslintNoTypeAlias>;
  /**
   * Disallow unnecessary equality comparisons against boolean literals
   * @see https://typescript-eslint.io/rules/no-unnecessary-boolean-literal-compare
   */
  '@typescript-eslint/no-unnecessary-boolean-literal-compare'?: Linter.RuleEntry<TypescriptEslintNoUnnecessaryBooleanLiteralCompare>;
  /**
   * Disallow conditionals where the type is always truthy or always falsy
   * @see https://typescript-eslint.io/rules/no-unnecessary-condition
   */
  '@typescript-eslint/no-unnecessary-condition'?: Linter.RuleEntry<TypescriptEslintNoUnnecessaryCondition>;
  /**
   * Disallow unnecessary assignment of constructor property parameter
   * @see https://typescript-eslint.io/rules/no-unnecessary-parameter-property-assignment
   */
  '@typescript-eslint/no-unnecessary-parameter-property-assignment'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary namespace qualifiers
   * @see https://typescript-eslint.io/rules/no-unnecessary-qualifier
   */
  '@typescript-eslint/no-unnecessary-qualifier'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary template expressions
   * @see https://typescript-eslint.io/rules/no-unnecessary-template-expression
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/no-unnecessary-type-assertion'?: Linter.RuleEntry<TypescriptEslintNoUnnecessaryTypeAssertion>;
  /**
   * Disallow unnecessary constraints on generic types
   * @see https://typescript-eslint.io/rules/no-unnecessary-type-constraint
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/no-unsafe-assignment'?: Linter.RuleEntry<[]>;
  /**
   * Disallow calling a value with type `any`
   * @see https://typescript-eslint.io/rules/no-unsafe-call
   */
  '@typescript-eslint/no-unsafe-call'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unsafe declaration merging
   * @see https://typescript-eslint.io/rules/no-unsafe-declaration-merging
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/no-unsafe-enum-comparison'?: Linter.RuleEntry<[]>;
  /**
   * Disallow using the unsafe built-in Function type
   * @see https://typescript-eslint.io/rules/no-unsafe-function-type
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/no-unsafe-member-access'?: Linter.RuleEntry<TypescriptEslintNoUnsafeMemberAccess>;
  /**
   * Disallow returning a value with type `any` from a function
   * @see https://typescript-eslint.io/rules/no-unsafe-return
   */
  '@typescript-eslint/no-unsafe-return'?: Linter.RuleEntry<[]>;
  /**
   * Disallow type assertions that narrow a type
   * @see https://typescript-eslint.io/rules/no-unsafe-type-assertion
   */
  '@typescript-eslint/no-unsafe-type-assertion'?: Linter.RuleEntry<[]>;
  /**
   * Require unary negation to take a number
   * @see https://typescript-eslint.io/rules/no-unsafe-unary-minus
   */
  '@typescript-eslint/no-unsafe-unary-minus'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unused expressions
   * @see https://typescript-eslint.io/rules/no-unused-expressions
   */
  '@typescript-eslint/no-unused-expressions'?: Linter.RuleEntry<TypescriptEslintNoUnusedExpressions>;
  /**
   * Disallow unused private class members
   * @see https://typescript-eslint.io/rules/no-unused-private-class-members
   */
  '@typescript-eslint/no-unused-private-class-members'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unused variables
   * @see https://typescript-eslint.io/rules/no-unused-vars
   */
  '@typescript-eslint/no-unused-vars'?: Linter.RuleEntry<TypescriptEslintNoUnusedVars>;
  /**
   * Disallow the use of variables before they are defined
   * @see https://typescript-eslint.io/rules/no-use-before-define
   */
  '@typescript-eslint/no-use-before-define'?: Linter.RuleEntry<TypescriptEslintNoUseBeforeDefine>;
  /**
   * Disallow unnecessary constructors
   * @see https://typescript-eslint.io/rules/no-useless-constructor
   */
  '@typescript-eslint/no-useless-constructor'?: Linter.RuleEntry<[]>;
  /**
   * Disallow default values that will never be used
   * @see https://typescript-eslint.io/rules/no-useless-default-assignment
   */
  '@typescript-eslint/no-useless-default-assignment'?: Linter.RuleEntry<TypescriptEslintNoUselessDefaultAssignment>;
  /**
   * Disallow empty exports that don't change anything in a module file
   * @see https://typescript-eslint.io/rules/no-useless-empty-export
   */
  '@typescript-eslint/no-useless-empty-export'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `require` statements except in import statements
   * @see https://typescript-eslint.io/rules/no-var-requires
   * @deprecated
   */
  '@typescript-eslint/no-var-requires'?: Linter.RuleEntry<TypescriptEslintNoVarRequires>;
  /**
   * Disallow using confusing built-in primitive class wrappers
   * @see https://typescript-eslint.io/rules/no-wrapper-object-types
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/non-nullable-type-assertion-style'?: Linter.RuleEntry<[]>;
  /**
   * Disallow throwing non-`Error` values as exceptions
   * @see https://typescript-eslint.io/rules/only-throw-error
   */
  '@typescript-eslint/only-throw-error'?: Linter.RuleEntry<TypescriptEslintOnlyThrowError>;
  /**
   * Require or disallow parameter properties in class constructors
   * @see https://typescript-eslint.io/rules/parameter-properties
   */
  '@typescript-eslint/parameter-properties'?: Linter.RuleEntry<TypescriptEslintParameterProperties>;
  /**
   * Enforce the use of `as const` over literal type
   * @see https://typescript-eslint.io/rules/prefer-as-const
   */
  '@typescript-eslint/prefer-as-const'?: Linter.RuleEntry<[]>;
  /**
   * Require destructuring from arrays and/or objects
   * @see https://typescript-eslint.io/rules/prefer-destructuring
   */
  '@typescript-eslint/prefer-destructuring'?: Linter.RuleEntry<TypescriptEslintPreferDestructuring>;
  /**
   * Require each enum member value to be explicitly initialized
   * @see https://typescript-eslint.io/rules/prefer-enum-initializers
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/prefer-for-of'?: Linter.RuleEntry<[]>;
  /**
   * Enforce using function types instead of interfaces with call signatures
   * @see https://typescript-eslint.io/rules/prefer-function-type
   */
  '@typescript-eslint/prefer-function-type'?: Linter.RuleEntry<[]>;
  /**
   * Enforce `includes` method over `indexOf` method
   * @see https://typescript-eslint.io/rules/prefer-includes
   */
  '@typescript-eslint/prefer-includes'?: Linter.RuleEntry<[]>;
  /**
   * Require all enum members to be literal values
   * @see https://typescript-eslint.io/rules/prefer-literal-enum-member
   */
  '@typescript-eslint/prefer-literal-enum-member'?: Linter.RuleEntry<TypescriptEslintPreferLiteralEnumMember>;
  /**
   * Require using `namespace` keyword over `module` keyword to declare custom TypeScript modules
   * @see https://typescript-eslint.io/rules/prefer-namespace-keyword
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/prefer-nullish-coalescing'?: Linter.RuleEntry<TypescriptEslintPreferNullishCoalescing>;
  /**
   * 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
   */
  '@typescript-eslint/prefer-optional-chain'?: Linter.RuleEntry<TypescriptEslintPreferOptionalChain>;
  /**
   * Require using Error objects as Promise rejection reasons
   * @see https://typescript-eslint.io/rules/prefer-promise-reject-errors
   */
  '@typescript-eslint/prefer-promise-reject-errors'?: Linter.RuleEntry<TypescriptEslintPreferPromiseRejectErrors>;
  /**
   * 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
   */
  '@typescript-eslint/prefer-readonly'?: Linter.RuleEntry<TypescriptEslintPreferReadonly>;
  /**
   * Require function parameters to be typed as `readonly` to prevent accidental mutation of inputs
   * @see https://typescript-eslint.io/rules/prefer-readonly-parameter-types
   */
  '@typescript-eslint/prefer-readonly-parameter-types'?: Linter.RuleEntry<TypescriptEslintPreferReadonlyParameterTypes>;
  /**
   * Enforce using type parameter when calling `Array#reduce` instead of using a type assertion
   * @see https://typescript-eslint.io/rules/prefer-reduce-type-parameter
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/prefer-string-starts-ends-with'?: Linter.RuleEntry<TypescriptEslintPreferStringStartsEndsWith>;
  /**
   * Enforce using `@ts-expect-error` over `@ts-ignore`
   * @see https://typescript-eslint.io/rules/prefer-ts-expect-error
   * @deprecated
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/promise-function-async'?: Linter.RuleEntry<TypescriptEslintPromiseFunctionAsync>;
  /**
   * Enforce that `get()` types should be assignable to their equivalent `set()` type
   * @see https://typescript-eslint.io/rules/related-getter-setter-pairs
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/require-array-sort-compare'?: Linter.RuleEntry<TypescriptEslintRequireArraySortCompare>;
  /**
   * Disallow async functions which do not return promises and have no `await` expression
   * @see https://typescript-eslint.io/rules/require-await
   */
  '@typescript-eslint/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
   */
  '@typescript-eslint/restrict-plus-operands'?: Linter.RuleEntry<TypescriptEslintRestrictPlusOperands>;
  /**
   * Enforce template literal expressions to be of `string` type
   * @see https://typescript-eslint.io/rules/restrict-template-expressions
   */
  '@typescript-eslint/restrict-template-expressions'?: Linter.RuleEntry<TypescriptEslintRestrictTemplateExpressions>;
  /**
   * Enforce consistent awaiting of returned promises
   * @see https://typescript-eslint.io/rules/return-await
   */
  '@typescript-eslint/return-await'?: Linter.RuleEntry<TypescriptEslintReturnAwait>;
  /**
   * Enforce constituents of a type union/intersection to be sorted alphabetically
   * @see https://typescript-eslint.io/rules/sort-type-constituents
   * @deprecated
   */
  '@typescript-eslint/sort-type-constituents'?: Linter.RuleEntry<TypescriptEslintSortTypeConstituents>;
  /**
   * Disallow certain types in boolean expressions
   * @see https://typescript-eslint.io/rules/strict-boolean-expressions
   */
  '@typescript-eslint/strict-boolean-expressions'?: Linter.RuleEntry<TypescriptEslintStrictBooleanExpressions>;
  /**
   * Disallow passing a value-returning function in a position accepting a void function
   * @see https://typescript-eslint.io/rules/strict-void-return
   */
  '@typescript-eslint/strict-void-return'?: Linter.RuleEntry<TypescriptEslintStrictVoidReturn>;
  /**
   * Require switch-case statements to be exhaustive
   * @see https://typescript-eslint.io/rules/switch-exhaustiveness-check
   */
  '@typescript-eslint/switch-exhaustiveness-check'?: Linter.RuleEntry<TypescriptEslintSwitchExhaustivenessCheck>;
  /**
   * Disallow certain triple slash directives in favor of ES6-style import declarations
   * @see https://typescript-eslint.io/rules/triple-slash-reference
   */
  '@typescript-eslint/triple-slash-reference'?: Linter.RuleEntry<TypescriptEslintTripleSlashReference>;
  /**
   * Require type annotations in certain places
   * @see https://typescript-eslint.io/rules/typedef
   * @deprecated
   */
  '@typescript-eslint/typedef'?: Linter.RuleEntry<TypescriptEslintTypedef>;
  /**
   * Enforce unbound methods are called with their expected scope
   * @see https://typescript-eslint.io/rules/unbound-method
   */
  '@typescript-eslint/unbound-method'?: Linter.RuleEntry<TypescriptEslintUnboundMethod>;
  /**
   * 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
   */
  '@typescript-eslint/unified-signatures'?: Linter.RuleEntry<TypescriptEslintUnifiedSignatures>;
  /**
   * Enforce typing arguments in Promise rejection callbacks as `unknown`
   * @see https://typescript-eslint.io/rules/use-unknown-in-catch-callback-variable
   */
  '@typescript-eslint/use-unknown-in-catch-callback-variable'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent line breaks for chaining member access
   * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/consistent-chaining.md
   */
  'antfu/consistent-chaining'?: Linter.RuleEntry<AntfuConsistentChaining>;
  /**
   * Enforce consistent line breaks inside braces and parentheses
   * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/consistent-list-newline.md
   */
  'antfu/consistent-list-newline'?: Linter.RuleEntry<AntfuConsistentListNewline>;
  /**
   * Enforce Anthony's style of curly bracket
   * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/curly.md
   */
  'antfu/curly'?: Linter.RuleEntry<[]>;
  /**
   * Newline after if
   * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/if-newline.md
   */
  'antfu/if-newline'?: Linter.RuleEntry<[]>;
  /**
   * Fix duplication in imports
   * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/import-dedupe.md
   */
  'antfu/import-dedupe'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent indentation in `unindent` template tag
   * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/indent-unindent.md
   */
  'antfu/indent-unindent'?: Linter.RuleEntry<AntfuIndentUnindent>;
  /**
   * Prevent importing modules in `dist` folder
   * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-import-dist.md
   */
  'antfu/no-import-dist'?: Linter.RuleEntry<[]>;
  /**
   * Prevent importing modules in `node_modules` folder by relative or absolute path
   * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-import-node-modules-by-path.md
   */
  'antfu/no-import-node-modules-by-path'?: Linter.RuleEntry<[]>;
  /**
   * Prevent using top-level await
   * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-top-level-await.md
   */
  'antfu/no-top-level-await'?: Linter.RuleEntry<[]>;
  /**
   * Do not use `exports =`
   * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-ts-export-equal.md
   */
  'antfu/no-ts-export-equal'?: Linter.RuleEntry<[]>;
  /**
   * Enforce top-level functions to be declared with function keyword
   * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/top-level-function.md
   */
  'antfu/top-level-function'?: Linter.RuleEntry<[]>;
  /**
   * 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 omitted end tags
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-omitted-end-tags/
   * @deprecated
   */
  'astro/no-omitted-end-tags'?: Linter.RuleEntry<[]>;
  /**
   * disallow `prerender` export outside of pages/ directory
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-prerender-export-outside-pages/
   */
  'astro/no-prerender-export-outside-pages'?: 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 inline `<script>` without `src` to encourage CSP-safe patterns
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-unsafe-inline-scripts/
   */
  'astro/no-unsafe-inline-scripts'?: Linter.RuleEntry<AstroNoUnsafeInlineScripts>;
  /**
   * 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/
   * @deprecated
   */
  'astro/valid-compile'?: Linter.RuleEntry<[]>;
  /**
   * Ensure cross-browser API compatibility
   * @see https://github.com/amilajack/eslint-plugin-compat/blob/main/docs/rules/compat.md
   */
  'compat/compat'?: Linter.RuleEntry<CompatCompat>;
  /**
   * 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
   * @deprecated
   */
  '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>;
  /**
   * Use dprint to format code
   */
  'format/dprint'?: Linter.RuleEntry<FormatDprint>;
  /**
   * Use oxfmt to format code
   */
  'format/oxfmt'?: Linter.RuleEntry<FormatOxfmt>;
  /**
   * Use Prettier to format code
   */
  'format/prettier'?: Linter.RuleEntry<FormatPrettier>;
  /**
   * 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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.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.17.1/docs/rules/prefer-default-export.md
   */
  'import/prefer-default-export'?: Linter.RuleEntry<ImportPreferDefaultExport>;
  /**
   * Enforce using namespace imports for specific modules, like `react`/`react-dom`, etc.
   * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.17.1/docs/rules/prefer-namespace-import.md
   */
  'import/prefer-namespace-import'?: Linter.RuleEntry<ImportPreferNamespaceImport>;
  /**
   * Forbid potentially ambiguous parse goal (`script` vs. `module`).
   * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.17.1/docs/rules/unambiguous.md
   */
  'import/unambiguous'?: Linter.RuleEntry<[]>;
  /**
   * 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<JsdocCheckAlignment>;
  /**
   * @deprecated - Use `getJsdocProcessorPlugin` processor; ensures that (JavaScript) samples within `@example` tags 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>;
  /**
   * Checks for dupe `@param` names, that nested param names have roots, and that parameter names in function declarations match JSDoc param names.
   * @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 types deemed invalid (customizable and with defaults, for preventing and/or recommending replacements).
   * @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>;
  /**
   * Checks tags that are expected to be empty (e.g., `@abstract` or `@async`), reporting if they have 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 use of JSDoc tags in non-tag positions (in the default "typescript" mode).
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/escape-inline-tags.md#repos-sticky-header
   */
  'jsdoc/escape-inline-tags'?: Linter.RuleEntry<JsdocEscapeInlineTags>;
  /**
   * Prohibits use of `@implements` on non-constructor functions (to enforce the tag only being used on classes/constructors).
   * @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>;
  /**
   * If tags are present, this rule will prevent empty lines in the block description. If no tags are present, this rule will prevent extra empty lines in the 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` (redundant with TypeScript).
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-types.md#repos-sticky-header
   */
  'jsdoc/no-types'?: Linter.RuleEntry<JsdocNoTypes>;
  /**
   * Besides some expected built-in types, prohibits any types not specified as globals or within `@typedef`.
   * @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>;
  /**
   * Normalizes labeled links in `@see` tags to a canonical `{@link}` form.
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/normalize-see-links.md#repos-sticky-header
   */
  'jsdoc/normalize-see-links'?: Linter.RuleEntry<JsdocNormalizeSeeLinks>;
  /**
   * Prefer `@import` tags to inline `import()` statements.
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/prefer-import-tag.md#repos-sticky-header
   */
  'jsdoc/prefer-import-tag'?: Linter.RuleEntry<JsdocPreferImportTag>;
  /**
   * Reports use of `any` or `*` type
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-any-type.md#repos-sticky-header
   */
  'jsdoc/reject-any-type'?: Linter.RuleEntry<[]>;
  /**
   * Reports use of `Function` type
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-function-type.md#repos-sticky-header
   */
  'jsdoc/reject-function-type'?: Linter.RuleEntry<[]>;
  /**
   * 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 (and potentially other contexts) 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 (and potentially other contexts) 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 (and optionally before `@property` descriptions).
   * @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>;
  /**
   * Checks for presence of JSDoc comments, on functions and potentially other contexts (optionally limited to exports).
   * @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 a description for `@next` tags
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-description.md#repos-sticky-header
   */
  'jsdoc/require-next-description'?: Linter.RuleEntry<[]>;
  /**
   * Requires a type for `@next` tags
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-type.md#repos-sticky-header
   */
  'jsdoc/require-next-type'?: Linter.RuleEntry<[]>;
  /**
   * Requires that all function parameters are documented with a `@param` tag.
   * @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 `@param` tags 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 (in curly brackets).
   * @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 `@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 (in curly brackets).
   * @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 Promise rejections are documented with `@rejects` tags.
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-rejects.md#repos-sticky-header
   */
  'jsdoc/require-rejects'?: Linter.RuleEntry<JsdocRequireRejects>;
  /**
   * Requires that returns are documented with `@returns`.
   * @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(and reports if multiple `@returns` tags are present).
   * @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 (not including `void`/`undefined` type returns).
   * @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 (in curly brackets).
   * @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 tags be present, optionally for specific contexts
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-tags.md#repos-sticky-header
   */
  'jsdoc/require-tags'?: Linter.RuleEntry<JsdocRequireTags>;
  /**
   * Requires `@template` tags be present when type parameters are used.
   * @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 a description for `@template` tags
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template-description.md#repos-sticky-header
   */
  'jsdoc/require-template-description'?: Linter.RuleEntry<[]>;
  /**
   * Requires that throw statements are documented with `@throws` tags.
   * @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 a description for `@throws` tags
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-description.md#repos-sticky-header
   */
  'jsdoc/require-throws-description'?: Linter.RuleEntry<[]>;
  /**
   * Requires a type for `@throws` tags
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-type.md#repos-sticky-header
   */
  'jsdoc/require-throws-type'?: Linter.RuleEntry<[]>;
  /**
   * Requires yields are documented with `@yields` tags.
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields.md#repos-sticky-header
   */
  'jsdoc/require-yields'?: Linter.RuleEntry<JsdocRequireYields>;
  /**
   * Ensures that if a `@yields` is present that a `yield` (or `yield` with a value) is present in the function body (or that if a `@next` is present that there is a yield with a return value present).
   * @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>;
  /**
   * Requires a description for `@yields` tags
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-description.md#repos-sticky-header
   */
  'jsdoc/require-yields-description'?: Linter.RuleEntry<[]>;
  /**
   * Requires a type for `@yields` tags
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-type.md#repos-sticky-header
   */
  'jsdoc/require-yields-type'?: Linter.RuleEntry<[]>;
  /**
   * Sorts tags by a specified sequence according to tag name, optionally adding line breaks between tag groups.
   * @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) before, after, or 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>;
  /**
   * Prefers either function properties or method signatures
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-method-signature-style.md#repos-sticky-header
   */
  'jsdoc/ts-method-signature-style'?: Linter.RuleEntry<JsdocTsMethodSignatureStyle>;
  /**
   * Warns against use of the empty object type
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-no-empty-object-type.md#repos-sticky-header
   */
  'jsdoc/ts-no-empty-object-type'?: Linter.RuleEntry<[]>;
  /**
   * Catches unnecessary template expressions such as string expressions within a template literal.
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-no-unnecessary-template-expression.md#repos-sticky-header
   */
  'jsdoc/ts-no-unnecessary-template-expression'?: Linter.RuleEntry<JsdocTsNoUnnecessaryTemplateExpression>;
  /**
   * Prefers function types over call signatures when there are no other properties.
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-prefer-function-type.md#repos-sticky-header
   */
  'jsdoc/ts-prefer-function-type'?: Linter.RuleEntry<JsdocTsPreferFunctionType>;
  /**
   * Formats JSDoc type values.
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/type-formatting.md#repos-sticky-header
   */
  'jsdoc/type-formatting'?: Linter.RuleEntry<JsdocTypeFormatting>;
  /**
   * Requires all types/namepaths to be valid JSDoc, Closure compiler, or TypeScript types (configurable in settings).
   * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/valid-types.md#repos-sticky-header
   */
  'jsdoc/valid-types'?: Linter.RuleEntry<JsdocValidTypes>;
  /**
   * enforce line breaks after opening and before closing array brackets
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-bracket-newline.html
   */
  'jsonc/array-bracket-newline'?: Linter.RuleEntry<JsoncArrayBracketNewline>;
  /**
   * disallow or enforce spaces inside of brackets
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-bracket-spacing.html
   */
  'jsonc/array-bracket-spacing'?: Linter.RuleEntry<JsoncArrayBracketSpacing>;
  /**
   * enforce line breaks between array elements
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-element-newline.html
   */
  'jsonc/array-element-newline'?: Linter.RuleEntry<JsoncArrayElementNewline>;
  /**
   * apply jsonc rules similar to your configured ESLint core rules
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/auto.html
   */
  'jsonc/auto'?: Linter.RuleEntry<[]>;
  /**
   * require or disallow trailing commas
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/comma-dangle.html
   */
  'jsonc/comma-dangle'?: Linter.RuleEntry<JsoncCommaDangle>;
  /**
   * enforce consistent comma style
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/comma-style.html
   */
  'jsonc/comma-style'?: Linter.RuleEntry<JsoncCommaStyle>;
  /**
   * enforce consistent indentation
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/indent.html
   */
  'jsonc/indent'?: Linter.RuleEntry<JsoncIndent>;
  /**
   * enforce naming convention to property key names
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/key-name-casing.html
   */
  'jsonc/key-name-casing'?: Linter.RuleEntry<JsoncKeyNameCasing>;
  /**
   * enforce consistent spacing between keys and values in object literal properties
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/key-spacing.html
   */
  'jsonc/key-spacing'?: Linter.RuleEntry<JsoncKeySpacing>;
  /**
   * disallow BigInt literals
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-bigint-literals.html
   */
  'jsonc/no-bigint-literals'?: Linter.RuleEntry<[]>;
  /**
   * disallow binary expression
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-binary-expression.html
   */
  'jsonc/no-binary-expression'?: Linter.RuleEntry<[]>;
  /**
   * disallow binary numeric literals
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-binary-numeric-literals.html
   */
  'jsonc/no-binary-numeric-literals'?: Linter.RuleEntry<[]>;
  /**
   * disallow comments
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-comments.html
   */
  'jsonc/no-comments'?: Linter.RuleEntry<[]>;
  /**
   * disallow duplicate keys in object literals
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-dupe-keys.html
   */
  'jsonc/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
   */
  'jsonc/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
   */
  'jsonc/no-floating-decimal'?: Linter.RuleEntry<[]>;
  /**
   * disallow hexadecimal numeric literals
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-hexadecimal-numeric-literals.html
   */
  'jsonc/no-hexadecimal-numeric-literals'?: Linter.RuleEntry<[]>;
  /**
   * disallow Infinity
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-infinity.html
   */
  'jsonc/no-infinity'?: Linter.RuleEntry<[]>;
  /**
   * disallow irregular whitespace
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-irregular-whitespace.html
   */
  'jsonc/no-irregular-whitespace'?: Linter.RuleEntry<JsoncNoIrregularWhitespace>;
  /**
   * disallow multiline strings
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-multi-str.html
   */
  'jsonc/no-multi-str'?: Linter.RuleEntry<[]>;
  /**
   * disallow NaN
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-nan.html
   */
  'jsonc/no-nan'?: Linter.RuleEntry<[]>;
  /**
   * disallow number property keys
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-number-props.html
   */
  'jsonc/no-number-props'?: Linter.RuleEntry<[]>;
  /**
   * disallow numeric separators
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-numeric-separators.html
   */
  'jsonc/no-numeric-separators'?: Linter.RuleEntry<[]>;
  /**
   * disallow legacy octal literals
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal.html
   */
  'jsonc/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
   */
  'jsonc/no-octal-escape'?: Linter.RuleEntry<[]>;
  /**
   * disallow octal numeric literals
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal-numeric-literals.html
   */
  'jsonc/no-octal-numeric-literals'?: Linter.RuleEntry<[]>;
  /**
   * disallow parentheses around the expression
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-parenthesized.html
   */
  'jsonc/no-parenthesized'?: Linter.RuleEntry<[]>;
  /**
   * disallow plus sign
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-plus-sign.html
   */
  'jsonc/no-plus-sign'?: Linter.RuleEntry<[]>;
  /**
   * disallow RegExp literals
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-regexp-literals.html
   */
  'jsonc/no-regexp-literals'?: Linter.RuleEntry<[]>;
  /**
   * disallow sparse arrays
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-sparse-arrays.html
   */
  'jsonc/no-sparse-arrays'?: Linter.RuleEntry<[]>;
  /**
   * disallow template literals
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-template-literals.html
   */
  'jsonc/no-template-literals'?: Linter.RuleEntry<[]>;
  /**
   * disallow `undefined`
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-undefined-value.html
   */
  'jsonc/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
   */
  'jsonc/no-unicode-codepoint-escapes'?: Linter.RuleEntry<[]>;
  /**
   * disallow unnecessary escape usage
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-useless-escape.html
   */
  'jsonc/no-useless-escape'?: Linter.RuleEntry<JsoncNoUselessEscape>;
  /**
   * enforce consistent line breaks inside braces
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-curly-newline.html
   */
  'jsonc/object-curly-newline'?: Linter.RuleEntry<JsoncObjectCurlyNewline>;
  /**
   * enforce consistent spacing inside braces
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-curly-spacing.html
   */
  'jsonc/object-curly-spacing'?: Linter.RuleEntry<JsoncObjectCurlySpacing>;
  /**
   * enforce placing object properties on separate lines
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-property-newline.html
   */
  'jsonc/object-property-newline'?: Linter.RuleEntry<JsoncObjectPropertyNewline>;
  /**
   * require quotes around object literal property names
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/quote-props.html
   */
  'jsonc/quote-props'?: Linter.RuleEntry<JsoncQuoteProps>;
  /**
   * enforce use of double or single quotes
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/quotes.html
   */
  'jsonc/quotes'?: Linter.RuleEntry<JsoncQuotes>;
  /**
   * require array values to be sorted
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-array-values.html
   */
  'jsonc/sort-array-values'?: Linter.RuleEntry<JsoncSortArrayValues>;
  /**
   * require object keys to be sorted
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-keys.html
   */
  'jsonc/sort-keys'?: Linter.RuleEntry<JsoncSortKeys>;
  /**
   * disallow spaces after unary operators
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/space-unary-ops.html
   */
  'jsonc/space-unary-ops'?: Linter.RuleEntry<JsoncSpaceUnaryOps>;
  /**
   * disallow invalid number for JSON
   * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/valid-json-number.html
   */
  'jsonc/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
   */
  'jsonc/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>;
  /**
   * Require languages for fenced code blocks
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/fenced-code-language.md
   */
  'markdown/fenced-code-language'?: Linter.RuleEntry<MarkdownFencedCodeLanguage>;
  /**
   * Require or disallow metadata for fenced code blocks
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/fenced-code-meta.md
   */
  'markdown/fenced-code-meta'?: Linter.RuleEntry<MarkdownFencedCodeMeta>;
  /**
   * Enforce heading levels increment by one
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/heading-increment.md
   */
  'markdown/heading-increment'?: Linter.RuleEntry<MarkdownHeadingIncrement>;
  /**
   * Disallow bare URLs
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-bare-urls.md
   */
  'markdown/no-bare-urls'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate definitions
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-duplicate-definitions.md
   */
  'markdown/no-duplicate-definitions'?: Linter.RuleEntry<MarkdownNoDuplicateDefinitions>;
  /**
   * Disallow duplicate headings in the same document
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-duplicate-headings.md
   */
  'markdown/no-duplicate-headings'?: Linter.RuleEntry<MarkdownNoDuplicateHeadings>;
  /**
   * Disallow empty definitions
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-empty-definitions.md
   */
  'markdown/no-empty-definitions'?: Linter.RuleEntry<MarkdownNoEmptyDefinitions>;
  /**
   * Disallow empty images
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-empty-images.md
   */
  'markdown/no-empty-images'?: Linter.RuleEntry<[]>;
  /**
   * Disallow empty links
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-empty-links.md
   */
  'markdown/no-empty-links'?: Linter.RuleEntry<[]>;
  /**
   * Disallow HTML tags
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-html.md
   */
  'markdown/no-html'?: Linter.RuleEntry<MarkdownNoHtml>;
  /**
   * Disallow invalid label references
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-invalid-label-refs.md
   */
  'markdown/no-invalid-label-refs'?: Linter.RuleEntry<[]>;
  /**
   * Disallow headings without a space after the hash characters
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-missing-atx-heading-space.md
   */
  'markdown/no-missing-atx-heading-space'?: Linter.RuleEntry<MarkdownNoMissingAtxHeadingSpace>;
  /**
   * Disallow missing label references
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-missing-label-refs.md
   */
  'markdown/no-missing-label-refs'?: Linter.RuleEntry<MarkdownNoMissingLabelRefs>;
  /**
   * Disallow link fragments that do not reference valid headings
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-missing-link-fragments.md
   */
  'markdown/no-missing-link-fragments'?: Linter.RuleEntry<MarkdownNoMissingLinkFragments>;
  /**
   * Disallow multiple H1 headings in the same document
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-multiple-h1.md
   */
  'markdown/no-multiple-h1'?: Linter.RuleEntry<MarkdownNoMultipleH1>;
  /**
   * Disallow URLs that match defined reference identifiers
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-reference-like-urls.md
   */
  'markdown/no-reference-like-urls'?: Linter.RuleEntry<[]>;
  /**
   * Disallow reversed link and image syntax
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-reversed-media-syntax.md
   */
  'markdown/no-reversed-media-syntax'?: Linter.RuleEntry<[]>;
  /**
   * Disallow spaces around emphasis markers
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-space-in-emphasis.md
   */
  'markdown/no-space-in-emphasis'?: Linter.RuleEntry<MarkdownNoSpaceInEmphasis>;
  /**
   * Disallow unused definitions
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-unused-definitions.md
   */
  'markdown/no-unused-definitions'?: Linter.RuleEntry<MarkdownNoUnusedDefinitions>;
  /**
   * Require alternative text for images
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/require-alt-text.md
   */
  'markdown/require-alt-text'?: Linter.RuleEntry<[]>;
  /**
   * Disallow data rows in a GitHub Flavored Markdown table from having more cells than the header row
   * @see https://github.com/eslint/markdown/blob/main/docs/rules/table-column-count.md
   */
  'markdown/table-column-count'?: Linter.RuleEntry<MarkdownTableColumnCount>;
  /**
   * require `return` statements after callbacks
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/callback-return.md
   */
  'n/callback-return'?: Linter.RuleEntry<NCallbackReturn>;
  /**
   * enforce either `module.exports` or `exports`
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/exports-style.md
   */
  'n/exports-style'?: Linter.RuleEntry<NExportsStyle>;
  /**
   * 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
   */
  'n/file-extension-in-import'?: Linter.RuleEntry<NFileExtensionInImport>;
  /**
   * 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
   */
  'n/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
   */
  'n/handle-callback-err'?: Linter.RuleEntry<NHandleCallbackErr>;
  /**
   * require correct usage of hashbang
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/hashbang.md
   */
  'n/hashbang'?: Linter.RuleEntry<NHashbang>;
  /**
   * 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
   */
  'n/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
   */
  'n/no-deprecated-api'?: Linter.RuleEntry<NNoDeprecatedApi>;
  /**
   * disallow the assignment to `exports`
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-exports-assign.md
   */
  'n/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
   */
  'n/no-extraneous-import'?: Linter.RuleEntry<NNoExtraneousImport>;
  /**
   * disallow `require()` expressions which import extraneous modules
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-extraneous-require.md
   */
  'n/no-extraneous-require'?: Linter.RuleEntry<NNoExtraneousRequire>;
  /**
   * 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
   */
  'n/no-hide-core-modules'?: Linter.RuleEntry<NNoHideCoreModules>;
  /**
   * disallow `import` declarations which import missing modules
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-missing-import.md
   */
  'n/no-missing-import'?: Linter.RuleEntry<NNoMissingImport>;
  /**
   * disallow `require()` expressions which import missing modules
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-missing-require.md
   */
  'n/no-missing-require'?: Linter.RuleEntry<NNoMissingRequire>;
  /**
   * 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
   */
  'n/no-mixed-requires'?: Linter.RuleEntry<NNoMixedRequires>;
  /**
   * disallow `new` operators with calls to `require`
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-new-require.md
   */
  'n/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
   */
  'n/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
   */
  'n/no-process-env'?: Linter.RuleEntry<NNoProcessEnv>;
  /**
   * disallow the use of `process.exit()`
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-process-exit.md
   */
  'n/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
   */
  'n/no-restricted-import'?: Linter.RuleEntry<NNoRestrictedImport>;
  /**
   * disallow specified modules when loaded by `require`
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-restricted-require.md
   */
  'n/no-restricted-require'?: Linter.RuleEntry<NNoRestrictedRequire>;
  /**
   * disallow synchronous methods
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-sync.md
   */
  'n/no-sync'?: Linter.RuleEntry<NNoSync>;
  /**
   * 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
   */
  'n/no-top-level-await'?: Linter.RuleEntry<NNoTopLevelAwait>;
  /**
   * disallow `bin` files that npm ignores
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-unpublished-bin.md
   */
  'n/no-unpublished-bin'?: Linter.RuleEntry<NNoUnpublishedBin>;
  /**
   * disallow `import` declarations which import private modules
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-unpublished-import.md
   */
  'n/no-unpublished-import'?: Linter.RuleEntry<NNoUnpublishedImport>;
  /**
   * disallow `require()` expressions which import private modules
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-unpublished-require.md
   */
  'n/no-unpublished-require'?: Linter.RuleEntry<NNoUnpublishedRequire>;
  /**
   * 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
   */
  'n/no-unsupported-features/es-builtins'?: Linter.RuleEntry<NNoUnsupportedFeaturesEsBuiltins>;
  /**
   * 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
   */
  'n/no-unsupported-features/es-syntax'?: Linter.RuleEntry<NNoUnsupportedFeaturesEsSyntax>;
  /**
   * 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
   */
  'n/no-unsupported-features/node-builtins'?: Linter.RuleEntry<NNoUnsupportedFeaturesNodeBuiltins>;
  /**
   * enforce either `Buffer` or `require("buffer").Buffer`
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/buffer.md
   */
  'n/prefer-global/buffer'?: Linter.RuleEntry<NPreferGlobalBuffer>;
  /**
   * enforce either `console` or `require("console")`
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/console.md
   */
  'n/prefer-global/console'?: Linter.RuleEntry<NPreferGlobalConsole>;
  /**
   * enforce either `crypto` or `require("crypto").webcrypto`
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/crypto.md
   */
  'n/prefer-global/crypto'?: Linter.RuleEntry<NPreferGlobalCrypto>;
  /**
   * enforce either `process` or `require("process")`
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/process.md
   */
  'n/prefer-global/process'?: Linter.RuleEntry<NPreferGlobalProcess>;
  /**
   * 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
   */
  'n/prefer-global/text-decoder'?: Linter.RuleEntry<NPreferGlobalTextDecoder>;
  /**
   * 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
   */
  'n/prefer-global/text-encoder'?: Linter.RuleEntry<NPreferGlobalTextEncoder>;
  /**
   * enforce either global timer functions or `require("timers")`
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/timers.md
   */
  'n/prefer-global/timers'?: Linter.RuleEntry<NPreferGlobalTimers>;
  /**
   * enforce either `URL` or `require("url").URL`
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/url.md
   */
  'n/prefer-global/url'?: Linter.RuleEntry<NPreferGlobalUrl>;
  /**
   * 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
   */
  'n/prefer-global/url-search-params'?: Linter.RuleEntry<NPreferGlobalUrlSearchParams>;
  /**
   * 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
   */
  'n/prefer-node-protocol'?: Linter.RuleEntry<NPreferNodeProtocol>;
  /**
   * enforce `require("dns").promises`
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-promises/dns.md
   */
  'n/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
   */
  'n/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
   */
  'n/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
   */
  'n/shebang'?: Linter.RuleEntry<NShebang>;
  'name'?: Linter.RuleEntry<[]>;
  /**
   * Do not use for...of loop with array, use for loop instead, because for loop is faster than for...of loop
   * @see https://www.npmjs.com/package/eslint-plugin-not-for-of-array
   */
  'no-for-of-array/no-for-of-array'?: Linter.RuleEntry<[]>;
  /**
   * An eslint rule that does pattern matching against an entire file
   */
  'no-secrets/no-pattern-match'?: Linter.RuleEntry<NoSecretsNoPatternMatch>;
  /**
   * An eslint rule that looks for possible leftover secrets in code
   */
  'no-secrets/no-secrets'?: Linter.RuleEntry<NoSecretsNoSecrets>;
  /**
   * ESLint rule to disallow unsanitized method calls
   * @see https://github.com/mozilla/eslint-plugin-no-unsanitized/tree/master/docs/rules/method.md
   */
  'no-unsanitized/method'?: Linter.RuleEntry<NoUnsanitizedMethod>;
  /**
   * ESLint rule to disallow unsanitized property assignment
   * @see https://github.com/mozilla/eslint-plugin-no-unsanitized/tree/master/docs/rules/property.md
   */
  'no-unsanitized/property'?: Linter.RuleEntry<NoUnsanitizedProperty>;
  /**
   * Enforce sorted arrays before include method.
   * @see https://perfectionist.dev/rules/sort-array-includes
   */
  'perfectionist/sort-array-includes'?: Linter.RuleEntry<PerfectionistSortArrayIncludes>;
  /**
   * Enforce sorted arrays.
   * @see https://perfectionist.dev/rules/sort-arrays
   */
  'perfectionist/sort-arrays'?: Linter.RuleEntry<PerfectionistSortArrays>;
  /**
   * 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 export attributes.
   * @see https://perfectionist.dev/rules/sort-export-attributes
   */
  'perfectionist/sort-export-attributes'?: Linter.RuleEntry<PerfectionistSortExportAttributes>;
  /**
   * 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 import attributes.
   * @see https://perfectionist.dev/rules/sort-import-attributes
   */
  'perfectionist/sort-import-attributes'?: Linter.RuleEntry<PerfectionistSortImportAttributes>;
  /**
   * 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>;
  /**
   * Enforces a blank line between Playwright test blocks (e.g., test, test.step, test.beforeEach, etc.).
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/consistent-spacing-between-blocks.md
   */
  'playwright/consistent-spacing-between-blocks'?: Linter.RuleEntry<[]>;
  /**
   * Enforce assertion to be made in a test body
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/expect-expect.md
   */
  'playwright/expect-expect'?: Linter.RuleEntry<PlaywrightExpectExpect>;
  /**
   * Enforces a maximum number assertion calls in a test body
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/max-expects.md
   */
  'playwright/max-expects'?: Linter.RuleEntry<PlaywrightMaxExpects>;
  /**
   * Enforces a maximum depth to nested describe calls
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/max-nested-describe.md
   */
  'playwright/max-nested-describe'?: Linter.RuleEntry<PlaywrightMaxNestedDescribe>;
  /**
   * Identify false positives when async Playwright APIs are not properly awaited.
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/missing-playwright-await.md
   */
  'playwright/missing-playwright-await'?: Linter.RuleEntry<PlaywrightMissingPlaywrightAwait>;
  /**
   * Disallow commented out tests
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-commented-out-tests.md
   */
  'playwright/no-commented-out-tests'?: Linter.RuleEntry<[]>;
  /**
   * Disallow calling `expect` conditionally
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-conditional-expect.md
   */
  'playwright/no-conditional-expect'?: Linter.RuleEntry<[]>;
  /**
   * Disallow conditional logic in tests
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-conditional-in-test.md
   */
  'playwright/no-conditional-in-test'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate setup and teardown hooks
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-duplicate-hooks.md
   */
  'playwright/no-duplicate-hooks'?: Linter.RuleEntry<[]>;
  /**
   * Disallow multiple `test.slow()` calls in the same test
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-duplicate-slow.md
   */
  'playwright/no-duplicate-slow'?: Linter.RuleEntry<[]>;
  /**
   * The use of ElementHandle is discouraged, use Locator instead
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-element-handle.md
   */
  'playwright/no-element-handle'?: Linter.RuleEntry<[]>;
  /**
   * The use of `page.$eval` and `page.$$eval` are discouraged, use `locator.evaluate` or `locator.evaluateAll` instead
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-eval.md
   */
  'playwright/no-eval'?: Linter.RuleEntry<[]>;
  /**
   * Prevent usage of `.only()` focus test annotation
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-focused-test.md
   */
  'playwright/no-focused-test'?: Linter.RuleEntry<[]>;
  /**
   * Prevent usage of `{ force: true }` option.
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-force-option.md
   */
  'playwright/no-force-option'?: Linter.RuleEntry<[]>;
  /**
   * Disallows the usage of getByTitle()
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-get-by-title.md
   */
  'playwright/no-get-by-title'?: Linter.RuleEntry<[]>;
  /**
   * Disallow setup and teardown hooks
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-hooks.md
   */
  'playwright/no-hooks'?: Linter.RuleEntry<PlaywrightNoHooks>;
  /**
   * Disallow nested `test.step()` methods
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-nested-step.md
   */
  'playwright/no-nested-step'?: Linter.RuleEntry<[]>;
  /**
   * Prevent usage of the networkidle option
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-networkidle.md
   */
  'playwright/no-networkidle'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of nth methods
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-nth-methods.md
   */
  'playwright/no-nth-methods'?: Linter.RuleEntry<[]>;
  /**
   * Prevent usage of page.pause()
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-page-pause.md
   */
  'playwright/no-page-pause'?: Linter.RuleEntry<[]>;
  /**
   * Disallows the usage of raw locators
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-raw-locators.md
   */
  'playwright/no-raw-locators'?: Linter.RuleEntry<PlaywrightNoRawLocators>;
  /**
   * Disallows the usage of specific locator methods
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-restricted-locators.md
   */
  'playwright/no-restricted-locators'?: Linter.RuleEntry<PlaywrightNoRestrictedLocators>;
  /**
   * Disallow specific matchers & modifiers
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-restricted-matchers.md
   */
  'playwright/no-restricted-matchers'?: Linter.RuleEntry<PlaywrightNoRestrictedMatchers>;
  /**
   * Disallows the usage of specific roles in getByRole()
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-restricted-roles.md
   */
  'playwright/no-restricted-roles'?: Linter.RuleEntry<PlaywrightNoRestrictedRoles>;
  /**
   * Prevent usage of the `.skip()` skip test annotation.
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-skipped-test.md
   */
  'playwright/no-skipped-test'?: Linter.RuleEntry<PlaywrightNoSkippedTest>;
  /**
   * Prevent usage of the `.slow()` slow test annotation.
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-slowed-test.md
   */
  'playwright/no-slowed-test'?: Linter.RuleEntry<PlaywrightNoSlowedTest>;
  /**
   * Disallow using `expect` outside of `test` blocks
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-standalone-expect.md
   */
  'playwright/no-standalone-expect'?: Linter.RuleEntry<[]>;
  /**
   * Prevent unsafe variable references in page.evaluate() and page.addInitScript()
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-unsafe-references.md
   */
  'playwright/no-unsafe-references'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of page locators that are not used
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-unused-locators.md
   */
  'playwright/no-unused-locators'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary awaits for Playwright methods
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-useless-await.md
   */
  'playwright/no-useless-await'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of 'not' matchers when a more specific matcher exists
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-useless-not.md
   */
  'playwright/no-useless-not'?: Linter.RuleEntry<[]>;
  /**
   * Prevent usage of page.waitForNavigation()
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-wait-for-navigation.md
   */
  'playwright/no-wait-for-navigation'?: Linter.RuleEntry<[]>;
  /**
   * Prevent usage of page.waitForSelector()
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-wait-for-selector.md
   */
  'playwright/no-wait-for-selector'?: Linter.RuleEntry<[]>;
  /**
   * Prevent usage of page.waitForTimeout()
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-wait-for-timeout.md
   */
  'playwright/no-wait-for-timeout'?: Linter.RuleEntry<[]>;
  /**
   * Suggest using the built-in comparison matchers
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-comparison-matcher.md
   */
  'playwright/prefer-comparison-matcher'?: Linter.RuleEntry<[]>;
  /**
   * Suggest using the built-in equality matchers
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-equality-matcher.md
   */
  'playwright/prefer-equality-matcher'?: Linter.RuleEntry<[]>;
  /**
   * Prefer having hooks in a consistent order
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-hooks-in-order.md
   */
  'playwright/prefer-hooks-in-order'?: Linter.RuleEntry<[]>;
  /**
   * Suggest having hooks before any test cases
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-hooks-on-top.md
   */
  'playwright/prefer-hooks-on-top'?: Linter.RuleEntry<[]>;
  /**
   * Suggest locators over page methods
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-locator.md
   */
  'playwright/prefer-locator'?: Linter.RuleEntry<[]>;
  /**
   * Enforce lowercase test names
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-lowercase-title.md
   */
  'playwright/prefer-lowercase-title'?: Linter.RuleEntry<PlaywrightPreferLowercaseTitle>;
  /**
   * Prefer native locator functions
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-native-locators.md
   */
  'playwright/prefer-native-locators'?: Linter.RuleEntry<PlaywrightPreferNativeLocators>;
  /**
   * Suggest using `toStrictEqual()`
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-strict-equal.md
   */
  'playwright/prefer-strict-equal'?: Linter.RuleEntry<[]>;
  /**
   * Suggest using `toBe()` for primitive literals
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-to-be.md
   */
  'playwright/prefer-to-be'?: Linter.RuleEntry<[]>;
  /**
   * Suggest using toContain()
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-to-contain.md
   */
  'playwright/prefer-to-contain'?: Linter.RuleEntry<[]>;
  /**
   * Suggest using `toHaveCount()`
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-to-have-count.md
   */
  'playwright/prefer-to-have-count'?: Linter.RuleEntry<[]>;
  /**
   * Suggest using `toHaveLength()`
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-to-have-length.md
   */
  'playwright/prefer-to-have-length'?: Linter.RuleEntry<[]>;
  /**
   * Prefer web first assertions
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-web-first-assertions.md
   */
  'playwright/prefer-web-first-assertions'?: Linter.RuleEntry<[]>;
  /**
   * Require setup and teardown code to be within a hook
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/require-hook.md
   */
  'playwright/require-hook'?: Linter.RuleEntry<PlaywrightRequireHook>;
  /**
   * Require all assertions to use `expect.soft`
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/require-soft-assertions.md
   */
  'playwright/require-soft-assertions'?: Linter.RuleEntry<[]>;
  /**
   * Require test blocks to have tags
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/require-tags.md
   */
  'playwright/require-tags'?: Linter.RuleEntry<[]>;
  /**
   * Require a timeout option for `toPass()`
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/require-to-pass-timeout.md
   */
  'playwright/require-to-pass-timeout'?: Linter.RuleEntry<[]>;
  /**
   * Require a message for `toThrow()`
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/require-to-throw-message.md
   */
  'playwright/require-to-throw-message'?: Linter.RuleEntry<[]>;
  /**
   * Require test cases and hooks to be inside a `test.describe` block
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/require-top-level-describe.md
   */
  'playwright/require-top-level-describe'?: Linter.RuleEntry<PlaywrightRequireTopLevelDescribe>;
  /**
   * Enforce valid `describe()` callback
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/valid-describe-callback.md
   */
  'playwright/valid-describe-callback'?: Linter.RuleEntry<[]>;
  /**
   * Enforce valid `expect()` usage
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/valid-expect.md
   */
  'playwright/valid-expect'?: Linter.RuleEntry<PlaywrightValidExpect>;
  /**
   * Require promises that have expectations in their chain to be valid
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/valid-expect-in-promise.md
   */
  'playwright/valid-expect-in-promise'?: Linter.RuleEntry<[]>;
  /**
   * Enforce valid tag format in Playwright test blocks and titles
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/valid-test-tags.md
   */
  'playwright/valid-test-tags'?: Linter.RuleEntry<PlaywrightValidTestTags>;
  /**
   * Enforce valid titles
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/valid-title.md
   */
  'playwright/valid-title'?: Linter.RuleEntry<PlaywrightValidTitle>;
  /**
   * Require returning inside each `then()` to create readable and reusable Promise chains.
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/always-return.md
   */
  'promise/always-return'?: Linter.RuleEntry<PromiseAlwaysReturn>;
  /**
   * Disallow creating `new` promises outside of utility libs (use [util.promisify][] instead).
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/avoid-new.md
   */
  'promise/avoid-new'?: Linter.RuleEntry<[]>;
  /**
   * Enforce the use of `catch()` on un-returned promises.
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/catch-or-return.md
   */
  'promise/catch-or-return'?: Linter.RuleEntry<PromiseCatchOrReturn>;
  /**
   * Disallow calling `cb()` inside of a `then()` (use [util.callbackify][] instead).
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-callback-in-promise.md
   */
  'promise/no-callback-in-promise'?: Linter.RuleEntry<PromiseNoCallbackInPromise>;
  /**
   * Disallow creating new promises with paths that resolve multiple times.
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-multiple-resolved.md
   */
  'promise/no-multiple-resolved'?: Linter.RuleEntry<[]>;
  /**
   * Require creating a `Promise` constructor before using it in an ES5 environment.
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-native.md
   */
  'promise/no-native'?: Linter.RuleEntry<[]>;
  /**
   * Disallow nested `then()` or `catch()` statements.
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-nesting.md
   */
  'promise/no-nesting'?: Linter.RuleEntry<[]>;
  /**
   * Disallow calling `new` on a Promise static method.
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-new-statics.md
   */
  'promise/no-new-statics'?: Linter.RuleEntry<[]>;
  /**
   * Disallow using promises inside of callbacks.
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-promise-in-callback.md
   */
  'promise/no-promise-in-callback'?: Linter.RuleEntry<PromiseNoPromiseInCallback>;
  /**
   * Disallow return statements in `finally()`.
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-return-in-finally.md
   */
  'promise/no-return-in-finally'?: Linter.RuleEntry<[]>;
  /**
   * Disallow wrapping values in `Promise.resolve` or `Promise.reject` when not needed.
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-return-wrap.md
   */
  'promise/no-return-wrap'?: Linter.RuleEntry<PromiseNoReturnWrap>;
  /**
   * Enforce consistent param names and ordering when creating new promises.
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/param-names.md
   */
  'promise/param-names'?: Linter.RuleEntry<PromiseParamNames>;
  /**
   * Prefer `async`/`await` to the callback pattern.
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/prefer-await-to-callbacks.md
   */
  'promise/prefer-await-to-callbacks'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `await` to `then()`/`catch()`/`finally()` for reading Promise values.
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/prefer-await-to-then.md
   */
  'promise/prefer-await-to-then'?: Linter.RuleEntry<PromisePreferAwaitToThen>;
  /**
   * Prefer `catch` to `then(a, b)`/`then(null, b)` for handling errors.
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/prefer-catch.md
   */
  'promise/prefer-catch'?: Linter.RuleEntry<[]>;
  /**
   * Disallow use of non-standard Promise static methods.
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/spec-only.md
   */
  'promise/spec-only'?: Linter.RuleEntry<PromiseSpecOnly>;
  /**
   * Enforces the proper number of arguments are passed to Promise functions.
   * @see https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/valid-params.md
   */
  'promise/valid-params'?: Linter.RuleEntry<PromiseValidParams>;
  /**
   * Validates against calling capitalized functions/methods instead of using JSX
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/capitalized-calls
   */
  'react-hooks/capitalized-calls'?: Linter.RuleEntry<ReactHooksCapitalizedCalls>;
  /**
   * Deprecated: this rule has been removed in 7.1.0.
   * @deprecated
   */
  'react-hooks/component-hook-factories'?: Linter.RuleEntry<[]>;
  /**
   * Validates the compiler configuration options
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/config
   */
  'react-hooks/config'?: Linter.RuleEntry<ReactHooksConfig>;
  /**
   * Validates usage of error boundaries instead of try/catch for errors in child components
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/error-boundaries
   */
  'react-hooks/error-boundaries'?: Linter.RuleEntry<ReactHooksErrorBoundaries>;
  /**
   * verifies the list of dependencies for Hooks like useEffect and similar
   * @see https://github.com/facebook/react/issues/14920
   */
  'react-hooks/exhaustive-deps'?: Linter.RuleEntry<ReactHooksExhaustiveDeps>;
  /**
   * Validates that effect dependencies are exhaustive and without extraneous values
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-effect-dependencies
   */
  'react-hooks/exhaustive-effect-dependencies'?: Linter.RuleEntry<ReactHooksExhaustiveEffectDependencies>;
  /**
   * Validates usage of fbt
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/fbt
   */
  'react-hooks/fbt'?: Linter.RuleEntry<ReactHooksFbt>;
  /**
   * Validates configuration of [gating mode](https://react.dev/reference/react-compiler/gating)
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/gating
   */
  'react-hooks/gating'?: Linter.RuleEntry<ReactHooksGating>;
  /**
   * Validates against assignment/mutation of globals during render, part of ensuring that [side effects must render outside of render](https://react.dev/reference/rules/components-and-hooks-must-be-pure#side-effects-must-run-outside-of-render)
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/globals
   */
  'react-hooks/globals'?: Linter.RuleEntry<ReactHooksGlobals>;
  /**
   * Validates the rules of hooks
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/hooks
   */
  'react-hooks/hooks'?: Linter.RuleEntry<ReactHooksHooks>;
  /**
   * Validates against mutating props, state, and other values that [are immutable](https://react.dev/reference/rules/components-and-hooks-must-be-pure#props-and-state-are-immutable)
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
   */
  'react-hooks/immutability'?: Linter.RuleEntry<ReactHooksImmutability>;
  /**
   * Validates against usage of libraries which are incompatible with memoization (manual or automatic)
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/incompatible-library
   */
  'react-hooks/incompatible-library'?: Linter.RuleEntry<ReactHooksIncompatibleLibrary>;
  /**
   * Internal invariants
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/invariant
   */
  'react-hooks/invariant'?: Linter.RuleEntry<ReactHooksInvariant>;
  /**
   * Validates that useMemo() and useCallback() specify comprehensive dependencies without extraneous values. See [`useMemo()` docs](https://react.dev/reference/react/useMemo) for more information.
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/memo-dependencies
   */
  'react-hooks/memo-dependencies'?: Linter.RuleEntry<ReactHooksMemoDependencies>;
  /**
   * Validates that effect dependencies are memoized
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/memoized-effect-dependencies
   */
  'react-hooks/memoized-effect-dependencies'?: Linter.RuleEntry<ReactHooksMemoizedEffectDependencies>;
  /**
   * Validates against deriving values from state in an effect
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/no-deriving-state-in-effects
   */
  'react-hooks/no-deriving-state-in-effects'?: Linter.RuleEntry<ReactHooksNoDerivingStateInEffects>;
  /**
   * Validates that existing manual memoized is preserved by the compiler. React Compiler will only compile components and hooks if its inference [matches or exceeds the existing manual memoization](https://react.dev/learn/react-compiler/introduction#what-should-i-do-about-usememo-usecallback-and-reactmemo)
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/preserve-manual-memoization
   */
  'react-hooks/preserve-manual-memoization'?: Linter.RuleEntry<ReactHooksPreserveManualMemoization>;
  /**
   * Validates that [components/hooks are pure](https://react.dev/reference/rules/components-and-hooks-must-be-pure) by checking that they do not call known-impure functions
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
   */
  'react-hooks/purity'?: Linter.RuleEntry<ReactHooksPurity>;
  /**
   * Validates correct usage of refs, not reading/writing during render. See the "pitfalls" section in [`useRef()` usage](https://react.dev/reference/react/useRef#usage)
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
   */
  'react-hooks/refs'?: Linter.RuleEntry<ReactHooksRefs>;
  /**
   * Validates against suppression of other rules
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/rule-suppression
   */
  'react-hooks/rule-suppression'?: Linter.RuleEntry<ReactHooksRuleSuppression>;
  /**
   * enforces the Rules of Hooks
   * @see https://react.dev/reference/rules/rules-of-hooks
   */
  'react-hooks/rules-of-hooks'?: Linter.RuleEntry<ReactHooksRulesOfHooks>;
  /**
   * Validates against calling setState synchronously in an effect. This can indicate non-local derived data, a derived event pattern, or improper external data synchronization.
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
   */
  'react-hooks/set-state-in-effect'?: Linter.RuleEntry<ReactHooksSetStateInEffect>;
  /**
   * Validates against setting state during render, which can trigger additional renders and potential infinite render loops
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-render
   */
  'react-hooks/set-state-in-render'?: Linter.RuleEntry<ReactHooksSetStateInRender>;
  /**
   * Validates that components are static, not recreated every render. Components that are recreated dynamically can reset state and trigger excessive re-rendering
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/static-components
   */
  'react-hooks/static-components'?: Linter.RuleEntry<ReactHooksStaticComponents>;
  /**
   * Validates against invalid syntax
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/syntax
   */
  'react-hooks/syntax'?: Linter.RuleEntry<ReactHooksSyntax>;
  /**
   * Unimplemented features
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/todo
   */
  'react-hooks/todo'?: Linter.RuleEntry<ReactHooksTodo>;
  /**
   * Validates against syntax that we do not plan to support in React Compiler
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/unsupported-syntax
   */
  'react-hooks/unsupported-syntax'?: Linter.RuleEntry<ReactHooksUnsupportedSyntax>;
  /**
   * Validates usage of the useMemo() hook against common mistakes. See [`useMemo()` docs](https://react.dev/reference/react/useMemo) for more information.
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/use-memo
   */
  'react-hooks/use-memo'?: Linter.RuleEntry<ReactHooksUseMemo>;
  /**
   * Validates that useMemos always return a value and that the result of the useMemo is used by the component/hook. See [`useMemo()` docs](https://react.dev/reference/react/useMemo) for more information.
   * @see https://react.dev/reference/eslint-plugin-react-hooks/lints/void-use-memo
   */
  'react-hooks/void-use-memo'?: Linter.RuleEntry<ReactHooksVoidUseMemo>;
  /**
   * Prevent JSX as JSX prop value
   */
  'react-perf/jsx-no-jsx-as-prop'?: Linter.RuleEntry<ReactPerfJsxNoJsxAsProp>;
  /**
   * Prevent [...] as JSX prop value
   */
  'react-perf/jsx-no-new-array-as-prop'?: Linter.RuleEntry<ReactPerfJsxNoNewArrayAsProp>;
  /**
   * Prevent `function` as JSX prop value
   */
  'react-perf/jsx-no-new-function-as-prop'?: Linter.RuleEntry<ReactPerfJsxNoNewFunctionAsProp>;
  /**
   * Prevent {...} as JSX prop value
   */
  'react-perf/jsx-no-new-object-as-prop'?: Linter.RuleEntry<ReactPerfJsxNoNewObjectAsProp>;
  'react-refresh/only-export-components'?: Linter.RuleEntry<ReactRefreshOnlyExportComponents>;
  /**
   * Disallows DOM elements from using 'dangerouslySetInnerHTML'.
   * @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml
   */
  'react-x/dom-no-dangerously-set-innerhtml'?: Linter.RuleEntry<[]>;
  /**
   * Disallows DOM elements from using 'dangerouslySetInnerHTML' and 'children' at the same time.
   * @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml-with-children
   */
  'react-x/dom-no-dangerously-set-innerhtml-with-children'?: Linter.RuleEntry<[]>;
  /**
   * Disallows 'findDOMNode'.
   * @see https://eslint-react.xyz/docs/rules/dom-no-find-dom-node
   */
  'react-x/dom-no-find-dom-node'?: Linter.RuleEntry<[]>;
  /**
   * Disallows 'flushSync'.
   * @see https://eslint-react.xyz/docs/rules/dom-no-flush-sync
   */
  'react-x/dom-no-flush-sync'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'ReactDOM.hydrate()' with 'hydrateRoot()'.
   * @see https://eslint-react.xyz/docs/rules/dom-no-hydrate
   */
  'react-x/dom-no-hydrate'?: Linter.RuleEntry<[]>;
  /**
   * Enforces an explicit 'type' attribute for 'button' elements.
   * @see https://eslint-react.xyz/docs/rules/dom-no-missing-button-type
   */
  'react-x/dom-no-missing-button-type'?: Linter.RuleEntry<[]>;
  /**
   * Enforces an explicit 'sandbox' attribute for 'iframe' elements.
   * @see https://eslint-react.xyz/docs/rules/dom-no-missing-iframe-sandbox
   */
  'react-x/dom-no-missing-iframe-sandbox'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'ReactDOM.render()' with 'createRoot(node).render()'.
   * @see https://eslint-react.xyz/docs/rules/dom-no-render
   */
  'react-x/dom-no-render'?: Linter.RuleEntry<[]>;
  /**
   * Disallows the return value of 'ReactDOM.render'.
   * @see https://eslint-react.xyz/docs/rules/dom-no-render-return-value
   */
  'react-x/dom-no-render-return-value'?: Linter.RuleEntry<[]>;
  /**
   * Disallows 'javascript:' URLs as attribute values.
   * @see https://eslint-react.xyz/docs/rules/dom-no-script-url
   */
  'react-x/dom-no-script-url'?: Linter.RuleEntry<[]>;
  /**
   * Disallows the use of string style prop in JSX. Use an object instead.
   * @see https://eslint-react.xyz/docs/rules/dom-no-string-style-prop
   */
  'react-x/dom-no-string-style-prop'?: Linter.RuleEntry<[]>;
  /**
   * Disallows unknown 'DOM' properties.
   * @see https://eslint-react.xyz/docs/rules/dom-no-unknown-property
   */
  'react-x/dom-no-unknown-property'?: Linter.RuleEntry<ReactXDomNoUnknownProperty>;
  /**
   * Enforces that the 'sandbox' attribute for 'iframe' elements is not set to unsafe combinations.
   * @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-iframe-sandbox
   */
  'react-x/dom-no-unsafe-iframe-sandbox'?: Linter.RuleEntry<[]>;
  /**
   * Disallows 'target="_blank"' without 'rel="noreferrer noopener"'.
   * @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-target-blank
   */
  'react-x/dom-no-unsafe-target-blank'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'useFormState' with 'useActionState'.
   * @see https://eslint-react.xyz/docs/rules/dom-no-use-form-state
   */
  'react-x/dom-no-use-form-state'?: Linter.RuleEntry<[]>;
  /**
   * Disallows 'children' in void DOM elements.
   * @see https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
   */
  'react-x/dom-no-void-elements-with-children'?: Linter.RuleEntry<[]>;
  /**
   * Validates usage of Error Boundaries instead of try/catch for errors in child components.
   * @see https://eslint-react.xyz/docs/rules/error-boundaries
   */
  'react-x/error-boundaries'?: Linter.RuleEntry<[]>;
  /**
   * Verifies the list of dependencies for Hooks like 'useEffect' and similar.
   * @see https://github.com/facebook/react/issues/14920
   */
  'react-x/exhaustive-deps'?: Linter.RuleEntry<ReactXExhaustiveDeps>;
  /**
   * Validates against assignment/mutation of globals during render, part of ensuring that side effects must run outside of render.
   * @see https://eslint-react.xyz/docs/rules/globals
   */
  'react-x/globals'?: Linter.RuleEntry<[]>;
  /**
   * Validates against passing functions that mutate captured local variables into frozen contexts such as JSX props, hook arguments, and hook return values.
   * @see https://eslint-react.xyz/docs/rules/immutability
   */
  'react-x/immutability'?: Linter.RuleEntry<[]>;
  /**
   * Disallows passing 'children' as a prop.
   * @see https://eslint-react.xyz/docs/rules/jsx-no-children-prop
   */
  'react-x/jsx-no-children-prop'?: Linter.RuleEntry<[]>;
  /**
   * Disallows passing 'children' as a prop when children are also passed as nested content.
   * @see https://eslint-react.xyz/docs/rules/jsx-no-children-prop-with-children
   */
  'react-x/jsx-no-children-prop-with-children'?: Linter.RuleEntry<[]>;
  /**
   * Prevents comment strings from being accidentally inserted into a JSX element's text nodes.
   * @see https://eslint-react.xyz/docs/rules/jsx-no-comment-textnodes
   */
  'react-x/jsx-no-comment-textnodes'?: Linter.RuleEntry<[]>;
  /**
   * Prevent patterns that cause deoptimization when using the automatic JSX runtime.
   * @see https://eslint-react.xyz/docs/rules/jsx-no-key-after-spread
   */
  'react-x/jsx-no-key-after-spread'?: Linter.RuleEntry<[]>;
  /**
   * Catches `$` before `{expr}` in JSX — typically from template literal `${expr}` being copy-pasted into JSX without removing the `$`. The `$` "leaks" into the rendered output.
   * @see https://eslint-react.xyz/docs/rules/jsx-no-leaked-dollar
   */
  'react-x/jsx-no-leaked-dollar'?: Linter.RuleEntry<[]>;
  /**
   * Catches `;` at the start of JSX text nodes — typically from accidentally placing a statement-ending `;` inside JSX. The `;` "leaks" into the rendered output.
   * @see https://eslint-react.xyz/docs/rules/jsx-no-leaked-semicolon
   */
  'react-x/jsx-no-leaked-semicolon'?: Linter.RuleEntry<[]>;
  /**
   * Disallow JSX namespace syntax, as React does not support them.
   * @see https://eslint-react.xyz/docs/rules/jsx-no-namespace
   */
  'react-x/jsx-no-namespace'?: Linter.RuleEntry<[]>;
  /**
   * Disallows useless fragment elements.
   * @see https://eslint-react.xyz/docs/rules/jsx-no-useless-fragment
   */
  'react-x/jsx-no-useless-fragment'?: Linter.RuleEntry<ReactXJsxNoUselessFragment>;
  /**
   * Enforces identifier names assigned from `createContext` calls to be a valid component name with the suffix `Context`.
   * @see https://eslint-react.xyz/docs/rules/naming-convention-context-name
   */
  'react-x/naming-convention-context-name'?: Linter.RuleEntry<[]>;
  /**
   * Enforces identifier names assigned from 'useId' calls to be either 'id' or end with 'Id'.
   * @see https://eslint-react.xyz/docs/rules/naming-convention-id-name
   */
  'react-x/naming-convention-id-name'?: Linter.RuleEntry<[]>;
  /**
   * Enforces identifier names assigned from 'useRef' calls to be either 'ref' or end with 'Ref'.
   * @see https://eslint-react.xyz/docs/rules/naming-convention-ref-name
   */
  'react-x/naming-convention-ref-name'?: Linter.RuleEntry<[]>;
  /**
   * Disallows accessing 'this.state' inside 'setState' calls.
   * @see https://eslint-react.xyz/docs/rules/no-access-state-in-setstate
   */
  'react-x/no-access-state-in-setstate'?: Linter.RuleEntry<[]>;
  /**
   * Disallows using an item's index in the array as its key.
   * @see https://eslint-react.xyz/docs/rules/no-array-index-key
   */
  'react-x/no-array-index-key'?: Linter.RuleEntry<[]>;
  /**
   * Disallows the use of 'Children.count' from the 'react' package.
   * @see https://eslint-react.xyz/docs/rules/no-children-count
   */
  'react-x/no-children-count'?: Linter.RuleEntry<[]>;
  /**
   * Disallows the use of 'Children.forEach' from the 'react' package.
   * @see https://eslint-react.xyz/docs/rules/no-children-for-each
   */
  'react-x/no-children-for-each'?: Linter.RuleEntry<[]>;
  /**
   * Disallows the use of 'Children.map' from the 'react' package.
   * @see https://eslint-react.xyz/docs/rules/no-children-map
   */
  'react-x/no-children-map'?: Linter.RuleEntry<[]>;
  /**
   * Disallows the use of 'Children.only' from the 'react' package.
   * @see https://eslint-react.xyz/docs/rules/no-children-only
   */
  'react-x/no-children-only'?: Linter.RuleEntry<[]>;
  /**
   * Disallows the use of 'Children.toArray' from the 'react' package.
   * @see https://eslint-react.xyz/docs/rules/no-children-to-array
   */
  'react-x/no-children-to-array'?: Linter.RuleEntry<[]>;
  /**
   * Disallows class components except for error boundaries.
   * @see https://eslint-react.xyz/docs/rules/no-class-component
   */
  'react-x/no-class-component'?: Linter.RuleEntry<[]>;
  /**
   * Disallows 'cloneElement'.
   * @see https://eslint-react.xyz/docs/rules/no-clone-element
   */
  'react-x/no-clone-element'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'componentWillMount' with 'UNSAFE_componentWillMount'.
   * @see https://eslint-react.xyz/docs/rules/no-component-will-mount
   */
  'react-x/no-component-will-mount'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'componentWillReceiveProps' with 'UNSAFE_componentWillReceiveProps'.
   * @see https://eslint-react.xyz/docs/rules/no-component-will-receive-props
   */
  'react-x/no-component-will-receive-props'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'componentWillUpdate' with 'UNSAFE_componentWillUpdate'.
   * @see https://eslint-react.xyz/docs/rules/no-component-will-update
   */
  'react-x/no-component-will-update'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of '<Context.Provider>' with '<Context>'.
   * @see https://eslint-react.xyz/docs/rules/no-context-provider
   */
  'react-x/no-context-provider'?: Linter.RuleEntry<[]>;
  /**
   * Disallows 'createRef' in function components and Hooks.
   * @see https://eslint-react.xyz/docs/rules/no-create-ref
   */
  'react-x/no-create-ref'?: Linter.RuleEntry<[]>;
  /**
   * Disallows direct mutation of 'this.state'.
   * @see https://eslint-react.xyz/docs/rules/no-direct-mutation-state
   */
  'react-x/no-direct-mutation-state'?: Linter.RuleEntry<[]>;
  /**
   * Prevents duplicate 'key' props on sibling elements when rendering lists.
   * @see https://eslint-react.xyz/docs/rules/no-duplicate-key
   */
  'react-x/no-duplicate-key'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'forwardRef' with passing 'ref' as a prop.
   * @see https://eslint-react.xyz/docs/rules/no-forward-ref
   */
  'react-x/no-forward-ref'?: Linter.RuleEntry<[]>;
  /**
   * Prevents implicitly passing the 'children' prop to components.
   * @see https://eslint-react.xyz/docs/rules/no-implicit-children
   */
  'react-x/no-implicit-children'?: Linter.RuleEntry<[]>;
  /**
   * Prevents implicitly passing the 'key' prop to components.
   * @see https://eslint-react.xyz/docs/rules/no-implicit-key
   */
  'react-x/no-implicit-key'?: Linter.RuleEntry<[]>;
  /**
   * Prevents implicitly passing the 'ref' prop to components.
   * @see https://eslint-react.xyz/docs/rules/no-implicit-ref
   */
  'react-x/no-implicit-ref'?: Linter.RuleEntry<[]>;
  /**
   * Prevents problematic leaked values from being rendered.
   * @see https://eslint-react.xyz/docs/rules/no-leaked-conditional-rendering
   */
  'react-x/no-leaked-conditional-rendering'?: Linter.RuleEntry<[]>;
  /**
   * Enforces that all components have a 'displayName' that can be used in DevTools.
   * @see https://eslint-react.xyz/docs/rules/no-missing-component-display-name
   */
  'react-x/no-missing-component-display-name'?: Linter.RuleEntry<[]>;
  /**
   * Enforces that all contexts have a 'displayName' that can be used in DevTools.
   * @see https://eslint-react.xyz/docs/rules/no-missing-context-display-name
   */
  'react-x/no-missing-context-display-name'?: Linter.RuleEntry<[]>;
  /**
   * Disallows missing 'key' on items in list rendering.
   * @see https://eslint-react.xyz/docs/rules/no-missing-key
   */
  'react-x/no-missing-key'?: Linter.RuleEntry<[]>;
  /**
   * Prevents incorrect usage of 'captureOwnerStack'.
   * @see https://eslint-react.xyz/docs/rules/no-misused-capture-owner-stack
   */
  'react-x/no-misused-capture-owner-stack'?: Linter.RuleEntry<[]>;
  /**
   * Disallows nesting component definitions inside other components.
   * @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
   */
  'react-x/no-nested-component-definitions'?: Linter.RuleEntry<[]>;
  /**
   * Disallows nesting lazy component declarations inside other components or hooks.
   * @see https://eslint-react.xyz/docs/rules/no-nested-lazy-component-declarations
   */
  'react-x/no-nested-lazy-component-declarations'?: Linter.RuleEntry<[]>;
  /**
   * Disallows calling 'this.setState' in 'componentDidMount' outside functions such as callbacks.
   * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-mount
   */
  'react-x/no-set-state-in-component-did-mount'?: Linter.RuleEntry<[]>;
  /**
   * Disallows calling 'this.setState' in 'componentDidUpdate' outside functions such as callbacks.
   * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-update
   */
  'react-x/no-set-state-in-component-did-update'?: Linter.RuleEntry<[]>;
  /**
   * Disallows calling 'this.setState' in 'componentWillUpdate' outside functions such as callbacks.
   * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-will-update
   */
  'react-x/no-set-state-in-component-will-update'?: Linter.RuleEntry<[]>;
  /**
   * Enforces that a function with the 'use' prefix uses at least one Hook inside it.
   * @see https://eslint-react.xyz/docs/rules/no-unnecessary-use-prefix
   */
  'react-x/no-unnecessary-use-prefix'?: Linter.RuleEntry<[]>;
  /**
   * Warns about the use of 'UNSAFE_componentWillMount' in class components.
   * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-mount
   */
  'react-x/no-unsafe-component-will-mount'?: Linter.RuleEntry<[]>;
  /**
   * Warns about the use of 'UNSAFE_componentWillReceiveProps' in class components.
   * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-receive-props
   */
  'react-x/no-unsafe-component-will-receive-props'?: Linter.RuleEntry<[]>;
  /**
   * Warns about the use of 'UNSAFE_componentWillUpdate' in class components.
   * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-update
   */
  'react-x/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-x/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-x/no-unstable-default-props'?: Linter.RuleEntry<ReactXNoUnstableDefaultProps>;
  /**
   * Warns about unused class component methods and properties.
   * @see https://eslint-react.xyz/docs/rules/no-unused-class-component-members
   */
  'react-x/no-unused-class-component-members'?: Linter.RuleEntry<[]>;
  /**
   * Warns about component props that are defined but never used.
   * @see https://eslint-react.xyz/docs/rules/no-unused-props
   */
  'react-x/no-unused-props'?: Linter.RuleEntry<[]>;
  /**
   * Warns about state variables that are defined but never used.
   * @see https://eslint-react.xyz/docs/rules/no-unused-state
   */
  'react-x/no-unused-state'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'useContext' with 'use'.
   * @see https://eslint-react.xyz/docs/rules/no-use-context
   */
  'react-x/no-use-context'?: Linter.RuleEntry<[]>;
  /**
   * Validates that components and hooks are pure by checking that they do not call known-impure functions during render.
   * @see https://eslint-react.xyz/docs/rules/purity
   */
  'react-x/purity'?: Linter.RuleEntry<[]>;
  /**
   * Validates correct usage of refs by checking that 'ref.current' is not read or written during render.
   * @see https://eslint-react.xyz/docs/rules/refs
   */
  'react-x/refs'?: Linter.RuleEntry<[]>;
  /**
   * Validates and transforms React Client/Server Function definitions.
   * @see https://eslint-react.xyz/docs/rules/rsc-function-definition
   */
  'react-x/rsc-function-definition'?: Linter.RuleEntry<[]>;
  /**
   * Enforces the Rules of Hooks.
   * @see https://react.dev/reference/rules/rules-of-hooks
   */
  'react-x/rules-of-hooks'?: Linter.RuleEntry<ReactXRulesOfHooks>;
  /**
   * Validates against setting state synchronously in an effect, which can lead to re-renders that degrade performance.
   * @see https://eslint-react.xyz/docs/rules/set-state-in-effect
   */
  'react-x/set-state-in-effect'?: Linter.RuleEntry<[]>;
  /**
   * Validates against unconditionally setting state during render, which can trigger additional renders and potential infinite render loops.
   * @see https://eslint-react.xyz/docs/rules/set-state-in-render
   */
  'react-x/set-state-in-render'?: Linter.RuleEntry<[]>;
  /**
   * Validates that components are static, not recreated every render.
   * @see https://eslint-react.xyz/docs/rules/static-components
   */
  'react-x/static-components'?: Linter.RuleEntry<[]>;
  /**
   * Validates against syntax that React Compiler does not support.
   * @see https://eslint-react.xyz/docs/rules/unsupported-syntax
   */
  'react-x/unsupported-syntax'?: Linter.RuleEntry<[]>;
  /**
   * Validates that 'useMemo' is called with a callback that returns a value.
   * @see https://eslint-react.xyz/docs/rules/use-memo
   */
  'react-x/use-memo'?: Linter.RuleEntry<[]>;
  /**
   * Enforces correct usage of 'useState', including destructuring, symmetric naming of the value and setter, and wrapping expensive initializers in a lazy initializer function.
   * @see https://eslint-react.xyz/docs/rules/use-state
   */
  'react-x/use-state'?: Linter.RuleEntry<ReactXUseState>;
  /**
   * Enforces that every 'addEventListener' in a component or custom hook has a corresponding 'removeEventListener'.
   * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-event-listener
   */
  'react-x/web-api-no-leaked-event-listener'?: Linter.RuleEntry<[]>;
  /**
   * Enforces that every 'fetch' in a component or custom hook has a corresponding 'AbortController' abort in the cleanup function.
   * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-fetch
   */
  'react-x/web-api-no-leaked-fetch'?: Linter.RuleEntry<[]>;
  /**
   * Enforces that every 'IntersectionObserver' created in a component or custom hook has a corresponding 'IntersectionObserver.disconnect()'.
   * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-intersection-observer
   */
  'react-x/web-api-no-leaked-intersection-observer'?: Linter.RuleEntry<[]>;
  /**
   * Enforces that every 'setInterval' in a component or custom hook has a corresponding 'clearInterval'.
   * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-interval
   */
  'react-x/web-api-no-leaked-interval'?: Linter.RuleEntry<[]>;
  /**
   * Enforces that every 'ResizeObserver' created in a component or custom hook has a corresponding 'ResizeObserver.disconnect()'.
   * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-resize-observer
   */
  'react-x/web-api-no-leaked-resize-observer'?: Linter.RuleEntry<[]>;
  /**
   * Enforces that every 'setTimeout' in a component or custom hook has a corresponding 'clearTimeout'.
   * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-timeout
   */
  'react-x/web-api-no-leaked-timeout'?: Linter.RuleEntry<[]>;
  /**
   * Validates usage of Error Boundaries instead of try/catch for errors in child components.
   * @see https://eslint-react.xyz/docs/rules/error-boundaries
   */
  'react-x/x-error-boundaries'?: Linter.RuleEntry<[]>;
  /**
   * Verifies the list of dependencies for Hooks like 'useEffect' and similar.
   * @see https://github.com/facebook/react/issues/14920
   */
  'react-x/x-exhaustive-deps'?: Linter.RuleEntry<ReactXXExhaustiveDeps>;
  /**
   * Validates against assignment/mutation of globals during render, part of ensuring that side effects must run outside of render.
   * @see https://eslint-react.xyz/docs/rules/globals
   */
  'react-x/x-globals'?: Linter.RuleEntry<[]>;
  /**
   * Validates against passing functions that mutate captured local variables into frozen contexts such as JSX props, hook arguments, and hook return values.
   * @see https://eslint-react.xyz/docs/rules/immutability
   */
  'react-x/x-immutability'?: Linter.RuleEntry<[]>;
  /**
   * Disallows accessing 'this.state' inside 'setState' calls.
   * @see https://eslint-react.xyz/docs/rules/no-access-state-in-setstate
   */
  'react-x/x-no-access-state-in-setstate'?: Linter.RuleEntry<[]>;
  /**
   * Disallows using an item's index in the array as its key.
   * @see https://eslint-react.xyz/docs/rules/no-array-index-key
   */
  'react-x/x-no-array-index-key'?: Linter.RuleEntry<[]>;
  /**
   * Disallows the use of 'Children.count' from the 'react' package.
   * @see https://eslint-react.xyz/docs/rules/no-children-count
   */
  'react-x/x-no-children-count'?: Linter.RuleEntry<[]>;
  /**
   * Disallows the use of 'Children.forEach' from the 'react' package.
   * @see https://eslint-react.xyz/docs/rules/no-children-for-each
   */
  'react-x/x-no-children-for-each'?: Linter.RuleEntry<[]>;
  /**
   * Disallows the use of 'Children.map' from the 'react' package.
   * @see https://eslint-react.xyz/docs/rules/no-children-map
   */
  'react-x/x-no-children-map'?: Linter.RuleEntry<[]>;
  /**
   * Disallows the use of 'Children.only' from the 'react' package.
   * @see https://eslint-react.xyz/docs/rules/no-children-only
   */
  'react-x/x-no-children-only'?: Linter.RuleEntry<[]>;
  /**
   * Disallows the use of 'Children.toArray' from the 'react' package.
   * @see https://eslint-react.xyz/docs/rules/no-children-to-array
   */
  'react-x/x-no-children-to-array'?: Linter.RuleEntry<[]>;
  /**
   * Disallows class components except for error boundaries.
   * @see https://eslint-react.xyz/docs/rules/no-class-component
   */
  'react-x/x-no-class-component'?: Linter.RuleEntry<[]>;
  /**
   * Disallows 'cloneElement'.
   * @see https://eslint-react.xyz/docs/rules/no-clone-element
   */
  'react-x/x-no-clone-element'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'componentWillMount' with 'UNSAFE_componentWillMount'.
   * @see https://eslint-react.xyz/docs/rules/no-component-will-mount
   */
  'react-x/x-no-component-will-mount'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'componentWillReceiveProps' with 'UNSAFE_componentWillReceiveProps'.
   * @see https://eslint-react.xyz/docs/rules/no-component-will-receive-props
   */
  'react-x/x-no-component-will-receive-props'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'componentWillUpdate' with 'UNSAFE_componentWillUpdate'.
   * @see https://eslint-react.xyz/docs/rules/no-component-will-update
   */
  'react-x/x-no-component-will-update'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of '<Context.Provider>' with '<Context>'.
   * @see https://eslint-react.xyz/docs/rules/no-context-provider
   */
  'react-x/x-no-context-provider'?: Linter.RuleEntry<[]>;
  /**
   * Disallows 'createRef' in function components and Hooks.
   * @see https://eslint-react.xyz/docs/rules/no-create-ref
   */
  'react-x/x-no-create-ref'?: Linter.RuleEntry<[]>;
  /**
   * Disallows direct mutation of 'this.state'.
   * @see https://eslint-react.xyz/docs/rules/no-direct-mutation-state
   */
  'react-x/x-no-direct-mutation-state'?: Linter.RuleEntry<[]>;
  /**
   * Prevents duplicate 'key' props on sibling elements when rendering lists.
   * @see https://eslint-react.xyz/docs/rules/no-duplicate-key
   */
  'react-x/x-no-duplicate-key'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'forwardRef' with passing 'ref' as a prop.
   * @see https://eslint-react.xyz/docs/rules/no-forward-ref
   */
  'react-x/x-no-forward-ref'?: Linter.RuleEntry<[]>;
  /**
   * Prevents implicitly passing the 'children' prop to components.
   * @see https://eslint-react.xyz/docs/rules/no-implicit-children
   */
  'react-x/x-no-implicit-children'?: Linter.RuleEntry<[]>;
  /**
   * Prevents implicitly passing the 'key' prop to components.
   * @see https://eslint-react.xyz/docs/rules/no-implicit-key
   */
  'react-x/x-no-implicit-key'?: Linter.RuleEntry<[]>;
  /**
   * Prevents implicitly passing the 'ref' prop to components.
   * @see https://eslint-react.xyz/docs/rules/no-implicit-ref
   */
  'react-x/x-no-implicit-ref'?: Linter.RuleEntry<[]>;
  /**
   * Prevents problematic leaked values from being rendered.
   * @see https://eslint-react.xyz/docs/rules/no-leaked-conditional-rendering
   */
  'react-x/x-no-leaked-conditional-rendering'?: Linter.RuleEntry<[]>;
  /**
   * Enforces that all components have a 'displayName' that can be used in DevTools.
   * @see https://eslint-react.xyz/docs/rules/no-missing-component-display-name
   */
  'react-x/x-no-missing-component-display-name'?: Linter.RuleEntry<[]>;
  /**
   * Enforces that all contexts have a 'displayName' that can be used in DevTools.
   * @see https://eslint-react.xyz/docs/rules/no-missing-context-display-name
   */
  'react-x/x-no-missing-context-display-name'?: Linter.RuleEntry<[]>;
  /**
   * Disallows missing 'key' on items in list rendering.
   * @see https://eslint-react.xyz/docs/rules/no-missing-key
   */
  'react-x/x-no-missing-key'?: Linter.RuleEntry<[]>;
  /**
   * Prevents incorrect usage of 'captureOwnerStack'.
   * @see https://eslint-react.xyz/docs/rules/no-misused-capture-owner-stack
   */
  'react-x/x-no-misused-capture-owner-stack'?: Linter.RuleEntry<[]>;
  /**
   * Disallows nesting component definitions inside other components.
   * @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
   */
  'react-x/x-no-nested-component-definitions'?: Linter.RuleEntry<[]>;
  /**
   * Disallows nesting lazy component declarations inside other components or hooks.
   * @see https://eslint-react.xyz/docs/rules/no-nested-lazy-component-declarations
   */
  'react-x/x-no-nested-lazy-component-declarations'?: Linter.RuleEntry<[]>;
  /**
   * Disallows calling 'this.setState' in 'componentDidMount' outside functions such as callbacks.
   * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-mount
   */
  'react-x/x-no-set-state-in-component-did-mount'?: Linter.RuleEntry<[]>;
  /**
   * Disallows calling 'this.setState' in 'componentDidUpdate' outside functions such as callbacks.
   * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-update
   */
  'react-x/x-no-set-state-in-component-did-update'?: Linter.RuleEntry<[]>;
  /**
   * Disallows calling 'this.setState' in 'componentWillUpdate' outside functions such as callbacks.
   * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-will-update
   */
  'react-x/x-no-set-state-in-component-will-update'?: Linter.RuleEntry<[]>;
  /**
   * Enforces that a function with the 'use' prefix uses at least one Hook inside it.
   * @see https://eslint-react.xyz/docs/rules/no-unnecessary-use-prefix
   */
  'react-x/x-no-unnecessary-use-prefix'?: Linter.RuleEntry<[]>;
  /**
   * Warns about the use of 'UNSAFE_componentWillMount' in class components.
   * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-mount
   */
  'react-x/x-no-unsafe-component-will-mount'?: Linter.RuleEntry<[]>;
  /**
   * Warns about the use of 'UNSAFE_componentWillReceiveProps' in class components.
   * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-receive-props
   */
  'react-x/x-no-unsafe-component-will-receive-props'?: Linter.RuleEntry<[]>;
  /**
   * Warns about the use of 'UNSAFE_componentWillUpdate' in class components.
   * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-update
   */
  'react-x/x-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-x/x-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-x/x-no-unstable-default-props'?: Linter.RuleEntry<ReactXXNoUnstableDefaultProps>;
  /**
   * Warns about unused class component methods and properties.
   * @see https://eslint-react.xyz/docs/rules/no-unused-class-component-members
   */
  'react-x/x-no-unused-class-component-members'?: Linter.RuleEntry<[]>;
  /**
   * Warns about component props that are defined but never used.
   * @see https://eslint-react.xyz/docs/rules/no-unused-props
   */
  'react-x/x-no-unused-props'?: Linter.RuleEntry<[]>;
  /**
   * Warns about state variables that are defined but never used.
   * @see https://eslint-react.xyz/docs/rules/no-unused-state
   */
  'react-x/x-no-unused-state'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'useContext' with 'use'.
   * @see https://eslint-react.xyz/docs/rules/no-use-context
   */
  'react-x/x-no-use-context'?: Linter.RuleEntry<[]>;
  /**
   * Validates that components and hooks are pure by checking that they do not call known-impure functions during render.
   * @see https://eslint-react.xyz/docs/rules/purity
   */
  'react-x/x-purity'?: Linter.RuleEntry<[]>;
  /**
   * Validates correct usage of refs by checking that 'ref.current' is not read or written during render.
   * @see https://eslint-react.xyz/docs/rules/refs
   */
  'react-x/x-refs'?: Linter.RuleEntry<[]>;
  /**
   * Enforces the Rules of Hooks.
   * @see https://react.dev/reference/rules/rules-of-hooks
   */
  'react-x/x-rules-of-hooks'?: Linter.RuleEntry<ReactXXRulesOfHooks>;
  /**
   * Validates against setting state synchronously in an effect, which can lead to re-renders that degrade performance.
   * @see https://eslint-react.xyz/docs/rules/set-state-in-effect
   */
  'react-x/x-set-state-in-effect'?: Linter.RuleEntry<[]>;
  /**
   * Validates against unconditionally setting state during render, which can trigger additional renders and potential infinite render loops.
   * @see https://eslint-react.xyz/docs/rules/set-state-in-render
   */
  'react-x/x-set-state-in-render'?: Linter.RuleEntry<[]>;
  /**
   * Validates that components are static, not recreated every render.
   * @see https://eslint-react.xyz/docs/rules/static-components
   */
  'react-x/x-static-components'?: Linter.RuleEntry<[]>;
  /**
   * Validates against syntax that React Compiler does not support.
   * @see https://eslint-react.xyz/docs/rules/unsupported-syntax
   */
  'react-x/x-unsupported-syntax'?: Linter.RuleEntry<[]>;
  /**
   * Validates that 'useMemo' is called with a callback that returns a value.
   * @see https://eslint-react.xyz/docs/rules/use-memo
   */
  'react-x/x-use-memo'?: Linter.RuleEntry<[]>;
  /**
   * Enforces correct usage of 'useState', including destructuring, symmetric naming of the value and setter, and wrapping expensive initializers in a lazy initializer function.
   * @see https://eslint-react.xyz/docs/rules/use-state
   */
  'react-x/x-use-state'?: Linter.RuleEntry<ReactXXUseState>;
  /**
   * Disallow adjusting state in an effect when a prop changes.
   * @see https://react.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes
   */
  'react-you-might-not-need-an-effect/no-adjust-state-on-prop-change'?: Linter.RuleEntry<[]>;
  /**
   * Disallow chaining state changes in an effect.
   * @see https://react.dev/learn/you-might-not-need-an-effect#chains-of-computations
   */
  'react-you-might-not-need-an-effect/no-chain-state-updates'?: Linter.RuleEntry<[]>;
  /**
   * Disallow storing derived state in an effect.
   * @see https://react.dev/learn/you-might-not-need-an-effect#updating-state-based-on-props-or-state
   */
  'react-you-might-not-need-an-effect/no-derived-state'?: Linter.RuleEntry<[]>;
  /**
   * Disallow using state and an effect as an event handler.
   * @see https://react.dev/learn/you-might-not-need-an-effect#sharing-logic-between-event-handlers
   */
  'react-you-might-not-need-an-effect/no-event-handler'?: Linter.RuleEntry<[]>;
  /**
   * Disallow subscribing to an external store in an effect.
   * @see https://react.dev/learn/you-might-not-need-an-effect#subscribing-to-an-external-store
   */
  'react-you-might-not-need-an-effect/no-external-store-subscription'?: Linter.RuleEntry<[]>;
  /**
   * Disallow initializing state in an effect.
   * @see https://tkdodo.eu/blog/avoiding-hydration-mismatches-with-use-sync-external-store
   */
  'react-you-might-not-need-an-effect/no-initialize-state'?: Linter.RuleEntry<[]>;
  /**
   * Disallow passing data to parents in an effect.
   * @see https://react.dev/learn/you-might-not-need-an-effect#passing-data-to-the-parent
   */
  'react-you-might-not-need-an-effect/no-pass-data-to-parent'?: Linter.RuleEntry<[]>;
  /**
   * Disallow passing live state to parents in an effect.
   * @see https://react.dev/learn/you-might-not-need-an-effect#notifying-parent-components-about-state-changes
   */
  'react-you-might-not-need-an-effect/no-pass-live-state-to-parent'?: Linter.RuleEntry<[]>;
  /**
   * Disallow resetting all state in an effect when a prop changes.
   * @see https://react.dev/learn/you-might-not-need-an-effect#resetting-all-state-when-a-prop-changes
   */
  'react-you-might-not-need-an-effect/no-reset-all-state-on-prop-change'?: Linter.RuleEntry<[]>;
  /**
   * Enforces consistent naming for boolean props
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/boolean-prop-naming.md
   */
  'react/boolean-prop-naming'?: Linter.RuleEntry<ReactBooleanPropNaming>;
  /**
   * Disallow usage of `button` elements without an explicit `type` attribute
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/button-has-type.md
   */
  'react/button-has-type'?: Linter.RuleEntry<ReactButtonHasType>;
  /**
   * Enforce using `onChange` or `readonly` attribute when `checked` is used
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/checked-requires-onchange-or-readonly.md
   */
  'react/checked-requires-onchange-or-readonly'?: Linter.RuleEntry<ReactCheckedRequiresOnchangeOrReadonly>;
  /**
   * Enforce all defaultProps have a corresponding non-required PropType
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/default-props-match-prop-types.md
   */
  'react/default-props-match-prop-types'?: Linter.RuleEntry<ReactDefaultPropsMatchPropTypes>;
  /**
   * Enforce consistent usage of destructuring assignment of props, state, and context
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/destructuring-assignment.md
   */
  'react/destructuring-assignment'?: Linter.RuleEntry<ReactDestructuringAssignment>;
  /**
   * Disallow missing displayName in a React component definition
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/display-name.md
   */
  'react/display-name'?: Linter.RuleEntry<ReactDisplayName>;
  /**
   * Disallow certain props on components
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-component-props.md
   */
  'react/forbid-component-props'?: Linter.RuleEntry<ReactForbidComponentProps>;
  /**
   * Disallow certain props on DOM Nodes
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-dom-props.md
   */
  'react/forbid-dom-props'?: Linter.RuleEntry<ReactForbidDomProps>;
  /**
   * Disallow certain elements
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-elements.md
   */
  'react/forbid-elements'?: Linter.RuleEntry<ReactForbidElements>;
  /**
   * Disallow using another component's propTypes
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-foreign-prop-types.md
   */
  'react/forbid-foreign-prop-types'?: Linter.RuleEntry<ReactForbidForeignPropTypes>;
  /**
   * Disallow certain propTypes
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-prop-types.md
   */
  'react/forbid-prop-types'?: Linter.RuleEntry<ReactForbidPropTypes>;
  /**
   * Require all forwardRef components include a ref parameter
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forward-ref-uses-ref.md
   */
  'react/forward-ref-uses-ref'?: Linter.RuleEntry<[]>;
  /**
   * Enforce a specific function type for function components
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/function-component-definition.md
   */
  'react/function-component-definition'?: Linter.RuleEntry<ReactFunctionComponentDefinition>;
  /**
   * Ensure destructuring and symmetric naming of useState hook value and setter variables
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/hook-use-state.md
   */
  'react/hook-use-state'?: Linter.RuleEntry<ReactHookUseState>;
  /**
   * Enforce sandbox attribute on iframe elements
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/iframe-missing-sandbox.md
   */
  'react/iframe-missing-sandbox'?: Linter.RuleEntry<[]>;
  /**
   * Enforce boolean attributes notation in JSX
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-boolean-value.md
   */
  'react/jsx-boolean-value'?: Linter.RuleEntry<ReactJsxBooleanValue>;
  /**
   * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-child-element-spacing.md
   */
  'react/jsx-child-element-spacing'?: Linter.RuleEntry<[]>;
  /**
   * Enforce closing bracket location in JSX
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-closing-bracket-location.md
   */
  'react/jsx-closing-bracket-location'?: Linter.RuleEntry<ReactJsxClosingBracketLocation>;
  /**
   * Enforce closing tag location for multiline JSX
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-closing-tag-location.md
   */
  'react/jsx-closing-tag-location'?: Linter.RuleEntry<ReactJsxClosingTagLocation>;
  /**
   * Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-curly-brace-presence.md
   */
  'react/jsx-curly-brace-presence'?: Linter.RuleEntry<ReactJsxCurlyBracePresence>;
  /**
   * Enforce consistent linebreaks in curly braces in JSX attributes and expressions
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-curly-newline.md
   */
  'react/jsx-curly-newline'?: Linter.RuleEntry<ReactJsxCurlyNewline>;
  /**
   * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-curly-spacing.md
   */
  'react/jsx-curly-spacing'?: Linter.RuleEntry<ReactJsxCurlySpacing>;
  /**
   * Enforce or disallow spaces around equal signs in JSX attributes
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-equals-spacing.md
   */
  'react/jsx-equals-spacing'?: Linter.RuleEntry<ReactJsxEqualsSpacing>;
  /**
   * Disallow file extensions that may contain JSX
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-filename-extension.md
   */
  'react/jsx-filename-extension'?: Linter.RuleEntry<ReactJsxFilenameExtension>;
  /**
   * Enforce proper position of the first property in JSX
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-first-prop-new-line.md
   */
  'react/jsx-first-prop-new-line'?: Linter.RuleEntry<ReactJsxFirstPropNewLine>;
  /**
   * Enforce shorthand or standard form for React fragments
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-fragments.md
   */
  'react/jsx-fragments'?: Linter.RuleEntry<ReactJsxFragments>;
  /**
   * Enforce event handler naming conventions in JSX
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-handler-names.md
   */
  'react/jsx-handler-names'?: Linter.RuleEntry<ReactJsxHandlerNames>;
  /**
   * Enforce JSX indentation
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-indent.md
   */
  'react/jsx-indent'?: Linter.RuleEntry<ReactJsxIndent>;
  /**
   * Enforce props indentation in JSX
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-indent-props.md
   */
  'react/jsx-indent-props'?: Linter.RuleEntry<ReactJsxIndentProps>;
  /**
   * Disallow missing `key` props in iterators/collection literals
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-key.md
   */
  'react/jsx-key'?: Linter.RuleEntry<ReactJsxKey>;
  /**
   * Enforce JSX maximum depth
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-max-depth.md
   */
  'react/jsx-max-depth'?: Linter.RuleEntry<ReactJsxMaxDepth>;
  /**
   * Enforce maximum of props on a single line in JSX
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-max-props-per-line.md
   */
  'react/jsx-max-props-per-line'?: Linter.RuleEntry<ReactJsxMaxPropsPerLine>;
  /**
   * Require or prevent a new line after jsx elements and expressions.
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-newline.md
   */
  'react/jsx-newline'?: Linter.RuleEntry<ReactJsxNewline>;
  /**
   * Disallow `.bind()` or arrow functions in JSX props
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-bind.md
   */
  'react/jsx-no-bind'?: Linter.RuleEntry<ReactJsxNoBind>;
  /**
   * Disallow comments from being inserted as text nodes
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-comment-textnodes.md
   */
  'react/jsx-no-comment-textnodes'?: Linter.RuleEntry<[]>;
  /**
   * Disallows JSX context provider values from taking values that will cause needless rerenders
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-constructed-context-values.md
   */
  'react/jsx-no-constructed-context-values'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate properties in JSX
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-duplicate-props.md
   */
  'react/jsx-no-duplicate-props'?: Linter.RuleEntry<ReactJsxNoDuplicateProps>;
  /**
   * Disallow problematic leaked values from being rendered
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-leaked-render.md
   */
  'react/jsx-no-leaked-render'?: Linter.RuleEntry<ReactJsxNoLeakedRender>;
  /**
   * Disallow usage of string literals in JSX
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-literals.md
   */
  'react/jsx-no-literals'?: Linter.RuleEntry<ReactJsxNoLiterals>;
  /**
   * Disallow usage of `javascript:` URLs
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-script-url.md
   */
  'react/jsx-no-script-url'?: Linter.RuleEntry<ReactJsxNoScriptUrl>;
  /**
   * Disallow `target="_blank"` attribute without `rel="noreferrer"`
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-target-blank.md
   */
  'react/jsx-no-target-blank'?: Linter.RuleEntry<ReactJsxNoTargetBlank>;
  /**
   * Disallow undeclared variables in JSX
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-undef.md
   */
  'react/jsx-no-undef'?: Linter.RuleEntry<ReactJsxNoUndef>;
  /**
   * Disallow unnecessary fragments
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-useless-fragment.md
   */
  'react/jsx-no-useless-fragment'?: Linter.RuleEntry<ReactJsxNoUselessFragment>;
  /**
   * Require one JSX element per line
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-one-expression-per-line.md
   */
  'react/jsx-one-expression-per-line'?: Linter.RuleEntry<ReactJsxOneExpressionPerLine>;
  /**
   * Enforce PascalCase for user-defined JSX components
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-pascal-case.md
   */
  'react/jsx-pascal-case'?: Linter.RuleEntry<ReactJsxPascalCase>;
  /**
   * Disallow multiple spaces between inline JSX props
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-props-no-multi-spaces.md
   */
  'react/jsx-props-no-multi-spaces'?: Linter.RuleEntry<[]>;
  /**
   * Disallow JSX prop spreading the same identifier multiple times
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-props-no-spread-multi.md
   */
  'react/jsx-props-no-spread-multi'?: Linter.RuleEntry<[]>;
  /**
   * Disallow JSX prop spreading
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-props-no-spreading.md
   */
  'react/jsx-props-no-spreading'?: Linter.RuleEntry<ReactJsxPropsNoSpreading>;
  /**
   * Enforce defaultProps declarations alphabetical sorting
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-sort-default-props.md
   * @deprecated
   */
  'react/jsx-sort-default-props'?: Linter.RuleEntry<ReactJsxSortDefaultProps>;
  /**
   * Enforce props alphabetical sorting
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-sort-props.md
   */
  'react/jsx-sort-props'?: Linter.RuleEntry<ReactJsxSortProps>;
  /**
   * Enforce spacing before closing bracket in JSX
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-space-before-closing.md
   * @deprecated
   */
  'react/jsx-space-before-closing'?: Linter.RuleEntry<ReactJsxSpaceBeforeClosing>;
  /**
   * Enforce whitespace in and around the JSX opening and closing brackets
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-tag-spacing.md
   */
  'react/jsx-tag-spacing'?: Linter.RuleEntry<ReactJsxTagSpacing>;
  /**
   * Disallow React to be incorrectly marked as unused
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-uses-react.md
   */
  'react/jsx-uses-react'?: Linter.RuleEntry<[]>;
  /**
   * Disallow variables used in JSX to be incorrectly marked as unused
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-uses-vars.md
   */
  'react/jsx-uses-vars'?: Linter.RuleEntry<[]>;
  /**
   * Disallow missing parentheses around multiline JSX
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-wrap-multilines.md
   */
  'react/jsx-wrap-multilines'?: Linter.RuleEntry<ReactJsxWrapMultilines>;
  /**
   * Disallow when this.state is accessed within setState
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-access-state-in-setstate.md
   */
  'react/no-access-state-in-setstate'?: Linter.RuleEntry<[]>;
  /**
   * Disallow adjacent inline elements not separated by whitespace.
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-adjacent-inline-elements.md
   */
  'react/no-adjacent-inline-elements'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of Array index in keys
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-array-index-key.md
   */
  'react/no-array-index-key'?: Linter.RuleEntry<[]>;
  /**
   * Lifecycle methods should be methods on the prototype, not class fields
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-arrow-function-lifecycle.md
   */
  'react/no-arrow-function-lifecycle'?: Linter.RuleEntry<[]>;
  /**
   * Disallow passing of children as props
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-children-prop.md
   */
  'react/no-children-prop'?: Linter.RuleEntry<ReactNoChildrenProp>;
  /**
   * Disallow usage of dangerous JSX properties
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-danger.md
   */
  'react/no-danger'?: Linter.RuleEntry<ReactNoDanger>;
  /**
   * Disallow when a DOM element is using both children and dangerouslySetInnerHTML
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-danger-with-children.md
   */
  'react/no-danger-with-children'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of deprecated methods
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-deprecated.md
   */
  'react/no-deprecated'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of setState in componentDidMount
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-did-mount-set-state.md
   */
  'react/no-did-mount-set-state'?: Linter.RuleEntry<ReactNoDidMountSetState>;
  /**
   * Disallow usage of setState in componentDidUpdate
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-did-update-set-state.md
   */
  'react/no-did-update-set-state'?: Linter.RuleEntry<ReactNoDidUpdateSetState>;
  /**
   * Disallow direct mutation of this.state
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-direct-mutation-state.md
   */
  'react/no-direct-mutation-state'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of findDOMNode
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-find-dom-node.md
   */
  'react/no-find-dom-node'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of invalid attributes
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-invalid-html-attribute.md
   */
  'react/no-invalid-html-attribute'?: Linter.RuleEntry<ReactNoInvalidHtmlAttribute>;
  /**
   * Disallow usage of isMounted
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-is-mounted.md
   */
  'react/no-is-mounted'?: Linter.RuleEntry<[]>;
  /**
   * Disallow multiple component definition per file
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-multi-comp.md
   */
  'react/no-multi-comp'?: Linter.RuleEntry<ReactNoMultiComp>;
  /**
   * Enforce that namespaces are not used in React elements
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-namespace.md
   */
  'react/no-namespace'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of referential-type variables as default param in functional component
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-object-type-as-default-prop.md
   */
  'react/no-object-type-as-default-prop'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of shouldComponentUpdate when extending React.PureComponent
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-redundant-should-component-update.md
   */
  'react/no-redundant-should-component-update'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of the return value of ReactDOM.render
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-render-return-value.md
   */
  'react/no-render-return-value'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of setState
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-set-state.md
   */
  'react/no-set-state'?: Linter.RuleEntry<[]>;
  /**
   * Disallow using string references
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-string-refs.md
   */
  'react/no-string-refs'?: Linter.RuleEntry<ReactNoStringRefs>;
  /**
   * Disallow `this` from being used in stateless functional components
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-this-in-sfc.md
   */
  'react/no-this-in-sfc'?: Linter.RuleEntry<[]>;
  /**
   * Disallow common typos
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-typos.md
   */
  'react/no-typos'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unescaped HTML entities from appearing in markup
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unescaped-entities.md
   */
  'react/no-unescaped-entities'?: Linter.RuleEntry<ReactNoUnescapedEntities>;
  /**
   * Disallow usage of unknown DOM property
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unknown-property.md
   */
  'react/no-unknown-property'?: Linter.RuleEntry<ReactNoUnknownProperty>;
  /**
   * Disallow usage of unsafe lifecycle methods
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unsafe.md
   */
  'react/no-unsafe'?: Linter.RuleEntry<ReactNoUnsafe>;
  /**
   * Disallow creating unstable components inside components
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unstable-nested-components.md
   */
  'react/no-unstable-nested-components'?: Linter.RuleEntry<ReactNoUnstableNestedComponents>;
  /**
   * Disallow declaring unused methods of component class
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unused-class-component-methods.md
   */
  'react/no-unused-class-component-methods'?: Linter.RuleEntry<[]>;
  /**
   * Disallow definitions of unused propTypes
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unused-prop-types.md
   */
  'react/no-unused-prop-types'?: Linter.RuleEntry<ReactNoUnusedPropTypes>;
  /**
   * Disallow definitions of unused state
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unused-state.md
   */
  'react/no-unused-state'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of setState in componentWillUpdate
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-will-update-set-state.md
   */
  'react/no-will-update-set-state'?: Linter.RuleEntry<ReactNoWillUpdateSetState>;
  /**
   * Enforce ES5 or ES6 class for React Components
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-es6-class.md
   */
  'react/prefer-es6-class'?: Linter.RuleEntry<ReactPreferEs6Class>;
  /**
   * Prefer exact proptype definitions
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-exact-props.md
   */
  'react/prefer-exact-props'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that props are read-only
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-read-only-props.md
   */
  'react/prefer-read-only-props'?: Linter.RuleEntry<[]>;
  /**
   * Enforce stateless components to be written as a pure function
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-stateless-function.md
   */
  'react/prefer-stateless-function'?: Linter.RuleEntry<ReactPreferStatelessFunction>;
  /**
   * Disallow missing props validation in a React component definition
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prop-types.md
   */
  'react/prop-types'?: Linter.RuleEntry<ReactPropTypes>;
  /**
   * Disallow missing React when using JSX
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/react-in-jsx-scope.md
   */
  'react/react-in-jsx-scope'?: Linter.RuleEntry<[]>;
  /**
   * Enforce a defaultProps definition for every prop that is not a required prop
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/require-default-props.md
   */
  'react/require-default-props'?: Linter.RuleEntry<ReactRequireDefaultProps>;
  /**
   * Enforce React components to have a shouldComponentUpdate method
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/require-optimization.md
   */
  'react/require-optimization'?: Linter.RuleEntry<ReactRequireOptimization>;
  /**
   * Enforce ES5 or ES6 class for returning value in render function
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/require-render-return.md
   */
  'react/require-render-return'?: Linter.RuleEntry<[]>;
  /**
   * Disallow extra closing tags for components without children
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/self-closing-comp.md
   */
  'react/self-closing-comp'?: Linter.RuleEntry<ReactSelfClosingComp>;
  /**
   * Enforce component methods order
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/sort-comp.md
   */
  'react/sort-comp'?: Linter.RuleEntry<ReactSortComp>;
  /**
   * Enforce defaultProps declarations alphabetical sorting
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/sort-default-props.md
   */
  'react/sort-default-props'?: Linter.RuleEntry<ReactSortDefaultProps>;
  /**
   * Enforce propTypes declarations alphabetical sorting
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/sort-prop-types.md
   */
  'react/sort-prop-types'?: Linter.RuleEntry<ReactSortPropTypes>;
  /**
   * Enforce class component state initialization style
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/state-in-constructor.md
   */
  'react/state-in-constructor'?: Linter.RuleEntry<ReactStateInConstructor>;
  /**
   * Enforces where React component static properties should be positioned.
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/static-property-placement.md
   */
  'react/static-property-placement'?: Linter.RuleEntry<ReactStaticPropertyPlacement>;
  /**
   * Enforce style prop value is an object
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/style-prop-object.md
   */
  'react/style-prop-object'?: Linter.RuleEntry<ReactStylePropObject>;
  /**
   * Disallow void DOM elements (e.g. `<img />`, `<br />`) from receiving children
   * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/void-dom-elements-no-children.md
   */
  'react/void-dom-elements-no-children'?: 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<[]>;
  'rules'?: Linter.RuleEntry<[]>;
  /**
   * Automatically sort exports.
   * @see https://github.com/lydell/eslint-plugin-simple-import-sort#sort-order
   */
  'simple-import-sort/exports'?: Linter.RuleEntry<[]>;
  /**
   * Automatically sort imports.
   * @see https://github.com/lydell/eslint-plugin-simple-import-sort#sort-order
   */
  'simple-import-sort/imports'?: Linter.RuleEntry<SimpleImportSortImports>;
  /**
   * Alternatives in regular expressions should be grouped when used with anchors
   * @see https://sonarsource.github.io/rspec/#/rspec/S5850/javascript
   */
  'sonarjs/anchor-precedence'?: Linter.RuleEntry<[]>;
  /**
   * Arguments to built-in functions should match documented types
   * @see https://sonarsource.github.io/rspec/#/rspec/S3782/javascript
   */
  'sonarjs/argument-type'?: Linter.RuleEntry<[]>;
  /**
   * Parameters should be passed in the correct order
   * @see https://sonarsource.github.io/rspec/#/rspec/S2234/javascript
   */
  'sonarjs/arguments-order'?: Linter.RuleEntry<[]>;
  /**
   * "arguments" should not be accessed directly
   * @see https://sonarsource.github.io/rspec/#/rspec/S3513/javascript
   */
  'sonarjs/arguments-usage'?: Linter.RuleEntry<[]>;
  /**
   * Callbacks of array methods should have return statements
   * @see https://sonarsource.github.io/rspec/#/rspec/S3796/javascript
   */
  'sonarjs/array-callback-without-return'?: Linter.RuleEntry<[]>;
  /**
   * Array constructors should not be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S1528/javascript
   */
  'sonarjs/array-constructor'?: Linter.RuleEntry<[]>;
  /**
   * Braces and parentheses should be used consistently with arrow functions
   * @see https://sonarsource.github.io/rspec/#/rspec/S3524/javascript
   */
  'sonarjs/arrow-function-convention'?: Linter.RuleEntry<SonarjsArrowFunctionConvention>;
  /**
   * Assertions should be placed inside test cases or hooks
   * @see https://sonarsource.github.io/rspec/#/rspec/S8784/javascript
   */
  'sonarjs/assertions-in-test-cases'?: Linter.RuleEntry<[]>;
  /**
   * Tests should include assertions
   * @see https://sonarsource.github.io/rspec/#/rspec/S2699/javascript
   */
  'sonarjs/assertions-in-tests'?: Linter.RuleEntry<[]>;
  /**
   * Async test assertions should be awaited or returned
   * @see https://sonarsource.github.io/rspec/#/rspec/S8780/javascript
   */
  'sonarjs/async-test-assertions'?: Linter.RuleEntry<[]>;
  /**
   * AWS API Gateway should require authentication
   * @see https://sonarsource.github.io/rspec/#/rspec/S6333/javascript
   */
  'sonarjs/aws-apigateway-public-api'?: Linter.RuleEntry<[]>;
  /**
   * Public network access to cloud resources should be disabled
   * @see https://sonarsource.github.io/rspec/#/rspec/S6329/javascript
   */
  'sonarjs/aws-ec2-rds-dms-public'?: Linter.RuleEntry<[]>;
  /**
   * EBS volumes should be encrypted
   * @see https://sonarsource.github.io/rspec/#/rspec/S6275/javascript
   */
  'sonarjs/aws-ec2-unencrypted-ebs-volume'?: Linter.RuleEntry<[]>;
  /**
   * Amazon EFS file systems should be encrypted
   * @see https://sonarsource.github.io/rspec/#/rspec/S6332/javascript
   */
  'sonarjs/aws-efs-unencrypted'?: Linter.RuleEntry<[]>;
  /**
   * Policies should not grant all privileges
   * @see https://sonarsource.github.io/rspec/#/rspec/S6302/javascript
   */
  'sonarjs/aws-iam-all-privileges'?: Linter.RuleEntry<[]>;
  /**
   * IAM policies should not grant access to all account resources
   * @see https://sonarsource.github.io/rspec/#/rspec/S6304/javascript
   */
  'sonarjs/aws-iam-all-resources-accessible'?: Linter.RuleEntry<[]>;
  /**
   * AWS IAM policies should limit the scope of permissions given
   * @see https://sonarsource.github.io/rspec/#/rspec/S6317/javascript
   */
  'sonarjs/aws-iam-privilege-escalation'?: Linter.RuleEntry<[]>;
  /**
   * AWS resource-based policies should not grant public access
   * @see https://sonarsource.github.io/rspec/#/rspec/S6270/javascript
   */
  'sonarjs/aws-iam-public-access'?: Linter.RuleEntry<[]>;
  /**
   * OpenSearch domains should have encryption at rest enabled
   * @see https://sonarsource.github.io/rspec/#/rspec/S6308/javascript
   */
  'sonarjs/aws-opensearchservice-domain'?: Linter.RuleEntry<[]>;
  /**
   * Amazon RDS resources should be encrypted at rest
   * @see https://sonarsource.github.io/rspec/#/rspec/S6303/javascript
   */
  'sonarjs/aws-rds-unencrypted-databases'?: Linter.RuleEntry<[]>;
  /**
   * Administration services access should be restricted to specific IP addresses
   * @see https://sonarsource.github.io/rspec/#/rspec/S6321/javascript
   */
  'sonarjs/aws-restricted-ip-admin-access'?: Linter.RuleEntry<[]>;
  /**
   * S3 buckets should not grant access to all users or authenticated users
   * @see https://sonarsource.github.io/rspec/#/rspec/S6265/javascript
   */
  'sonarjs/aws-s3-bucket-granted-access'?: Linter.RuleEntry<[]>;
  /**
   * S3 buckets should enforce HTTPS-only access
   * @see https://sonarsource.github.io/rspec/#/rspec/S6249/javascript
   */
  'sonarjs/aws-s3-bucket-insecure-http'?: Linter.RuleEntry<[]>;
  /**
   * Amazon S3 bucket public access should be fully blocked
   * @see https://sonarsource.github.io/rspec/#/rspec/S6281/javascript
   */
  'sonarjs/aws-s3-bucket-public-access'?: Linter.RuleEntry<[]>;
  /**
   * Amazon S3 buckets should have versioning enabled
   * @see https://sonarsource.github.io/rspec/#/rspec/S6252/javascript
   */
  'sonarjs/aws-s3-bucket-versioning'?: Linter.RuleEntry<[]>;
  /**
   * SageMaker notebook instances should be encrypted at rest
   * @see https://sonarsource.github.io/rspec/#/rspec/S6319/javascript
   */
  'sonarjs/aws-sagemaker-unencrypted-notebook'?: Linter.RuleEntry<[]>;
  /**
   * Amazon SNS topics should be encrypted at rest
   * @see https://sonarsource.github.io/rspec/#/rspec/S6327/javascript
   */
  'sonarjs/aws-sns-unencrypted-topics'?: Linter.RuleEntry<[]>;
  /**
   * SQS queues should be encrypted
   * @see https://sonarsource.github.io/rspec/#/rspec/S6330/javascript
   */
  'sonarjs/aws-sqs-unencrypted-queue'?: Linter.RuleEntry<[]>;
  /**
   * Bitwise operators should not be used in boolean contexts
   * @see https://sonarsource.github.io/rspec/#/rspec/S1529/javascript
   */
  'sonarjs/bitwise-operators'?: Linter.RuleEntry<[]>;
  /**
   * Variables should be used in the blocks where they are declared
   * @see https://sonarsource.github.io/rspec/#/rspec/S2392/javascript
   */
  'sonarjs/block-scoped-var'?: Linter.RuleEntry<[]>;
  /**
   * Optional boolean parameters should have default value
   * @see https://sonarsource.github.io/rspec/#/rspec/S4798/javascript
   */
  'sonarjs/bool-param-default'?: Linter.RuleEntry<[]>;
  /**
   * Function call arguments should not start on new lines
   * @see https://sonarsource.github.io/rspec/#/rspec/S1472/javascript
   */
  'sonarjs/call-argument-line'?: Linter.RuleEntry<[]>;
  /**
   * Chai assertions should have only one reason to succeed
   * @see https://sonarsource.github.io/rspec/#/rspec/S6092/javascript
   */
  'sonarjs/chai-determinate-assertion'?: Linter.RuleEntry<[]>;
  /**
   * Class names should comply with a naming convention
   * @see https://sonarsource.github.io/rspec/#/rspec/S101/javascript
   */
  'sonarjs/class-name'?: Linter.RuleEntry<SonarjsClassName>;
  /**
   * Class methods should be used instead of "prototype" assignments
   * @see https://sonarsource.github.io/rspec/#/rspec/S3525/javascript
   */
  'sonarjs/class-prototype'?: Linter.RuleEntry<[]>;
  /**
   * Dynamic code execution should not use user-controlled data
   * @see https://sonarsource.github.io/rspec/#/rspec/S1523/javascript
   */
  'sonarjs/code-eval'?: Linter.RuleEntry<[]>;
  /**
   * Cognitive Complexity of functions should not be too high
   * @see https://sonarsource.github.io/rspec/#/rspec/S3776/javascript
   */
  'sonarjs/cognitive-complexity'?: Linter.RuleEntry<SonarjsCognitiveComplexity>;
  /**
   * Comma and logical OR operators should not be used in switch cases
   * @see https://sonarsource.github.io/rspec/#/rspec/S3616/javascript
   */
  'sonarjs/comma-or-logical-or-case'?: Linter.RuleEntry<[]>;
  /**
   * Track comments matching a regular expression
   * @see https://sonarsource.github.io/rspec/#/rspec/S124/javascript
   */
  'sonarjs/comment-regex'?: Linter.RuleEntry<SonarjsCommentRegex>;
  /**
   * Regular expression quantifiers and character classes should be used concisely
   * @see https://sonarsource.github.io/rspec/#/rspec/S6353/javascript
   */
  'sonarjs/concise-regex'?: Linter.RuleEntry<[]>;
  /**
   * A conditionally executed single line should be denoted by indentation
   * @see https://sonarsource.github.io/rspec/#/rspec/S3973/javascript
   * @deprecated
   */
  'sonarjs/conditional-indentation'?: Linter.RuleEntry<[]>;
  /**
   * Confidential information should not be logged
   * @see https://sonarsource.github.io/rspec/#/rspec/S5757/javascript
   * @deprecated
   */
  'sonarjs/confidential-information-logging'?: Linter.RuleEntry<[]>;
  /**
   * Objects should not be created to be dropped immediately without being used
   * @see https://sonarsource.github.io/rspec/#/rspec/S1848/javascript
   */
  'sonarjs/constructor-for-side-effects'?: Linter.RuleEntry<[]>;
  /**
   * HTTP request content length should be limited
   * @see https://sonarsource.github.io/rspec/#/rspec/S5693/javascript
   */
  'sonarjs/content-length'?: Linter.RuleEntry<SonarjsContentLength>;
  /**
   * Content security policy fetch directives should not be disabled
   * @see https://sonarsource.github.io/rspec/#/rspec/S5728/javascript
   */
  'sonarjs/content-security-policy'?: Linter.RuleEntry<[]>;
  /**
   * Cookies should have the "HttpOnly" flag
   * @see https://sonarsource.github.io/rspec/#/rspec/S3330/javascript
   */
  'sonarjs/cookie-no-httponly'?: Linter.RuleEntry<[]>;
  /**
   * Cross-Origin Resource Sharing (CORS) policy should be restricted to trusted origins
   * @see https://sonarsource.github.io/rspec/#/rspec/S5122/javascript
   */
  'sonarjs/cors'?: Linter.RuleEntry<[]>;
  /**
   * CSRF protections should not be disabled
   * @see https://sonarsource.github.io/rspec/#/rspec/S4502/javascript
   */
  'sonarjs/csrf'?: Linter.RuleEntry<[]>;
  /**
   * Cyclomatic Complexity of functions should not be too high
   * @see https://sonarsource.github.io/rspec/#/rspec/S1541/javascript
   */
  'sonarjs/cyclomatic-complexity'?: Linter.RuleEntry<SonarjsCyclomaticComplexity>;
  /**
   * Variables and functions should not be declared in the global scope
   * @see https://sonarsource.github.io/rspec/#/rspec/S3798/javascript
   */
  'sonarjs/declarations-in-global-scope'?: Linter.RuleEntry<[]>;
  /**
   * Deprecated APIs should not be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S1874/javascript
   */
  'sonarjs/deprecation'?: Linter.RuleEntry<[]>;
  /**
   * Destructuring syntax should be used for assignments
   * @see https://sonarsource.github.io/rspec/#/rspec/S3514/javascript
   */
  'sonarjs/destructuring-assignment-syntax'?: Linter.RuleEntry<[]>;
  /**
   * Strict equality operators should not be used with dissimilar types
   * @see https://sonarsource.github.io/rspec/#/rspec/S3403/javascript
   */
  'sonarjs/different-types-comparison'?: Linter.RuleEntry<[]>;
  /**
   * Auto-escaping in HTML template engines should not be disabled
   * @see https://sonarsource.github.io/rspec/#/rspec/S5247/javascript
   */
  'sonarjs/disabled-auto-escaping'?: Linter.RuleEntry<[]>;
  /**
   * Remote artifacts should not be used without integrity checks
   * @see https://sonarsource.github.io/rspec/#/rspec/S5725/javascript
   */
  'sonarjs/disabled-resource-integrity'?: Linter.RuleEntry<[]>;
  /**
   * Disabling Mocha timeouts should be explicit
   * @see https://sonarsource.github.io/rspec/#/rspec/S6080/javascript
   */
  'sonarjs/disabled-timeout'?: Linter.RuleEntry<[]>;
  /**
   * DOMPurify configuration should not be bypassable
   * @see https://sonarsource.github.io/rspec/#/rspec/S8479/javascript
   */
  'sonarjs/dompurify-unsafe-config'?: Linter.RuleEntry<[]>;
  /**
   * Character classes in regular expressions should not contain the same character twice
   * @see https://sonarsource.github.io/rspec/#/rspec/S5869/javascript
   */
  'sonarjs/duplicates-in-character-class'?: Linter.RuleEntry<[]>;
  /**
   * Templates should not be constructed dynamically
   * @see https://sonarsource.github.io/rspec/#/rspec/S7790/javascript
   */
  'sonarjs/dynamically-constructed-templates'?: Linter.RuleEntry<[]>;
  /**
   * "if ... else if" constructs should end with "else" clauses
   * @see https://sonarsource.github.io/rspec/#/rspec/S126/javascript
   */
  'sonarjs/elseif-without-else'?: Linter.RuleEntry<[]>;
  /**
   * Repeated patterns in regular expressions should not match the empty string
   * @see https://sonarsource.github.io/rspec/#/rspec/S5842/javascript
   */
  'sonarjs/empty-string-repetition'?: Linter.RuleEntry<[]>;
  /**
   * Encryption algorithms should be used with secure mode and padding scheme
   * @see https://sonarsource.github.io/rspec/#/rspec/S5542/javascript
   */
  'sonarjs/encryption-secure-mode'?: Linter.RuleEntry<[]>;
  /**
   * Replacement strings should reference existing regular expression groups
   * @see https://sonarsource.github.io/rspec/#/rspec/S6328/javascript
   */
  'sonarjs/existing-groups'?: Linter.RuleEntry<[]>;
  /**
   * Tests should be skipped explicitly
   * @see https://sonarsource.github.io/rspec/#/rspec/S8968/javascript
   */
  'sonarjs/explicit-test-skip'?: Linter.RuleEntry<[]>;
  /**
   * Expressions should not be too complex
   * @see https://sonarsource.github.io/rspec/#/rspec/S1067/javascript
   */
  'sonarjs/expression-complexity'?: Linter.RuleEntry<SonarjsExpressionComplexity>;
  /**
   * Track lack of copyright and license headers
   * @see https://sonarsource.github.io/rspec/#/rspec/S1451/javascript
   */
  'sonarjs/file-header'?: Linter.RuleEntry<SonarjsFileHeader>;
  /**
   * Default export names and file names should match
   * @see https://sonarsource.github.io/rspec/#/rspec/S3317/javascript
   */
  'sonarjs/file-name-differ-from-class'?: Linter.RuleEntry<[]>;
  /**
   * File permissions should not be set to world-accessible values
   * @see https://sonarsource.github.io/rspec/#/rspec/S2612/javascript
   */
  'sonarjs/file-permissions'?: Linter.RuleEntry<[]>;
  /**
   * File uploads should be restricted
   * @see https://sonarsource.github.io/rspec/#/rspec/S2598/javascript
   */
  'sonarjs/file-uploads'?: Linter.RuleEntry<[]>;
  /**
   * Track uses of "FIXME" tags
   * @see https://sonarsource.github.io/rspec/#/rspec/S1134/javascript
   */
  'sonarjs/fixme-tag'?: Linter.RuleEntry<[]>;
  /**
   * "for...in" loops should filter properties before acting on them
   * @see https://sonarsource.github.io/rspec/#/rspec/S1535/javascript
   */
  'sonarjs/for-in'?: Linter.RuleEntry<[]>;
  /**
   * A "for" loop update clause should move the counter in the right direction
   * @see https://sonarsource.github.io/rspec/#/rspec/S2251/javascript
   */
  'sonarjs/for-loop-increment-sign'?: Linter.RuleEntry<[]>;
  /**
   * Content Security Policy frame-ancestors directive should not be disabled
   * @see https://sonarsource.github.io/rspec/#/rspec/S5732/javascript
   * @deprecated
   */
  'sonarjs/frame-ancestors'?: Linter.RuleEntry<[]>;
  /**
   * Functions should not be defined inside loops
   * @see https://sonarsource.github.io/rspec/#/rspec/S1515/javascript
   */
  'sonarjs/function-inside-loop'?: Linter.RuleEntry<[]>;
  /**
   * Function and method names should comply with a naming convention
   * @see https://sonarsource.github.io/rspec/#/rspec/S100/javascript
   */
  'sonarjs/function-name'?: Linter.RuleEntry<SonarjsFunctionName>;
  /**
   * Functions should always return the same type
   * @see https://sonarsource.github.io/rspec/#/rspec/S3800/javascript
   */
  'sonarjs/function-return-type'?: Linter.RuleEntry<[]>;
  /**
   * Future reserved words should not be used as identifiers
   * @see https://sonarsource.github.io/rspec/#/rspec/S1527/javascript
   */
  'sonarjs/future-reserved-words'?: Linter.RuleEntry<[]>;
  /**
   * Generators should explicitly "yield" a value
   * @see https://sonarsource.github.io/rspec/#/rspec/S3531/javascript
   */
  'sonarjs/generator-without-yield'?: Linter.RuleEntry<[]>;
  /**
   * Credentials should not be hard-coded
   * @see https://sonarsource.github.io/rspec/#/rspec/S6437/javascript
   */
  'sonarjs/hardcoded-secret-signatures'?: Linter.RuleEntry<[]>;
  /**
   * Weak hashing algorithms should not be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S4790/javascript
   */
  'sonarjs/hashing'?: Linter.RuleEntry<[]>;
  /**
   * Hidden files should not be served statically
   * @see https://sonarsource.github.io/rspec/#/rspec/S5691/javascript
   * @deprecated
   */
  'sonarjs/hidden-files'?: Linter.RuleEntry<[]>;
  /**
   * Lifecycle hooks should not be interleaved with test cases or nested suites
   * @see https://sonarsource.github.io/rspec/#/rspec/S8782/javascript
   */
  'sonarjs/hooks-before-test-cases'?: Linter.RuleEntry<[]>;
  /**
   * "in" should not be used with primitive types
   * @see https://sonarsource.github.io/rspec/#/rspec/S3785/javascript
   */
  'sonarjs/in-operator-type-error'?: Linter.RuleEntry<[]>;
  /**
   * Functions should be called consistently with or without "new"
   * @see https://sonarsource.github.io/rspec/#/rspec/S3686/javascript
   */
  'sonarjs/inconsistent-function-call'?: Linter.RuleEntry<[]>;
  /**
   * "indexOf" checks should not be for positive numbers
   * @see https://sonarsource.github.io/rspec/#/rspec/S2692/javascript
   */
  'sonarjs/index-of-compare-to-positive-number'?: Linter.RuleEntry<[]>;
  /**
   * Cookies should have the "secure" flag
   * @see https://sonarsource.github.io/rspec/#/rspec/S2092/javascript
   */
  'sonarjs/insecure-cookie'?: Linter.RuleEntry<[]>;
  /**
   * JWT should be signed and verified with strong cipher algorithms
   * @see https://sonarsource.github.io/rspec/#/rspec/S5659/javascript
   */
  'sonarjs/insecure-jwt-token'?: Linter.RuleEntry<[]>;
  /**
   * Assertion arguments should be passed in the correct order
   * @see https://sonarsource.github.io/rspec/#/rspec/S3415/javascript
   */
  'sonarjs/inverted-assertion-arguments'?: Linter.RuleEntry<[]>;
  /**
   * React components should not render non-boolean condition values
   * @see https://sonarsource.github.io/rspec/#/rspec/S6439/javascript
   */
  'sonarjs/jsx-no-leaked-render'?: Linter.RuleEntry<[]>;
  /**
   * Only "while", "do", "for" and "switch" statements should be labelled
   * @see https://sonarsource.github.io/rspec/#/rspec/S1439/javascript
   */
  'sonarjs/label-position'?: Linter.RuleEntry<[]>;
  /**
   * Opened windows should not have access to the originating page
   * @see https://sonarsource.github.io/rspec/#/rspec/S5148/javascript
   */
  'sonarjs/link-with-target-blank'?: Linter.RuleEntry<[]>;
  /**
   * Files should not have too many lines of code
   * @see https://sonarsource.github.io/rspec/#/rspec/S104/javascript
   */
  'sonarjs/max-lines'?: Linter.RuleEntry<SonarjsMaxLines>;
  /**
   * Functions should not have too many lines of code
   * @see https://sonarsource.github.io/rspec/#/rspec/S138/javascript
   */
  'sonarjs/max-lines-per-function'?: Linter.RuleEntry<SonarjsMaxLinesPerFunction>;
  /**
   * "switch" statements should not have too many "case" clauses
   * @see https://sonarsource.github.io/rspec/#/rspec/S1479/javascript
   */
  'sonarjs/max-switch-cases'?: Linter.RuleEntry<SonarjsMaxSwitchCases>;
  /**
   * Union types should not have too many elements
   * @see https://sonarsource.github.io/rspec/#/rspec/S4622/javascript
   */
  'sonarjs/max-union-size'?: Linter.RuleEntry<SonarjsMaxUnionSize>;
  /**
   * Lodash and Underscore.js `memoize` calls on functions with multiple parameters should use an explicit cache key function
   * @see https://sonarsource.github.io/rspec/#/rspec/S8932/javascript
   */
  'sonarjs/memoize-cache-key'?: Linter.RuleEntry<[]>;
  /**
   * "for" loop increment clauses should modify the loops' counters
   * @see https://sonarsource.github.io/rspec/#/rspec/S1994/javascript
   */
  'sonarjs/misplaced-loop-counter'?: Linter.RuleEntry<[]>;
  /**
   * Control flow statements "if", "for", "while", "switch" and "try" should not be nested too deeply
   * @see https://sonarsource.github.io/rspec/#/rspec/S134/javascript
   */
  'sonarjs/nested-control-flow'?: Linter.RuleEntry<SonarjsNestedControlFlow>;
  /**
   * "new" should only be used with functions and classes
   * @see https://sonarsource.github.io/rspec/#/rspec/S2999/javascript
   */
  'sonarjs/new-operator-misuse'?: Linter.RuleEntry<SonarjsNewOperatorMisuse>;
  /**
   * All branches in a conditional structure should not have exactly the same implementation
   * @see https://sonarsource.github.io/rspec/#/rspec/S3923/javascript
   */
  'sonarjs/no-all-duplicated-branches'?: Linter.RuleEntry<[]>;
  /**
   * "Array.prototype.sort()" and "Array.prototype.toSorted()" should use a compare function
   * @see https://sonarsource.github.io/rspec/#/rspec/S2871/javascript
   */
  'sonarjs/no-alphabetical-sort'?: Linter.RuleEntry<[]>;
  /**
   * Angular built-in sanitization should not be disabled
   * @see https://sonarsource.github.io/rspec/#/rspec/S6268/javascript
   */
  'sonarjs/no-angular-bypass-sanitization'?: Linter.RuleEntry<[]>;
  /**
   * "delete" should not be used on arrays
   * @see https://sonarsource.github.io/rspec/#/rspec/S2870/javascript
   */
  'sonarjs/no-array-delete'?: Linter.RuleEntry<[]>;
  /**
   * Array indexes should be numeric
   * @see https://sonarsource.github.io/rspec/#/rspec/S3579/javascript
   */
  'sonarjs/no-associative-arrays'?: Linter.RuleEntry<[]>;
  /**
   * Constructors should not contain asynchronous operations
   * @see https://sonarsource.github.io/rspec/#/rspec/S7059/javascript
   */
  'sonarjs/no-async-constructor'?: Linter.RuleEntry<[]>;
  /**
   * Built-in objects should not be overridden
   * @see https://sonarsource.github.io/rspec/#/rspec/S2424/javascript
   */
  'sonarjs/no-built-in-override'?: Linter.RuleEntry<[]>;
  /**
   * "switch" statements should not contain non-case labels
   * @see https://sonarsource.github.io/rspec/#/rspec/S1219/javascript
   */
  'sonarjs/no-case-label-in-switch'?: Linter.RuleEntry<[]>;
  /**
   * Clear-text protocols should not be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S5332/javascript
   */
  'sonarjs/no-clear-text-protocols'?: Linter.RuleEntry<[]>;
  /**
   * Tests should not execute any code after "done()" is called
   * @see https://sonarsource.github.io/rspec/#/rspec/S6079/javascript
   */
  'sonarjs/no-code-after-done'?: Linter.RuleEntry<[]>;
  /**
   * Mergeable "if" statements should be combined
   * @see https://sonarsource.github.io/rspec/#/rspec/S1066/javascript
   */
  'sonarjs/no-collapsible-if'?: Linter.RuleEntry<[]>;
  /**
   * Collection size and array length comparisons should make sense
   * @see https://sonarsource.github.io/rspec/#/rspec/S3981/javascript
   */
  'sonarjs/no-collection-size-mischeck'?: Linter.RuleEntry<[]>;
  /**
   * Sections of code should not be commented out
   * @see https://sonarsource.github.io/rspec/#/rspec/S125/javascript
   */
  'sonarjs/no-commented-code'?: Linter.RuleEntry<[]>;
  /**
   * Regular expressions should not contain control characters
   * @see https://sonarsource.github.io/rspec/#/rspec/S6324/javascript
   */
  'sonarjs/no-control-regex'?: Linter.RuleEntry<[]>;
  /**
   * Unused assignments should be removed
   * @see https://sonarsource.github.io/rspec/#/rspec/S1854/javascript
   */
  'sonarjs/no-dead-store'?: Linter.RuleEntry<[]>;
  /**
   * UI test debug commands should not be committed to version control
   * @see https://sonarsource.github.io/rspec/#/rspec/S8959/javascript
   */
  'sonarjs/no-debug-commands-in-ui-tests'?: Linter.RuleEntry<[]>;
  /**
   * Default imports from modular utility libraries should not be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S8927/javascript
   */
  'sonarjs/no-default-utility-imports'?: Linter.RuleEntry<[]>;
  /**
   * "delete" should be used only with object properties
   * @see https://sonarsource.github.io/rspec/#/rspec/S3001/javascript
   */
  'sonarjs/no-delete-var'?: Linter.RuleEntry<[]>;
  /**
   * Union and intersection types should not include duplicated constituents
   * @see https://sonarsource.github.io/rspec/#/rspec/S4621/javascript
   */
  'sonarjs/no-duplicate-in-composite'?: Linter.RuleEntry<[]>;
  /**
   * String literals should not be duplicated
   * @see https://sonarsource.github.io/rspec/#/rspec/S1192/javascript
   */
  'sonarjs/no-duplicate-string'?: Linter.RuleEntry<SonarjsNoDuplicateString>;
  /**
   * Test titles should be unique within the same suite
   * @see https://sonarsource.github.io/rspec/#/rspec/S8754/javascript
   */
  'sonarjs/no-duplicate-test-title'?: Linter.RuleEntry<[]>;
  /**
   * Two branches in a conditional structure should not have exactly the same implementation
   * @see https://sonarsource.github.io/rspec/#/rspec/S1871/javascript
   */
  'sonarjs/no-duplicated-branches'?: Linter.RuleEntry<[]>;
  /**
   * Collection elements should not be replaced unconditionally
   * @see https://sonarsource.github.io/rspec/#/rspec/S4143/javascript
   */
  'sonarjs/no-element-overwrite'?: Linter.RuleEntry<[]>;
  /**
   * Reluctant quantifiers in regular expressions should be followed by an expression that can't match the empty string
   * @see https://sonarsource.github.io/rspec/#/rspec/S6019/javascript
   */
  'sonarjs/no-empty-after-reluctant'?: Linter.RuleEntry<[]>;
  /**
   * Alternation in regular expressions should not contain empty alternatives
   * @see https://sonarsource.github.io/rspec/#/rspec/S6323/javascript
   */
  'sonarjs/no-empty-alternatives'?: Linter.RuleEntry<[]>;
  /**
   * Empty character classes should not be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S2639/javascript
   */
  'sonarjs/no-empty-character-class'?: Linter.RuleEntry<[]>;
  /**
   * Empty collections should not be accessed or iterated
   * @see https://sonarsource.github.io/rspec/#/rspec/S4158/javascript
   */
  'sonarjs/no-empty-collection'?: Linter.RuleEntry<[]>;
  /**
   * Regular expressions should not contain empty groups
   * @see https://sonarsource.github.io/rspec/#/rspec/S6331/javascript
   */
  'sonarjs/no-empty-group'?: Linter.RuleEntry<[]>;
  /**
   * Test files should contain at least one test case
   * @see https://sonarsource.github.io/rspec/#/rspec/S2187/javascript
   */
  'sonarjs/no-empty-test-file'?: Linter.RuleEntry<[]>;
  /**
   * Test and suite titles should not be empty or whitespace-only
   * @see https://sonarsource.github.io/rspec/#/rspec/S8781/javascript
   */
  'sonarjs/no-empty-test-title'?: Linter.RuleEntry<[]>;
  /**
   * Equality operators should not be used in "for" loop termination conditions
   * @see https://sonarsource.github.io/rspec/#/rspec/S888/javascript
   */
  'sonarjs/no-equals-in-for-termination'?: Linter.RuleEntry<[]>;
  /**
   * Exclusive tests should not be committed to version control
   * @see https://sonarsource.github.io/rspec/#/rspec/S6426/javascript
   */
  'sonarjs/no-exclusive-tests'?: Linter.RuleEntry<[]>;
  /**
   * Function calls should not pass extra arguments
   * @see https://sonarsource.github.io/rspec/#/rspec/S930/javascript
   */
  'sonarjs/no-extra-arguments'?: Linter.RuleEntry<[]>;
  /**
   * Switch cases should end with an unconditional "break" statement
   * @see https://sonarsource.github.io/rspec/#/rspec/S128/javascript
   */
  'sonarjs/no-fallthrough'?: Linter.RuleEntry<[]>;
  /**
   * Fixed waits should not be used in tests
   * @see https://sonarsource.github.io/rspec/#/rspec/S2925/javascript
   */
  'sonarjs/no-fixed-wait-in-tests'?: Linter.RuleEntry<[]>;
  /**
   * Floating point numbers should not be tested for equality
   * @see https://sonarsource.github.io/rspec/#/rspec/S1244/javascript
   */
  'sonarjs/no-floating-point-equality'?: Linter.RuleEntry<[]>;
  /**
   * "for in" should not be used with iterables
   * @see https://sonarsource.github.io/rspec/#/rspec/S4139/javascript
   */
  'sonarjs/no-for-in-iterable'?: Linter.RuleEntry<[]>;
  /**
   * Forced browser interactions should not bypass actionability checks
   * @see https://sonarsource.github.io/rspec/#/rspec/S8783/javascript
   */
  'sonarjs/no-forced-browser-interaction'?: Linter.RuleEntry<[]>;
  /**
   * Function declarations should not be made within blocks
   * @see https://sonarsource.github.io/rspec/#/rspec/S1530/javascript
   */
  'sonarjs/no-function-declaration-in-block'?: Linter.RuleEntry<[]>;
  /**
   * The global "this" object should not be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S2990/javascript
   */
  'sonarjs/no-global-this'?: Linter.RuleEntry<[]>;
  /**
   * Special identifiers should not be bound or assigned
   * @see https://sonarsource.github.io/rspec/#/rspec/S2137/javascript
   */
  'sonarjs/no-globals-shadowing'?: Linter.RuleEntry<[]>;
  /**
   * Boolean expressions should not be gratuitous
   * @see https://sonarsource.github.io/rspec/#/rspec/S2589/javascript
   */
  'sonarjs/no-gratuitous-expressions'?: Linter.RuleEntry<[]>;
  /**
   * IP addresses should not be hardcoded
   * @see https://sonarsource.github.io/rspec/#/rspec/S1313/javascript
   */
  'sonarjs/no-hardcoded-ip'?: Linter.RuleEntry<[]>;
  /**
   * Credentials should not be hard-coded
   * @see https://sonarsource.github.io/rspec/#/rspec/S2068/javascript
   */
  'sonarjs/no-hardcoded-passwords'?: Linter.RuleEntry<SonarjsNoHardcodedPasswords>;
  /**
   * Secrets should not be hard-coded
   * @see https://sonarsource.github.io/rspec/#/rspec/S6418/javascript
   */
  'sonarjs/no-hardcoded-secrets'?: Linter.RuleEntry<SonarjsNoHardcodedSecrets>;
  /**
   * React's useState hook should not be used directly in the render function or body of a component
   * @see https://sonarsource.github.io/rspec/#/rspec/S6442/javascript
   */
  'sonarjs/no-hook-setter-in-body'?: Linter.RuleEntry<[]>;
  /**
   * "if/else if" chains and "switch" cases should not have the same condition
   * @see https://sonarsource.github.io/rspec/#/rspec/S1862/javascript
   */
  'sonarjs/no-identical-conditions'?: Linter.RuleEntry<[]>;
  /**
   * Identical expressions should not be used on both sides of a binary operator
   * @see https://sonarsource.github.io/rspec/#/rspec/S1764/javascript
   */
  'sonarjs/no-identical-expressions'?: Linter.RuleEntry<[]>;
  /**
   * Functions should not have identical implementations
   * @see https://sonarsource.github.io/rspec/#/rspec/S4144/javascript
   */
  'sonarjs/no-identical-functions'?: Linter.RuleEntry<SonarjsNoIdenticalFunctions>;
  /**
   * Exceptions should not be ignored
   * @see https://sonarsource.github.io/rspec/#/rspec/S2486/javascript
   */
  'sonarjs/no-ignored-exceptions'?: Linter.RuleEntry<[]>;
  /**
   * Return values from functions without side effects should not be ignored
   * @see https://sonarsource.github.io/rspec/#/rspec/S2201/javascript
   */
  'sonarjs/no-ignored-return'?: Linter.RuleEntry<[]>;
  /**
   * Dependencies should be explicit
   * @see https://sonarsource.github.io/rspec/#/rspec/S4328/javascript
   */
  'sonarjs/no-implicit-dependencies'?: Linter.RuleEntry<SonarjsNoImplicitDependencies>;
  /**
   * Variables should be declared explicitly
   * @see https://sonarsource.github.io/rspec/#/rspec/S2703/javascript
   */
  'sonarjs/no-implicit-global'?: Linter.RuleEntry<[]>;
  /**
   * "in" should not be used on arrays
   * @see https://sonarsource.github.io/rspec/#/rspec/S4619/javascript
   */
  'sonarjs/no-in-misuse'?: Linter.RuleEntry<[]>;
  /**
   * Assertions comparing incompatible types should not be made
   * @see https://sonarsource.github.io/rspec/#/rspec/S5845/javascript
   */
  'sonarjs/no-incompatible-assertion-types'?: Linter.RuleEntry<[]>;
  /**
   * Assertions should be complete
   * @see https://sonarsource.github.io/rspec/#/rspec/S2970/javascript
   */
  'sonarjs/no-incomplete-assertions'?: Linter.RuleEntry<[]>;
  /**
   * Functions should use "return" consistently
   * @see https://sonarsource.github.io/rspec/#/rspec/S3801/javascript
   */
  'sonarjs/no-inconsistent-returns'?: Linter.RuleEntry<[]>;
  /**
   * Strings and non-strings should not be added
   * @see https://sonarsource.github.io/rspec/#/rspec/S3402/javascript
   */
  'sonarjs/no-incorrect-string-concat'?: Linter.RuleEntry<[]>;
  /**
   * Users should not use internal APIs
   * @see https://sonarsource.github.io/rspec/#/rspec/S6627/javascript
   */
  'sonarjs/no-internal-api-use'?: Linter.RuleEntry<[]>;
  /**
   * Inline snapshots should not contain interpolations
   * @see https://sonarsource.github.io/rspec/#/rspec/S8967/javascript
   */
  'sonarjs/no-interpolation-in-inline-snapshots'?: Linter.RuleEntry<[]>;
  /**
   * Sensitive permissions should not be requested unnecessarily
   * @see https://sonarsource.github.io/rspec/#/rspec/S5604/javascript
   * @deprecated
   */
  'sonarjs/no-intrusive-permissions'?: Linter.RuleEntry<SonarjsNoIntrusivePermissions>;
  /**
   * Regular expressions should be syntactically valid
   * @see https://sonarsource.github.io/rspec/#/rspec/S5856/javascript
   */
  'sonarjs/no-invalid-regexp'?: Linter.RuleEntry<[]>;
  /**
   * Function returns should not be invariant
   * @see https://sonarsource.github.io/rspec/#/rspec/S3516/javascript
   */
  'sonarjs/no-invariant-returns'?: Linter.RuleEntry<[]>;
  /**
   * Boolean checks should not be inverted
   * @see https://sonarsource.github.io/rspec/#/rspec/S1940/javascript
   */
  'sonarjs/no-inverted-boolean-check'?: Linter.RuleEntry<[]>;
  /**
   * Client IP address should not be forwarded to proxies
   * @see https://sonarsource.github.io/rspec/#/rspec/S5759/javascript
   * @deprecated
   */
  'sonarjs/no-ip-forward'?: Linter.RuleEntry<[]>;
  /**
   * Labels should not be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S1119/javascript
   */
  'sonarjs/no-labels'?: Linter.RuleEntry<[]>;
  /**
   * Literals should not be used as functions
   * @see https://sonarsource.github.io/rspec/#/rspec/S6958/javascript
   */
  'sonarjs/no-literal-call'?: Linter.RuleEntry<[]>;
  /**
   * Browsers should not be allowed to perform MIME type sniffing
   * @see https://sonarsource.github.io/rspec/#/rspec/S5734/javascript
   */
  'sonarjs/no-mime-sniff'?: Linter.RuleEntry<[]>;
  /**
   * Array-mutating methods should not be used misleadingly
   * @see https://sonarsource.github.io/rspec/#/rspec/S4043/javascript
   */
  'sonarjs/no-misleading-array-reverse'?: Linter.RuleEntry<[]>;
  /**
   * Unicode Grapheme Clusters should be avoided inside regex character classes
   * @see https://sonarsource.github.io/rspec/#/rspec/S5868/javascript
   */
  'sonarjs/no-misleading-character-class'?: Linter.RuleEntry<[]>;
  /**
   * Test and hook callbacks should use a single completion style
   * @see https://sonarsource.github.io/rspec/#/rspec/S8960/javascript
   */
  'sonarjs/no-mixed-completion-style'?: Linter.RuleEntry<[]>;
  /**
   * Content Security Policy should block mixed-content
   * @see https://sonarsource.github.io/rspec/#/rspec/S5730/javascript
   * @deprecated
   */
  'sonarjs/no-mixed-content'?: Linter.RuleEntry<[]>;
  /**
   * Assignments should not be made from within sub-expressions
   * @see https://sonarsource.github.io/rspec/#/rspec/S1121/javascript
   */
  'sonarjs/no-nested-assignment'?: Linter.RuleEntry<[]>;
  /**
   * Ternary operators should not be nested
   * @see https://sonarsource.github.io/rspec/#/rspec/S3358/javascript
   */
  'sonarjs/no-nested-conditional'?: Linter.RuleEntry<[]>;
  /**
   * Functions should not be nested too deeply
   * @see https://sonarsource.github.io/rspec/#/rspec/S2004/javascript
   */
  'sonarjs/no-nested-functions'?: Linter.RuleEntry<SonarjsNoNestedFunctions>;
  /**
   * Increment (++) and decrement (--) operators should not be used in a method call or mixed with other operators in an expression
   * @see https://sonarsource.github.io/rspec/#/rspec/S881/javascript
   */
  'sonarjs/no-nested-incdec'?: Linter.RuleEntry<[]>;
  /**
   * "switch" statements should not be nested
   * @see https://sonarsource.github.io/rspec/#/rspec/S1821/javascript
   */
  'sonarjs/no-nested-switch'?: Linter.RuleEntry<[]>;
  /**
   * Template literals should not be nested
   * @see https://sonarsource.github.io/rspec/#/rspec/S4624/javascript
   */
  'sonarjs/no-nested-template-literals'?: Linter.RuleEntry<[]>;
  /**
   * OS commands should not rely on PATH resolution
   * @see https://sonarsource.github.io/rspec/#/rspec/S4036/javascript
   */
  'sonarjs/no-os-command-from-path'?: Linter.RuleEntry<[]>;
  /**
   * Initial values of parameters, caught exceptions, and loop variables should not be ignored
   * @see https://sonarsource.github.io/rspec/#/rspec/S1226/javascript
   */
  'sonarjs/no-parameter-reassignment'?: Linter.RuleEntry<[]>;
  /**
   * Wrapper objects should not be used for primitive types
   * @see https://sonarsource.github.io/rspec/#/rspec/S1533/javascript
   */
  'sonarjs/no-primitive-wrappers'?: Linter.RuleEntry<[]>;
  /**
   * Assignments should not be redundant
   * @see https://sonarsource.github.io/rspec/#/rspec/S4165/javascript
   */
  'sonarjs/no-redundant-assignments'?: Linter.RuleEntry<[]>;
  /**
   * Boolean literals should not be used in comparisons
   * @see https://sonarsource.github.io/rspec/#/rspec/S1125/javascript
   */
  'sonarjs/no-redundant-boolean'?: Linter.RuleEntry<[]>;
  /**
   * Jump statements should not be redundant
   * @see https://sonarsource.github.io/rspec/#/rspec/S3626/javascript
   */
  'sonarjs/no-redundant-jump'?: Linter.RuleEntry<[]>;
  /**
   * Optional property declarations should not use both '?' and 'undefined' syntax
   * @see https://sonarsource.github.io/rspec/#/rspec/S4782/javascript
   */
  'sonarjs/no-redundant-optional'?: Linter.RuleEntry<[]>;
  /**
   * Unnecessary parentheses should be removed
   * @see https://sonarsource.github.io/rspec/#/rspec/S1110/javascript
   * @deprecated
   */
  'sonarjs/no-redundant-parentheses'?: Linter.RuleEntry<[]>;
  /**
   * Variables should be defined before being used
   * @see https://sonarsource.github.io/rspec/#/rspec/S3827/javascript
   */
  'sonarjs/no-reference-error'?: Linter.RuleEntry<[]>;
  /**
   * HTTP Referrer-Policy should not be set to an unsafe value
   * @see https://sonarsource.github.io/rspec/#/rspec/S5736/javascript
   */
  'sonarjs/no-referrer-policy'?: Linter.RuleEntry<[]>;
  /**
   * Regular expressions should not contain multiple spaces
   * @see https://sonarsource.github.io/rspec/#/rspec/S6326/javascript
   */
  'sonarjs/no-regex-spaces'?: Linter.RuleEntry<[]>;
  /**
   * "import" should be used to include external code
   * @see https://sonarsource.github.io/rspec/#/rspec/S3533/javascript
   */
  'sonarjs/no-require-or-define'?: Linter.RuleEntry<[]>;
  /**
   * Primitive return types should be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S4324/javascript
   */
  'sonarjs/no-return-type-any'?: Linter.RuleEntry<[]>;
  /**
   * Assertions should not be given twice the same argument
   * @see https://sonarsource.github.io/rspec/#/rspec/S5863/javascript
   */
  'sonarjs/no-same-argument-assert'?: Linter.RuleEntry<[]>;
  /**
   * Conditionals should start on new lines
   * @see https://sonarsource.github.io/rspec/#/rspec/S3972/javascript
   */
  'sonarjs/no-same-line-conditional'?: Linter.RuleEntry<[]>;
  /**
   * Methods should not contain selector parameters
   * @see https://sonarsource.github.io/rspec/#/rspec/S2301/javascript
   */
  'sonarjs/no-selector-parameter'?: Linter.RuleEntry<[]>;
  /**
   * Static Assets should not serve session cookies
   * @see https://sonarsource.github.io/rspec/#/rspec/S8441/javascript
   */
  'sonarjs/no-session-cookies-on-static-assets'?: Linter.RuleEntry<[]>;
  /**
   * Tests should not be skipped without providing a reason
   * @see https://sonarsource.github.io/rspec/#/rspec/S1607/javascript
   */
  'sonarjs/no-skipped-tests'?: Linter.RuleEntry<[]>;
  /**
   * "if" statements should be preferred over "switch" when simpler
   * @see https://sonarsource.github.io/rspec/#/rspec/S1301/javascript
   */
  'sonarjs/no-small-switch'?: Linter.RuleEntry<[]>;
  /**
   * Track uses of "NOSONAR" comments
   * @see https://sonarsource.github.io/rspec/#/rspec/S1291/javascript
   */
  'sonarjs/no-sonar-comments'?: Linter.RuleEntry<[]>;
  /**
   * Tabulation characters should not be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S105/javascript
   * @deprecated
   */
  'sonarjs/no-tab'?: Linter.RuleEntry<[]>;
  /**
   * HTML "<table>" should not be used for layout purposes
   * @see https://sonarsource.github.io/rspec/#/rspec/S5257/javascript
   */
  'sonarjs/no-table-as-layout'?: Linter.RuleEntry<[]>;
  /**
   * Assertions should not be trivially true
   * @see https://sonarsource.github.io/rspec/#/rspec/S5914/javascript
   */
  'sonarjs/no-trivial-assertions'?: Linter.RuleEntry<[]>;
  /**
   * Promise rejections should not be caught by "try" blocks
   * @see https://sonarsource.github.io/rspec/#/rspec/S4822/javascript
   */
  'sonarjs/no-try-promise'?: Linter.RuleEntry<[]>;
  /**
   * "undefined" should not be passed as the value of optional parameters
   * @see https://sonarsource.github.io/rspec/#/rspec/S4623/javascript
   */
  'sonarjs/no-undefined-argument'?: Linter.RuleEntry<[]>;
  /**
   * "undefined" should not be assigned
   * @see https://sonarsource.github.io/rspec/#/rspec/S2138/javascript
   */
  'sonarjs/no-undefined-assignment'?: Linter.RuleEntry<[]>;
  /**
   * Multiline blocks should be enclosed in curly braces
   * @see https://sonarsource.github.io/rspec/#/rspec/S2681/javascript
   */
  'sonarjs/no-unenclosed-multiline-block'?: Linter.RuleEntry<[]>;
  /**
   * JSX list components keys should match up between renders
   * @see https://sonarsource.github.io/rspec/#/rspec/S6486/javascript
   */
  'sonarjs/no-uniq-key'?: Linter.RuleEntry<[]>;
  /**
   * Expanding archive files should not be done without controlling resource consumption
   * @see https://sonarsource.github.io/rspec/#/rspec/S5042/javascript
   * @deprecated
   */
  'sonarjs/no-unsafe-unzip'?: Linter.RuleEntry<[]>;
  /**
   * Errors should not be created without being thrown
   * @see https://sonarsource.github.io/rspec/#/rspec/S3984/javascript
   */
  'sonarjs/no-unthrown-error'?: Linter.RuleEntry<[]>;
  /**
   * Collection contents should be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S4030/javascript
   */
  'sonarjs/no-unused-collection'?: Linter.RuleEntry<[]>;
  /**
   * Unused function parameters should be removed
   * @see https://sonarsource.github.io/rspec/#/rspec/S1172/javascript
   */
  'sonarjs/no-unused-function-argument'?: Linter.RuleEntry<[]>;
  /**
   * Unused local variables and functions should be removed
   * @see https://sonarsource.github.io/rspec/#/rspec/S1481/javascript
   */
  'sonarjs/no-unused-vars'?: Linter.RuleEntry<[]>;
  /**
   * The return value of void functions should not be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S3699/javascript
   */
  'sonarjs/no-use-of-empty-return-value'?: Linter.RuleEntry<[]>;
  /**
   * "catch" clauses should do more than rethrow
   * @see https://sonarsource.github.io/rspec/#/rspec/S2737/javascript
   */
  'sonarjs/no-useless-catch'?: Linter.RuleEntry<[]>;
  /**
   * Values should not be uselessly incremented
   * @see https://sonarsource.github.io/rspec/#/rspec/S2123/javascript
   */
  'sonarjs/no-useless-increment'?: Linter.RuleEntry<[]>;
  /**
   * Type intersections should use meaningful types
   * @see https://sonarsource.github.io/rspec/#/rspec/S4335/javascript
   */
  'sonarjs/no-useless-intersection'?: Linter.RuleEntry<[]>;
  /**
   * React state setter function should not be called with its matching state variable
   * @see https://sonarsource.github.io/rspec/#/rspec/S6443/javascript
   */
  'sonarjs/no-useless-react-setstate'?: Linter.RuleEntry<[]>;
  /**
   * Variables declared with "var" should be declared before they are used
   * @see https://sonarsource.github.io/rspec/#/rspec/S1526/javascript
   */
  'sonarjs/no-variable-usage-before-declaration'?: Linter.RuleEntry<[]>;
  /**
   * Cipher algorithms should be robust
   * @see https://sonarsource.github.io/rspec/#/rspec/S5547/javascript
   */
  'sonarjs/no-weak-cipher'?: Linter.RuleEntry<[]>;
  /**
   * Cryptographic keys should be robust
   * @see https://sonarsource.github.io/rspec/#/rspec/S4426/javascript
   */
  'sonarjs/no-weak-keys'?: Linter.RuleEntry<[]>;
  /**
   * Wildcard imports should not be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S2208/javascript
   */
  'sonarjs/no-wildcard-import'?: Linter.RuleEntry<[]>;
  /**
   * Non-existent operators '=+', '=-' and '=!' should not be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S2757/javascript
   */
  'sonarjs/non-existent-operator'?: Linter.RuleEntry<[]>;
  /**
   * Arithmetic operators should only have numbers as operands
   * @see https://sonarsource.github.io/rspec/#/rspec/S3760/javascript
   */
  'sonarjs/non-number-in-arithmetic-expression'?: Linter.RuleEntry<[]>;
  /**
   * Properties of variables with "null" or "undefined" values should not be accessed
   * @see https://sonarsource.github.io/rspec/#/rspec/S2259/javascript
   */
  'sonarjs/null-dereference'?: Linter.RuleEntry<[]>;
  /**
   * "<object>" tags should provide an alternative content
   * @see https://sonarsource.github.io/rspec/#/rspec/S5264/javascript
   */
  'sonarjs/object-alt-content'?: Linter.RuleEntry<[]>;
  /**
   * Arithmetic operations should not result in "NaN"
   * @see https://sonarsource.github.io/rspec/#/rspec/S3757/javascript
   */
  'sonarjs/operation-returning-nan'?: Linter.RuleEntry<[]>;
  /**
   * OS commands should not be executed using a shell interpreter
   * @see https://sonarsource.github.io/rspec/#/rspec/S4721/javascript
   * @deprecated
   */
  'sonarjs/os-command'?: Linter.RuleEntry<[]>;
  /**
   * Similar tests should be grouped in a single Parameterized test
   * @see https://sonarsource.github.io/rspec/#/rspec/S5976/javascript
   */
  'sonarjs/parameterized-tests'?: Linter.RuleEntry<[]>;
  /**
   * Origins should be verified during cross-origin communications
   * @see https://sonarsource.github.io/rspec/#/rspec/S2819/javascript
   */
  'sonarjs/post-message'?: Linter.RuleEntry<[]>;
  /**
   * "default" clauses should be last
   * @see https://sonarsource.github.io/rspec/#/rspec/S4524/javascript
   */
  'sonarjs/prefer-default-last'?: Linter.RuleEntry<[]>;
  /**
   * Local variables should not be declared and then immediately returned or thrown
   * @see https://sonarsource.github.io/rspec/#/rspec/S1488/javascript
   */
  'sonarjs/prefer-immediate-return'?: Linter.RuleEntry<[]>;
  /**
   * Native APIs should be preferred over Lodash and Underscore.js methods
   * @see https://sonarsource.github.io/rspec/#/rspec/S8907/javascript
   */
  'sonarjs/prefer-native-lodash-alternative'?: Linter.RuleEntry<[]>;
  /**
   * Object literal syntax should be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S2428/javascript
   */
  'sonarjs/prefer-object-literal'?: Linter.RuleEntry<[]>;
  /**
   * Shorthand promises should be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S4634/javascript
   */
  'sonarjs/prefer-promise-shorthand'?: Linter.RuleEntry<[]>;
  /**
   * React props should be read-only
   * @see https://sonarsource.github.io/rspec/#/rspec/S6759/javascript
   */
  'sonarjs/prefer-read-only-props'?: Linter.RuleEntry<[]>;
  /**
   * "RegExp.exec()" should be preferred over "String.match()"
   * @see https://sonarsource.github.io/rspec/#/rspec/S6594/javascript
   */
  'sonarjs/prefer-regexp-exec'?: Linter.RuleEntry<[]>;
  /**
   * Return of boolean expressions should not be wrapped into an "if-then-else" statement
   * @see https://sonarsource.github.io/rspec/#/rspec/S1126/javascript
   */
  'sonarjs/prefer-single-boolean-return'?: Linter.RuleEntry<[]>;
  /**
   * The most specific assertion should be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S5906/javascript
   */
  'sonarjs/prefer-specific-assertions'?: Linter.RuleEntry<[]>;
  /**
   * Type predicates should be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S4322/javascript
   */
  'sonarjs/prefer-type-guard'?: Linter.RuleEntry<[]>;
  /**
   * A "while" loop should be used instead of a "for" loop
   * @see https://sonarsource.github.io/rspec/#/rspec/S1264/javascript
   */
  'sonarjs/prefer-while'?: Linter.RuleEntry<[]>;
  /**
   * Debugging features should not be enabled in production
   * @see https://sonarsource.github.io/rspec/#/rspec/S4507/javascript
   */
  'sonarjs/production-debug'?: Linter.RuleEntry<[]>;
  /**
   * Pseudorandom number generators (PRNGs) should not be used in security contexts
   * @see https://sonarsource.github.io/rspec/#/rspec/S2245/javascript
   */
  'sonarjs/pseudo-random'?: Linter.RuleEntry<[]>;
  /**
   * Public "static" fields should be read-only
   * @see https://sonarsource.github.io/rspec/#/rspec/S1444/javascript
   */
  'sonarjs/public-static-readonly'?: Linter.RuleEntry<[]>;
  /**
   * Temporary files should not be created in publicly writable directories
   * @see https://sonarsource.github.io/rspec/#/rspec/S5443/javascript
   */
  'sonarjs/publicly-writable-directories'?: Linter.RuleEntry<[]>;
  /**
   * "Array.reduce()" calls should include an initial value
   * @see https://sonarsource.github.io/rspec/#/rspec/S6959/javascript
   */
  'sonarjs/reduce-initial-value'?: Linter.RuleEntry<[]>;
  /**
   * Redundant type aliases should not be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S6564/javascript
   */
  'sonarjs/redundant-type-aliases'?: Linter.RuleEntry<[]>;
  /**
   * Regular expressions should not be too complicated
   * @see https://sonarsource.github.io/rspec/#/rspec/S5843/javascript
   */
  'sonarjs/regex-complexity'?: Linter.RuleEntry<SonarjsRegexComplexity>;
  /**
   * Wallet phrases should not be hard-coded
   * @see https://sonarsource.github.io/rspec/#/rspec/S7639/javascript
   */
  'sonarjs/review-blockchain-mnemonic'?: Linter.RuleEntry<[]>;
  /**
   * A new session should be created during user authentication
   * @see https://sonarsource.github.io/rspec/#/rspec/S5876/javascript
   */
  'sonarjs/session-regeneration'?: Linter.RuleEntry<[]>;
  /**
   * Shorthand object properties should be grouped at the beginning or end of an object declaration
   * @see https://sonarsource.github.io/rspec/#/rspec/S3499/javascript
   */
  'sonarjs/shorthand-property-grouping'?: Linter.RuleEntry<[]>;
  /**
   * Character classes in regular expressions should not contain only one character
   * @see https://sonarsource.github.io/rspec/#/rspec/S6397/javascript
   */
  'sonarjs/single-char-in-character-classes'?: Linter.RuleEntry<[]>;
  /**
   * Single-character alternations in regular expressions should be replaced with character classes
   * @see https://sonarsource.github.io/rspec/#/rspec/S6035/javascript
   */
  'sonarjs/single-character-alternation'?: Linter.RuleEntry<[]>;
  /**
   * Regular expressions should not cause catastrophic backtracking
   * @see https://sonarsource.github.io/rspec/#/rspec/S5852/javascript
   */
  'sonarjs/slow-regex'?: Linter.RuleEntry<[]>;
  /**
   * SQL queries should not be dynamically formatted
   * @see https://sonarsource.github.io/rspec/#/rspec/S2077/javascript
   */
  'sonarjs/sql-queries'?: Linter.RuleEntry<[]>;
  /**
   * Tests should be stable
   * @see https://sonarsource.github.io/rspec/#/rspec/S5973/javascript
   */
  'sonarjs/stable-tests'?: Linter.RuleEntry<[]>;
  /**
   * Regular expressions with the global flag should be used with caution
   * @see https://sonarsource.github.io/rspec/#/rspec/S6351/javascript
   */
  'sonarjs/stateful-regex'?: Linter.RuleEntry<[]>;
  /**
   * HTTP Strict-Transport-Security policy should not be disabled
   * @see https://sonarsource.github.io/rspec/#/rspec/S5739/javascript
   */
  'sonarjs/strict-transport-security'?: Linter.RuleEntry<[]>;
  /**
   * Comparison operators should not be used with strings
   * @see https://sonarsource.github.io/rspec/#/rspec/S3003/javascript
   */
  'sonarjs/strings-comparison'?: Linter.RuleEntry<[]>;
  /**
   * Regular expressions should not cause non-linear backtracking
   * @see https://sonarsource.github.io/rspec/#/rspec/S8786/javascript
   */
  'sonarjs/super-linear-regex'?: Linter.RuleEntry<[]>;
  /**
   * Tests should not be registered asynchronously in suite callbacks
   * @see https://sonarsource.github.io/rspec/#/rspec/S8785/javascript
   */
  'sonarjs/synchronous-suite-callback'?: Linter.RuleEntry<[]>;
  /**
   * Tables should have headers
   * @see https://sonarsource.github.io/rspec/#/rspec/S5256/javascript
   */
  'sonarjs/table-header'?: Linter.RuleEntry<[]>;
  /**
   * Table cells should reference their headers
   * @see https://sonarsource.github.io/rspec/#/rspec/S5260/javascript
   */
  'sonarjs/table-header-reference'?: Linter.RuleEntry<[]>;
  /**
   * Tests should check which exception is thrown
   * @see https://sonarsource.github.io/rspec/#/rspec/S5958/javascript
   */
  'sonarjs/test-check-exception'?: Linter.RuleEntry<[]>;
  /**
   * Track uses of "TODO" tags
   * @see https://sonarsource.github.io/rspec/#/rspec/S1135/javascript
   */
  'sonarjs/todo-tag'?: Linter.RuleEntry<[]>;
  /**
   * Loops should not contain more than a single "break" or "continue" statement
   * @see https://sonarsource.github.io/rspec/#/rspec/S135/javascript
   */
  'sonarjs/too-many-break-or-continue-in-loop'?: Linter.RuleEntry<[]>;
  /**
   * Regular expressions using Unicode character classes or property escapes should enable the unicode flag
   * @see https://sonarsource.github.io/rspec/#/rspec/S5867/javascript
   */
  'sonarjs/unicode-aware-regex'?: Linter.RuleEntry<[]>;
  /**
   * Unnecessary imports should be removed
   * @see https://sonarsource.github.io/rspec/#/rspec/S1128/javascript
   */
  'sonarjs/unused-import'?: Linter.RuleEntry<[]>;
  /**
   * Names of regular expressions named groups should be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S5860/javascript
   */
  'sonarjs/unused-named-groups'?: Linter.RuleEntry<[]>;
  /**
   * Server certificates should be verified during SSL/TLS connections
   * @see https://sonarsource.github.io/rspec/#/rspec/S4830/javascript
   */
  'sonarjs/unverified-certificate'?: Linter.RuleEntry<[]>;
  /**
   * Server hostnames should be verified during SSL/TLS connections
   * @see https://sonarsource.github.io/rspec/#/rspec/S5527/javascript
   */
  'sonarjs/unverified-hostname'?: Linter.RuleEntry<[]>;
  /**
   * "const" variables should not be reassigned
   * @see https://sonarsource.github.io/rspec/#/rspec/S3500/javascript
   */
  'sonarjs/updated-const-var'?: Linter.RuleEntry<[]>;
  /**
   * Loop counters should not be assigned within the loop body
   * @see https://sonarsource.github.io/rspec/#/rspec/S2310/javascript
   */
  'sonarjs/updated-loop-counter'?: Linter.RuleEntry<[]>;
  /**
   * Type aliases should be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S4323/javascript
   */
  'sonarjs/use-type-alias'?: Linter.RuleEntry<[]>;
  /**
   * Results of operations on strings should not be ignored
   * @see https://sonarsource.github.io/rspec/#/rspec/S1154/javascript
   * @deprecated
   */
  'sonarjs/useless-string-operation'?: Linter.RuleEntry<[]>;
  /**
   * Values not convertible to numbers should not be used in numeric comparisons
   * @see https://sonarsource.github.io/rspec/#/rspec/S3758/javascript
   */
  'sonarjs/values-not-convertible-to-numbers'?: Linter.RuleEntry<[]>;
  /**
   * Variable, property and parameter names should comply with a naming convention
   * @see https://sonarsource.github.io/rspec/#/rspec/S117/javascript
   */
  'sonarjs/variable-name'?: Linter.RuleEntry<SonarjsVariableName>;
  /**
   * "void" should not be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S3735/javascript
   */
  'sonarjs/void-use'?: Linter.RuleEntry<[]>;
  /**
   * Weak SSL/TLS protocols should not be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S4423/javascript
   */
  'sonarjs/weak-ssl'?: Linter.RuleEntry<[]>;
  /**
   * Web SQL databases should not be used
   * @see https://sonarsource.github.io/rspec/#/rspec/S2817/javascript
   * @deprecated
   */
  'sonarjs/web-sql-database'?: Linter.RuleEntry<[]>;
  /**
   * Web application technologies should not disclose version information
   * @see https://sonarsource.github.io/rspec/#/rspec/S5689/javascript
   */
  'sonarjs/x-powered-by'?: Linter.RuleEntry<[]>;
  /**
   * XML parsers should not be vulnerable to XXE attacks
   * @see https://sonarsource.github.io/rspec/#/rspec/S2755/javascript
   */
  'sonarjs/xml-parser-xxe'?: Linter.RuleEntry<[]>;
  /**
   * Interactions should be awaited
   * @see https://github.com/storybookjs/storybook/blob/next/code/lib/eslint-plugin/docs/rules/await-interactions.md
   */
  'storybook/await-interactions'?: Linter.RuleEntry<[]>;
  /**
   * Pass a context when invoking play function of another story
   * @see https://github.com/storybookjs/storybook/blob/next/code/lib/eslint-plugin/docs/rules/context-in-play-function.md
   */
  'storybook/context-in-play-function'?: Linter.RuleEntry<[]>;
  /**
   * The component property should be set
   * @see https://github.com/storybookjs/storybook/blob/next/code/lib/eslint-plugin/docs/rules/csf-component.md
   */
  'storybook/csf-component'?: Linter.RuleEntry<[]>;
  /**
   * Story files should have a default export
   * @see https://github.com/storybookjs/storybook/blob/next/code/lib/eslint-plugin/docs/rules/default-exports.md
   */
  'storybook/default-exports'?: Linter.RuleEntry<[]>;
  /**
   * Deprecated hierarchy separator in title property
   * @see https://github.com/storybookjs/storybook/blob/next/code/lib/eslint-plugin/docs/rules/hierarchy-separator.md
   */
  'storybook/hierarchy-separator'?: Linter.RuleEntry<[]>;
  /**
   * Meta should only have inline properties
   * @see https://github.com/storybookjs/storybook/blob/next/code/lib/eslint-plugin/docs/rules/meta-inline-properties.md
   */
  'storybook/meta-inline-properties'?: Linter.RuleEntry<StorybookMetaInlineProperties>;
  /**
   * Meta should use `satisfies Meta`
   * @see https://github.com/storybookjs/storybook/blob/next/code/lib/eslint-plugin/docs/rules/meta-satisfies-type.md
   */
  'storybook/meta-satisfies-type'?: Linter.RuleEntry<[]>;
  /**
   * A story should not have a redundant name property
   * @see https://github.com/storybookjs/storybook/blob/next/code/lib/eslint-plugin/docs/rules/no-redundant-story-name.md
   */
  'storybook/no-redundant-story-name'?: Linter.RuleEntry<[]>;
  /**
   * Do not import renderer packages directly in stories
   * @see https://github.com/storybookjs/storybook/blob/next/code/lib/eslint-plugin/docs/rules/no-renderer-packages.md
   */
  'storybook/no-renderer-packages'?: Linter.RuleEntry<[]>;
  /**
   * storiesOf is deprecated and should not be used
   * @see https://github.com/storybookjs/storybook/blob/next/code/lib/eslint-plugin/docs/rules/no-stories-of.md
   */
  'storybook/no-stories-of'?: Linter.RuleEntry<[]>;
  /**
   * Do not define a title in meta
   * @see https://github.com/storybookjs/storybook/blob/next/code/lib/eslint-plugin/docs/rules/no-title-property-in-meta.md
   */
  'storybook/no-title-property-in-meta'?: Linter.RuleEntry<[]>;
  /**
   * This rule identifies storybook addons that are invalid because they are either not installed or contain a typo in their name.
   * @see https://github.com/storybookjs/storybook/blob/next/code/lib/eslint-plugin/docs/rules/no-uninstalled-addons.md
   */
  'storybook/no-uninstalled-addons'?: Linter.RuleEntry<StorybookNoUninstalledAddons>;
  /**
   * Stories should use PascalCase
   * @see https://github.com/storybookjs/storybook/blob/next/code/lib/eslint-plugin/docs/rules/prefer-pascal-case.md
   */
  'storybook/prefer-pascal-case'?: Linter.RuleEntry<[]>;
  /**
   * A story file must contain at least one story export
   * @see https://github.com/storybookjs/storybook/blob/next/code/lib/eslint-plugin/docs/rules/story-exports.md
   */
  'storybook/story-exports'?: Linter.RuleEntry<[]>;
  /**
   * Use expect from `@storybook/test`, `storybook/test` or `@storybook/jest`
   * @see https://github.com/storybookjs/storybook/blob/next/code/lib/eslint-plugin/docs/rules/use-storybook-expect.md
   */
  'storybook/use-storybook-expect'?: Linter.RuleEntry<[]>;
  /**
   * Do not use testing-library directly on stories
   * @see https://github.com/storybookjs/storybook/blob/next/code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
   */
  'storybook/use-storybook-testing-library'?: Linter.RuleEntry<[]>;
  /**
   * Enforces a consistent order for the Tailwind CSS classnames, based on the compiler.
   * @see https://github.com/francoismassart/eslint-plugin-tailwindcss/blob/alpha/v4-basic-files/docs/rules/classnames-order.md
   */
  'tailwindcss/classnames-order'?: Linter.RuleEntry<TailwindcssClassnamesOrder>;
  /**
   * Warns about `-` prefixed classnames using arbitrary values.
   * @see https://github.com/francoismassart/eslint-plugin-tailwindcss/blob/alpha/v4-basic-files/docs/rules/enforces-negative-arbitrary-values.md
   */
  'tailwindcss/enforces-negative-arbitrary-values'?: Linter.RuleEntry<TailwindcssEnforcesNegativeArbitraryValues>;
  /**
   * Avoid using multiple Tailwind CSS classnames when not required.
   * @see https://github.com/francoismassart/eslint-plugin-tailwindcss/blob/alpha/v4-basic-files/docs/rules/enforces-shorthand.md
   */
  'tailwindcss/enforces-shorthand'?: Linter.RuleEntry<TailwindcssEnforcesShorthand>;
  /**
   * In v4 you should place the `!` at the very end of the class name.
   * @see https://github.com/francoismassart/eslint-plugin-tailwindcss/blob/alpha/v4-basic-files/docs/rules/important-modifier-suffix.md
   */
  'tailwindcss/important-modifier-suffix'?: Linter.RuleEntry<TailwindcssImportantModifierSuffix>;
  /**
   * Forbid using arbitrary values in classnames.
   * @see https://github.com/francoismassart/eslint-plugin-tailwindcss/blob/alpha/v4-basic-files/docs/rules/no-arbitrary-value.md
   */
  'tailwindcss/no-arbitrary-value'?: Linter.RuleEntry<TailwindcssNoArbitraryValue>;
  /**
   * Avoid contradicting Tailwind CSS classnames.
   * @see https://github.com/francoismassart/eslint-plugin-tailwindcss/blob/alpha/v4-basic-files/docs/rules/no-contradicting-classname.md
   */
  'tailwindcss/no-contradicting-classname'?: Linter.RuleEntry<TailwindcssNoContradictingClassname>;
  /**
   * Detects classnames which do not belong to Tailwind CSS.
   * @see https://github.com/francoismassart/eslint-plugin-tailwindcss/blob/alpha/v4-basic-files/docs/rules/no-custom-classname.md
   */
  'tailwindcss/no-custom-classname'?: Linter.RuleEntry<TailwindcssNoCustomClassname>;
  /**
   * Avoid unjustified arbitrary classnames.
   * @see https://github.com/francoismassart/eslint-plugin-tailwindcss/blob/alpha/v4-basic-files/docs/rules/no-unnecessary-arbitrary-value.md
   */
  'tailwindcss/no-unnecessary-arbitrary-value'?: Linter.RuleEntry<TailwindcssNoUnnecessaryArbitraryValue>;
  /**
   * Enforce promises from async event methods are handled
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/await-async-events.md
   */
  'testing-library/await-async-events'?: Linter.RuleEntry<TestingLibraryAwaitAsyncEvents>;
  /**
   * Enforce promises from async queries to be handled
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/await-async-queries.md
   */
  'testing-library/await-async-queries'?: Linter.RuleEntry<[]>;
  /**
   * Enforce promises from async utils to be awaited properly
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/await-async-utils.md
   */
  'testing-library/await-async-utils'?: Linter.RuleEntry<[]>;
  /**
   * Ensures consistent usage of `data-testid`
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/consistent-data-testid.md
   */
  'testing-library/consistent-data-testid'?: Linter.RuleEntry<TestingLibraryConsistentDataTestid>;
  /**
   * Disallow unnecessary `await` for sync events
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/no-await-sync-events.md
   */
  'testing-library/no-await-sync-events'?: Linter.RuleEntry<TestingLibraryNoAwaitSyncEvents>;
  /**
   * Disallow unnecessary `await` for sync queries
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/no-await-sync-queries.md
   */
  'testing-library/no-await-sync-queries'?: Linter.RuleEntry<[]>;
  /**
   * Disallow the use of `container` methods
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/no-container.md
   */
  'testing-library/no-container'?: Linter.RuleEntry<[]>;
  /**
   * Disallow the use of debugging utilities like `debug`
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/no-debugging-utils.md
   */
  'testing-library/no-debugging-utils'?: Linter.RuleEntry<TestingLibraryNoDebuggingUtils>;
  /**
   * Disallow importing from DOM Testing Library
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/no-dom-import.md
   */
  'testing-library/no-dom-import'?: Linter.RuleEntry<TestingLibraryNoDomImport>;
  /**
   * Disallow the use of the global RegExp flag (/g) in queries
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/no-global-regexp-flag-in-query.md
   */
  'testing-library/no-global-regexp-flag-in-query'?: Linter.RuleEntry<[]>;
  /**
   * Disallow the use of `cleanup`
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/no-manual-cleanup.md
   */
  'testing-library/no-manual-cleanup'?: Linter.RuleEntry<[]>;
  /**
   * Disallow direct Node access
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/no-node-access.md
   */
  'testing-library/no-node-access'?: Linter.RuleEntry<TestingLibraryNoNodeAccess>;
  /**
   * Disallow the use of promises passed to a `fireEvent` method
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/no-promise-in-fire-event.md
   */
  'testing-library/no-promise-in-fire-event'?: Linter.RuleEntry<[]>;
  /**
   * Disallow the use of `render` in testing frameworks setup functions
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/no-render-in-lifecycle.md
   */
  'testing-library/no-render-in-lifecycle'?: Linter.RuleEntry<TestingLibraryNoRenderInLifecycle>;
  /**
   * Ensure no `data-testid` queries are used
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/no-test-id-queries.md
   */
  'testing-library/no-test-id-queries'?: Linter.RuleEntry<[]>;
  /**
   * Disallow wrapping Testing Library utils or empty callbacks in `act`
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/no-unnecessary-act.md
   */
  'testing-library/no-unnecessary-act'?: Linter.RuleEntry<TestingLibraryNoUnnecessaryAct>;
  /**
   * Disallow the use of multiple `expect` calls inside `waitFor`
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/no-wait-for-multiple-assertions.md
   */
  'testing-library/no-wait-for-multiple-assertions'?: Linter.RuleEntry<[]>;
  /**
   * Disallow the use of side effects in `waitFor`
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/no-wait-for-side-effects.md
   */
  'testing-library/no-wait-for-side-effects'?: Linter.RuleEntry<[]>;
  /**
   * Ensures no snapshot is generated inside of a `waitFor` call
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/no-wait-for-snapshot.md
   */
  'testing-library/no-wait-for-snapshot'?: Linter.RuleEntry<[]>;
  /**
   * Suggest using explicit assertions rather than standalone queries
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/prefer-explicit-assert.md
   */
  'testing-library/prefer-explicit-assert'?: Linter.RuleEntry<TestingLibraryPreferExplicitAssert>;
  /**
   * Suggest using `find(All)By*` query instead of `waitFor` + `get(All)By*` to wait for elements
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/prefer-find-by.md
   */
  'testing-library/prefer-find-by'?: Linter.RuleEntry<[]>;
  /**
   * Suggest using implicit assertions for getBy* & findBy* queries
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/prefer-implicit-assert.md
   */
  'testing-library/prefer-implicit-assert'?: Linter.RuleEntry<[]>;
  /**
   * Ensure appropriate `get*`/`query*` queries are used with their respective matchers
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/prefer-presence-queries.md
   */
  'testing-library/prefer-presence-queries'?: Linter.RuleEntry<TestingLibraryPreferPresenceQueries>;
  /**
   * Suggest using `queryBy*` queries when waiting for disappearance
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/prefer-query-by-disappearance.md
   */
  'testing-library/prefer-query-by-disappearance'?: Linter.RuleEntry<[]>;
  /**
   * Ensure the configured `get*`/`query*` query is used with the corresponding matchers
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/prefer-query-matchers.md
   */
  'testing-library/prefer-query-matchers'?: Linter.RuleEntry<TestingLibraryPreferQueryMatchers>;
  /**
   * Suggest using `screen` while querying
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/prefer-screen-queries.md
   */
  'testing-library/prefer-screen-queries'?: Linter.RuleEntry<[]>;
  /**
   * Suggest using `userEvent` over `fireEvent` for simulating user interactions
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/prefer-user-event.md
   */
  'testing-library/prefer-user-event'?: Linter.RuleEntry<TestingLibraryPreferUserEvent>;
  /**
   * Suggest using userEvent with setup() instead of direct methods
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/prefer-user-event-setup.md
   */
  'testing-library/prefer-user-event-setup'?: Linter.RuleEntry<[]>;
  /**
   * Enforce a valid naming for return value from `render`
   * @see https://github.com/testing-library/eslint-plugin-testing-library/tree/main/docs/rules/render-result-naming-convention.md
   */
  'testing-library/render-result-naming-convention'?: Linter.RuleEntry<[]>;
  /**
   * 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 linebreaks after opening and before closing braces
   * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/inline-table-curly-newline.html
   */
  'toml/inline-table-curly-newline'?: Linter.RuleEntry<TomlInlineTableCurlyNewline>;
  /**
   * 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 placing inline table key-value pairs on separate lines
   * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/inline-table-key-value-newline.html
   */
  'toml/inline-table-key-value-newline'?: Linter.RuleEntry<TomlInlineTableKeyValueNewline>;
  /**
   * 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<[]>;
  /**
   * Validates that TypeScript documentation comments conform to the TSDoc standard
   * @see https://tsdoc.org/pages/packages/eslint-plugin-tsdoc
   */
  'tsdoc/syntax'?: Linter.RuleEntry<[]>;
  /**
   * Prefer better DOM traversal APIs.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/better-dom-traversing.md
   */
  'unicorn/better-dom-traversing'?: Linter.RuleEntry<[]>;
  /**
   * Removed. Prefer `eslint-plugin-regexp`
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/deleted-and-deprecated-rules.md#better-regex
   * @deprecated
   */
  'unicorn/better-regex'?: Linter.RuleEntry<[]>;
  /**
   * Enforce a specific parameter name in catch clauses.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/catch-error-name.md
   */
  'unicorn/catch-error-name'?: Linter.RuleEntry<UnicornCatchErrorName>;
  /**
   * Enforce consistent class references in static methods.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/class-reference-in-static-methods.md
   */
  'unicorn/class-reference-in-static-methods'?: Linter.RuleEntry<UnicornClassReferenceInStaticMethods>;
  /**
   * Enforce better comment content.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/comment-content.md
   */
  'unicorn/comment-content'?: Linter.RuleEntry<UnicornCommentContent>;
  /**
   * Enforce consistent assertion style with `node:assert`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/consistent-assert.md
   */
  'unicorn/consistent-assert'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent naming for boolean names.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/consistent-boolean-name.md
   */
  'unicorn/consistent-boolean-name'?: Linter.RuleEntry<UnicornConsistentBooleanName>;
  /**
   * Enforce consistent class member order.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/consistent-class-member-order.md
   */
  'unicorn/consistent-class-member-order'?: Linter.RuleEntry<UnicornConsistentClassMemberOrder>;
  /**
   * Enforce consistent spelling of compound words in identifiers.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/consistent-compound-words.md
   */
  'unicorn/consistent-compound-words'?: Linter.RuleEntry<UnicornConsistentCompoundWords>;
  /**
   * Enforce consistent conditional object spread style.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/consistent-conditional-object-spread.md
   */
  'unicorn/consistent-conditional-object-spread'?: Linter.RuleEntry<UnicornConsistentConditionalObjectSpread>;
  /**
   * Prefer passing `Date` directly to the constructor when cloning.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/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/v72.0.0/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/v72.0.0/docs/rules/consistent-existence-index-check.md
   */
  'unicorn/consistent-existence-index-check'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent decorator position on exported classes.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/consistent-export-decorator-position.md
   */
  'unicorn/consistent-export-decorator-position'?: Linter.RuleEntry<UnicornConsistentExportDecoratorPosition>;
  /**
   * Move function definitions to the highest possible scope.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/consistent-function-scoping.md
   */
  'unicorn/consistent-function-scoping'?: Linter.RuleEntry<UnicornConsistentFunctionScoping>;
  /**
   * Enforce function syntax by role.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/consistent-function-style.md
   */
  'unicorn/consistent-function-style'?: Linter.RuleEntry<UnicornConsistentFunctionStyle>;
  /**
   * Enforce consistent JSON file reads before `JSON.parse()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/consistent-json-file-read.md
   */
  'unicorn/consistent-json-file-read'?: Linter.RuleEntry<UnicornConsistentJsonFileRead>;
  /**
   * Enforce consistent optional chaining for same-base member access.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/consistent-optional-chaining.md
   */
  'unicorn/consistent-optional-chaining'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent style for escaping `${` in template literals.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/consistent-template-literal-escape.md
   */
  'unicorn/consistent-template-literal-escape'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent labels on tuple type elements.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/consistent-tuple-labels.md
   */
  'unicorn/consistent-tuple-labels'?: Linter.RuleEntry<[]>;
  /**
   * Enforce correct `Error` subclassing.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/custom-error-definition.md
   */
  'unicorn/custom-error-definition'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent default export declarations.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/default-export-style.md
   */
  'unicorn/default-export-style'?: Linter.RuleEntry<UnicornDefaultExportStyle>;
  /**
   * Enforce consistent style for DOM element dataset access.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/dom-node-dataset.md
   */
  'unicorn/dom-node-dataset'?: Linter.RuleEntry<UnicornDomNodeDataset>;
  /**
   * Enforce no spaces between braces.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/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/v72.0.0/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/v72.0.0/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/v72.0.0/docs/rules/explicit-length-check.md
   */
  'unicorn/explicit-length-check'?: Linter.RuleEntry<UnicornExplicitLengthCheck>;
  /**
   * Enforce or disallow explicit `delay` argument for `setTimeout()` and `setInterval()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/explicit-timer-delay.md
   */
  'unicorn/explicit-timer-delay'?: Linter.RuleEntry<UnicornExplicitTimerDelay>;
  /**
   * Enforce a case style for filenames and directory names.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/filename-case.md
   */
  'unicorn/filename-case'?: Linter.RuleEntry<UnicornFilenameCase>;
  /**
   * Require identifiers to match a specified regular expression.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/id-match.md
   */
  'unicorn/id-match'?: Linter.RuleEntry<UnicornIdMatch>;
  /**
   * Enforce specific import styles per module.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/import-style.md
   */
  'unicorn/import-style'?: Linter.RuleEntry<UnicornImportStyle>;
  /**
   * Prevent usage of variables from outside the scope of isolated functions.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/isolated-functions.md
   */
  'unicorn/isolated-functions'?: Linter.RuleEntry<UnicornIsolatedFunctions>;
  /**
   * Require or disallow logical assignment operator shorthand
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/logical-assignment-operators.md
   */
  'unicorn/logical-assignment-operators'?: Linter.RuleEntry<UnicornLogicalAssignmentOperators>;
  /**
   * Limit the depth of nested calls.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/max-nested-calls.md
   */
  'unicorn/max-nested-calls'?: Linter.RuleEntry<UnicornMaxNestedCalls>;
  /**
   * Enforce replacements for variable, property, and filenames.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/name-replacements.md
   */
  'unicorn/name-replacements'?: Linter.RuleEntry<UnicornNameReplacements>;
  /**
   * Enforce correct use of `new` for builtin constructors.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/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/v72.0.0/docs/rules/no-accessor-recursion.md
   */
  'unicorn/no-accessor-recursion'?: Linter.RuleEntry<[]>;
  /**
   * Disallow bitwise operators where a logical operator was likely intended.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-accidental-bitwise-operator.md
   */
  'unicorn/no-accidental-bitwise-operator'?: Linter.RuleEntry<[]>;
  /**
   * Disallow anonymous functions and classes as the default export.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/no-array-callback-reference.md
   */
  'unicorn/no-array-callback-reference'?: Linter.RuleEntry<UnicornNoArrayCallbackReference>;
  /**
   * Disallow array accumulation with `Array#concat()` in loops.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-array-concat-in-loop.md
   */
  'unicorn/no-array-concat-in-loop'?: Linter.RuleEntry<[]>;
  /**
   * Disallow using reference values as `Array#fill()` values.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-array-fill-with-reference-type.md
   */
  'unicorn/no-array-fill-with-reference-type'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `.fill()` after `Array.from({length: …})`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-array-from-fill.md
   */
  'unicorn/no-array-from-fill'?: Linter.RuleEntry<[]>;
  /**
   * Disallow front-of-array mutation.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-array-front-mutation.md
   */
  'unicorn/no-array-front-mutation'?: Linter.RuleEntry<[]>;
  /**
   * Disallow using the `this` argument in array methods.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/deleted-and-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/v72.0.0/docs/rules/no-array-reduce.md
   */
  'unicorn/no-array-reduce'?: Linter.RuleEntry<UnicornNoArrayReduce>;
  /**
   * Prefer `Array#toReversed()` over `Array#reverse()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-array-reverse.md
   */
  'unicorn/no-array-reverse'?: Linter.RuleEntry<UnicornNoArrayReverse>;
  /**
   * Prefer `Array#toSorted()` over `Array#sort()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-array-sort.md
   */
  'unicorn/no-array-sort'?: Linter.RuleEntry<UnicornNoArraySort>;
  /**
   * Disallow sorting arrays to get the minimum or maximum value.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-array-sort-for-min-max.md
   */
  'unicorn/no-array-sort-for-min-max'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Array#toSpliced()` over `Array#splice()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-array-splice.md
   */
  'unicorn/no-array-splice'?: Linter.RuleEntry<[]>;
  /**
   * Disallow asterisk prefixes in documentation comments.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-asterisk-prefix-in-documentation-comments.md
   */
  'unicorn/no-asterisk-prefix-in-documentation-comments'?: Linter.RuleEntry<[]>;
  /**
   * Disallow async functions as `Promise#finally()` callbacks.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-async-promise-finally.md
   */
  'unicorn/no-async-promise-finally'?: Linter.RuleEntry<[]>;
  /**
   * Disallow member access from await expression.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/no-await-in-promise-methods.md
   */
  'unicorn/no-await-in-promise-methods'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary `Blob` to `File` conversion.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-blob-to-file.md
   */
  'unicorn/no-blob-to-file'?: Linter.RuleEntry<[]>;
  /**
   * Disallow boolean-returning sort comparators.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-boolean-sort-comparator.md
   */
  'unicorn/no-boolean-sort-comparator'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `break` and `continue` in nested loops and switches inside loops.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-break-in-nested-loop.md
   */
  'unicorn/no-break-in-nested-loop'?: Linter.RuleEntry<[]>;
  /**
   * Prefer drawing canvases directly instead of converting them to images.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-canvas-to-image.md
   */
  'unicorn/no-canvas-to-image'?: Linter.RuleEntry<[]>;
  /**
   * Disallow chained comparisons such as `a < b < c`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-chained-comparison.md
   */
  'unicorn/no-chained-comparison'?: Linter.RuleEntry<[]>;
  /**
   * Disallow accessing `Map`, `Set`, `WeakMap`, and `WeakSet` entries with bracket notation.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-collection-bracket-access.md
   */
  'unicorn/no-collection-bracket-access'?: Linter.RuleEntry<[]>;
  /**
   * Disallow dynamic object property existence checks.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-computed-property-existence-check.md
   */
  'unicorn/no-computed-property-existence-check'?: Linter.RuleEntry<[]>;
  /**
   * Disallow confusing uses of `Array#{splice,toSpliced}()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-confusing-array-splice.md
   */
  'unicorn/no-confusing-array-splice'?: Linter.RuleEntry<[]>;
  /**
   * Disallow confusing uses of `Array#with()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-confusing-array-with.md
   */
  'unicorn/no-confusing-array-with'?: Linter.RuleEntry<[]>;
  /**
   * Do not use leading/trailing space between `console.log` parameters.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-console-spaces.md
   */
  'unicorn/no-console-spaces'?: Linter.RuleEntry<[]>;
  /**
   * Disallow arithmetic and bitwise operations that always evaluate to `0`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-constant-zero-expression.md
   */
  'unicorn/no-constant-zero-expression'?: Linter.RuleEntry<[]>;
  /**
   * Disallow declarations before conditional early exits when they are only used after the exit.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-declarations-before-early-exit.md
   */
  'unicorn/no-declarations-before-early-exit'?: Linter.RuleEntry<[]>;
  /**
   * Do not use `document.cookie` directly.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-document-cookie.md
   */
  'unicorn/no-document-cookie'?: Linter.RuleEntry<[]>;
  /**
   * Disallow two comparisons of the same operands that can be combined into one.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-double-comparison.md
   */
  'unicorn/no-double-comparison'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate adjacent branches in if chains.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-duplicate-if-branches.md
   */
  'unicorn/no-duplicate-if-branches'?: Linter.RuleEntry<[]>;
  /**
   * Disallow adjacent duplicate operands in logical expressions.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-duplicate-logical-operands.md
   */
  'unicorn/no-duplicate-logical-operands'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `.map()` and `.filter()` in `for…of` and `for await…of` loop headers.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-duplicate-loops.md
   */
  'unicorn/no-duplicate-loops'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate values in `Set` constructor array literals.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-duplicate-set-values.md
   */
  'unicorn/no-duplicate-set-values'?: Linter.RuleEntry<[]>;
  /**
   * Disallow empty files.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-empty-file.md
   */
  'unicorn/no-empty-file'?: Linter.RuleEntry<UnicornNoEmptyFile>;
  /**
   * Disallow assigning to built-in error properties.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-error-property-assignment.md
   */
  'unicorn/no-error-property-assignment'?: Linter.RuleEntry<[]>;
  /**
   * Disallow exports in scripts.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-exports-in-scripts.md
   */
  'unicorn/no-exports-in-scripts'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `for…of` over the `forEach` method.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-for-each.md
   */
  'unicorn/no-for-each'?: 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/v72.0.0/docs/rules/no-for-loop.md
   */
  'unicorn/no-for-loop'?: Linter.RuleEntry<[]>;
  /**
   * Disallow assigning properties on the global object.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-global-object-property-assignment.md
   */
  'unicorn/no-global-object-property-assignment'?: Linter.RuleEntry<[]>;
  /**
   * Replaced by `unicorn/prefer-unicode-code-point-escapes` which covers more cases.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/deleted-and-deprecated-rules.md#no-hex-escape
   * @deprecated
   */
  'unicorn/no-hex-escape'?: Linter.RuleEntry<[]>;
  /**
   * Disallow immediate mutation after variable assignment.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-immediate-mutation.md
   */
  'unicorn/no-immediate-mutation'?: Linter.RuleEntry<[]>;
  /**
   * Disallow impossible comparisons against `.length` or `.size`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-impossible-length-comparison.md
   */
  'unicorn/no-impossible-length-comparison'?: Linter.RuleEntry<[]>;
  /**
   * Disallow incorrect `querySelector()` and `querySelectorAll()` usage.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-incorrect-query-selector.md
   */
  'unicorn/no-incorrect-query-selector'?: Linter.RuleEntry<[]>;
  /**
   * Disallow incorrect template literal interpolation syntax.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-incorrect-template-string-interpolation.md
   */
  'unicorn/no-incorrect-template-string-interpolation'?: Linter.RuleEntry<[]>;
  /**
   * Replaced by `unicorn/no-instanceof-builtins` which covers more cases.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/deleted-and-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/v72.0.0/docs/rules/no-instanceof-builtins.md
   */
  'unicorn/no-instanceof-builtins'?: Linter.RuleEntry<UnicornNoInstanceofBuiltins>;
  /**
   * Disallow calling functions and constructors with an invalid number of arguments.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-invalid-argument-count.md
   */
  'unicorn/no-invalid-argument-count'?: Linter.RuleEntry<UnicornNoInvalidArgumentCount>;
  /**
   * Disallow comparing a single character from a string to a multi-character string.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-invalid-character-comparison.md
   */
  'unicorn/no-invalid-character-comparison'?: Linter.RuleEntry<[]>;
  /**
   * Disallow invalid options in `fetch()` and `new Request()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-invalid-fetch-options.md
   */
  'unicorn/no-invalid-fetch-options'?: Linter.RuleEntry<[]>;
  /**
   * Disallow invalid `accept` values on file inputs.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-invalid-file-input-accept.md
   */
  'unicorn/no-invalid-file-input-accept'?: Linter.RuleEntry<[]>;
  /**
   * Prevent calling `EventTarget#removeEventListener()` with the result of an expression.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-invalid-remove-event-listener.md
   */
  'unicorn/no-invalid-remove-event-listener'?: Linter.RuleEntry<[]>;
  /**
   * Disallow invalid implementations of well-known symbol methods.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-invalid-well-known-symbol-methods.md
   */
  'unicorn/no-invalid-well-known-symbol-methods'?: Linter.RuleEntry<[]>;
  /**
   * Disallow identifiers starting with `new` or `class`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-keyword-prefix.md
   */
  'unicorn/no-keyword-prefix'?: Linter.RuleEntry<UnicornNoKeywordPrefix>;
  /**
   * Disallow accessing `event.currentTarget` after the synchronous event dispatch has finished.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-late-current-target-access.md
   */
  'unicorn/no-late-current-target-access'?: Linter.RuleEntry<[]>;
  /**
   * Disallow event-control method calls after the synchronous event dispatch has finished.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-late-event-control.md
   */
  'unicorn/no-late-event-control'?: Linter.RuleEntry<[]>;
  /**
   * Replaced by `unicorn/no-unnecessary-slice-end` which covers more cases.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/deleted-and-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/v72.0.0/docs/rules/no-lonely-if.md
   */
  'unicorn/no-lonely-if'?: Linter.RuleEntry<[]>;
  /**
   * Disallow mutating a loop iterable during iteration.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-loop-iterable-mutation.md
   */
  'unicorn/no-loop-iterable-mutation'?: Linter.RuleEntry<[]>;
  /**
   * Disallow a magic number as the `depth` argument in `Array#flat(…).`
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-magic-array-flat-depth.md
   */
  'unicorn/no-magic-array-flat-depth'?: Linter.RuleEntry<[]>;
  /**
   * Disallow manually wrapped comments.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-manually-wrapped-comments.md
   */
  'unicorn/no-manually-wrapped-comments'?: Linter.RuleEntry<[]>;
  /**
   * Disallow checking a Map key before accessing a different key.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-mismatched-map-key.md
   */
  'unicorn/no-mismatched-map-key'?: Linter.RuleEntry<[]>;
  /**
   * Disallow misrefactored compound assignments where the target is duplicated in the right-hand side.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-misrefactored-assignment.md
   */
  'unicorn/no-misrefactored-assignment'?: Linter.RuleEntry<[]>;
  /**
   * Disallow references to missing local resources.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-missing-local-resource.md
   */
  'unicorn/no-missing-local-resource'?: Linter.RuleEntry<[]>;
  /**
   * Disallow calling Promise executor resolver functions more than once on the same execution path.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-multiple-promise-resolver-calls.md
   */
  'unicorn/no-multiple-promise-resolver-calls'?: Linter.RuleEntry<[]>;
  /**
   * Disallow named usage of default import and export.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-named-default.md
   */
  'unicorn/no-named-default'?: Linter.RuleEntry<[]>;
  /**
   * Disallow negated array predicate calls.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-negated-array-predicate.md
   */
  'unicorn/no-negated-array-predicate'?: Linter.RuleEntry<[]>;
  /**
   * Disallow negated comparisons.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-negated-comparison.md
   */
  'unicorn/no-negated-comparison'?: Linter.RuleEntry<UnicornNoNegatedComparison>;
  /**
   * Disallow negated conditions.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/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/v72.0.0/docs/rules/no-nested-ternary.md
   */
  'unicorn/no-nested-ternary'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `new Array()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/no-new-buffer.md
   */
  'unicorn/no-new-buffer'?: Linter.RuleEntry<[]>;
  /**
   * Disallow non-function values with function-style verb prefixes.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-non-function-verb-prefix.md
   */
  'unicorn/no-non-function-verb-prefix'?: Linter.RuleEntry<UnicornNoNonFunctionVerbPrefix>;
  /**
   * Disallow non-standard properties on built-in objects.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-nonstandard-builtin-properties.md
   */
  'unicorn/no-nonstandard-builtin-properties'?: Linter.RuleEntry<[]>;
  /**
   * Disallow the use of the `null` literal.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/no-object-as-default-parameter.md
   */
  'unicorn/no-object-as-default-parameter'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `Object` methods with `Map` or `Set`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-object-methods-with-collections.md
   */
  'unicorn/no-object-methods-with-collections'?: Linter.RuleEntry<[]>;
  /**
   * Disallow optional chaining on undeclared variables.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-optional-chaining-on-undeclared-variable.md
   */
  'unicorn/no-optional-chaining-on-undeclared-variable'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `process.exit()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-process-exit.md
   */
  'unicorn/no-process-exit'?: Linter.RuleEntry<[]>;
  /**
   * Disallow comparisons made redundant by an equality check in the same logical AND.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-redundant-comparison.md
   */
  'unicorn/no-redundant-comparison'?: Linter.RuleEntry<[]>;
  /**
   * Disallow using the return value of `Array#push()` and `Array#unshift()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-return-array-push.md
   */
  'unicorn/no-return-array-push'?: Linter.RuleEntry<[]>;
  /**
   * Disallow selector syntax in DOM names.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-selector-as-dom-name.md
   */
  'unicorn/no-selector-as-dom-name'?: Linter.RuleEntry<[]>;
  /**
   * Disallow shorthand properties that override related longhand properties.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-shorthand-property-overrides.md
   */
  'unicorn/no-shorthand-property-overrides'?: Linter.RuleEntry<[]>;
  /**
   * Disallow passing single-element arrays to `Promise` methods.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/no-static-only-class.md
   */
  'unicorn/no-static-only-class'?: Linter.RuleEntry<[]>;
  /**
   * Prefer comparing values directly over subtracting and comparing to `0`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-subtraction-comparison.md
   */
  'unicorn/no-subtraction-comparison'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `then` property.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/no-this-assignment.md
   */
  'unicorn/no-this-assignment'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `this` outside of classes.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-this-outside-of-class.md
   */
  'unicorn/no-this-outside-of-class'?: Linter.RuleEntry<[]>;
  /**
   * Disallow assigning to top-level variables from inside functions.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-top-level-assignment-in-function.md
   */
  'unicorn/no-top-level-assignment-in-function'?: Linter.RuleEntry<[]>;
  /**
   * Disallow top-level side effects in exported modules.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-top-level-side-effects.md
   */
  'unicorn/no-top-level-side-effects'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `all` as a transition property.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-transition-all.md
   */
  'unicorn/no-transition-all'?: Linter.RuleEntry<[]>;
  /**
   * Disallow comparing `undefined` using `typeof`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-typeof-undefined.md
   */
  'unicorn/no-typeof-undefined'?: Linter.RuleEntry<UnicornNoTypeofUndefined>;
  /**
   * Disallow referencing methods without calling them.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-uncalled-method.md
   */
  'unicorn/no-uncalled-method'?: Linter.RuleEntry<[]>;
  /**
   * Require class members to be declared.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-undeclared-class-members.md
   */
  'unicorn/no-undeclared-class-members'?: Linter.RuleEntry<[]>;
  /**
   * Disallow using `1` as the `depth` argument of `Array#flat()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unnecessary-array-flat-depth.md
   */
  'unicorn/no-unnecessary-array-flat-depth'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `Array#flatMap()` callbacks that only wrap a single item.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unnecessary-array-flat-map.md
   */
  'unicorn/no-unnecessary-array-flat-map'?: 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/v72.0.0/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/v72.0.0/docs/rules/no-unnecessary-await.md
   */
  'unicorn/no-unnecessary-await'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary comparisons against boolean literals.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unnecessary-boolean-comparison.md
   */
  'unicorn/no-unnecessary-boolean-comparison'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary options in `fetch()` and `new Request()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unnecessary-fetch-options.md
   */
  'unicorn/no-unnecessary-fetch-options'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary `globalThis` references.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unnecessary-global-this.md
   */
  'unicorn/no-unnecessary-global-this'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary nested ternary expressions.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unnecessary-nested-ternary.md
   */
  'unicorn/no-unnecessary-nested-ternary'?: Linter.RuleEntry<[]>;
  /**
   * Enforce the use of built-in methods instead of unnecessary polyfills.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/no-unnecessary-slice-end.md
   */
  'unicorn/no-unnecessary-slice-end'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `Array#splice()` when simpler alternatives exist.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unnecessary-splice.md
   */
  'unicorn/no-unnecessary-splice'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `String#trim()` before `String#startsWith()` or `String#endsWith()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unnecessary-string-trim.md
   */
  'unicorn/no-unnecessary-string-trim'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unreadable array destructuring.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unreadable-array-destructuring.md
   */
  'unicorn/no-unreadable-array-destructuring'?: Linter.RuleEntry<UnicornNoUnreadableArrayDestructuring>;
  /**
   * Disallow unreadable iterable expressions in `for…of` and `for await…of` loop headers.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unreadable-for-of-expression.md
   */
  'unicorn/no-unreadable-for-of-expression'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unreadable IIFEs.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unreadable-iife.md
   */
  'unicorn/no-unreadable-iife'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unreadable `new` expressions.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unreadable-new-expression.md
   */
  'unicorn/no-unreadable-new-expression'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unreadable object destructuring.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unreadable-object-destructuring.md
   */
  'unicorn/no-unreadable-object-destructuring'?: Linter.RuleEntry<[]>;
  /**
   * Prevent unsafe use of ArrayBuffer view `.buffer`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unsafe-buffer-conversion.md
   */
  'unicorn/no-unsafe-buffer-conversion'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unsafe DOM HTML APIs.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unsafe-dom-html.md
   */
  'unicorn/no-unsafe-dom-html'?: Linter.RuleEntry<[]>;
  /**
   * Disallow reading `.value` from `Promise.allSettled()` results without a fulfilled status guard.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unsafe-promise-all-settled-values.md
   */
  'unicorn/no-unsafe-promise-all-settled-values'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unsafe values as property keys.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unsafe-property-key.md
   */
  'unicorn/no-unsafe-property-key'?: Linter.RuleEntry<[]>;
  /**
   * Disallow non-literal replacement values in `String#replace()` and `String#replaceAll()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unsafe-string-replacement.md
   */
  'unicorn/no-unsafe-string-replacement'?: Linter.RuleEntry<[]>;
  /**
   * Disallow ignoring the return value of selected array methods.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unused-array-method-return.md
   */
  'unicorn/no-unused-array-method-return'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unused object properties.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-unused-properties.md
   */
  'unicorn/no-unused-properties'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary `Boolean()` casts in array predicate callbacks.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-boolean-cast.md
   */
  'unicorn/no-useless-boolean-cast'?: Linter.RuleEntry<[]>;
  /**
   * Disallow useless type coercions of values that are already of the target type.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-coercion.md
   */
  'unicorn/no-useless-coercion'?: Linter.RuleEntry<[]>;
  /**
   * Disallow useless values or fallbacks in `Set`, `Map`, `WeakSet`, or `WeakMap`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-collection-argument.md
   */
  'unicorn/no-useless-collection-argument'?: Linter.RuleEntry<[]>;
  /**
   * Disallow useless compound assignments such as `x += 0`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-compound-assignment.md
   */
  'unicorn/no-useless-compound-assignment'?: Linter.RuleEntry<[]>;
  /**
   * Disallow useless concatenation of literals.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-concat.md
   */
  'unicorn/no-useless-concat'?: Linter.RuleEntry<[]>;
  /**
   * Disallow useless `continue` statements.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-continue.md
   */
  'unicorn/no-useless-continue'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary existence checks before deletion.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-delete-check.md
   */
  'unicorn/no-useless-delete-check'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `else` after a statement that exits.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-else.md
   */
  'unicorn/no-useless-else'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary `Error.captureStackTrace(…)`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-error-capture-stack-trace.md
   */
  'unicorn/no-useless-error-capture-stack-trace'?: Linter.RuleEntry<[]>;
  /**
   * Disallow useless fallback when spreading in object literals.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-fallback-in-spread.md
   */
  'unicorn/no-useless-fallback-in-spread'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary `.toArray()` on iterators.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-iterator-to-array.md
   */
  'unicorn/no-useless-iterator-to-array'?: Linter.RuleEntry<[]>;
  /**
   * Disallow useless array length check.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-length-check.md
   */
  'unicorn/no-useless-length-check'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary operands in logical expressions involving boolean literals.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-logical-operand.md
   */
  'unicorn/no-useless-logical-operand'?: Linter.RuleEntry<[]>;
  /**
   * Disallow useless overrides of class methods.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-override.md
   */
  'unicorn/no-useless-override'?: Linter.RuleEntry<[]>;
  /**
   * Disallow returning/yielding `Promise.resolve/reject()` in async functions or promise callbacks
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-promise-resolve-reject.md
   */
  'unicorn/no-useless-promise-resolve-reject'?: Linter.RuleEntry<[]>;
  /**
   * Disallow redundant re-exports.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-re-export.md
   */
  'unicorn/no-useless-re-export'?: Linter.RuleEntry<[]>;
  /**
   * Disallow simple recursive function calls that can be replaced with a loop.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-recursion.md
   */
  'unicorn/no-useless-recursion'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary spread.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/no-useless-switch-case.md
   */
  'unicorn/no-useless-switch-case'?: Linter.RuleEntry<[]>;
  /**
   * Disallow useless template literal expressions.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-template-literals.md
   */
  'unicorn/no-useless-template-literals'?: Linter.RuleEntry<[]>;
  /**
   * Disallow useless `undefined`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-useless-undefined.md
   */
  'unicorn/no-useless-undefined'?: Linter.RuleEntry<UnicornNoUselessUndefined>;
  /**
   * Disallow the bitwise XOR operator where exponentiation was likely intended.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/no-xor-as-exponentiation.md
   */
  'unicorn/no-xor-as-exponentiation'?: Linter.RuleEntry<[]>;
  /**
   * Disallow number literals with zero fractions or dangling dots.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/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/v72.0.0/docs/rules/numeric-separators-style.md
   */
  'unicorn/numeric-separators-style'?: Linter.RuleEntry<UnicornNumericSeparatorsStyle>;
  /**
   * Require assignment operator shorthand where possible.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/operator-assignment.md
   */
  'unicorn/operator-assignment'?: Linter.RuleEntry<UnicornOperatorAssignment>;
  /**
   * Prefer `AbortSignal.any()` over manually forwarding abort events between signals.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-abort-signal-any.md
   */
  'unicorn/prefer-abort-signal-any'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `AbortSignal.timeout()` over manually aborting an `AbortController` with `setTimeout()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-abort-signal-timeout.md
   */
  'unicorn/prefer-abort-signal-timeout'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `.addEventListener()` and `.removeEventListener()` over `on`-functions.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-add-event-listener.md
   */
  'unicorn/prefer-add-event-listener'?: Linter.RuleEntry<UnicornPreferAddEventListener>;
  /**
   * Prefer an options object over a boolean in `.addEventListener()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-add-event-listener-options.md
   */
  'unicorn/prefer-add-event-listener-options'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `AggregateError` when throwing collected errors.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-aggregate-error.md
   */
  'unicorn/prefer-aggregate-error'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `.find(…)` and `.findLast(…)` over the first or last element from `.filter(…)`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/prefer-array-flat.md
   */
  'unicorn/prefer-array-flat'?: Linter.RuleEntry<UnicornPreferArrayFlat>;
  /**
   * Prefer `.flatMap(…)` over `.map(…).flat()` and `.filter(…).flatMap(…)`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-array-flat-map.md
   */
  'unicorn/prefer-array-flat-map'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Array.fromAsync()` over `for await…of` array accumulation.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-array-from-async.md
   */
  'unicorn/prefer-array-from-async'?: Linter.RuleEntry<[]>;
  /**
   * Prefer using the `Array.from()` mapping function argument.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-array-from-map.md
   */
  'unicorn/prefer-array-from-map'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Array.from({length}, …)` when creating range arrays.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-array-from-range.md
   */
  'unicorn/prefer-array-from-range'?: 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/v72.0.0/docs/rules/prefer-array-index-of.md
   */
  'unicorn/prefer-array-index-of'?: Linter.RuleEntry<[]>;
  /**
   * Prefer iterating an array directly or with `Array#keys()` over `Array#entries()` when the index or value is unused.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-array-iterable-methods.md
   */
  'unicorn/prefer-array-iterable-methods'?: Linter.RuleEntry<[]>;
  /**
   * Prefer last-oriented array methods over `Array#reverse()` or `Array#toReversed()` followed by a method.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-array-last-methods.md
   */
  'unicorn/prefer-array-last-methods'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Array#slice()` over `Array#splice()` when reading from the returned array.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-array-slice.md
   */
  'unicorn/prefer-array-slice'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `.some(…)` over `.filter(…).length` check and `.{find,findLast,findIndex,findLastIndex}(…)`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/prefer-at.md
   */
  'unicorn/prefer-at'?: Linter.RuleEntry<UnicornPreferAt>;
  /**
   * Prefer `await` over promise chaining.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-await.md
   */
  'unicorn/prefer-await'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `BigInt` literals over the constructor.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-bigint-literals.md
   */
  'unicorn/prefer-bigint-literals'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Blob#arrayBuffer()` over `FileReader#readAsArrayBuffer(…)` and `Blob#text()` over `FileReader#readAsText(…)`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-blob-reading-methods.md
   */
  'unicorn/prefer-blob-reading-methods'?: Linter.RuleEntry<[]>;
  /**
   * Prefer block statements over IIFEs used only for scoping.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-block-statement-over-iife.md
   */
  'unicorn/prefer-block-statement-over-iife'?: Linter.RuleEntry<[]>;
  /**
   * Prefer directly returning boolean expressions over `if` statements.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-boolean-return.md
   */
  'unicorn/prefer-boolean-return'?: Linter.RuleEntry<[]>;
  /**
   * Prefer class field declarations over `this` assignments in constructors.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-class-fields.md
   */
  'unicorn/prefer-class-fields'?: Linter.RuleEntry<[]>;
  /**
   * Prefer using `Element#classList.toggle()` to toggle class names.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-classlist-toggle.md
   */
  'unicorn/prefer-classlist-toggle'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `String#codePointAt(…)` over `String#charCodeAt(…)` and `String.fromCodePoint(…)` over `String.fromCharCode(…)`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-code-point.md
   */
  'unicorn/prefer-code-point'?: Linter.RuleEntry<[]>;
  /**
   * Prefer early continues over whole-loop conditional wrapping.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-continue.md
   */
  'unicorn/prefer-continue'?: Linter.RuleEntry<UnicornPreferContinue>;
  /**
   * Prefer `Date.now()` to get the number of milliseconds since the Unix Epoch.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/prefer-default-parameters.md
   */
  'unicorn/prefer-default-parameters'?: Linter.RuleEntry<[]>;
  /**
   * Prefer direct iteration over default iterator method calls.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-direct-iteration.md
   */
  'unicorn/prefer-direct-iteration'?: Linter.RuleEntry<[]>;
  /**
   * Prefer using `using`/`await using` over manual `try`/`finally` resource disposal.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-dispose.md
   */
  'unicorn/prefer-dispose'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Element#append()` over `Node#appendChild()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-dom-node-append.md
   */
  'unicorn/prefer-dom-node-append'?: Linter.RuleEntry<[]>;
  /**
   * Renamed to `unicorn/dom-node-dataset`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/deleted-and-deprecated-rules.md#prefer-dom-node-dataset
   * @deprecated
   */
  'unicorn/prefer-dom-node-dataset'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `.getHTML()` and `.setHTML()` over `.innerHTML`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-dom-node-html-methods.md
   */
  'unicorn/prefer-dom-node-html-methods'?: Linter.RuleEntry<UnicornPreferDomNodeHtmlMethods>;
  /**
   * Prefer `childNode.remove()` over `parentNode.removeChild(childNode)`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-dom-node-remove.md
   */
  'unicorn/prefer-dom-node-remove'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `.replaceChildren()` when emptying DOM children.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-dom-node-replace-children.md
   */
  'unicorn/prefer-dom-node-replace-children'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `.textContent` over `.innerText`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-dom-node-text-content.md
   */
  'unicorn/prefer-dom-node-text-content'?: Linter.RuleEntry<[]>;
  /**
   * Prefer early returns over full-function conditional wrapping.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-early-return.md
   */
  'unicorn/prefer-early-return'?: Linter.RuleEntry<UnicornPreferEarlyReturn>;
  /**
   * Prefer `else if` over adjacent `if` statements with related conditions.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-else-if.md
   */
  'unicorn/prefer-else-if'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Error.isError()` when checking for errors.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-error-is-error.md
   */
  'unicorn/prefer-error-is-error'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `EventTarget` over `EventEmitter`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-event-target.md
   */
  'unicorn/prefer-event-target'?: Linter.RuleEntry<[]>;
  /**
   * Prefer explicit viewport units.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-explicit-viewport-units.md
   */
  'unicorn/prefer-explicit-viewport-units'?: Linter.RuleEntry<UnicornPreferExplicitViewportUnits>;
  /**
   * Prefer `export…from` when re-exporting.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-export-from.md
   */
  'unicorn/prefer-export-from'?: Linter.RuleEntry<UnicornPreferExportFrom>;
  /**
   * Prefer flat `Math.min()` and `Math.max()` calls over nested calls.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-flat-math-min-max.md
   */
  'unicorn/prefer-flat-math-min-max'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `.getOrInsertComputed()` when the default value has side effects.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-get-or-insert-computed.md
   */
  'unicorn/prefer-get-or-insert-computed'?: Linter.RuleEntry<[]>;
  /**
   * Prefer global numeric constants over `Number` static properties.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-global-number-constants.md
   */
  'unicorn/prefer-global-number-constants'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `globalThis` over `window`, `self`, and `global`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-global-this.md
   */
  'unicorn/prefer-global-this'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Object.groupBy()` or `Map.groupBy()` over reduce-based grouping.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-group-by.md
   */
  'unicorn/prefer-group-by'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `.has()` when checking existence.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-has-check.md
   */
  'unicorn/prefer-has-check'?: Linter.RuleEntry<[]>;
  /**
   * Prefer moving code shared by all branches of an `if` statement out of the branches.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-hoisting-branch-code.md
   */
  'unicorn/prefer-hoisting-branch-code'?: Linter.RuleEntry<[]>;
  /**
   * Prefer HTTPS over HTTP.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-https.md
   */
  'unicorn/prefer-https'?: Linter.RuleEntry<[]>;
  /**
   * Prefer identifiers over string literals in import and export specifiers.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-identifier-import-export-specifiers.md
   */
  'unicorn/prefer-identifier-import-export-specifiers'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `import.meta.{dirname,filename}` over legacy techniques for getting file paths.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/prefer-includes.md
   */
  'unicorn/prefer-includes'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `.includes()` over repeated equality comparisons.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-includes-over-repeated-comparisons.md
   */
  'unicorn/prefer-includes-over-repeated-comparisons'?: Linter.RuleEntry<UnicornPreferIncludesOverRepeatedComparisons>;
  /**
   * Prefer passing iterables directly to constructors instead of filling empty collections.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-iterable-in-constructor.md
   */
  'unicorn/prefer-iterable-in-constructor'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Iterator.concat(…)` over temporary spread arrays.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-iterator-concat.md
   */
  'unicorn/prefer-iterator-concat'?: Linter.RuleEntry<[]>;
  /**
   * Prefer iterator helpers over temporary arrays from iterators.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-iterator-helpers.md
   */
  'unicorn/prefer-iterator-helpers'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Iterator#toArray()` over temporary arrays from iterator spreads.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-iterator-to-array.md
   */
  'unicorn/prefer-iterator-to-array'?: Linter.RuleEntry<[]>;
  /**
   * Prefer moving `.toArray()` to the end of iterator helper chains.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-iterator-to-array-at-end.md
   */
  'unicorn/prefer-iterator-to-array-at-end'?: Linter.RuleEntry<[]>;
  /**
   * Renamed to `unicorn/consistent-json-file-read`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/deleted-and-deprecated-rules.md#prefer-json-parse-buffer
   * @deprecated
   */
  'unicorn/prefer-json-parse-buffer'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `KeyboardEvent#key` over deprecated keyboard event properties.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-keyboard-event-key.md
   */
  'unicorn/prefer-keyboard-event-key'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `location.assign()` over assigning to `location.href`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-location-assign.md
   */
  'unicorn/prefer-location-assign'?: Linter.RuleEntry<[]>;
  /**
   * Prefer using a logical operator over a ternary.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-logical-operator-over-ternary.md
   */
  'unicorn/prefer-logical-operator-over-ternary'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `new Map()` over `Object.fromEntries()` when using the result as a map.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-map-from-entries.md
   */
  'unicorn/prefer-map-from-entries'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Math.abs()` over manual absolute value expressions and symmetric range checks.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-math-abs.md
   */
  'unicorn/prefer-math-abs'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Math` constants over their approximate numeric values.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-math-constants.md
   */
  'unicorn/prefer-math-constants'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Math.min()` and `Math.max()` over ternaries for simple comparisons.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-math-min-max.md
   */
  'unicorn/prefer-math-min-max'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Math.trunc()` for truncating numbers.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-math-trunc.md
   */
  'unicorn/prefer-math-trunc'?: Linter.RuleEntry<[]>;
  /**
   * Prefer moving ternaries into the minimal varying part of an expression.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-minimal-ternary.md
   */
  'unicorn/prefer-minimal-ternary'?: Linter.RuleEntry<UnicornPreferMinimalTernary>;
  /**
   * Prefer modern DOM APIs.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/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/v72.0.0/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/v72.0.0/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/v72.0.0/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/v72.0.0/docs/rules/prefer-node-protocol.md
   */
  'unicorn/prefer-node-protocol'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Number()` over `parseFloat()` and base-10 `parseInt()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-number-coercion.md
   */
  'unicorn/prefer-number-coercion'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Number.isSafeInteger()` over integer checks.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-number-is-safe-integer.md
   */
  'unicorn/prefer-number-is-safe-integer'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Number` static methods over global functions and optionally static properties over global constants.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-number-properties.md
   */
  'unicorn/prefer-number-properties'?: Linter.RuleEntry<UnicornPreferNumberProperties>;
  /**
   * Prefer `Object.defineProperties()` over multiple `Object.defineProperty()` calls.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-object-define-properties.md
   */
  'unicorn/prefer-object-define-properties'?: Linter.RuleEntry<[]>;
  /**
   * Prefer object destructuring defaults over default object literals with spread.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-object-destructuring-defaults.md
   */
  'unicorn/prefer-object-destructuring-defaults'?: Linter.RuleEntry<[]>;
  /**
   * Prefer using `Object.fromEntries(…)` to transform a list of key-value pairs into an object.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-object-from-entries.md
   */
  'unicorn/prefer-object-from-entries'?: Linter.RuleEntry<UnicornPreferObjectFromEntries>;
  /**
   * Prefer the most specific `Object` iterable method.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-object-iterable-methods.md
   */
  'unicorn/prefer-object-iterable-methods'?: Linter.RuleEntry<[]>;
  /**
   * Prefer observer APIs over resize and scroll listeners with layout reads.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-observer-apis.md
   */
  'unicorn/prefer-observer-apis'?: Linter.RuleEntry<[]>;
  /**
   * Prefer omitting the `catch` binding parameter.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-optional-catch-binding.md
   */
  'unicorn/prefer-optional-catch-binding'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Path2D` for repeatedly drawn canvas paths.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-path2d.md
   */
  'unicorn/prefer-path2d'?: Linter.RuleEntry<[]>;
  /**
   * Prefer private class fields over the underscore-prefix convention.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-private-class-fields.md
   */
  'unicorn/prefer-private-class-fields'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Promise.try()` over promise-wrapping boilerplate.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-promise-try.md
   */
  'unicorn/prefer-promise-try'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Promise.withResolvers()` when extracting resolver functions from `new Promise()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-promise-with-resolvers.md
   */
  'unicorn/prefer-promise-with-resolvers'?: Linter.RuleEntry<[]>;
  /**
   * Prefer borrowing methods from the prototype instead of the instance.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-prototype-methods.md
   */
  'unicorn/prefer-prototype-methods'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `.querySelector()` and `.querySelectorAll()` over older DOM query methods.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-query-selector.md
   */
  'unicorn/prefer-query-selector'?: Linter.RuleEntry<UnicornPreferQuerySelector>;
  /**
   * Prefer `queueMicrotask()` over `process.nextTick()`, `setImmediate()`, and `setTimeout(…, 0)`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-queue-microtask.md
   */
  'unicorn/prefer-queue-microtask'?: Linter.RuleEntry<UnicornPreferQueueMicrotask>;
  /**
   * Prefer `Reflect.apply()` over `Function#apply()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-reflect-apply.md
   */
  'unicorn/prefer-reflect-apply'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `RegExp.escape()` for escaping strings to use in regular expressions.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-regexp-escape.md
   */
  'unicorn/prefer-regexp-escape'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `RegExp#test()` over `String#match()`, `String#search()`, and `RegExp#exec()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-regexp-test.md
   */
  'unicorn/prefer-regexp-test'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Response.json()` over `new Response(JSON.stringify())`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-response-static-json.md
   */
  'unicorn/prefer-response-static-json'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `:scope` when using element query selector methods.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-scoped-selector.md
   */
  'unicorn/prefer-scoped-selector'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Set#has()` over `Array#includes()` when checking for existence or non-existence.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-set-has.md
   */
  'unicorn/prefer-set-has'?: Linter.RuleEntry<UnicornPreferSetHas>;
  /**
   * Prefer `Set` methods for Set operations.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-set-methods.md
   */
  'unicorn/prefer-set-methods'?: Linter.RuleEntry<[]>;
  /**
   * Prefer using `Set#size` instead of `Array#length`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-set-size.md
   */
  'unicorn/prefer-set-size'?: Linter.RuleEntry<[]>;
  /**
   * Prefer arrow function properties over methods with a single return.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-short-arrow-method.md
   */
  'unicorn/prefer-short-arrow-method'?: Linter.RuleEntry<UnicornPreferShortArrowMethod>;
  /**
   * Prefer simple conditions first in logical expressions.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-simple-condition-first.md
   */
  'unicorn/prefer-simple-condition-first'?: Linter.RuleEntry<[]>;
  /**
   * Prefer a simple comparison function for `Array#sort()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-simple-sort-comparator.md
   */
  'unicorn/prefer-simple-sort-comparator'?: Linter.RuleEntry<[]>;
  /**
   * Prefer simplified conditions.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-simplified-conditions.md
   */
  'unicorn/prefer-simplified-conditions'?: Linter.RuleEntry<[]>;
  /**
   * Prefer a single `Array#some()` or `Array#every()` with a combined predicate.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-single-array-predicate.md
   */
  'unicorn/prefer-single-array-predicate'?: Linter.RuleEntry<[]>;
  /**
   * Enforce combining multiple `Array#{push,unshift}()`, `Element#classList.{add,remove}()`, and `importScripts()` into one call.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-single-call.md
   */
  'unicorn/prefer-single-call'?: Linter.RuleEntry<UnicornPreferSingleCall>;
  /**
   * Prefer a single object destructuring declaration per local const source.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-single-object-destructuring.md
   */
  'unicorn/prefer-single-object-destructuring'?: Linter.RuleEntry<[]>;
  /**
   * Enforce combining multiple single-character replacements into a single `String#replaceAll()` with a regular expression.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-single-replace.md
   */
  'unicorn/prefer-single-replace'?: Linter.RuleEntry<[]>;
  /**
   * Prefer declaring variables in the smallest possible scope.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-smaller-scope.md
   */
  'unicorn/prefer-smaller-scope'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `String#split()` with a limit.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-split-limit.md
   */
  'unicorn/prefer-split-limit'?: Linter.RuleEntry<[]>;
  /**
   * Prefer the spread operator over `Array.from(…)`, `Array#concat(…)`, `Array#{slice,toSpliced}()`, and trivial `for…of` copies.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-spread.md
   */
  'unicorn/prefer-spread'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `String#matchAll()` over `RegExp#exec()` loops.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-string-match-all.md
   */
  'unicorn/prefer-string-match-all'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `String#padStart()` and `String#padEnd()` over manual string padding.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-string-pad-start-end.md
   */
  'unicorn/prefer-string-pad-start-end'?: Linter.RuleEntry<[]>;
  /**
   * Prefer using the `String.raw` tag to avoid escaping `\`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-string-raw.md
   */
  'unicorn/prefer-string-raw'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `String#repeat()` for repeated whitespace.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-string-repeat.md
   */
  'unicorn/prefer-string-repeat'?: Linter.RuleEntry<UnicornPreferStringRepeat>;
  /**
   * Prefer `String#replaceAll()` over regex searches with the global flag and `String#split().join()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/prefer-string-slice.md
   */
  'unicorn/prefer-string-slice'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `String#startsWith()` & `String#endsWith()` over regexes, `String#indexOf() === 0`, and slice checks.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/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/v72.0.0/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/v72.0.0/docs/rules/prefer-switch.md
   */
  'unicorn/prefer-switch'?: Linter.RuleEntry<UnicornPreferSwitch>;
  /**
   * Prefer `Temporal` over `Date`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-temporal.md
   */
  'unicorn/prefer-temporal'?: Linter.RuleEntry<UnicornPreferTemporal>;
  /**
   * Prefer ternary expressions over simple `if` statements that return or assign values.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-ternary.md
   */
  'unicorn/prefer-ternary'?: Linter.RuleEntry<UnicornPreferTernary>;
  /**
   * Prefer `.then().catch()` over `.then(…, …)` for error handling.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-then-catch.md
   */
  'unicorn/prefer-then-catch'?: Linter.RuleEntry<[]>;
  /**
   * Prefer using `Element#toggleAttribute()` to toggle attributes.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-toggle-attribute.md
   */
  'unicorn/prefer-toggle-attribute'?: Linter.RuleEntry<[]>;
  /**
   * Prefer top-level await over top-level promises and async function calls.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/prefer-type-error.md
   */
  'unicorn/prefer-type-error'?: Linter.RuleEntry<[]>;
  /**
   * Require type literals to be last in union types.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-type-literal-last.md
   */
  'unicorn/prefer-type-literal-last'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `Uint8Array#toBase64()` and `Uint8Array.fromBase64()` over `atob()`, `btoa()`, and `Buffer` base64 conversions.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-uint8array-base64.md
   */
  'unicorn/prefer-uint8array-base64'?: Linter.RuleEntry<[]>;
  /**
   * Prefer the unary minus operator over multiplying or dividing by `-1`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-unary-minus.md
   */
  'unicorn/prefer-unary-minus'?: Linter.RuleEntry<[]>;
  /**
   * Prefer Unicode code point escapes over legacy escape sequences.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-unicode-code-point-escapes.md
   */
  'unicorn/prefer-unicode-code-point-escapes'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `URL.canParse()` over constructing a `URL` in a try/catch for validation.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-url-can-parse.md
   */
  'unicorn/prefer-url-can-parse'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `URL#href` over stringifying a `URL`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-url-href.md
   */
  'unicorn/prefer-url-href'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `URLSearchParams` over manually splitting query strings.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-url-search-parameters.md
   */
  'unicorn/prefer-url-search-parameters'?: Linter.RuleEntry<[]>;
  /**
   * Prefer putting the condition in the while statement.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/prefer-while-loop-condition.md
   */
  'unicorn/prefer-while-loop-condition'?: Linter.RuleEntry<[]>;
  /**
   * Renamed to `unicorn/name-replacements`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/deleted-and-deprecated-rules.md#prevent-abbreviations
   * @deprecated
   */
  'unicorn/prevent-abbreviations'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent relative URL style.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/require-array-join-separator.md
   */
  'unicorn/require-array-join-separator'?: Linter.RuleEntry<[]>;
  /**
   * Require a compare function when calling `Array#sort()` or `Array#toSorted()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/require-array-sort-compare.md
   */
  'unicorn/require-array-sort-compare'?: Linter.RuleEntry<[]>;
  /**
   * Require `CSS.escape()` for interpolated values in CSS selectors.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/require-css-escape.md
   */
  'unicorn/require-css-escape'?: Linter.RuleEntry<UnicornRequireCssEscape>;
  /**
   * Require configured YAML frontmatter fields.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/require-frontmatter-fields.md
   */
  'unicorn/require-frontmatter-fields'?: Linter.RuleEntry<UnicornRequireFrontmatterFields>;
  /**
   * Require non-empty module attributes for imports and exports
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/require-module-attributes.md
   */
  'unicorn/require-module-attributes'?: Linter.RuleEntry<[]>;
  /**
   * Require non-empty specifier list in import and export statements.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/require-module-specifiers.md
   */
  'unicorn/require-module-specifiers'?: Linter.RuleEntry<[]>;
  /**
   * Enforce using the digits argument with `Number#toFixed()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/require-number-to-fixed-digits-argument.md
   */
  'unicorn/require-number-to-fixed-digits-argument'?: Linter.RuleEntry<[]>;
  /**
   * Require passive event listeners for high-frequency events.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/require-passive-events.md
   */
  'unicorn/require-passive-events'?: Linter.RuleEntry<[]>;
  /**
   * Enforce using the `targetOrigin` argument with `window.postMessage()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/require-post-message-target-origin.md
   */
  'unicorn/require-post-message-target-origin'?: Linter.RuleEntry<[]>;
  /**
   * Require boolean-returning Proxy traps to return booleans.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/require-proxy-trap-boolean-return.md
   */
  'unicorn/require-proxy-trap-boolean-return'?: Linter.RuleEntry<[]>;
  /**
   * Enforce better string content.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/switch-case-braces.md
   */
  'unicorn/switch-case-braces'?: Linter.RuleEntry<UnicornSwitchCaseBraces>;
  /**
   * Enforce consistent `break`/`return`/`continue`/`throw` position in `case` clauses.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/switch-case-break-position.md
   */
  'unicorn/switch-case-break-position'?: Linter.RuleEntry<[]>;
  /**
   * Fix whitespace-insensitive template indentation.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/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/v72.0.0/docs/rules/text-encoding-identifier-case.md
   */
  'unicorn/text-encoding-identifier-case'?: Linter.RuleEntry<UnicornTextEncodingIdentifierCase>;
  /**
   * Require `new` when creating an error.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/throw-new-error.md
   */
  'unicorn/throw-new-error'?: Linter.RuleEntry<[]>;
  /**
   * Limit the complexity of `try` blocks.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v72.0.0/docs/rules/try-complexity.md
   */
  'unicorn/try-complexity'?: Linter.RuleEntry<UnicornTryComplexity>;
  /**
   * Utilities in UnoCSS blocklist
   * @see https://unocss.dev/integrations/eslint#rules
   */
  'unocss/blocklist'?: Linter.RuleEntry<[]>;
  /**
   * Enforce class compilation
   * @see https://unocss.dev/integrations/eslint#rules
   */
  'unocss/enforce-class-compile'?: Linter.RuleEntry<UnocssEnforceClassCompile>;
  /**
   * Order of UnoCSS utilities in class attribute
   * @see https://unocss.dev/integrations/eslint#rules
   */
  'unocss/order'?: Linter.RuleEntry<UnocssOrder>;
  /**
   * Order of UnoCSS attributes
   * @see https://unocss.dev/integrations/eslint#rules
   */
  'unocss/order-attributify'?: Linter.RuleEntry<[]>;
  'validate-jsx-nesting/no-invalid-jsx-nesting'?: Linter.RuleEntry<[]>;
  /**
   * enforce using `.each` or `.for` consistently
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-each-for.md
   */
  'vitest/consistent-each-for'?: Linter.RuleEntry<VitestConsistentEachFor>;
  /**
   * require test file pattern
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-test-filename.md
   */
  'vitest/consistent-test-filename'?: Linter.RuleEntry<VitestConsistentTestFilename>;
  /**
   * 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
   */
  'vitest/consistent-test-it'?: Linter.RuleEntry<VitestConsistentTestIt>;
  /**
   * enforce using vitest or vi but not both
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-vitest-vi.md
   */
  'vitest/consistent-vitest-vi'?: Linter.RuleEntry<VitestConsistentVitestVi>;
  /**
   * enforce having expectation in test body
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/expect-expect.md
   */
  'vitest/expect-expect'?: Linter.RuleEntry<VitestExpectExpect>;
  /**
   * enforce hoisted APIs to be on top of the file
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/hoisted-apis-on-top.md
   */
  'vitest/hoisted-apis-on-top'?: Linter.RuleEntry<[]>;
  /**
   * enforce a maximum number of expect per test
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/max-expects.md
   */
  'vitest/max-expects'?: Linter.RuleEntry<VitestMaxExpects>;
  /**
   * 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
   */
  'vitest/max-nested-describe'?: Linter.RuleEntry<VitestMaxNestedDescribe>;
  /**
   * disallow alias methods
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-alias-methods.md
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/no-conditional-expect'?: Linter.RuleEntry<VitestNoConditionalExpect>;
  /**
   * disallow conditional tests
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-in-test.md
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/no-focused-tests'?: Linter.RuleEntry<VitestNoFocusedTests>;
  /**
   * disallow setup and teardown hooks
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-hooks.md
   */
  'vitest/no-hooks'?: Linter.RuleEntry<VitestNoHooks>;
  /**
   * disallow identical titles
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-identical-title.md
   */
  'vitest/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
   */
  'vitest/no-import-node-test'?: Linter.RuleEntry<[]>;
  /**
   * disallow importing Vitest globals
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-importing-vitest-globals.md
   */
  'vitest/no-importing-vitest-globals'?: 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
   */
  'vitest/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
   */
  'vitest/no-large-snapshots'?: Linter.RuleEntry<VitestNoLargeSnapshots>;
  /**
   * disallow importing from __mocks__ directory
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-mocks-import.md
   */
  'vitest/no-mocks-import'?: Linter.RuleEntry<[]>;
  /**
   * disallow focused/only tests
   * @see https://github.com/levibuzolic/eslint-plugin-no-only-tests
   */
  'vitest/no-only-tests'?: Linter.RuleEntry<VitestNoOnlyTests>;
  /**
   * disallow the use of certain matchers
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-restricted-matchers.md
   */
  'vitest/no-restricted-matchers'?: Linter.RuleEntry<VitestNoRestrictedMatchers>;
  /**
   * disallow specific `vi.` methods
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-restricted-vi-methods.md
   */
  'vitest/no-restricted-vi-methods'?: Linter.RuleEntry<VitestNoRestrictedViMethods>;
  /**
   * 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
   */
  'vitest/no-standalone-expect'?: Linter.RuleEntry<VitestNoStandaloneExpect>;
  /**
   * 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
   */
  'vitest/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
   */
  'vitest/no-test-return-statement'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary async function wrapper for expected promises
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-unneeded-async-expect-function.md
   */
  'vitest/no-unneeded-async-expect-function'?: 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
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/padding-around-test-blocks'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `toHaveBeenCalledExactlyOnceWith` over `toHaveBeenCalledOnce` and `toHaveBeenCalledWith`
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-exactly-once-with.md
   */
  'vitest/prefer-called-exactly-once-with'?: Linter.RuleEntry<[]>;
  /**
   * enforce using `toBeCalledOnce()` or `toHaveBeenCalledOnce()`
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-once.md
   */
  'vitest/prefer-called-once'?: Linter.RuleEntry<[]>;
  /**
   * enforce using `toBeCalledTimes(1)` or `toHaveBeenCalledTimes(1)`
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-times.md
   */
  'vitest/prefer-called-times'?: Linter.RuleEntry<[]>;
  /**
   * enforce using `toBeCalledWith()` or `toHaveBeenCalledWith()`
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-with.md
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/prefer-each'?: Linter.RuleEntry<[]>;
  /**
   * enforce using the built-in equality matchers
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-equality-matcher.md
   */
  'vitest/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
   */
  'vitest/prefer-expect-assertions'?: Linter.RuleEntry<VitestPreferExpectAssertions>;
  /**
   * 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
   */
  'vitest/prefer-expect-resolves'?: Linter.RuleEntry<[]>;
  /**
   * enforce using `expect(...).toBeTypeOf(...)` instead of `expect(typeof ...).toBe(...)`
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-expect-type-of.md
   */
  'vitest/prefer-expect-type-of'?: 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
   */
  'vitest/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
   */
  'vitest/prefer-hooks-on-top'?: Linter.RuleEntry<[]>;
  /**
   * prefer dynamic import in mock
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-import-in-mock.md
   */
  'vitest/prefer-import-in-mock'?: Linter.RuleEntry<VitestPreferImportInMock>;
  /**
   * enforce importing Vitest globals
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-importing-vitest-globals.md
   */
  'vitest/prefer-importing-vitest-globals'?: Linter.RuleEntry<[]>;
  /**
   * enforce lowercase titles
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-lowercase-title.md
   */
  'vitest/prefer-lowercase-title'?: Linter.RuleEntry<VitestPreferLowercaseTitle>;
  /**
   * 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
   */
  'vitest/prefer-mock-promise-shorthand'?: Linter.RuleEntry<[]>;
  /**
   * Prefer mock return shorthands
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-mock-return-shorthand.md
   */
  'vitest/prefer-mock-return-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
   */
  'vitest/prefer-snapshot-hint'?: Linter.RuleEntry<VitestPreferSnapshotHint>;
  /**
   * enforce using `vi.spyOn`
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-spy-on.md
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/prefer-to-contain'?: Linter.RuleEntry<[]>;
  /**
   * Suggest using `toHaveBeenCalledTimes()`
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-have-been-called-times.md
   */
  'vitest/prefer-to-have-been-called-times'?: Linter.RuleEntry<[]>;
  /**
   * enforce using toHaveLength()
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-have-length.md
   */
  'vitest/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
   */
  'vitest/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
   */
  'vitest/prefer-vi-mocked'?: Linter.RuleEntry<[]>;
  /**
   * ensure that every `expect.poll` call is awaited
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-awaited-expect-poll.md
   */
  'vitest/require-awaited-expect-poll'?: 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
   */
  'vitest/require-hook'?: Linter.RuleEntry<VitestRequireHook>;
  /**
   * 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
   */
  'vitest/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
   */
  'vitest/require-mock-type-parameters'?: Linter.RuleEntry<VitestRequireMockTypeParameters>;
  /**
   * require tests to declare a timeout
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-test-timeout.md
   */
  'vitest/require-test-timeout'?: Linter.RuleEntry<[]>;
  /**
   * 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
   */
  'vitest/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
   */
  'vitest/require-top-level-describe'?: Linter.RuleEntry<VitestRequireTopLevelDescribe>;
  /**
   * enforce unbound methods are called with their expected scope
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/unbound-method.md
   */
  'vitest/unbound-method'?: Linter.RuleEntry<VitestUnboundMethod>;
  /**
   * enforce valid describe callback
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-describe-callback.md
   */
  'vitest/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
   */
  'vitest/valid-expect'?: Linter.RuleEntry<VitestValidExpect>;
  /**
   * 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
   */
  'vitest/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
   */
  'vitest/valid-title'?: Linter.RuleEntry<VitestValidTitle>;
  /**
   * disallow `.todo` usage
   * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/warn-todo.md
   */
  'vitest/warn-todo'?: 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 whitespace at the end of lines
   * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-trailing-spaces.html
   */
  'yaml/no-trailing-spaces'?: Linter.RuleEntry<YamlNoTrailingSpaces>;
  /**
   * 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<[]>;
  'you-dont-need-lodash-underscore/all'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/any'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/assign'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/bind'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/capitalize'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/cast-array'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/clone-deep'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/collect'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/concat'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/contains'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/defaults'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/detect'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/drop'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/drop-right'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/each'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/ends-with'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/entries'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/every'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/extend-own'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/fill'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/filter'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/find'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/find-index'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/first'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/flatten'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/foldl'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/foldr'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/for-each'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/get'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/head'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/includes'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/index-of'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/inject'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/is-array'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/is-array-buffer'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/is-date'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/is-finite'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/is-function'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/is-integer'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/is-nan'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/is-nil'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/is-null'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/is-string'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/is-undefined'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/join'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/keys'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/last'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/last-index-of'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/map'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/omit'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/pad-end'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/pad-start'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/pairs'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/reduce'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/reduce-right'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/repeat'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/replace'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/reverse'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/select'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/size'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/slice'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/some'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/split'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/starts-with'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/take-right'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/throttle'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/to-lower'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/to-pairs'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/to-upper'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/trim'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/union-by'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/uniq'?: Linter.RuleEntry<[]>;
  'you-dont-need-lodash-underscore/values'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent Zod array style
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/array-style.md
   */
  'zod/array-style'?: Linter.RuleEntry<ZodArrayStyle>;
  /**
   * Enforce a consistent import style for Zod
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/consistent-import.md
   */
  'zod/consistent-import'?: Linter.RuleEntry<ZodConsistentImport>;
  /**
   * Enforce consistent source from Zod imports
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/consistent-import-source.md
   */
  'zod/consistent-import-source'?: Linter.RuleEntry<ZodConsistentImportSource>;
  /**
   * Enforce consistent usage of Zod schema methods
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/consistent-object-schema-type.md
   */
  'zod/consistent-object-schema-type'?: Linter.RuleEntry<ZodConsistentObjectSchemaType>;
  /**
   * Enforce consistent use of z.infer or z.output for schema type inference
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/consistent-schema-output-type-style.md
   */
  'zod/consistent-schema-output-type-style'?: Linter.RuleEntry<ZodConsistentSchemaOutputTypeStyle>;
  /**
   * Enforce a consistent naming convention for Zod schema variables
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/consistent-schema-var-name.md
   */
  'zod/consistent-schema-var-name'?: Linter.RuleEntry<ZodConsistentSchemaVarName>;
  /**
   * Disallow usage of `z.any()` in Zod schemas
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-any-schema.md
   */
  'zod/no-any-schema'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `z.coerce.boolean()` because it treats any non-empty string as `true`.
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-coerce-boolean.md
   */
  'zod/no-coerce-boolean'?: Linter.RuleEntry<[]>;
  /**
   * Disallow check combinations that can never match, are redundant, or do not apply to the schema type
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-conflicting-checks.md
   */
  'zod/no-conflicting-checks'?: Linter.RuleEntry<ZodNoConflictingChecks>;
  /**
   * Disallow calling the same schema method more than once in a single chain
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-duplicate-schema-methods.md
   */
  'zod/no-duplicate-schema-methods'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of `z.custom()` without arguments
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-empty-custom-schema.md
   */
  'zod/no-empty-custom-schema'?: Linter.RuleEntry<[]>;
  /**
   * Disallow deprecated `z.nativeEnum()` in favor of `z.enum()`.
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-native-enum.md
   */
  'zod/no-native-enum'?: Linter.RuleEntry<[]>;
  /**
   * Disallow deprecated `z.number().finite()`. In Zod 4+ number schemas do not allow infinite values by default, so it is a no-op.
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-number-schema-with-finite.md
   */
  'zod/no-number-schema-with-finite'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of `z.number().int()` as it is considered legacy
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-number-schema-with-int.md
   */
  'zod/no-number-schema-with-int'?: Linter.RuleEntry<[]>;
  /**
   * Disallow using deprecated `isFinite` on a Zod number schema; in v4+ it is always `true`.
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-number-schema-with-is-finite.md
   */
  'zod/no-number-schema-with-is-finite'?: Linter.RuleEntry<[]>;
  /**
   * Disallow using deprecated `isInt` on a Zod number schema; check the `format` property instead.
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-number-schema-with-is-int.md
   */
  'zod/no-number-schema-with-is-int'?: Linter.RuleEntry<[]>;
  /**
   * Disallow deprecated `z.number().safe()`. Use `z.int()`; `.safe()` is now identical to `.int()`.
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-number-schema-with-safe.md
   */
  'zod/no-number-schema-with-safe'?: Linter.RuleEntry<[]>;
  /**
   * Disallow deprecated `z.number().step()`. Use `.multipleOf()` instead.
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-number-schema-with-step.md
   */
  'zod/no-number-schema-with-step'?: Linter.RuleEntry<[]>;
  /**
   * Disallow using both `.optional()` and `.default()` on the same Zod schema
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-optional-and-default-together.md
   */
  'zod/no-optional-and-default-together'?: Linter.RuleEntry<ZodNoOptionalAndDefaultTogether>;
  /**
   * Disallow deprecated `z.promise()` schemas.
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-promise-schema.md
   */
  'zod/no-promise-schema'?: Linter.RuleEntry<[]>;
  /**
   * Disallow deprecated `.isNullable()` on a Zod schema; use `safeParse(null).success` instead.
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-schema-with-is-nullable.md
   */
  'zod/no-schema-with-is-nullable'?: Linter.RuleEntry<[]>;
  /**
   * Disallow deprecated `.isOptional()` on a Zod schema; use `safeParse(undefined).success` instead.
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-schema-with-is-optional.md
   */
  'zod/no-schema-with-is-optional'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of `z.string().uuid()` in favor of the dedicated `z.uuid()` schema
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-string-schema-with-uuid.md
   * @deprecated
   */
  'zod/no-string-schema-with-uuid'?: Linter.RuleEntry<[]>;
  /**
   * Disallow throwing errors directly inside Zod refine callbacks
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-throw-in-refine.md
   */
  'zod/no-throw-in-refine'?: Linter.RuleEntry<[]>;
  /**
   * Disallow transforms in z.record() key schemas, which can cause silent key mutations and data loss through key collisions
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-transform-in-record-key.md
   */
  'zod/no-transform-in-record-key'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of `z.unknown()` in Zod schemas
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-unknown-schema.md
   */
  'zod/no-unknown-schema'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `.readonly()` on schemas whose output is already immutable
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/no-unnecessary-readonly.md
   */
  'zod/no-unnecessary-readonly'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `z.enum()` over `z.union()` when all members are string literals.
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/prefer-enum-over-literal-union.md
   */
  'zod/prefer-enum-over-literal-union'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `z.looseObject()` over `z.object().passthrough()` and `z.object().loose()`
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/prefer-loose-object.md
   */
  'zod/prefer-loose-object'?: Linter.RuleEntry<[]>;
  /**
   * Enforce usage of `.meta()` over `.describe()`
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/prefer-meta.md
   */
  'zod/prefer-meta'?: Linter.RuleEntry<[]>;
  /**
   * Enforce `.meta()` as last method
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/prefer-meta-last.md
   */
  'zod/prefer-meta-last'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `z.strictObject()` over `z.object().strict()`
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/prefer-strict-object.md
   */
  'zod/prefer-strict-object'?: Linter.RuleEntry<[]>;
  /**
   * Enforce `z.string().trim()` to prevent accidental leading/trailing whitespace
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/prefer-string-schema-with-trim.md
   */
  'zod/prefer-string-schema-with-trim'?: Linter.RuleEntry<[]>;
  /**
   * Prefer top-level string format schemas over deprecated `z.string().<format>()` methods
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/prefer-top-level-string-formats.md
   */
  'zod/prefer-top-level-string-formats'?: Linter.RuleEntry<ZodPreferTopLevelStringFormats>;
  /**
   * Enforce `.trim()` is called before string length checks to ensure accurate validation
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/prefer-trim-before-string-length-checks.md
   */
  'zod/prefer-trim-before-string-length-checks'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `z.tuple()` over a length-constrained `z.array()` so the length is preserved in the inferred type.
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/prefer-tuple-over-array-length.md
   */
  'zod/prefer-tuple-over-array-length'?: Linter.RuleEntry<[]>;
  /**
   * Require type parameter on `.brand()` functions
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/require-brand-type-parameter.md
   */
  'zod/require-brand-type-parameter'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that custom refinements include an error message
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/require-error-message.md
   */
  'zod/require-error-message'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent style for error messages in Zod schema validation (using ESQuery patterns)
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/schema-error-property-style.md
   */
  'zod/schema-error-property-style'?: Linter.RuleEntry<ZodSchemaErrorPropertyStyle>;
}
/* ======= Declarations ======= */
// ----- @stylistic/array-bracket-newline -----
type StylisticArrayBracketNewline = [] | [(("always" | "never" | "consistent") | {
  multiline?: boolean;
  minItems?: (number | null);
})];
// ----- @stylistic/array-bracket-spacing -----
type StylisticArrayBracketSpacing = [] | [("always" | "never")] | [("always" | "never"), {
  singleValue?: boolean;
  objectsInArrays?: boolean;
  arraysInArrays?: boolean;
}];
// ----- @stylistic/array-element-newline -----
type StylisticArrayElementNewline = [] | [(_StylisticArrayElementNewlineBasicConfig | {
  ArrayExpression?: _StylisticArrayElementNewlineBasicConfig;
  ArrayPattern?: _StylisticArrayElementNewlineBasicConfig;
})];
type _StylisticArrayElementNewlineBasicConfig = (("always" | "never" | "consistent") | {
  consistent?: boolean;
  multiline?: boolean;
  minItems?: (number | null);
});
// ----- @stylistic/arrow-parens -----
type StylisticArrowParens = [] | [("always" | "as-needed")] | [("always" | "as-needed"), {
  requireForBlockBody?: boolean;
}];
// ----- @stylistic/arrow-spacing -----
type StylisticArrowSpacing = [] | [{
  before?: boolean;
  after?: boolean;
}];
// ----- @stylistic/block-spacing -----
type StylisticBlockSpacing = [] | [("always" | "never")];
// ----- @stylistic/brace-style -----
type StylisticBraceStyle = [] | [("1tbs" | "stroustrup" | "allman")] | [("1tbs" | "stroustrup" | "allman"), {
  allowSingleLine?: boolean;
}];
// ----- @stylistic/comma-dangle -----
type StylisticCommaDangle = [] | [(_StylisticCommaDangleValue | {
  arrays?: _StylisticCommaDangleValueWithIgnore;
  objects?: _StylisticCommaDangleValueWithIgnore;
  imports?: _StylisticCommaDangleValueWithIgnore;
  exports?: _StylisticCommaDangleValueWithIgnore;
  functions?: _StylisticCommaDangleValueWithIgnore;
  importAttributes?: _StylisticCommaDangleValueWithIgnore;
  dynamicImports?: _StylisticCommaDangleValueWithIgnore;
  enums?: _StylisticCommaDangleValueWithIgnore;
  generics?: _StylisticCommaDangleValueWithIgnore;
  tuples?: _StylisticCommaDangleValueWithIgnore;
})];
type _StylisticCommaDangleValue = ("always-multiline" | "always" | "never" | "only-multiline");
type _StylisticCommaDangleValueWithIgnore = ("always-multiline" | "always" | "never" | "only-multiline" | "ignore");
// ----- @stylistic/comma-spacing -----
type StylisticCommaSpacing = [] | [{
  before?: boolean;
  after?: boolean;
}];
// ----- @stylistic/comma-style -----
type StylisticCommaStyle = [] | [("first" | "last")] | [("first" | "last"), {
  exceptions?: {
    [k: string]: boolean | undefined;
  };
}];
// ----- @stylistic/computed-property-spacing -----
type StylisticComputedPropertySpacing = [] | [("always" | "never")] | [("always" | "never"), {
  enforceForClassMembers?: boolean;
}];
// ----- @stylistic/curly-newline -----
type StylisticCurlyNewline = [] | [(("always" | "never") | {
  IfStatementConsequent?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  IfStatementAlternative?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  DoWhileStatement?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  ForInStatement?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  ForOfStatement?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  ForStatement?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  WhileStatement?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  SwitchStatement?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  SwitchCase?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  TryStatementBlock?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  TryStatementHandler?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  TryStatementFinalizer?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  BlockStatement?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  ArrowFunctionExpression?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  FunctionDeclaration?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  FunctionExpression?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  Property?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  ClassBody?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  StaticBlock?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  WithStatement?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  TSModuleBlock?: (("always" | "never") | {
    multiline?: boolean;
    minElements?: number;
    consistent?: boolean;
  });
  multiline?: boolean;
  minElements?: number;
  consistent?: boolean;
})];
// ----- @stylistic/dot-location -----
type StylisticDotLocation = [] | [("object" | "property")];
// ----- @stylistic/eol-last -----
type StylisticEolLast = [] | [("always" | "never" | "unix" | "windows")];
// ----- @stylistic/exp-jsx-props-style -----
type StylisticExpJsxPropsStyle = [] | [{
  singleLine?: {
    maxItems?: number;
  };
  multiLine?: {
    minItems?: number;
    maxItemsPerLine?: number;
  };
}];
// ----- @stylistic/exp-list-style -----
type StylisticExpListStyle = [] | [{
  singleLine?: _StylisticExpListStyle_SingleLineConfig;
  multiLine?: _StylisticExpListStyle_MultiLineConfig;
  overrides?: {
    "()"?: (_StylisticExpListStyle_BaseConfig | "off");
    "[]"?: (_StylisticExpListStyle_BaseConfig | "off");
    "{}"?: (_StylisticExpListStyle_BaseConfig | "off");
    "<>"?: (_StylisticExpListStyle_BaseConfig | "off");
    ArrayExpression?: (_StylisticExpListStyle_BaseConfig | "off");
    ArrayPattern?: (_StylisticExpListStyle_BaseConfig | "off");
    ArrowFunctionExpression?: (_StylisticExpListStyle_BaseConfig | "off");
    CallExpression?: (_StylisticExpListStyle_BaseConfig | "off");
    ExportNamedDeclaration?: (_StylisticExpListStyle_BaseConfig | "off");
    FunctionDeclaration?: (_StylisticExpListStyle_BaseConfig | "off");
    FunctionExpression?: (_StylisticExpListStyle_BaseConfig | "off");
    IfStatement?: (_StylisticExpListStyle_BaseConfig | "off");
    ImportAttributes?: (_StylisticExpListStyle_BaseConfig | "off");
    ImportDeclaration?: (_StylisticExpListStyle_BaseConfig | "off");
    JSONArrayExpression?: (_StylisticExpListStyle_BaseConfig | "off");
    JSONObjectExpression?: (_StylisticExpListStyle_BaseConfig | "off");
    NewExpression?: (_StylisticExpListStyle_BaseConfig | "off");
    ObjectExpression?: (_StylisticExpListStyle_BaseConfig | "off");
    ObjectPattern?: (_StylisticExpListStyle_BaseConfig | "off");
    TSDeclareFunction?: (_StylisticExpListStyle_BaseConfig | "off");
    TSEnumBody?: (_StylisticExpListStyle_BaseConfig | "off");
    TSFunctionType?: (_StylisticExpListStyle_BaseConfig | "off");
    TSInterfaceBody?: (_StylisticExpListStyle_BaseConfig | "off");
    TSTupleType?: (_StylisticExpListStyle_BaseConfig | "off");
    TSTypeLiteral?: (_StylisticExpListStyle_BaseConfig | "off");
    TSTypeParameterDeclaration?: (_StylisticExpListStyle_BaseConfig | "off");
    TSTypeParameterInstantiation?: (_StylisticExpListStyle_BaseConfig | "off");
  };
}];
interface _StylisticExpListStyle_SingleLineConfig {
  spacing?: ("always" | "never");
  maxItems?: number;
}
interface _StylisticExpListStyle_MultiLineConfig {
  minItems?: number;
}
interface _StylisticExpListStyle_BaseConfig {
  singleLine?: _StylisticExpListStyle_SingleLineConfig;
  multiline?: _StylisticExpListStyle_MultiLineConfig;
}
// ----- @stylistic/function-call-argument-newline -----
type StylisticFunctionCallArgumentNewline = [] | [("always" | "never" | "consistent")];
// ----- @stylistic/function-call-spacing -----
type StylisticFunctionCallSpacing = ([] | ["never"] | [] | ["always"] | ["always", {
  allowNewlines?: boolean;
  optionalChain?: {
    before?: boolean;
    after?: boolean;
  };
}]);
// ----- @stylistic/function-paren-newline -----
type StylisticFunctionParenNewline = [] | [(("always" | "never" | "consistent" | "multiline" | "multiline-arguments") | {
  minItems?: number;
})];
// ----- @stylistic/generator-star-spacing -----
type StylisticGeneratorStarSpacing = [] | [(("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;
  });
  shorthand?: (("before" | "after" | "both" | "neither") | {
    before?: boolean;
    after?: boolean;
  });
})];
// ----- @stylistic/implicit-arrow-linebreak -----
type StylisticImplicitArrowLinebreak = [] | [("beside" | "below")];
// ----- @stylistic/indent -----
type StylisticIndent = [] | [("tab" | number)] | [("tab" | number), {
  SwitchCase?: number;
  VariableDeclarator?: ((number | ("first" | "off")) | {
    var?: (number | ("first" | "off"));
    let?: (number | ("first" | "off"));
    const?: (number | ("first" | "off"));
    using?: (number | ("first" | "off"));
  });
  assignmentOperator?: (number | "off");
  outerIIFEBody?: (number | "off");
  MemberExpression?: (number | "off");
  FunctionDeclaration?: {
    parameters?: (number | ("first" | "off"));
    body?: number;
    returnType?: number;
  };
  FunctionExpression?: {
    parameters?: (number | ("first" | "off"));
    body?: number;
    returnType?: 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 | {
    CallExpression?: boolean;
    AwaitExpression?: boolean;
    NewExpression?: boolean;
  });
  offsetTernaryExpressionsOffsetCallExpressions?: boolean;
  ignoredNodes?: string[];
  ignoreComments?: boolean;
  tabLength?: number;
}];
// ----- @stylistic/indent-binary-ops -----
type StylisticIndentBinaryOps = [] | [(number | "tab")];
// ----- @stylistic/jsx-closing-bracket-location -----
type StylisticJsxClosingBracketLocation = [] | [(("after-props" | "props-aligned" | "tag-aligned" | "line-aligned") | {
  location?: ("after-props" | "props-aligned" | "tag-aligned" | "line-aligned");
} | {
  nonEmpty?: (("after-props" | "props-aligned" | "tag-aligned" | "line-aligned") | false);
  selfClosing?: (("after-props" | "props-aligned" | "tag-aligned" | "line-aligned") | false);
})];
// ----- @stylistic/jsx-closing-tag-location -----
type StylisticJsxClosingTagLocation = [] | [("tag-aligned" | "line-aligned")];
// ----- @stylistic/jsx-curly-brace-presence -----
type StylisticJsxCurlyBracePresence = [] | [({
  props?: ("always" | "never" | "ignore");
  children?: ("always" | "never" | "ignore");
  propElementValues?: ("always" | "never" | "ignore");
} | ("always" | "never" | "ignore"))];
// ----- @stylistic/jsx-curly-newline -----
type StylisticJsxCurlyNewline = [] | [(("consistent" | "never") | {
  singleline?: ("consistent" | "require" | "forbid");
  multiline?: ("consistent" | "require" | "forbid");
})];
// ----- @stylistic/jsx-curly-spacing -----
type StylisticJsxCurlySpacing = [] | [({
  when?: ("always" | "never");
  allowMultiline?: boolean;
  spacing?: {
    objectLiterals?: ("always" | "never");
  };
  attributes?: ({
    when?: ("always" | "never");
    allowMultiline?: boolean;
    spacing?: {
      objectLiterals?: ("always" | "never");
    };
  } | boolean);
  children?: ({
    when?: ("always" | "never");
    allowMultiline?: boolean;
    spacing?: {
      objectLiterals?: ("always" | "never");
    };
  } | boolean);
} | ("always" | "never"))] | [({
  when?: ("always" | "never");
  allowMultiline?: boolean;
  spacing?: {
    objectLiterals?: ("always" | "never");
  };
  attributes?: ({
    when?: ("always" | "never");
    allowMultiline?: boolean;
    spacing?: {
      objectLiterals?: ("always" | "never");
    };
  } | boolean);
  children?: ({
    when?: ("always" | "never");
    allowMultiline?: boolean;
    spacing?: {
      objectLiterals?: ("always" | "never");
    };
  } | boolean);
} | ("always" | "never")), {
  allowMultiline?: boolean;
  spacing?: {
    objectLiterals?: ("always" | "never");
  };
}];
// ----- @stylistic/jsx-equals-spacing -----
type StylisticJsxEqualsSpacing = [] | [("always" | "never")];
// ----- @stylistic/jsx-first-prop-new-line -----
type StylisticJsxFirstPropNewLine = [] | [("always" | "never" | "multiline" | "multiline-multiprop" | "multiprop")];
// ----- @stylistic/jsx-function-call-newline -----
type StylisticJsxFunctionCallNewline = [] | [("always" | "multiline")];
// ----- @stylistic/jsx-indent -----
type StylisticJsxIndent = [] | [("tab" | number)] | [("tab" | number), {
  checkAttributes?: boolean;
  indentLogicalExpressions?: boolean;
}];
// ----- @stylistic/jsx-indent-props -----
type StylisticJsxIndentProps = [] | [(("tab" | "first") | number | {
  indentMode?: (("tab" | "first") | number);
  ignoreTernaryOperator?: boolean;
})];
// ----- @stylistic/jsx-max-props-per-line -----
type StylisticJsxMaxPropsPerLine = [] | [({
  maximum?: {
    single?: number;
    multi?: number;
  };
} | {
  maximum?: number;
  when?: ("always" | "multiline");
})];
// ----- @stylistic/jsx-newline -----
type StylisticJsxNewline = [] | [{
  prevent?: boolean;
  allowMultilines?: boolean;
}];
// ----- @stylistic/jsx-one-expression-per-line -----
type StylisticJsxOneExpressionPerLine = [] | [{
  allow?: ("none" | "literal" | "single-child" | "single-line" | "non-jsx");
}];
// ----- @stylistic/jsx-pascal-case -----
type StylisticJsxPascalCase = [] | [{
  allowAllCaps?: boolean;
  allowLeadingUnderscore?: boolean;
  allowNamespace?: boolean;
  ignore?: string[];
}];
// ----- @stylistic/jsx-quotes -----
type StylisticJsxQuotes = [] | [("prefer-single" | "prefer-double")];
// ----- @stylistic/jsx-self-closing-comp -----
type StylisticJsxSelfClosingComp = [] | [{
  component?: boolean;
  html?: boolean;
}];
// ----- @stylistic/jsx-sort-props -----
type StylisticJsxSortProps = [] | [{
  callbacksLast?: boolean;
  shorthandFirst?: boolean;
  shorthandLast?: boolean;
  multiline?: ("ignore" | "first" | "last");
  ignoreCase?: boolean;
  noSortAlphabetically?: boolean;
  reservedFirst?: (string[] | boolean);
  reservedLast?: string[];
  locale?: string;
}];
// ----- @stylistic/jsx-tag-spacing -----
type StylisticJsxTagSpacing = [] | [{
  closingSlash?: ("always" | "never" | "allow");
  beforeSelfClosing?: ("always" | "proportional-always" | "never" | "allow");
  afterOpening?: ("always" | "allow-multiline" | "never" | "allow");
  beforeClosing?: ("always" | "proportional-always" | "never" | "allow");
}];
// ----- @stylistic/jsx-wrap-multilines -----
type StylisticJsxWrapMultilines = [] | [{
  declaration?: ((true | false | "ignore" | "parens" | "parens-new-line") | (true | false | "ignore" | "parens" | "parens-new-line"));
  assignment?: ((true | false | "ignore" | "parens" | "parens-new-line") | (true | false | "ignore" | "parens" | "parens-new-line"));
  return?: ((true | false | "ignore" | "parens" | "parens-new-line") | (true | false | "ignore" | "parens" | "parens-new-line"));
  arrow?: ((true | false | "ignore" | "parens" | "parens-new-line") | (true | false | "ignore" | "parens" | "parens-new-line"));
  condition?: ((true | false | "ignore" | "parens" | "parens-new-line") | (true | false | "ignore" | "parens" | "parens-new-line"));
  logical?: ((true | false | "ignore" | "parens" | "parens-new-line") | (true | false | "ignore" | "parens" | "parens-new-line"));
  prop?: ((true | false | "ignore" | "parens" | "parens-new-line") | (true | false | "ignore" | "parens" | "parens-new-line"));
  propertyValue?: ((true | false | "ignore" | "parens" | "parens-new-line") | (true | false | "ignore" | "parens" | "parens-new-line"));
}];
// ----- @stylistic/key-spacing -----
type StylisticKeySpacing = [] | [({
  align?: (("colon" | "value") | {
    mode?: ("strict" | "minimum");
    on?: ("colon" | "value");
    beforeColon?: boolean;
    afterColon?: boolean;
  });
  mode?: ("strict" | "minimum");
  beforeColon?: boolean;
  afterColon?: boolean;
  ignoredNodes?: ("ObjectExpression" | "ObjectPattern" | "ImportDeclaration" | "ExportNamedDeclaration" | "ExportAllDeclaration" | "TSTypeLiteral" | "TSInterfaceBody" | "ClassBody")[];
} | {
  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;
  };
})];
// ----- @stylistic/keyword-spacing -----
type StylisticKeywordSpacing = [] | [{
  before?: boolean;
  after?: boolean;
  overrides?: {
    abstract?: {
      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;
    };
    function?: {
      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;
    };
    long?: {
      before?: boolean;
      after?: boolean;
    };
    native?: {
      before?: boolean;
      after?: boolean;
    };
    new?: {
      before?: boolean;
      after?: boolean;
    };
    null?: {
      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;
    };
    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;
    };
    arguments?: {
      before?: boolean;
      after?: boolean;
    };
    as?: {
      before?: boolean;
      after?: boolean;
    };
    async?: {
      before?: boolean;
      after?: boolean;
    };
    await?: {
      before?: boolean;
      after?: boolean;
    };
    eval?: {
      before?: boolean;
      after?: boolean;
    };
    from?: {
      before?: boolean;
      after?: boolean;
    };
    get?: {
      before?: boolean;
      after?: boolean;
    };
    let?: {
      before?: boolean;
      after?: boolean;
    };
    of?: {
      before?: boolean;
      after?: boolean;
    };
    set?: {
      before?: boolean;
      after?: boolean;
    };
    type?: {
      before?: boolean;
      after?: boolean;
    };
    using?: {
      before?: boolean;
      after?: boolean;
    };
    yield?: {
      before?: boolean;
      after?: boolean;
    };
    accessor?: {
      before?: boolean;
      after?: boolean;
    };
    satisfies?: {
      before?: boolean;
      after?: boolean;
    };
  };
}];
// ----- @stylistic/line-comment-position -----
type StylisticLineCommentPosition = [] | [(("above" | "beside") | {
  position?: ("above" | "beside");
  ignorePattern?: string;
  applyDefaultPatterns?: boolean;
  applyDefaultIgnorePatterns?: boolean;
})];
// ----- @stylistic/linebreak-style -----
type StylisticLinebreakStyle = [] | [("unix" | "windows")];
// ----- @stylistic/lines-around-comment -----
type StylisticLinesAroundComment = [] | [{
  beforeBlockComment?: boolean;
  afterBlockComment?: boolean;
  beforeLineComment?: boolean;
  afterLineComment?: boolean;
  allowBlockStart?: boolean;
  allowBlockEnd?: boolean;
  allowClassStart?: boolean;
  allowClassEnd?: boolean;
  allowObjectStart?: boolean;
  allowObjectEnd?: boolean;
  allowArrayStart?: boolean;
  allowArrayEnd?: boolean;
  allowInterfaceStart?: boolean;
  allowInterfaceEnd?: boolean;
  allowTypeStart?: boolean;
  allowTypeEnd?: boolean;
  allowEnumStart?: boolean;
  allowEnumEnd?: boolean;
  allowModuleStart?: boolean;
  allowModuleEnd?: boolean;
  ignorePattern?: string;
  applyDefaultIgnorePatterns?: boolean;
  afterHashbangComment?: boolean;
}];
// ----- @stylistic/lines-between-class-members -----
type StylisticLinesBetweenClassMembers = [] | [({
  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;
  exceptAfterOverload?: boolean;
}];
// ----- @stylistic/max-len -----
type StylisticMaxLen = [] | [({
  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;
}];
// ----- @stylistic/max-statements-per-line -----
type StylisticMaxStatementsPerLine = [] | [{
  max?: number;
  ignoredNodes?: ("BreakStatement" | "ClassDeclaration" | "ContinueStatement" | "DebuggerStatement" | "DoWhileStatement" | "ExpressionStatement" | "ForInStatement" | "ForOfStatement" | "ForStatement" | "FunctionDeclaration" | "IfStatement" | "ImportDeclaration" | "LabeledStatement" | "ReturnStatement" | "SwitchStatement" | "ThrowStatement" | "TryStatement" | "VariableDeclaration" | "WhileStatement" | "WithStatement" | "ExportNamedDeclaration" | "ExportDefaultDeclaration" | "ExportAllDeclaration")[];
}];
// ----- @stylistic/member-delimiter-style -----
type StylisticMemberDelimiterStyle = [] | [{
  multiline?: {
    delimiter?: ("none" | "semi" | "comma");
    requireLast?: boolean;
  };
  singleline?: {
    delimiter?: ("semi" | "comma");
    requireLast?: boolean;
  };
  overrides?: {
    interface?: _StylisticMemberDelimiterStyle_DelimiterConfig;
    typeLiteral?: _StylisticMemberDelimiterStyle_DelimiterConfig;
  };
  multilineDetection?: ("brackets" | "last-member");
}];
interface _StylisticMemberDelimiterStyle_DelimiterConfig {
  multiline?: {
    delimiter?: ("none" | "semi" | "comma");
    requireLast?: boolean;
  };
  singleline?: {
    delimiter?: ("semi" | "comma");
    requireLast?: boolean;
  };
}
// ----- @stylistic/multiline-comment-style -----
type StylisticMultilineCommentStyle = ([] | [("starred-block" | "bare-block")] | [] | ["separate-lines"] | ["separate-lines", {
  checkJSDoc?: boolean;
  checkExclamation?: boolean;
}]);
// ----- @stylistic/multiline-ternary -----
type StylisticMultilineTernary = [] | [("always" | "always-multiline" | "never")] | [("always" | "always-multiline" | "never"), {
  ignoreJSX?: boolean;
}];
// ----- @stylistic/new-parens -----
type StylisticNewParens = [] | [("always" | "never")];
// ----- @stylistic/newline-per-chained-call -----
type StylisticNewlinePerChainedCall = [] | [{
  ignoreChainWithDepth?: number;
}];
// ----- @stylistic/no-confusing-arrow -----
type StylisticNoConfusingArrow = [] | [{
  allowParens?: boolean;
  onlyOneSimpleParam?: boolean;
}];
// ----- @stylistic/no-extra-parens -----
type StylisticNoExtraParens = ([] | ["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;
  nestedConditionalExpressions?: boolean;
  allowNodesInSpreadElement?: {
    ConditionalExpression?: boolean;
    LogicalExpression?: boolean;
    AwaitExpression?: boolean;
  };
  ignoredNodes?: string[];
}]);
// ----- @stylistic/no-mixed-operators -----
type StylisticNoMixedOperators = [] | [{
  groups?: [("+" | "-" | "*" | "/" | "%" | "**" | "&" | "|" | "^" | "~" | "<<" | ">>" | ">>>" | "==" | "!=" | "===" | "!==" | ">" | ">=" | "<" | "<=" | "&&" | "||" | "in" | "instanceof" | "?:" | "??"), ("+" | "-" | "*" | "/" | "%" | "**" | "&" | "|" | "^" | "~" | "<<" | ">>" | ">>>" | "==" | "!=" | "===" | "!==" | ">" | ">=" | "<" | "<=" | "&&" | "||" | "in" | "instanceof" | "?:" | "??"), ...(("+" | "-" | "*" | "/" | "%" | "**" | "&" | "|" | "^" | "~" | "<<" | ">>" | ">>>" | "==" | "!=" | "===" | "!==" | ">" | ">=" | "<" | "<=" | "&&" | "||" | "in" | "instanceof" | "?:" | "??"))[]][];
  allowSamePrecedence?: boolean;
}];
// ----- @stylistic/no-mixed-spaces-and-tabs -----
type StylisticNoMixedSpacesAndTabs = [] | [("smart-tabs" | boolean)];
// ----- @stylistic/no-multi-spaces -----
type StylisticNoMultiSpaces = [] | [{
  exceptions?: {
    [k: string]: boolean;
  };
  ignoreEOLComments?: boolean;
  includeTabs?: boolean;
}];
// ----- @stylistic/no-multiple-empty-lines -----
type StylisticNoMultipleEmptyLines = [] | [{
  max: number;
  maxEOF?: number;
  maxBOF?: number;
}];
// ----- @stylistic/no-tabs -----
type StylisticNoTabs = [] | [{
  allowIndentationTabs?: boolean;
}];
// ----- @stylistic/no-trailing-spaces -----
type StylisticNoTrailingSpaces = [] | [{
  skipBlankLines?: boolean;
  ignoreComments?: boolean;
}];
// ----- @stylistic/nonblock-statement-body-position -----
type StylisticNonblockStatementBodyPosition = [] | [("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");
  };
}];
// ----- @stylistic/object-curly-newline -----
type StylisticObjectCurlyNewline = [] | [((("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;
  });
  TSTypeLiteral?: (("always" | "never") | {
    multiline?: boolean;
    minProperties?: number;
    consistent?: boolean;
  });
  TSInterfaceBody?: (("always" | "never") | {
    multiline?: boolean;
    minProperties?: number;
    consistent?: boolean;
  });
  TSEnumBody?: (("always" | "never") | {
    multiline?: boolean;
    minProperties?: number;
    consistent?: boolean;
  });
})];
// ----- @stylistic/object-curly-spacing -----
type StylisticObjectCurlySpacing = [] | [("always" | "never")] | [("always" | "never"), {
  arraysInObjects?: boolean;
  objectsInObjects?: boolean;
  overrides?: {
    ObjectPattern?: ("always" | "never");
    ObjectExpression?: ("always" | "never");
    ImportDeclaration?: ("always" | "never");
    ImportAttributes?: ("always" | "never");
    ExportNamedDeclaration?: ("always" | "never");
    ExportAllDeclaration?: ("always" | "never");
    TSMappedType?: ("always" | "never");
    TSTypeLiteral?: ("always" | "never");
    TSInterfaceBody?: ("always" | "never");
    TSEnumBody?: ("always" | "never");
  };
  emptyObjects?: ("ignore" | "always" | "never");
}];
// ----- @stylistic/object-property-newline -----
type StylisticObjectPropertyNewline = [] | [{
  allowAllPropertiesOnSameLine?: boolean;
}];
// ----- @stylistic/one-var-declaration-per-line -----
type StylisticOneVarDeclarationPerLine = [] | [("always" | "initializations")];
// ----- @stylistic/operator-linebreak -----
type StylisticOperatorLinebreak = [] | [(("after" | "before" | "none") | null)] | [(("after" | "before" | "none") | null), {
  overrides?: {
    [k: string]: ("after" | "before" | "none" | "ignore") | undefined;
  };
}];
// ----- @stylistic/padded-blocks -----
type StylisticPaddedBlocks = [] | [(("always" | "never" | "start" | "end") | {
  blocks?: ("always" | "never" | "start" | "end");
  switches?: ("always" | "never" | "start" | "end");
  classes?: ("always" | "never" | "start" | "end");
})] | [(("always" | "never" | "start" | "end") | {
  blocks?: ("always" | "never" | "start" | "end");
  switches?: ("always" | "never" | "start" | "end");
  classes?: ("always" | "never" | "start" | "end");
}), {
  allowSingleLineBlocks?: boolean;
}];
// ----- @stylistic/padding-line-between-statements -----
type _StylisticPaddingLineBetweenStatementsPaddingType = ("any" | "never" | "always");
type _StylisticPaddingLineBetweenStatementsStatementOption = (_StylisticPaddingLineBetweenStatementsStatementMatcher | [_StylisticPaddingLineBetweenStatementsStatementMatcher, ...(_StylisticPaddingLineBetweenStatementsStatementMatcher)[]]);
type _StylisticPaddingLineBetweenStatementsStatementMatcher = (_StylisticPaddingLineBetweenStatementsStatementType | _StylisticPaddingLineBetweenStatements_SelectorOption);
type _StylisticPaddingLineBetweenStatementsStatementType = ("*" | "exports" | "require" | "directive" | "iife" | "block" | "empty" | "function" | "ts-method" | "break" | "case" | "class" | "continue" | "debugger" | "default" | "do" | "for" | "if" | "import" | "switch" | "throw" | "try" | "while" | "with" | "cjs-export" | "cjs-import" | "enum" | "interface" | "function-overload" | "block-like" | "singleline-block-like" | "multiline-block-like" | "expression" | "singleline-expression" | "multiline-expression" | "return" | "singleline-return" | "multiline-return" | "export" | "singleline-export" | "multiline-export" | "var" | "singleline-var" | "multiline-var" | "let" | "singleline-let" | "multiline-let" | "const" | "singleline-const" | "multiline-const" | "using" | "singleline-using" | "multiline-using" | "type" | "singleline-type" | "multiline-type");
type StylisticPaddingLineBetweenStatements = {
  blankLine: _StylisticPaddingLineBetweenStatementsPaddingType;
  prev: _StylisticPaddingLineBetweenStatementsStatementOption;
  next: _StylisticPaddingLineBetweenStatementsStatementOption;
}[];
interface _StylisticPaddingLineBetweenStatements_SelectorOption {
  selector: string;
  lineMode?: ("any" | "singleline" | "multiline");
}
// ----- @stylistic/quote-props -----
type StylisticQuoteProps = ([] | [("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;
}]);
// ----- @stylistic/quotes -----
type StylisticQuotes = [] | [("single" | "double" | "backtick")] | [("single" | "double" | "backtick"), ("avoid-escape" | {
  avoidEscape?: boolean;
  allowTemplateLiterals?: (boolean | ("never" | "avoidEscape" | "always"));
  ignoreStringLiterals?: boolean;
})];
// ----- @stylistic/rest-spread-spacing -----
type StylisticRestSpreadSpacing = [] | [("always" | "never")];
// ----- @stylistic/semi -----
type StylisticSemi = ([] | ["never"] | ["never", {
  beforeStatementContinuationChars?: ("always" | "any" | "never");
}] | [] | ["always"] | ["always", {
  omitLastInOneLineBlock?: boolean;
  omitLastInOneLineClassBody?: boolean;
}]);
// ----- @stylistic/semi-spacing -----
type StylisticSemiSpacing = [] | [{
  before?: boolean;
  after?: boolean;
}];
// ----- @stylistic/semi-style -----
type StylisticSemiStyle = [] | [("last" | "first")];
// ----- @stylistic/space-before-blocks -----
type StylisticSpaceBeforeBlocks = [] | [(("always" | "never") | {
  keywords?: ("always" | "never" | "off");
  functions?: ("always" | "never" | "off");
  classes?: ("always" | "never" | "off");
  modules?: ("always" | "never" | "off");
})];
// ----- @stylistic/space-before-function-paren -----
type StylisticSpaceBeforeFunctionParen = [] | [(("always" | "never") | {
  anonymous?: ("always" | "never" | "ignore");
  named?: ("always" | "never" | "ignore");
  asyncArrow?: ("always" | "never" | "ignore");
  catch?: ("always" | "never" | "ignore");
})];
// ----- @stylistic/space-in-parens -----
type StylisticSpaceInParens = [] | [("always" | "never")] | [("always" | "never"), {
  exceptions?: ("{}" | "[]" | "()" | "empty")[];
}];
// ----- @stylistic/space-infix-ops -----
type StylisticSpaceInfixOps = [] | [{
  int32Hint?: boolean;
  ignoreTypes?: boolean;
}];
// ----- @stylistic/space-unary-ops -----
type StylisticSpaceUnaryOps = [] | [{
  words?: boolean;
  nonwords?: boolean;
  overrides?: {
    [k: string]: boolean | undefined;
  };
}];
// ----- @stylistic/spaced-comment -----
type StylisticSpacedComment = [] | [("always" | "never")] | [("always" | "never"), {
  exceptions?: string[];
  markers?: string[];
  line?: {
    exceptions?: string[];
    markers?: string[];
  };
  block?: {
    exceptions?: string[];
    markers?: string[];
    balanced?: boolean;
  };
}];
// ----- @stylistic/switch-colon-spacing -----
type StylisticSwitchColonSpacing = [] | [{
  before?: boolean;
  after?: boolean;
}];
// ----- @stylistic/template-curly-spacing -----
type StylisticTemplateCurlySpacing = [] | [("always" | "never")];
// ----- @stylistic/template-tag-spacing -----
type StylisticTemplateTagSpacing = [] | [("always" | "never")];
// ----- @stylistic/type-annotation-spacing -----
type StylisticTypeAnnotationSpacing = [] | [{
  before?: boolean;
  after?: boolean;
  overrides?: {
    colon?: _StylisticTypeAnnotationSpacing_SpacingConfig;
    arrow?: ("ignore" | _StylisticTypeAnnotationSpacing_SpacingConfig);
    variable?: _StylisticTypeAnnotationSpacing_SpacingConfig;
    parameter?: _StylisticTypeAnnotationSpacing_SpacingConfig;
    property?: _StylisticTypeAnnotationSpacing_SpacingConfig;
    returnType?: _StylisticTypeAnnotationSpacing_SpacingConfig;
  };
}];
interface _StylisticTypeAnnotationSpacing_SpacingConfig {
  before?: boolean;
  after?: boolean;
}
// ----- @stylistic/wrap-iife -----
type StylisticWrapIife = [] | [("outside" | "inside" | "any")] | [("outside" | "inside" | "any"), {
  functionPrototypeMethods?: boolean;
}];
// ----- @stylistic/yield-star-spacing -----
type StylisticYieldStarSpacing = [] | [(("before" | "after" | "both" | "neither") | {
  before?: boolean;
  after?: boolean;
})];
// ----- @tanstack/query/exhaustive-deps -----
type TanstackQueryExhaustiveDeps = [] | [{
  allowlist?: {
    variables?: string[];
    types?: string[];
  };
}];
// ----- @typescript-eslint/array-type -----
type TypescriptEslintArrayType = [] | [{
  default?: ("array" | "generic" | "array-simple");
  readonly?: ("array" | "generic" | "array-simple");
}];
// ----- @typescript-eslint/ban-ts-comment -----
type TypescriptEslintBanTsComment = [] | [{
  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;
  });
}];
// ----- @typescript-eslint/class-literal-property-style -----
type TypescriptEslintClassLiteralPropertyStyle = [] | [("fields" | "getters")];
// ----- @typescript-eslint/class-methods-use-this -----
type TypescriptEslintClassMethodsUseThis = [] | [{
  enforceForClassFields?: boolean;
  exceptMethods?: string[];
  ignoreClassesThatImplementAnInterface?: (boolean | "public-fields");
  ignoreOverrideMethods?: boolean;
}];
// ----- @typescript-eslint/consistent-generic-constructors -----
type TypescriptEslintConsistentGenericConstructors = [] | [("type-annotation" | "constructor")];
// ----- @typescript-eslint/consistent-indexed-object-style -----
type TypescriptEslintConsistentIndexedObjectStyle = [] | [("record" | "index-signature")];
// ----- @typescript-eslint/consistent-return -----
type TypescriptEslintConsistentReturn = [] | [{
  treatUndefinedAsUnspecified?: boolean;
}];
// ----- @typescript-eslint/consistent-type-assertions -----
type TypescriptEslintConsistentTypeAssertions = [] | [({
  assertionStyle: "never";
} | {
  arrayLiteralTypeAssertions?: ("allow" | "allow-as-parameter" | "never");
  assertionStyle?: ("as" | "angle-bracket");
  objectLiteralTypeAssertions?: ("allow" | "allow-as-parameter" | "never");
})];
// ----- @typescript-eslint/consistent-type-definitions -----
type TypescriptEslintConsistentTypeDefinitions = [] | [("interface" | "type")];
// ----- @typescript-eslint/consistent-type-exports -----
type TypescriptEslintConsistentTypeExports = [] | [{
  fixMixedExportsWithInlineTypeSpecifier?: boolean;
}];
// ----- @typescript-eslint/consistent-type-imports -----
type TypescriptEslintConsistentTypeImports = [] | [{
  disallowTypeAnnotations?: boolean;
  fixStyle?: ("separate-type-imports" | "inline-type-imports");
  prefer?: ("type-imports" | "no-type-imports");
}];
// ----- @typescript-eslint/dot-notation -----
type TypescriptEslintDotNotation = [] | [{
  allowIndexSignaturePropertyAccess?: boolean;
  allowKeywords?: boolean;
  allowPattern?: string;
  allowPrivateClassPropertyAccess?: boolean;
  allowProtectedClassPropertyAccess?: boolean;
}];
// ----- @typescript-eslint/explicit-function-return-type -----
type TypescriptEslintExplicitFunctionReturnType = [] | [{
  allowConciseArrowFunctionExpressionsStartingWithVoid?: boolean;
  allowDirectConstAssertionInArrowFunctions?: boolean;
  allowedNames?: string[];
  allowExpressions?: boolean;
  allowFunctionsWithoutTypeParameters?: boolean;
  allowHigherOrderFunctions?: boolean;
  allowIIFEs?: boolean;
  allowTypedFunctionExpressions?: boolean;
}];
// ----- @typescript-eslint/explicit-member-accessibility -----
type TypescriptEslintExplicitMemberAccessibility = [] | [{
  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");
  };
}];
// ----- @typescript-eslint/explicit-module-boundary-types -----
type TypescriptEslintExplicitModuleBoundaryTypes = [] | [{
  allowArgumentsExplicitlyTypedAsAny?: boolean;
  allowDirectConstAssertionInArrowFunctions?: boolean;
  allowedNames?: string[];
  allowHigherOrderFunctions?: boolean;
  allowOverloadFunctions?: boolean;
  allowTypedFunctionExpressions?: boolean;
}];
// ----- @typescript-eslint/init-declarations -----
type TypescriptEslintInitDeclarations = ([] | ["always"] | [] | ["never"] | ["never", {
  ignoreForLoopInit?: boolean;
}]);
// ----- @typescript-eslint/max-params -----
type TypescriptEslintMaxParams = [] | [{
  countVoidThis?: boolean;
  max?: number;
  maximum?: number;
}];
// ----- @typescript-eslint/member-ordering -----
type TypescriptEslintMemberOrdering = [] | [{
  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");
  });
}];
// ----- @typescript-eslint/method-signature-style -----
type TypescriptEslintMethodSignatureStyle = [] | [("property" | "method")];
// ----- @typescript-eslint/naming-convention -----
type _TypescriptEslintNamingConventionFormatOptionsConfig = (_TypescriptEslintNamingConventionPredefinedFormats[] | null);
type _TypescriptEslintNamingConventionPredefinedFormats = ("camelCase" | "strictCamelCase" | "PascalCase" | "StrictPascalCase" | "snake_case" | "UPPER_CASE");
type _TypescriptEslintNamingConventionUnderscoreOptions = ("forbid" | "allow" | "require" | "requireDouble" | "allowDouble" | "allowSingleOrDouble");
type _TypescriptEslintNamingConvention_PrefixSuffixConfig = string[];
type _TypescriptEslintNamingConventionTypeModifiers = ("boolean" | "string" | "number" | "function" | "array");
type TypescriptEslintNamingConvention = ({
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_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?: _TypescriptEslintNamingConventionTypeModifiers[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "default";
  modifiers?: ("const" | "readonly" | "static" | "public" | "protected" | "private" | "#private" | "abstract" | "destructured" | "global" | "exported" | "unused" | "requiresQuotes" | "override" | "async" | "default" | "namespace")[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "variableLike";
  modifiers?: ("unused" | "async")[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "variable";
  modifiers?: ("const" | "destructured" | "exported" | "global" | "unused" | "async")[];
  types?: _TypescriptEslintNamingConventionTypeModifiers[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "function";
  modifiers?: ("exported" | "global" | "unused" | "async")[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "parameter";
  modifiers?: ("destructured" | "unused")[];
  types?: _TypescriptEslintNamingConventionTypeModifiers[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "memberLike";
  modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "readonly" | "requiresQuotes" | "static" | "override" | "async")[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "classProperty";
  modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "readonly" | "requiresQuotes" | "static" | "override")[];
  types?: _TypescriptEslintNamingConventionTypeModifiers[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "objectLiteralProperty";
  modifiers?: ("public" | "requiresQuotes")[];
  types?: _TypescriptEslintNamingConventionTypeModifiers[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "typeProperty";
  modifiers?: ("public" | "readonly" | "requiresQuotes")[];
  types?: _TypescriptEslintNamingConventionTypeModifiers[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "parameterProperty";
  modifiers?: ("private" | "protected" | "public" | "readonly")[];
  types?: _TypescriptEslintNamingConventionTypeModifiers[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "property";
  modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "readonly" | "requiresQuotes" | "static" | "override" | "async")[];
  types?: _TypescriptEslintNamingConventionTypeModifiers[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "classMethod";
  modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "requiresQuotes" | "static" | "override" | "async")[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "objectLiteralMethod";
  modifiers?: ("public" | "requiresQuotes" | "async")[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "typeMethod";
  modifiers?: ("public" | "requiresQuotes")[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "method";
  modifiers?: ("abstract" | "private" | "#private" | "protected" | "public" | "requiresQuotes" | "static" | "override" | "async")[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "classicAccessor";
  modifiers?: ("abstract" | "private" | "protected" | "public" | "requiresQuotes" | "static" | "override")[];
  types?: _TypescriptEslintNamingConventionTypeModifiers[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "autoAccessor";
  modifiers?: ("abstract" | "private" | "protected" | "public" | "requiresQuotes" | "static" | "override")[];
  types?: _TypescriptEslintNamingConventionTypeModifiers[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "accessor";
  modifiers?: ("abstract" | "private" | "protected" | "public" | "requiresQuotes" | "static" | "override")[];
  types?: _TypescriptEslintNamingConventionTypeModifiers[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "enumMember";
  modifiers?: ("requiresQuotes")[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "typeLike";
  modifiers?: ("abstract" | "exported" | "unused")[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "class";
  modifiers?: ("abstract" | "exported" | "unused")[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "interface";
  modifiers?: ("exported" | "unused")[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "typeAlias";
  modifiers?: ("exported" | "unused")[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "enum";
  modifiers?: ("exported" | "unused")[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "typeParameter";
  modifiers?: ("unused")[];
} | {
  custom?: _TypescriptEslintNamingConvention_MatchRegexConfig;
  failureMessage?: string;
  format: _TypescriptEslintNamingConventionFormatOptionsConfig;
  leadingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  prefix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  suffix?: _TypescriptEslintNamingConvention_PrefixSuffixConfig;
  trailingUnderscore?: _TypescriptEslintNamingConventionUnderscoreOptions;
  filter?: (string | _TypescriptEslintNamingConvention_MatchRegexConfig);
  selector: "import";
  modifiers?: ("default" | "namespace")[];
})[];
interface _TypescriptEslintNamingConvention_MatchRegexConfig {
  match: boolean;
  regex: string;
}
// ----- @typescript-eslint/no-base-to-string -----
type TypescriptEslintNoBaseToString = [] | [{
  checkUnknown?: boolean;
  ignoredTypeNames?: string[];
}];
// ----- @typescript-eslint/no-confusing-void-expression -----
type TypescriptEslintNoConfusingVoidExpression = [] | [{
  ignoreArrowShorthand?: boolean;
  ignoreVoidOperator?: boolean;
  ignoreVoidReturningFunctions?: boolean;
}];
// ----- @typescript-eslint/no-deprecated -----
type TypescriptEslintNoDeprecated = [] | [{
  allow?: (string | {
    from: "file";
    name: (string | [string, ...(string)[]]);
    path?: string;
  } | {
    from: "lib";
    name: (string | [string, ...(string)[]]);
  } | {
    from: "package";
    name: (string | [string, ...(string)[]]);
    package: string;
  })[];
}];
// ----- @typescript-eslint/no-duplicate-type-constituents -----
type TypescriptEslintNoDuplicateTypeConstituents = [] | [{
  ignoreIntersections?: boolean;
  ignoreUnions?: boolean;
}];
// ----- @typescript-eslint/no-empty-function -----
type TypescriptEslintNoEmptyFunction = [] | [{
  allow?: ("functions" | "arrowFunctions" | "generatorFunctions" | "methods" | "generatorMethods" | "getters" | "setters" | "constructors" | "private-constructors" | "protected-constructors" | "asyncFunctions" | "asyncMethods" | "decoratedFunctions" | "overrideMethods")[];
}];
// ----- @typescript-eslint/no-empty-interface -----
type TypescriptEslintNoEmptyInterface = [] | [{
  allowSingleExtends?: boolean;
}];
// ----- @typescript-eslint/no-empty-object-type -----
type TypescriptEslintNoEmptyObjectType = [] | [{
  allowInterfaces?: ("always" | "never" | "with-single-extends");
  allowObjectTypes?: ("always" | "never");
  allowWithName?: string;
}];
// ----- @typescript-eslint/no-explicit-any -----
type TypescriptEslintNoExplicitAny = [] | [{
  fixToUnknown?: boolean;
  ignoreRestArgs?: boolean;
}];
// ----- @typescript-eslint/no-extraneous-class -----
type TypescriptEslintNoExtraneousClass = [] | [{
  allowConstructorOnly?: boolean;
  allowEmpty?: boolean;
  allowStaticOnly?: boolean;
  allowWithDecorator?: boolean;
}];
// ----- @typescript-eslint/no-floating-promises -----
type TypescriptEslintNoFloatingPromises = [] | [{
  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;
}];
// ----- @typescript-eslint/no-inferrable-types -----
type TypescriptEslintNoInferrableTypes = [] | [{
  ignoreParameters?: boolean;
  ignoreProperties?: boolean;
}];
// ----- @typescript-eslint/no-invalid-this -----
type TypescriptEslintNoInvalidThis = [] | [{
  capIsConstructor?: boolean;
}];
// ----- @typescript-eslint/no-invalid-void-type -----
type TypescriptEslintNoInvalidVoidType = [] | [{
  allowAsThisParameter?: boolean;
  allowInGenericTypeArguments?: (boolean | [string, ...(string)[]]);
}];
// ----- @typescript-eslint/no-magic-numbers -----
type TypescriptEslintNoMagicNumbers = [] | [{
  detectObjects?: boolean;
  enforceConst?: boolean;
  ignore?: (number | string)[];
  ignoreArrayIndexes?: boolean;
  ignoreDefaultValues?: boolean;
  ignoreClassFieldInitialValues?: boolean;
  ignoreEnums?: boolean;
  ignoreNumericLiteralTypes?: boolean;
  ignoreReadonlyClassProperties?: boolean;
  ignoreTypeIndexes?: boolean;
}];
// ----- @typescript-eslint/no-meaningless-void-operator -----
type TypescriptEslintNoMeaninglessVoidOperator = [] | [{
  checkNever?: boolean;
}];
// ----- @typescript-eslint/no-misused-promises -----
type TypescriptEslintNoMisusedPromises = [] | [{
  checksConditionals?: boolean;
  checksSpreads?: boolean;
  checksVoidReturn?: (boolean | {
    arguments?: boolean;
    attributes?: boolean;
    inheritedMethods?: boolean;
    properties?: boolean;
    returns?: boolean;
    variables?: boolean;
  });
}];
// ----- @typescript-eslint/no-misused-spread -----
type TypescriptEslintNoMisusedSpread = [] | [{
  allow?: (string | {
    from: "file";
    name: (string | [string, ...(string)[]]);
    path?: string;
  } | {
    from: "lib";
    name: (string | [string, ...(string)[]]);
  } | {
    from: "package";
    name: (string | [string, ...(string)[]]);
    package: string;
  })[];
}];
// ----- @typescript-eslint/no-namespace -----
type TypescriptEslintNoNamespace = [] | [{
  allowDeclarations?: boolean;
  allowDefinitionFiles?: boolean;
}];
// ----- @typescript-eslint/no-redeclare -----
type TypescriptEslintNoRedeclare = [] | [{
  builtinGlobals?: boolean;
  ignoreDeclarationMerge?: boolean;
}];
// ----- @typescript-eslint/no-require-imports -----
type TypescriptEslintNoRequireImports = [] | [{
  allow?: string[];
  allowAsImport?: boolean;
}];
// ----- @typescript-eslint/no-restricted-imports -----
type TypescriptEslintNoRestrictedImports = ((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;
  }[]);
}]);
// ----- @typescript-eslint/no-restricted-types -----
type TypescriptEslintNoRestrictedTypes = [] | [{
  types?: {
    [k: string]: (true | string | {
      fixWith?: string;
      message?: string;
      suggest?: string[];
    }) | undefined;
  };
}];
// ----- @typescript-eslint/no-shadow -----
type TypescriptEslintNoShadow = [] | [{
  allow?: string[];
  builtinGlobals?: boolean;
  hoist?: ("all" | "functions" | "functions-and-types" | "never" | "types");
  ignoreFunctionTypeParameterNameValueShadow?: boolean;
  ignoreOnInitialization?: boolean;
  ignoreTypeValueShadow?: boolean;
}];
// ----- @typescript-eslint/no-this-alias -----
type TypescriptEslintNoThisAlias = [] | [{
  allowDestructuring?: boolean;
  allowedNames?: string[];
}];
// ----- @typescript-eslint/no-type-alias -----
type TypescriptEslintNoTypeAlias = [] | [{
  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");
}];
// ----- @typescript-eslint/no-unnecessary-boolean-literal-compare -----
type TypescriptEslintNoUnnecessaryBooleanLiteralCompare = [] | [{
  allowComparingNullableBooleansToFalse?: boolean;
  allowComparingNullableBooleansToTrue?: boolean;
  allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean;
}];
// ----- @typescript-eslint/no-unnecessary-condition -----
type TypescriptEslintNoUnnecessaryCondition = [] | [{
  allowConstantLoopConditions?: (boolean | ("always" | "never" | "only-allowed-literals"));
  allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean;
  checkTypePredicates?: boolean;
}];
// ----- @typescript-eslint/no-unnecessary-type-assertion -----
type TypescriptEslintNoUnnecessaryTypeAssertion = [] | [{
  checkLiteralConstAssertions?: boolean;
  typesToIgnore?: string[];
}];
// ----- @typescript-eslint/no-unsafe-member-access -----
type TypescriptEslintNoUnsafeMemberAccess = [] | [{
  allowOptionalChaining?: boolean;
}];
// ----- @typescript-eslint/no-unused-expressions -----
type TypescriptEslintNoUnusedExpressions = [] | [{
  allowShortCircuit?: boolean;
  allowTernary?: boolean;
  allowTaggedTemplates?: boolean;
  enforceForJSX?: boolean;
  ignoreDirectives?: boolean;
}];
// ----- @typescript-eslint/no-unused-vars -----
type TypescriptEslintNoUnusedVars = [] | [(("all" | "local") | {
  args?: ("all" | "after-used" | "none");
  argsIgnorePattern?: string;
  caughtErrors?: ("all" | "none");
  caughtErrorsIgnorePattern?: string;
  destructuredArrayIgnorePattern?: string;
  enableAutofixRemoval?: {
    imports?: boolean;
  };
  ignoreClassWithStaticInitBlock?: boolean;
  ignoreRestSiblings?: boolean;
  ignoreUsingDeclarations?: boolean;
  reportUsedIgnorePattern?: boolean;
  vars?: ("all" | "local");
  varsIgnorePattern?: string;
})];
// ----- @typescript-eslint/no-use-before-define -----
type TypescriptEslintNoUseBeforeDefine = [] | [("nofunc" | {
  allowNamedExports?: boolean;
  classes?: boolean;
  enums?: boolean;
  functions?: boolean;
  ignoreTypeReferences?: boolean;
  typedefs?: boolean;
  variables?: boolean;
})];
// ----- @typescript-eslint/no-useless-default-assignment -----
type TypescriptEslintNoUselessDefaultAssignment = [] | [{
  allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean;
}];
// ----- @typescript-eslint/no-var-requires -----
type TypescriptEslintNoVarRequires = [] | [{
  allow?: string[];
}];
// ----- @typescript-eslint/only-throw-error -----
type TypescriptEslintOnlyThrowError = [] | [{
  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;
}];
// ----- @typescript-eslint/parameter-properties -----
type TypescriptEslintParameterProperties = [] | [{
  allow?: ("readonly" | "private" | "protected" | "public" | "private readonly" | "protected readonly" | "public readonly")[];
  prefer?: ("class-property" | "parameter-property");
}];
// ----- @typescript-eslint/prefer-destructuring -----
type TypescriptEslintPreferDestructuring = [] | [({
  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;
}];
// ----- @typescript-eslint/prefer-literal-enum-member -----
type TypescriptEslintPreferLiteralEnumMember = [] | [{
  allowBitwiseExpressions?: boolean;
}];
// ----- @typescript-eslint/prefer-nullish-coalescing -----
type TypescriptEslintPreferNullishCoalescing = [] | [{
  allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean;
  ignoreBooleanCoercion?: boolean;
  ignoreConditionalTests?: boolean;
  ignoreIfStatements?: boolean;
  ignoreMixedLogicalExpressions?: boolean;
  ignorePrimitives?: ({
    bigint?: boolean;
    boolean?: boolean;
    number?: boolean;
    string?: boolean;
  } | true);
  ignoreTernaryTests?: boolean;
}];
// ----- @typescript-eslint/prefer-optional-chain -----
type TypescriptEslintPreferOptionalChain = [] | [{
  allowPotentiallyUnsafeFixesThatModifyTheReturnTypeIKnowWhatImDoing?: boolean;
  checkAny?: boolean;
  checkBigInt?: boolean;
  checkBoolean?: boolean;
  checkNumber?: boolean;
  checkString?: boolean;
  checkUnknown?: boolean;
  requireNullish?: boolean;
}];
// ----- @typescript-eslint/prefer-promise-reject-errors -----
type TypescriptEslintPreferPromiseRejectErrors = [] | [{
  allow?: (string | {
    from: "file";
    name: (string | [string, ...(string)[]]);
    path?: string;
  } | {
    from: "lib";
    name: (string | [string, ...(string)[]]);
  } | {
    from: "package";
    name: (string | [string, ...(string)[]]);
    package: string;
  })[];
  allowEmptyReject?: boolean;
  allowThrowingAny?: boolean;
  allowThrowingUnknown?: boolean;
}];
// ----- @typescript-eslint/prefer-readonly -----
type TypescriptEslintPreferReadonly = [] | [{
  onlyInlineLambdas?: boolean;
}];
// ----- @typescript-eslint/prefer-readonly-parameter-types -----
type TypescriptEslintPreferReadonlyParameterTypes = [] | [{
  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;
}];
// ----- @typescript-eslint/prefer-string-starts-ends-with -----
type TypescriptEslintPreferStringStartsEndsWith = [] | [{
  allowSingleElementEquality?: ("always" | "never");
}];
// ----- @typescript-eslint/promise-function-async -----
type TypescriptEslintPromiseFunctionAsync = [] | [{
  allowAny?: boolean;
  allowedPromiseNames?: string[];
  checkArrowFunctions?: boolean;
  checkFunctionDeclarations?: boolean;
  checkFunctionExpressions?: boolean;
  checkMethodDeclarations?: boolean;
}];
// ----- @typescript-eslint/require-array-sort-compare -----
type TypescriptEslintRequireArraySortCompare = [] | [{
  ignoreStringArrays?: boolean;
}];
// ----- @typescript-eslint/restrict-plus-operands -----
type TypescriptEslintRestrictPlusOperands = [] | [{
  allowAny?: boolean;
  allowBoolean?: boolean;
  allowNullish?: boolean;
  allowNumberAndString?: boolean;
  allowRegExp?: boolean;
  skipCompoundAssignments?: boolean;
}];
// ----- @typescript-eslint/restrict-template-expressions -----
type TypescriptEslintRestrictTemplateExpressions = [] | [{
  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;
  })[];
}];
// ----- @typescript-eslint/return-await -----
type TypescriptEslintReturnAwait = [] | [(("always" | "error-handling-correctness-only" | "in-try-catch" | "never") & string)];
// ----- @typescript-eslint/sort-type-constituents -----
type TypescriptEslintSortTypeConstituents = [] | [{
  caseSensitive?: boolean;
  checkIntersections?: boolean;
  checkUnions?: boolean;
  groupOrder?: ("conditional" | "function" | "import" | "intersection" | "keyword" | "nullish" | "literal" | "named" | "object" | "operator" | "tuple" | "union")[];
}];
// ----- @typescript-eslint/strict-boolean-expressions -----
type TypescriptEslintStrictBooleanExpressions = [] | [{
  allowAny?: boolean;
  allowNullableBoolean?: boolean;
  allowNullableEnum?: boolean;
  allowNullableNumber?: boolean;
  allowNullableObject?: boolean;
  allowNullableString?: boolean;
  allowNumber?: boolean;
  allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean;
  allowString?: boolean;
}];
// ----- @typescript-eslint/strict-void-return -----
type TypescriptEslintStrictVoidReturn = [] | [{
  allowReturnAny?: boolean;
}];
// ----- @typescript-eslint/switch-exhaustiveness-check -----
type TypescriptEslintSwitchExhaustivenessCheck = [] | [{
  allowDefaultCaseForExhaustiveSwitch?: boolean;
  considerDefaultExhaustiveForUnions?: boolean;
  defaultCaseCommentPattern?: string;
  requireDefaultForNonUnion?: boolean;
}];
// ----- @typescript-eslint/triple-slash-reference -----
type TypescriptEslintTripleSlashReference = [] | [{
  lib?: ("always" | "never");
  path?: ("always" | "never");
  types?: ("always" | "never" | "prefer-import");
}];
// ----- @typescript-eslint/typedef -----
type TypescriptEslintTypedef = [] | [{
  arrayDestructuring?: boolean;
  arrowParameter?: boolean;
  memberVariableDeclaration?: boolean;
  objectDestructuring?: boolean;
  parameter?: boolean;
  propertyDeclaration?: boolean;
  variableDeclaration?: boolean;
  variableDeclarationIgnoreFunction?: boolean;
}];
// ----- @typescript-eslint/unbound-method -----
type TypescriptEslintUnboundMethod = [] | [{
  ignoreStatic?: boolean;
}];
// ----- @typescript-eslint/unified-signatures -----
type TypescriptEslintUnifiedSignatures = [] | [{
  ignoreDifferentlyNamedParameters?: boolean;
  ignoreOverloadsWithDifferentJSDoc?: boolean;
}];
// ----- antfu/consistent-chaining -----
type AntfuConsistentChaining = [] | [{
  allowLeadingPropertyAccess?: boolean;
}];
// ----- antfu/consistent-list-newline -----
type AntfuConsistentListNewline = [] | [{
  ArrayExpression?: boolean;
  ArrayPattern?: boolean;
  ArrowFunctionExpression?: boolean;
  CallExpression?: boolean;
  ExportNamedDeclaration?: boolean;
  FunctionDeclaration?: boolean;
  FunctionExpression?: boolean;
  IfStatement?: boolean;
  ImportDeclaration?: boolean;
  JSONArrayExpression?: boolean;
  JSONObjectExpression?: boolean;
  JSXOpeningElement?: boolean;
  NewExpression?: boolean;
  ObjectExpression?: boolean;
  ObjectPattern?: boolean;
  TSFunctionType?: boolean;
  TSInterfaceDeclaration?: boolean;
  TSTupleType?: boolean;
  TSTypeLiteral?: boolean;
  TSTypeParameterDeclaration?: boolean;
  TSTypeParameterInstantiation?: boolean;
}];
// ----- antfu/indent-unindent -----
type AntfuIndentUnindent = [] | [{
  indent?: number;
  tags?: string[];
}];
// ----- 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/no-unsafe-inline-scripts -----
type AstroNoUnsafeInlineScripts = [] | [{
  allowDefineVars?: boolean;
  allowModuleScripts?: boolean;
  allowNonExecutingTypes?: string[];
  allowNonce?: boolean;
}];
// ----- 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");
}];
// ----- compat/compat -----
type CompatCompat = [] | [string];
// ----- 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")[];
}];
// ----- format/dprint -----
type FormatDprint = [] | [{
  language?: string;
  languageOptions?: {
    [k: string]: unknown | undefined;
  };
  plugins?: unknown[];
  [k: string]: unknown | undefined;
}];
// ----- format/oxfmt -----
type FormatOxfmt = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- format/prettier -----
type FormatPrettier = [] | [{
  parser: string;
  [k: string]: unknown | undefined;
}];
// ----- 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?: [unknown, ...(unknown)[]];
}];
// ----- 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?: [unknown, ...(unknown)[]];
  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?: [unknown, ...(unknown)[]];
}];
// ----- import/no-relative-parent-imports -----
type ImportNoRelativeParentImports = [] | [{
  commonjs?: boolean;
  amd?: boolean;
  esmodule?: boolean;
  ignore?: [unknown, ...(unknown)[]];
}];
// ----- 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?: [unknown, ...(unknown)[]];
  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");
}];
// ----- import/prefer-namespace-import -----
type ImportPreferNamespaceImport = [] | [{
  patterns?: string[];
}];
// ----- jsdoc/check-alignment -----
type JsdocCheckAlignment = [] | [{
  innerIndent?: number;
}];
// ----- 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 = [] | [{
  allowIndentedSections?: boolean;
  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;
  inlineTags?: string[];
  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/escape-inline-tags -----
type JsdocEscapeInlineTags = [] | [{
  allowedInlineTags?: string[];
  enableFixer?: boolean;
  fixType?: ("backticks" | "backslash");
}];
// ----- 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;
  ignoreSingleLines?: 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;
    replacement?: string;
    tags?: string[];
  }[];
}];
// ----- jsdoc/multiline-blocks -----
type JsdocMultilineBlocks = [] | [{
  allowMultipleTags?: boolean;
  minimumLengthForMultiline?: number;
  multilineTags?: ("*" | string[]);
  noFinalLineText?: boolean;
  noMultilineBlocks?: boolean;
  noSingleLineBlocks?: boolean;
  noZeroLineText?: boolean;
  requireSingleLineUnderCount?: number;
  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 = [] | [{
  checkUsedTypedefs?: boolean;
  definedTypes?: string[];
  disableReporting?: boolean;
  markVariablesAsUsed?: boolean;
}];
// ----- jsdoc/normalize-see-links -----
type JsdocNormalizeSeeLinks = [] | [{
  canonicalForm?: ("pipe" | "prefix");
  enableFixer?: boolean;
  wrapBareUrls?: boolean;
}];
// ----- jsdoc/prefer-import-tag -----
type JsdocPreferImportTag = [] | [{
  enableFixer?: boolean;
  exemptTypedefs?: boolean;
  outputType?: ("named-import" | "namespaced-import");
}];
// ----- jsdoc/require-asterisk-prefix -----
type JsdocRequireAsteriskPrefix = [] | [("always" | "never" | "any")] | [("always" | "never" | "any"), {
  tags?: {
    always?: string[];
    any?: string[];
    never?: string[];
  };
}];
// ----- 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 = [] | [{
  checkAllFunctionExpressions?: boolean;
  checkConstructors?: boolean;
  checkGetters?: (boolean | "no-setter");
  checkSetters?: (boolean | "no-getter");
  contexts?: (string | {
    context?: string;
    inlineCommentBlock?: boolean;
    minLineCount?: number;
  })[];
  enableFixer?: boolean;
  exemptEmptyConstructors?: boolean;
  exemptEmptyFunctions?: boolean;
  exemptOverloadedImplementations?: 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;
  };
  skipInterveningOverloadedDeclarations?: 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;
  interfaceExemptsParamsCheck?: 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-rejects -----
type JsdocRequireRejects = [] | [{
  contexts?: (string | {
    comment?: string;
    context?: string;
  })[];
  exemptedBy?: string[];
}];
// ----- 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;
  noNativeTypes?: 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-tags -----
type JsdocRequireTags = [] | [{
  tags?: (string | {
    context?: string;
    tag?: string;
    [k: string]: unknown | undefined;
  })[];
}];
// ----- jsdoc/require-template -----
type JsdocRequireTemplate = [] | [{
  exemptedBy?: string[];
  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;
  })[];
  next?: boolean;
}];
// ----- jsdoc/sort-tags -----
type JsdocSortTags = [] | [{
  alphabetizeExtras?: boolean;
  linesBetween?: number;
  reportIntraTagGroupSpacing?: boolean;
  reportTagGroupSpacing?: boolean;
  tagExceptions?: {
    [k: string]: number;
  };
  tagSequence?: {
    tags?: string[];
  }[];
}];
// ----- jsdoc/tag-lines -----
type JsdocTagLines = [] | [("always" | "any" | "never")] | [("always" | "any" | "never"), {
  applyToEndTag?: boolean;
  count?: number;
  endLines?: (number | null);
  maxBlockLines?: (number | null);
  startLines?: (number | null);
  startLinesWithNoTags?: number;
  tags?: {
    [k: string]: {
      count?: number;
      lines?: ("always" | "never" | "any");
    };
  };
}];
// ----- jsdoc/text-escaping -----
type JsdocTextEscaping = [] | [{
  escapeHTML?: boolean;
  escapeMarkdown?: boolean;
}];
// ----- jsdoc/ts-method-signature-style -----
type JsdocTsMethodSignatureStyle = [] | [("method" | "property")] | [("method" | "property"), {
  enableFixer?: boolean;
}];
// ----- jsdoc/ts-no-unnecessary-template-expression -----
type JsdocTsNoUnnecessaryTemplateExpression = [] | [{
  enableFixer?: boolean;
}];
// ----- jsdoc/ts-prefer-function-type -----
type JsdocTsPreferFunctionType = [] | [{
  enableFixer?: boolean;
}];
// ----- jsdoc/type-formatting -----
type JsdocTypeFormatting = [] | [{
  arrayBrackets?: ("angle" | "square");
  arrowFunctionPostReturnMarkerSpacing?: string;
  arrowFunctionPreReturnMarkerSpacing?: string;
  enableFixer?: boolean;
  functionOrClassParameterSpacing?: string;
  functionOrClassPostGenericSpacing?: string;
  functionOrClassPostReturnMarkerSpacing?: string;
  functionOrClassPreReturnMarkerSpacing?: string;
  functionOrClassTypeParameterSpacing?: string;
  genericAndTupleElementSpacing?: string;
  genericDot?: boolean;
  keyValuePostColonSpacing?: string;
  keyValuePostKeySpacing?: string;
  keyValuePostOptionalSpacing?: string;
  keyValuePostVariadicSpacing?: string;
  methodQuotes?: ("double" | "single");
  objectFieldIndent?: string;
  objectFieldQuote?: ("double" | "single" | null);
  objectFieldSeparator?: ("comma" | "comma-and-linebreak" | "linebreak" | "semicolon" | "semicolon-and-linebreak");
  objectFieldSeparatorOptionalLinebreak?: boolean;
  objectFieldSeparatorTrailingPunctuation?: boolean;
  objectTypeBracketSpacing?: string;
  parameterDefaultValueSpacing?: string;
  postMethodNameSpacing?: string;
  postNewSpacing?: string;
  separatorForSingleObjectField?: boolean;
  stringQuotes?: ("double" | "single");
  trailingPunctuationMultilineOnly?: boolean;
  typeBracketSpacing?: string;
  unionSpacing?: string;
}];
// ----- jsdoc/valid-types -----
type JsdocValidTypes = [] | [{
  allowEmptyNamepaths?: boolean;
}];
// ----- jsonc/array-bracket-newline -----
type JsoncArrayBracketNewline = [] | [(("always" | "never" | "consistent") | {
  multiline?: boolean;
  minItems?: (number | null);
})];
// ----- jsonc/array-bracket-spacing -----
type JsoncArrayBracketSpacing = [] | [("always" | "never")] | [("always" | "never"), {
  singleValue?: boolean;
  objectsInArrays?: boolean;
  arraysInArrays?: boolean;
}];
// ----- jsonc/array-element-newline -----
type JsoncArrayElementNewline = [] | [(_JsoncArrayElementNewlineBasicConfig | {
  ArrayExpression?: _JsoncArrayElementNewlineBasicConfig;
  JSONArrayExpression?: _JsoncArrayElementNewlineBasicConfig;
  ArrayPattern?: _JsoncArrayElementNewlineBasicConfig;
})];
type _JsoncArrayElementNewlineBasicConfig = (("always" | "never" | "consistent") | {
  multiline?: boolean;
  minItems?: (number | null);
});
// ----- jsonc/comma-dangle -----
type JsoncCommaDangle = [] | [(_JsoncCommaDangleValue | {
  arrays?: _JsoncCommaDangleValueWithIgnore;
  objects?: _JsoncCommaDangleValueWithIgnore;
  imports?: _JsoncCommaDangleValueWithIgnore;
  exports?: _JsoncCommaDangleValueWithIgnore;
  functions?: _JsoncCommaDangleValueWithIgnore;
})];
type _JsoncCommaDangleValue = ("always-multiline" | "always" | "never" | "only-multiline");
type _JsoncCommaDangleValueWithIgnore = ("always-multiline" | "always" | "ignore" | "never" | "only-multiline");
// ----- jsonc/comma-style -----
type JsoncCommaStyle = [] | [("first" | "last")] | [("first" | "last"), {
  exceptions?: {
    [k: string]: boolean | undefined;
  };
}];
// ----- jsonc/indent -----
type JsoncIndent = [] | [("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;
}];
// ----- jsonc/key-name-casing -----
type JsoncKeyNameCasing = [] | [{
  camelCase?: boolean;
  PascalCase?: boolean;
  SCREAMING_SNAKE_CASE?: boolean;
  "kebab-case"?: boolean;
  snake_case?: boolean;
  ignores?: string[];
}];
// ----- jsonc/key-spacing -----
type JsoncKeySpacing = [] | [({
  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;
  };
})];
// ----- jsonc/no-irregular-whitespace -----
type JsoncNoIrregularWhitespace = [] | [{
  skipComments?: boolean;
  skipStrings?: boolean;
  skipTemplates?: boolean;
  skipRegExps?: boolean;
  skipJSXText?: boolean;
}];
// ----- jsonc/no-useless-escape -----
type JsoncNoUselessEscape = [] | [{
  allowRegexCharacters?: string[];
}];
// ----- jsonc/object-curly-newline -----
type JsoncObjectCurlyNewline = [] | [((("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;
  });
})];
// ----- jsonc/object-curly-spacing -----
type JsoncObjectCurlySpacing = [] | [("always" | "never")] | [("always" | "never"), {
  arraysInObjects?: boolean;
  objectsInObjects?: boolean;
  emptyObjects?: ("ignore" | "always" | "never");
}];
// ----- jsonc/object-property-newline -----
type JsoncObjectPropertyNewline = [] | [{
  allowAllPropertiesOnSameLine?: boolean;
  allowMultiplePropertiesPerLine?: boolean;
}];
// ----- jsonc/quote-props -----
type JsoncQuoteProps = ([] | [("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;
}]);
// ----- jsonc/quotes -----
type JsoncQuotes = [] | [("single" | "double" | "backtick")] | [("single" | "double" | "backtick"), ("avoid-escape" | {
  avoidEscape?: boolean;
  allowTemplateLiterals?: boolean;
})];
// ----- jsonc/sort-array-values -----
type JsoncSortArrayValues = [{
  pathPattern: string;
  order: ((string | {
    valuePattern?: string;
    order?: {
      type?: ("asc" | "desc");
      caseSensitive?: boolean;
      natural?: boolean;
      key?: string;
    };
  })[] | {
    type?: ("asc" | "desc");
    caseSensitive?: boolean;
    natural?: boolean;
    key?: string;
  });
  minValues?: number;
}, ...({
  pathPattern: string;
  order: ((string | {
    valuePattern?: string;
    order?: {
      type?: ("asc" | "desc");
      caseSensitive?: boolean;
      natural?: boolean;
      key?: string;
    };
  })[] | {
    type?: ("asc" | "desc");
    caseSensitive?: boolean;
    natural?: boolean;
    key?: string;
  });
  minValues?: number;
})[]];
// ----- jsonc/sort-keys -----
type JsoncSortKeys = ([{
  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;
}]);
// ----- jsonc/space-unary-ops -----
type JsoncSpaceUnaryOps = [] | [{
  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;
}];
// ----- markdown/fenced-code-language -----
type MarkdownFencedCodeLanguage = [] | [{
  required?: string[];
}];
// ----- markdown/fenced-code-meta -----
type MarkdownFencedCodeMeta = [] | [("always" | "never")];
// ----- markdown/heading-increment -----
type MarkdownHeadingIncrement = [] | [{
  frontmatterTitle?: string;
}];
// ----- markdown/no-duplicate-definitions -----
type MarkdownNoDuplicateDefinitions = [] | [{
  allowDefinitions?: string[];
  allowFootnoteDefinitions?: string[];
  checkFootnoteDefinitions?: boolean;
}];
// ----- markdown/no-duplicate-headings -----
type MarkdownNoDuplicateHeadings = [] | [{
  checkSiblingsOnly?: boolean;
}];
// ----- markdown/no-empty-definitions -----
type MarkdownNoEmptyDefinitions = [] | [{
  allowDefinitions?: string[];
  allowFootnoteDefinitions?: string[];
  checkFootnoteDefinitions?: boolean;
}];
// ----- markdown/no-html -----
type MarkdownNoHtml = [] | [{
  allowed?: string[];
  allowedIgnoreCase?: boolean;
}];
// ----- markdown/no-missing-atx-heading-space -----
type MarkdownNoMissingAtxHeadingSpace = [] | [{
  checkClosedHeadings?: boolean;
}];
// ----- markdown/no-missing-label-refs -----
type MarkdownNoMissingLabelRefs = [] | [{
  allowLabels?: string[];
}];
// ----- markdown/no-missing-link-fragments -----
type MarkdownNoMissingLinkFragments = [] | [{
  ignoreCase?: boolean;
  allowPattern?: string;
}];
// ----- markdown/no-multiple-h1 -----
type MarkdownNoMultipleH1 = [] | [{
  frontmatterTitle?: string;
}];
// ----- markdown/no-space-in-emphasis -----
type MarkdownNoSpaceInEmphasis = [] | [{
  checkStrikethrough?: boolean;
}];
// ----- markdown/no-unused-definitions -----
type MarkdownNoUnusedDefinitions = [] | [{
  allowDefinitions?: string[];
  allowFootnoteDefinitions?: string[];
  checkFootnoteDefinitions?: boolean;
}];
// ----- markdown/table-column-count -----
type MarkdownTableColumnCount = [] | [{
  checkMissingCells?: boolean;
}];
// ----- n/callback-return -----
type NCallbackReturn = [] | [string[]];
// ----- n/exports-style -----
type NExportsStyle = [] | [("module.exports" | "exports")] | [("module.exports" | "exports"), {
  allowBatchAssign?: boolean;
}];
// ----- n/file-extension-in-import -----
type NFileExtensionInImport = [] | [("always" | "never")] | [("always" | "never"), {
  [k: string]: ("always" | "never") | undefined;
}];
// ----- n/handle-callback-err -----
type NHandleCallbackErr = [] | [string];
// ----- n/hashbang -----
type NHashbang = [] | [{
  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;
  };
}];
// ----- n/no-deprecated-api -----
type NNoDeprecatedApi = [] | [{
  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" | "repl.builtinModules" | "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;
}];
// ----- n/no-extraneous-import -----
type NNoExtraneousImport = [] | [{
  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;
  };
}];
// ----- n/no-extraneous-require -----
type NNoExtraneousRequire = [] | [{
  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[];
}];
// ----- n/no-hide-core-modules -----
type NNoHideCoreModules = [] | [{
  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;
}];
// ----- n/no-missing-import -----
type NNoMissingImport = [] | [{
  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"));
}];
// ----- n/no-missing-require -----
type NNoMissingRequire = [] | [{
  allowModules?: string[];
  tryExtensions?: string[];
  resolvePaths?: string[];
  resolverConfig?: {
    [k: string]: unknown | undefined;
  };
  typescriptExtensionMap?: (unknown[][] | ("react" | "react-jsx" | "react-jsxdev" | "react-native" | "preserve"));
  tsconfigPath?: string;
}];
// ----- n/no-mixed-requires -----
type NNoMixedRequires = [] | [(boolean | {
  grouping?: boolean;
  allowCall?: boolean;
})];
// ----- n/no-process-env -----
type NNoProcessEnv = [] | [{
  allowedVariables?: string[];
}];
// ----- n/no-restricted-import -----
type NNoRestrictedImport = [] | [(string | {
  name: (string | string[]);
  message?: string;
})[]];
// ----- n/no-restricted-require -----
type NNoRestrictedRequire = [] | [(string | {
  name: (string | string[]);
  message?: string;
})[]];
// ----- n/no-sync -----
type NNoSync = [] | [{
  allowAtRootLevel?: boolean;
  ignores?: (string | {
    from?: "file";
    path?: string;
    name?: string[];
  } | {
    from?: "lib";
    name?: string[];
  } | {
    from?: "package";
    package?: string;
    name?: string[];
  })[];
}];
// ----- n/no-top-level-await -----
type NNoTopLevelAwait = [] | [{
  ignoreBin?: boolean;
  convertPath?: ({
    [k: string]: [string, string];
  } | [{
    include: [string, ...(string)[]];
    exclude?: string[];
    replace: [string, string];
  }, ...({
    include: [string, ...(string)[]];
    exclude?: string[];
    replace: [string, string];
  })[]]);
}];
// ----- n/no-unpublished-bin -----
type NNoUnpublishedBin = [] | [{
  convertPath?: ({
    [k: string]: [string, string];
  } | [{
    include: [string, ...(string)[]];
    exclude?: string[];
    replace: [string, string];
  }, ...({
    include: [string, ...(string)[]];
    exclude?: string[];
    replace: [string, string];
  })[]]);
}];
// ----- n/no-unpublished-import -----
type NNoUnpublishedImport = [] | [{
  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;
}];
// ----- n/no-unpublished-require -----
type NNoUnpublishedRequire = [] | [{
  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;
}];
// ----- n/no-unsupported-features/es-builtins -----
type NNoUnsupportedFeaturesEsBuiltins = [] | [{
  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")[];
}];
// ----- n/no-unsupported-features/es-syntax -----
type NNoUnsupportedFeaturesEsSyntax = [] | [{
  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")[];
}];
// ----- n/no-unsupported-features/node-builtins -----
type NNoUnsupportedFeaturesNodeBuiltins = [] | [{
  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.locks" | "navigator.locks.request" | "navigator.locks.query" | "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.decapsulateBits" | "crypto.subtle.decapsulateKey" | "crypto.subtle.decrypt" | "crypto.subtle.deriveBits" | "crypto.subtle.deriveKey" | "crypto.subtle.digest" | "crypto.subtle.encapsulateBits" | "crypto.subtle.encapsulateKey" | "crypto.subtle.encrypt" | "crypto.subtle.exportKey" | "crypto.subtle.generateKey" | "crypto.subtle.getPublicKey" | "crypto.subtle.importKey" | "crypto.subtle.sign" | "crypto.subtle.unwrapKey" | "crypto.subtle.verify" | "crypto.subtle.wrapKey" | "crypto.getRandomValues" | "crypto.randomUUID" | "Crypto" | "CryptoKey" | "SubtleCrypto" | "SubtleCrypto.supports" | "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.execve" | "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.ref" | "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.threadCpuUsage" | "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.unref" | "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.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.partialDeepStrictEqual" | "assert.rejects" | "assert.strictEqual" | "assert.throws" | "assert.CallTracker" | "assert.strict" | "assert.strict.Assert" | "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.partialDeepStrictEqual" | "assert.strict.rejects" | "assert.strict.strictEqual" | "assert.strict.throws" | "assert.strict.CallTracker" | "assert/strict" | "assert/strict.Assert" | "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.partialDeepStrictEqual" | "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.decapsulateBits" | "crypto.webcrypto.subtle.decapsulateKey" | "crypto.webcrypto.subtle.decrypt" | "crypto.webcrypto.subtle.deriveBits" | "crypto.webcrypto.subtle.deriveKey" | "crypto.webcrypto.subtle.digest" | "crypto.webcrypto.subtle.encapsulateBits" | "crypto.webcrypto.subtle.encapsulateKey" | "crypto.webcrypto.subtle.encrypt" | "crypto.webcrypto.subtle.exportKey" | "crypto.webcrypto.subtle.generateKey" | "crypto.webcrypto.subtle.getPublicKey" | "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.argon2" | "crypto.argon2Sync" | "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.decapsulate" | "crypto.diffieHellman" | "crypto.encapsulate" | "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.resolveTlsa" | "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.resolveTlsa" | "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.resolveTlsa" | "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.mkdtempDisposable" | "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.mkdtempDisposableSync" | "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.Utf8Stream" | "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.mkdtempDisposable" | "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.Agent" | "http.ClientRequest()" | "http.ClientRequest" | "http.Server()" | "http.Server" | "http.ServerResponse()" | "http.ServerResponse" | "http.IncomingMessage()" | "http.IncomingMessage" | "http.OutgoingMessage()" | "http.OutgoingMessage" | "http.WebSocket()" | "http.WebSocket" | "_http_agent" | "_http_client" | "_http_common" | "_http_incoming" | "_http_outgoing" | "_http_server" | "https" | "https.globalAgent" | "https.createServer" | "https.get" | "https.request" | "https.Agent" | "https.Server" | "inspector" | "inspector.Session" | "inspector.Network.dataReceived" | "inspector.Network.dataSent" | "inspector.Network.loadingFailed" | "inspector.Network.loadingFinished" | "inspector.Network.requestWillBeSent" | "inspector.Network.responseReceived" | "inspector.Network.webSocketCreated" | "inspector.Network.webSocketHandshakeResponseReceived" | "inspector.Network.webSocketClosed" | "inspector.NetworkResources.put" | "inspector.console" | "inspector.close" | "inspector.open" | "inspector.url" | "inspector.waitForDebugger" | "inspector/promises" | "inspector/promises.Session" | "inspector/promises.Network.dataReceived" | "inspector/promises.Network.dataSent" | "inspector/promises.Network.loadingFailed" | "inspector/promises.Network.loadingFinished" | "inspector/promises.Network.requestWillBeSent" | "inspector/promises.Network.responseReceived" | "inspector/promises.Network.webSocketCreated" | "inspector/promises.Network.webSocketHandshakeResponseReceived" | "inspector/promises.Network.webSocketClosed" | "inspector/promises.NetworkResources.put" | "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.getSourceMapsSupport" | "module.isBuiltin" | "module.registerHooks" | "module.register" | "module.setSourceMapsSupport" | "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.getSourceMapsSupport" | "module.Module.isBuiltin" | "module.Module.registerHooks" | "module.Module.register" | "module.Module.setSourceMapsSupport" | "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.BlockList.isBlockList" | "net.SocketAddress" | "net.SocketAddress.parse" | "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.eventLoopUtilization" | "perf_hooks.timerify" | "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.getAssetKeys" | "sea.getRawAsset" | "sea.sea.isSea" | "sea.sea.getAsset" | "sea.sea.getAssetAsBlob" | "sea.sea.getAssetKeys" | "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" | "_stream_duplex" | "_stream_passthrough" | "_stream_readable" | "_stream_transform" | "_stream_wrap" | "_stream_writable" | "string_decoder" | "string_decoder.StringDecoder" | "sqlite" | "sqlite.constants" | "sqlite.constants.SQLITE_CHANGESET_OMIT" | "sqlite.constants.SQLITE_CHANGESET_REPLACE" | "sqlite.constants.SQLITE_CHANGESET_ABORT" | "sqlite.backup" | "sqlite.DatabaseSync" | "sqlite.Session" | "sqlite.StatementSync" | "sqlite.SQLITE_CHANGESET_OMIT" | "sqlite.SQLITE_CHANGESET_REPLACE" | "sqlite.SQLITE_CHANGESET_ABORT" | "test" | "test.after" | "test.afterEach" | "test.assert" | "test.assert.register" | "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.property" | "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.checkServerIdentity" | "tls.connect" | "tls.createSecureContext" | "tls.createSecurePair" | "tls.createServer" | "tls.CryptoStream" | "tls.DEFAULT_CIPHERS" | "tls.DEFAULT_ECDH_CURVE" | "tls.DEFAULT_MAX_VERSION" | "tls.DEFAULT_MIN_VERSION" | "tls.getCACertificates" | "tls.getCiphers" | "tls.rootCertificates" | "tls.SecureContext" | "tls.SecurePair" | "tls.Server" | "tls.setDefaultCACertificates" | "tls.TLSSocket" | "_tls_common" | "_tls_wrap" | "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.URLPattern" | "url.URLSearchParams" | "url.Url" | "util.promisify" | "util.promisify.custom" | "util.callbackify" | "util.debuglog" | "util.debug" | "util.deprecate" | "util.diff" | "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.setTraceSigInt" | "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.isFloat16Array" | "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.isFloat16Array" | "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.isStringOneByteRepresentation" | "v8.queryObjects" | "v8.setFlagsFromString" | "v8.stopCoverage" | "v8.takeCoverage" | "v8.writeHeapSnapshot" | "v8.setHeapSnapshotNearHeapLimit" | "v8.GCProfiler" | "v8.startCpuProfile" | "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.parentPort" | "worker_threads.resourceLimits" | "worker_threads.SHARE_ENV" | "worker_threads.threadId" | "worker_threads.threadName" | "worker_threads.workerData" | "worker_threads.getEnvironmentData" | "worker_threads.getHeapStatistics" | "worker_threads.markAsUncloneable" | "worker_threads.markAsUntransferable" | "worker_threads.isInternalThread" | "worker_threads.isMainThread" | "worker_threads.isMarkedAsUntransferable" | "worker_threads.locks" | "worker_threads.locks.request" | "worker_threads.locks.query" | "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.brotliCompress" | "zlib.brotliCompressSync" | "zlib.brotliDecompress" | "zlib.brotliDecompressSync" | "zlib.constants" | "zlib.constants.ZSTD_e_continue" | "zlib.constants.ZSTD_e_flush" | "zlib.constants.ZSTD_e_end" | "zlib.constants.ZSTD_fast" | "zlib.constants.ZSTD_dfast" | "zlib.constants.ZSTD_greedy" | "zlib.constants.ZSTD_lazy" | "zlib.constants.ZSTD_lazy2" | "zlib.constants.ZSTD_btlazy2" | "zlib.constants.ZSTD_btopt" | "zlib.constants.ZSTD_btultra" | "zlib.constants.ZSTD_btultra2" | "zlib.constants.ZSTD_c_compressionLevel" | "zlib.constants.ZSTD_c_windowLog" | "zlib.constants.ZSTD_c_hashLog" | "zlib.constants.ZSTD_c_chainLog" | "zlib.constants.ZSTD_c_searchLog" | "zlib.constants.ZSTD_c_minMatch" | "zlib.constants.ZSTD_c_targetLength" | "zlib.constants.ZSTD_c_strategy" | "zlib.constants.ZSTD_c_enableLongDistanceMatching" | "zlib.constants.ZSTD_c_ldmHashLog" | "zlib.constants.ZSTD_c_ldmMinMatch" | "zlib.constants.ZSTD_c_ldmBucketSizeLog" | "zlib.constants.ZSTD_c_ldmHashRateLog" | "zlib.constants.ZSTD_c_contentSizeFlag" | "zlib.constants.ZSTD_c_checksumFlag" | "zlib.constants.ZSTD_c_dictIDFlag" | "zlib.constants.ZSTD_c_nbWorkers" | "zlib.constants.ZSTD_c_jobSize" | "zlib.constants.ZSTD_c_overlapLog" | "zlib.constants.ZSTD_d_windowLogMax" | "zlib.constants.ZSTD_CLEVEL_DEFAULT" | "zlib.constants.ZSTD_error_no_error" | "zlib.constants.ZSTD_error_GENERIC" | "zlib.constants.ZSTD_error_prefix_unknown" | "zlib.constants.ZSTD_error_version_unsupported" | "zlib.constants.ZSTD_error_frameParameter_unsupported" | "zlib.constants.ZSTD_error_frameParameter_windowTooLarge" | "zlib.constants.ZSTD_error_corruption_detected" | "zlib.constants.ZSTD_error_checksum_wrong" | "zlib.constants.ZSTD_error_literals_headerWrong" | "zlib.constants.ZSTD_error_dictionary_corrupted" | "zlib.constants.ZSTD_error_dictionary_wrong" | "zlib.constants.ZSTD_error_dictionaryCreation_failed" | "zlib.constants.ZSTD_error_parameter_unsupported" | "zlib.constants.ZSTD_error_parameter_combination_unsupported" | "zlib.constants.ZSTD_error_parameter_outOfBound" | "zlib.constants.ZSTD_error_tableLog_tooLarge" | "zlib.constants.ZSTD_error_maxSymbolValue_tooLarge" | "zlib.constants.ZSTD_error_maxSymbolValue_tooSmall" | "zlib.constants.ZSTD_error_stabilityCondition_notRespected" | "zlib.constants.ZSTD_error_stage_wrong" | "zlib.constants.ZSTD_error_init_missing" | "zlib.constants.ZSTD_error_memory_allocation" | "zlib.constants.ZSTD_error_workSpace_tooSmall" | "zlib.constants.ZSTD_error_dstSize_tooSmall" | "zlib.constants.ZSTD_error_srcSize_wrong" | "zlib.constants.ZSTD_error_dstBuffer_null" | "zlib.constants.ZSTD_error_noForwardProgress_destFull" | "zlib.constants.ZSTD_error_noForwardProgress_inputEmpty" | "zlib.crc32" | "zlib.createBrotliCompress" | "zlib.createBrotliDecompress" | "zlib.createDeflate" | "zlib.createDeflateRaw" | "zlib.createGunzip" | "zlib.createGzip" | "zlib.createInflate" | "zlib.createInflateRaw" | "zlib.createUnzip" | "zlib.createZstdCompress" | "zlib.createZstdDecompress" | "zlib.deflate" | "zlib.deflateRaw" | "zlib.deflateRawSync" | "zlib.deflateSync" | "zlib.gunzip" | "zlib.gunzipSync" | "zlib.gzip" | "zlib.gzipSync" | "zlib.inflate" | "zlib.inflateRaw" | "zlib.inflateRawSync" | "zlib.inflateSync" | "zlib.unzip" | "zlib.unzipSync" | "zlib.zstdCompress" | "zlib.zstdCompressSync" | "zlib.zstdDecompress" | "zlib.zstdDecompressSync" | "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.ZstdCompress" | "zlib.ZstdDecompress" | "zlib.ZstdOptions" | "zlib" | "import.meta.resolve" | "import.meta.dirname" | "import.meta.filename" | "import.meta.main")[];
}];
// ----- n/prefer-global/buffer -----
type NPreferGlobalBuffer = [] | [("always" | "never")];
// ----- n/prefer-global/console -----
type NPreferGlobalConsole = [] | [("always" | "never")];
// ----- n/prefer-global/crypto -----
type NPreferGlobalCrypto = [] | [("always" | "never")];
// ----- n/prefer-global/process -----
type NPreferGlobalProcess = [] | [("always" | "never")];
// ----- n/prefer-global/text-decoder -----
type NPreferGlobalTextDecoder = [] | [("always" | "never")];
// ----- n/prefer-global/text-encoder -----
type NPreferGlobalTextEncoder = [] | [("always" | "never")];
// ----- n/prefer-global/timers -----
type NPreferGlobalTimers = [] | [("always" | "never")];
// ----- n/prefer-global/url -----
type NPreferGlobalUrl = [] | [("always" | "never")];
// ----- n/prefer-global/url-search-params -----
type NPreferGlobalUrlSearchParams = [] | [("always" | "never")];
// ----- n/prefer-node-protocol -----
type NPreferNodeProtocol = [] | [{
  version?: string;
}];
// ----- n/shebang -----
type NShebang = [] | [{
  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;
  };
}];
// ----- no-secrets/no-pattern-match -----
type NoSecretsNoPatternMatch = {
  patterns: {
    [k: string]: (string | {}) | undefined;
  };
}[];
// ----- no-secrets/no-secrets -----
type NoSecretsNoSecrets = {
  tolerance: number;
  ignoreModules: boolean;
  ignoreCase: boolean;
  ignoreContent: ((string | {}) | (string | {})[]);
  ignoreIdentifiers: ((string | {}) | (string | {})[]);
  additionalDelimiters: ((string | {}) | (string | {})[]);
  additionalRegexes: {
    [k: string]: (string | {}) | undefined;
  };
}[];
// ----- no-unsanitized/method -----
type NoUnsanitizedMethod = [] | [{
  defaultDisable?: boolean;
  escape?: {
    taggedTemplates?: [] | [string];
    methods?: [] | [string];
    [k: string]: unknown | undefined;
  };
  objectMatches?: unknown[];
  properties?: unknown[];
  variableTracing?: boolean;
}] | [{
  defaultDisable?: boolean;
  escape?: {
    taggedTemplates?: [] | [string];
    methods?: [] | [string];
    [k: string]: unknown | undefined;
  };
  objectMatches?: unknown[];
  properties?: unknown[];
  variableTracing?: boolean;
}, {
  [k: string]: unknown | undefined;
}];
// ----- no-unsanitized/property -----
type NoUnsanitizedProperty = [] | [{
  escape?: {
    taggedTemplates?: [] | [string];
    methods?: [] | [string];
    [k: string]: unknown | undefined;
  };
  variableTracing?: boolean;
}] | [{
  escape?: {
    taggedTemplates?: [] | [string];
    methods?: [] | [string];
    [k: string]: unknown | undefined;
  };
  variableTracing?: boolean;
}, {
  [k: string]: unknown | undefined;
}];
// ----- perfectionist/sort-array-includes -----
type PerfectionistSortArrayIncludes = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      selector?: "literal";
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      selector?: "literal";
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    selector?: "literal";
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: 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;
}[];
// ----- perfectionist/sort-arrays -----
type PerfectionistSortArrays = [{
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      selector?: "literal";
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      selector?: "literal";
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    selector?: "literal";
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: 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;
}, ...({
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      selector?: "literal";
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      selector?: "literal";
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    selector?: "literal";
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: 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;
})[]];
// ----- perfectionist/sort-classes -----
type PerfectionistSortClasses = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      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));
      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));
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    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));
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: string;
  };
  useExperimentalDependencyDetection?: boolean;
  newlinesBetweenOverloadSignatures?: ("ignore" | number);
  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;
}[];
// ----- perfectionist/sort-decorators -----
type PerfectionistSortDecorators = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  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)));
  });
  partitionByNewLine?: boolean;
}[];
// ----- perfectionist/sort-enums -----
type PerfectionistSortEnums = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        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));
      elementValuePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    elementValuePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  sortByValue?: ("always" | "ifNumericEnum" | "never");
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: string;
  };
  useExperimentalDependencyDetection?: 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;
}[];
// ----- perfectionist/sort-export-attributes -----
type PerfectionistSortExportAttributes = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: 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;
}[];
// ----- perfectionist/sort-exports -----
type PerfectionistSortExports = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      modifiers?: ("value" | "type" | "named" | "wildcard" | "multiline" | "singleline")[];
      selector?: "export";
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      modifiers?: ("value" | "type" | "named" | "wildcard" | "multiline" | "singleline")[];
      selector?: "export";
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    modifiers?: ("value" | "type" | "named" | "wildcard" | "multiline" | "singleline")[];
    selector?: "export";
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  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;
}[];
// ----- perfectionist/sort-heritage-clauses -----
type PerfectionistSortHeritageClauses = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: string;
  };
  partitionByNewLine?: 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)));
  });
}[];
// ----- perfectionist/sort-import-attributes -----
type PerfectionistSortImportAttributes = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: 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;
}[];
// ----- perfectionist/sort-imports -----
type PerfectionistSortImports = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order" | "type-import-first");
    order?: ("asc" | "desc");
    sortBy?: ("specifier" | "path");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order" | "type-import-first");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  sortBy?: ("specifier" | "path");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order" | "type-import-first");
      order?: ("asc" | "desc");
      sortBy?: ("specifier" | "path");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order" | "type-import-first");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    sortBy?: ("specifier" | "path");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      modifiers?: ("default" | "multiline" | "named" | "require" | "side-effect" | "singleline" | "ts-equals" | "type" | "value" | "wildcard")[];
      selector?: ("side-effect-style" | "tsconfig-path" | "side-effect" | "external" | "internal" | "builtin" | "sibling" | "subpath" | "import" | "parent" | "index" | "style" | "type");
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      modifiers?: ("default" | "multiline" | "named" | "require" | "side-effect" | "singleline" | "ts-equals" | "type" | "value" | "wildcard")[];
      selector?: ("side-effect-style" | "tsconfig-path" | "side-effect" | "external" | "internal" | "builtin" | "sibling" | "subpath" | "import" | "parent" | "index" | "style" | "type");
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order" | "type-import-first");
      order?: ("asc" | "desc");
      sortBy?: ("specifier" | "path");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order" | "type-import-first");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    sortBy?: ("specifier" | "path");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    modifiers?: ("default" | "multiline" | "named" | "require" | "side-effect" | "singleline" | "ts-equals" | "type" | "value" | "wildcard")[];
    selector?: ("side-effect-style" | "tsconfig-path" | "side-effect" | "external" | "internal" | "builtin" | "sibling" | "subpath" | "import" | "parent" | "index" | "style" | "type");
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order" | "type-import-first");
      order?: ("asc" | "desc");
      sortBy?: ("specifier" | "path");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order" | "type-import-first");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    sortBy?: ("specifier" | "path");
  })[];
  newlinesBetween?: ("ignore" | number);
  tsconfig?: {
    rootDir: string;
    filename?: string;
  };
  maxLineLength?: number;
  sortSideEffects?: boolean;
  environment?: ("node" | "bun");
  useExperimentalDependencyDetection?: 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;
  internalPattern?: (({
    pattern: string;
    flags?: string;
  } | string)[] | ({
    pattern: string;
    flags?: string;
  } | string));
}[];
// ----- perfectionist/sort-interfaces -----
type PerfectionistSortInterfaces = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
    sortBy?: ("name" | "value");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  sortBy?: ("name" | "value");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
      sortBy?: ("name" | "value");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    sortBy?: ("name" | "value");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      modifiers?: ("optional" | "required" | "multiline")[];
      selector?: ("index-signature" | "member" | "method" | "property");
      elementValuePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      modifiers?: ("optional" | "required" | "multiline")[];
      selector?: ("index-signature" | "member" | "method" | "property");
      elementValuePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
      sortBy?: ("name" | "value");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    sortBy?: ("name" | "value");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    modifiers?: ("optional" | "required" | "multiline")[];
    selector?: ("index-signature" | "member" | "method" | "property");
    elementValuePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
      sortBy?: ("name" | "value");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    sortBy?: ("name" | "value");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    hasNumericKeysOnly?: boolean;
    declarationCommentMatchesPattern?: (({
      scope?: ("shallow" | "deep");
      pattern: string;
      flags?: string;
    } | string)[] | ({
      scope?: ("shallow" | "deep");
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: string;
    declarationMatchesPattern?: (({
      scope?: ("shallow" | "deep");
      pattern: string;
      flags?: string;
    } | string)[] | ({
      scope?: ("shallow" | "deep");
      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;
}[];
// ----- perfectionist/sort-intersection-types -----
type PerfectionistSortIntersectionTypes = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      selector?: ("intersection" | "conditional" | "function" | "operator" | "keyword" | "literal" | "nullish" | "import" | "object" | "named" | "tuple" | "union");
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      selector?: ("intersection" | "conditional" | "function" | "operator" | "keyword" | "literal" | "nullish" | "import" | "object" | "named" | "tuple" | "union");
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    selector?: ("intersection" | "conditional" | "function" | "operator" | "keyword" | "literal" | "nullish" | "import" | "object" | "named" | "tuple" | "union");
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: 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;
  ignoreCallableTypes?: boolean;
}[];
// ----- perfectionist/sort-jsx-props -----
type PerfectionistSortJsxProps = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      modifiers?: ("shorthand" | "multiline")[];
      selector?: "prop";
      elementValuePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      modifiers?: ("shorthand" | "multiline")[];
      selector?: "prop";
      elementValuePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    modifiers?: ("shorthand" | "multiline")[];
    selector?: "prop";
    elementValuePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: string;
    tagMatchesPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
  };
  partitionByNewLine?: boolean;
}[];
// ----- perfectionist/sort-maps -----
type PerfectionistSortMaps = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: 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;
}[];
// ----- perfectionist/sort-modules -----
type PerfectionistSortModules = [] | [{
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order" | "usage");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order" | "usage");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order" | "usage");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order" | "usage");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      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));
      modifiers?: ("async" | "declare" | "decorated" | "default" | "export")[];
      selector?: ("enum" | "function" | "interface" | "type" | "class");
      decoratorNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order" | "usage");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order" | "usage");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    modifiers?: ("async" | "declare" | "decorated" | "default" | "export")[];
    selector?: ("enum" | "function" | "interface" | "type" | "class");
    decoratorNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order" | "usage");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order" | "usage");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  useExperimentalDependencyDetection?: boolean;
  newlinesBetweenOverloadSignatures?: ("ignore" | number);
  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;
}];
// ----- perfectionist/sort-named-exports -----
type PerfectionistSortNamedExports = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      modifiers?: ("value" | "type")[];
      selector?: "export";
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      modifiers?: ("value" | "type")[];
      selector?: "export";
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    modifiers?: ("value" | "type")[];
    selector?: "export";
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: string;
  };
  ignoreAlias?: 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;
}[];
// ----- perfectionist/sort-named-imports -----
type PerfectionistSortNamedImports = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      modifiers?: ("value" | "type")[];
      selector?: "import";
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      modifiers?: ("value" | "type")[];
      selector?: "import";
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    modifiers?: ("value" | "type")[];
    selector?: "import";
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: string;
  };
  ignoreAlias?: 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;
}[];
// ----- perfectionist/sort-object-types -----
type PerfectionistSortObjectTypes = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
    sortBy?: ("name" | "value");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  sortBy?: ("name" | "value");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
      sortBy?: ("name" | "value");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    sortBy?: ("name" | "value");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      modifiers?: ("optional" | "required" | "multiline")[];
      selector?: ("index-signature" | "member" | "method" | "property");
      elementValuePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      modifiers?: ("optional" | "required" | "multiline")[];
      selector?: ("index-signature" | "member" | "method" | "property");
      elementValuePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
      sortBy?: ("name" | "value");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    sortBy?: ("name" | "value");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    modifiers?: ("optional" | "required" | "multiline")[];
    selector?: ("index-signature" | "member" | "method" | "property");
    elementValuePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
      sortBy?: ("name" | "value");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    sortBy?: ("name" | "value");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    hasNumericKeysOnly?: boolean;
    declarationCommentMatchesPattern?: (({
      scope?: ("shallow" | "deep");
      pattern: string;
      flags?: string;
    } | string)[] | ({
      scope?: ("shallow" | "deep");
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: string;
    declarationMatchesPattern?: (({
      scope?: ("shallow" | "deep");
      pattern: string;
      flags?: string;
    } | string)[] | ({
      scope?: ("shallow" | "deep");
      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;
}[];
// ----- perfectionist/sort-objects -----
type PerfectionistSortObjects = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
    sortBy?: ("name" | "value");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  sortBy?: ("name" | "value");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
      sortBy?: ("name" | "value");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    sortBy?: ("name" | "value");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      modifiers?: ("multiline")[];
      selector?: ("member" | "method" | "property");
      elementValuePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      modifiers?: ("multiline")[];
      selector?: ("member" | "method" | "property");
      elementValuePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
      sortBy?: ("name" | "value");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    sortBy?: ("name" | "value");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    modifiers?: ("multiline")[];
    selector?: ("member" | "method" | "property");
    elementValuePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
      sortBy?: ("name" | "value");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    sortBy?: ("name" | "value");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    objectType?: ("destructured" | "non-destructured");
    hasNumericKeysOnly?: boolean;
    declarationCommentMatchesPattern?: (({
      scope?: ("shallow" | "deep");
      pattern: string;
      flags?: string;
    } | string)[] | ({
      scope?: ("shallow" | "deep");
      pattern: string;
      flags?: string;
    } | string));
    callingFunctionNamePattern?: (({
      scope?: ("shallow" | "deep");
      pattern: string;
      flags?: string;
    } | string)[] | ({
      scope?: ("shallow" | "deep");
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: string;
    declarationMatchesPattern?: (({
      scope?: ("shallow" | "deep");
      pattern: string;
      flags?: string;
    } | string)[] | ({
      scope?: ("shallow" | "deep");
      pattern: string;
      flags?: string;
    } | string));
  };
  partitionByComputedKey?: boolean;
  styledComponents?: boolean;
  useExperimentalDependencyDetection?: 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;
}[];
// ----- perfectionist/sort-sets -----
type PerfectionistSortSets = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      selector?: "literal";
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      selector?: "literal";
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    selector?: "literal";
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: 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;
}[];
// ----- perfectionist/sort-switch-case -----
type PerfectionistSortSwitchCase = [] | [{
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
}];
// ----- perfectionist/sort-union-types -----
type PerfectionistSortUnionTypes = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      selector?: ("intersection" | "conditional" | "function" | "operator" | "keyword" | "literal" | "nullish" | "import" | "object" | "named" | "tuple" | "union");
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      selector?: ("intersection" | "conditional" | "function" | "operator" | "keyword" | "literal" | "nullish" | "import" | "object" | "named" | "tuple" | "union");
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    selector?: ("intersection" | "conditional" | "function" | "operator" | "keyword" | "literal" | "nullish" | "import" | "object" | "named" | "tuple" | "union");
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: 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;
}[];
// ----- perfectionist/sort-variable-declarations -----
type PerfectionistSortVariableDeclarations = {
  fallbackSort?: {
    type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    order?: ("asc" | "desc");
  };
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
  specialCharacters?: ("remove" | "trim" | "keep");
  ignoreCase?: boolean;
  alphabet?: string;
  locales?: (string | string[]);
  order?: ("asc" | "desc");
  customGroups?: ({
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    anyOf: [{
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      selector?: ("initialized" | "uninitialized");
    }, ...({
      elementNamePattern?: (({
        pattern: string;
        flags?: string;
      } | string)[] | ({
        pattern: string;
        flags?: string;
      } | string));
      selector?: ("initialized" | "uninitialized");
    })[]];
  } | {
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    groupName: string;
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
    elementNamePattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    selector?: ("initialized" | "uninitialized");
  })[];
  newlinesInside?: (("ignore" | number) | "newlinesBetween");
  groups?: (string | [string, ...(string)[]] | {
    newlinesBetween: ("ignore" | number);
  } | {
    group: (string | [string, ...(string)[]]);
    fallbackSort?: {
      type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
      order?: ("asc" | "desc");
    };
    commentAbove?: string;
    type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
    newlinesInside?: ("ignore" | number);
    order?: ("asc" | "desc");
  })[];
  newlinesBetween?: ("ignore" | number);
  useConfigurationIf?: {
    allNamesMatchPattern?: (({
      pattern: string;
      flags?: string;
    } | string)[] | ({
      pattern: string;
      flags?: string;
    } | string));
    matchesAstSelector?: string;
  };
  useExperimentalDependencyDetection?: 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;
}[];
// ----- playwright/expect-expect -----
type PlaywrightExpectExpect = [] | [{
  assertFunctionNames?: [] | [string];
  assertFunctionPatterns?: [] | [string];
}];
// ----- playwright/max-expects -----
type PlaywrightMaxExpects = [] | [{
  max?: number;
}];
// ----- playwright/max-nested-describe -----
type PlaywrightMaxNestedDescribe = [] | [{
  max?: number;
}];
// ----- playwright/missing-playwright-await -----
type PlaywrightMissingPlaywrightAwait = [] | [{
  customMatchers?: string[];
  includePageLocatorMethods?: boolean;
}];
// ----- playwright/no-hooks -----
type PlaywrightNoHooks = [] | [{
  allow?: unknown[];
}];
// ----- playwright/no-raw-locators -----
type PlaywrightNoRawLocators = [] | [{
  allowed?: string[];
}];
// ----- playwright/no-restricted-locators -----
type PlaywrightNoRestrictedLocators = [] | [(string | {
  message?: string;
  type: string;
})[]];
// ----- playwright/no-restricted-matchers -----
type PlaywrightNoRestrictedMatchers = [] | [{
  [k: string]: (string | null) | undefined;
}];
// ----- playwright/no-restricted-roles -----
type PlaywrightNoRestrictedRoles = [] | [(string | {
  message?: string;
  role: string;
})[]];
// ----- playwright/no-skipped-test -----
type PlaywrightNoSkippedTest = [] | [{
  allowConditional?: boolean;
  disallowFixme?: boolean;
}];
// ----- playwright/no-slowed-test -----
type PlaywrightNoSlowedTest = [] | [{
  allowConditional?: boolean;
}];
// ----- playwright/prefer-lowercase-title -----
type PlaywrightPreferLowercaseTitle = [] | [{
  allowedPrefixes?: string[];
  ignore?: ("test.describe" | "test")[];
  ignoreTopLevelDescribe?: boolean;
}];
// ----- playwright/prefer-native-locators -----
type PlaywrightPreferNativeLocators = [] | [{
  testIdAttribute?: string;
}];
// ----- playwright/require-hook -----
type PlaywrightRequireHook = [] | [{
  allowedFunctionCalls?: string[];
}];
// ----- playwright/require-top-level-describe -----
type PlaywrightRequireTopLevelDescribe = [] | [{
  maxTopLevelDescribes?: number;
}];
// ----- playwright/valid-expect -----
type PlaywrightValidExpect = [] | [{
  maxArgs?: number;
  minArgs?: number;
}];
// ----- playwright/valid-test-tags -----
type PlaywrightValidTestTags = [] | [{
  allowedTags?: (string | {
    source?: string;
  })[];
  disallowedTags?: (string | {
    source?: string;
  })[];
}];
// ----- playwright/valid-title -----
type PlaywrightValidTitle = [] | [{
  disallowedWords?: string[];
  ignoreSpaces?: boolean;
  ignoreTypeOfDescribeName?: boolean;
  ignoreTypeOfStepName?: boolean;
  ignoreTypeOfTestName?: boolean;
  [k: string]: (string | [string] | [string, string] | {
    [k: string]: (string | [string] | [string, string]) | undefined;
  });
}];
// ----- promise/always-return -----
type PromiseAlwaysReturn = [] | [{
  ignoreLastCallback?: boolean;
  ignoreAssignmentVariable?: string[];
}];
// ----- promise/catch-or-return -----
type PromiseCatchOrReturn = [] | [{
  allowFinally?: boolean;
  allowThen?: boolean;
  allowThenStrict?: boolean;
  terminationMethod?: (string | string[]);
}];
// ----- promise/no-callback-in-promise -----
type PromiseNoCallbackInPromise = [] | [{
  exceptions?: string[];
  timeoutsErr?: boolean;
}];
// ----- promise/no-promise-in-callback -----
type PromiseNoPromiseInCallback = [] | [{
  exemptDeclarations?: boolean;
}];
// ----- promise/no-return-wrap -----
type PromiseNoReturnWrap = [] | [{
  allowReject?: boolean;
}];
// ----- promise/param-names -----
type PromiseParamNames = [] | [{
  resolvePattern?: string;
  rejectPattern?: string;
}];
// ----- promise/prefer-await-to-then -----
type PromisePreferAwaitToThen = [] | [{
  strict?: boolean;
  [k: string]: unknown | undefined;
}];
// ----- promise/spec-only -----
type PromiseSpecOnly = [] | [{
  allowedMethods?: string[];
}];
// ----- promise/valid-params -----
type PromiseValidParams = [] | [{
  exclude?: string[];
}];
// ----- react-hooks/capitalized-calls -----
type ReactHooksCapitalizedCalls = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/config -----
type ReactHooksConfig = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/error-boundaries -----
type ReactHooksErrorBoundaries = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/exhaustive-deps -----
type ReactHooksExhaustiveDeps = [] | [{
  additionalHooks?: string;
  enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean;
  experimental_autoDependenciesHooks?: string[];
  requireExplicitEffectDeps?: boolean;
}];
// ----- react-hooks/exhaustive-effect-dependencies -----
type ReactHooksExhaustiveEffectDependencies = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/fbt -----
type ReactHooksFbt = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/gating -----
type ReactHooksGating = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/globals -----
type ReactHooksGlobals = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/hooks -----
type ReactHooksHooks = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/immutability -----
type ReactHooksImmutability = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/incompatible-library -----
type ReactHooksIncompatibleLibrary = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/invariant -----
type ReactHooksInvariant = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/memo-dependencies -----
type ReactHooksMemoDependencies = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/memoized-effect-dependencies -----
type ReactHooksMemoizedEffectDependencies = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/no-deriving-state-in-effects -----
type ReactHooksNoDerivingStateInEffects = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/preserve-manual-memoization -----
type ReactHooksPreserveManualMemoization = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/purity -----
type ReactHooksPurity = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/refs -----
type ReactHooksRefs = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/rule-suppression -----
type ReactHooksRuleSuppression = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/rules-of-hooks -----
type ReactHooksRulesOfHooks = [] | [{
  additionalHooks?: string;
}];
// ----- react-hooks/set-state-in-effect -----
type ReactHooksSetStateInEffect = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/set-state-in-render -----
type ReactHooksSetStateInRender = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/static-components -----
type ReactHooksStaticComponents = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/syntax -----
type ReactHooksSyntax = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/todo -----
type ReactHooksTodo = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/unsupported-syntax -----
type ReactHooksUnsupportedSyntax = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/use-memo -----
type ReactHooksUseMemo = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-hooks/void-use-memo -----
type ReactHooksVoidUseMemo = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- react-perf/jsx-no-jsx-as-prop -----
type ReactPerfJsxNoJsxAsProp = [] | [{
  nativeAllowList?: ("all" | string[]);
}];
// ----- react-perf/jsx-no-new-array-as-prop -----
type ReactPerfJsxNoNewArrayAsProp = [] | [{
  nativeAllowList?: ("all" | string[]);
}];
// ----- react-perf/jsx-no-new-function-as-prop -----
type ReactPerfJsxNoNewFunctionAsProp = [] | [{
  nativeAllowList?: ("all" | string[]);
}];
// ----- react-perf/jsx-no-new-object-as-prop -----
type ReactPerfJsxNoNewObjectAsProp = [] | [{
  nativeAllowList?: ("all" | string[]);
}];
// ----- react-refresh/only-export-components -----
type ReactRefreshOnlyExportComponents = [] | [{
  extraHOCs?: string[];
  allowExportNames?: string[];
  allowConstantExport?: boolean;
  checkJS?: boolean;
}];
// ----- react-x/dom-no-unknown-property -----
type ReactXDomNoUnknownProperty = [] | [{
  ignore?: string[];
  requireDataLowercase?: boolean;
}];
// ----- react-x/exhaustive-deps -----
type ReactXExhaustiveDeps = [] | [{
  additionalHooks?: string;
  enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean;
  experimental_autoDependenciesHooks?: string[];
  requireExplicitEffectDeps?: boolean;
}];
// ----- react-x/jsx-no-useless-fragment -----
type ReactXJsxNoUselessFragment = [] | [{
  allowEmptyFragment?: boolean;
  allowExpressions?: boolean;
}];
// ----- react-x/no-unstable-default-props -----
type ReactXNoUnstableDefaultProps = [] | [{
  safeDefaultProps?: string[];
}];
// ----- react-x/rules-of-hooks -----
type ReactXRulesOfHooks = [] | [{
  additionalHooks?: string;
}];
// ----- react-x/use-state -----
type ReactXUseState = [] | [{
  enforceAssignment?: boolean;
  enforceLazyInitialization?: boolean;
  enforceSetterName?: boolean;
}];
// ----- react-x/x-exhaustive-deps -----
type ReactXXExhaustiveDeps = [] | [{
  additionalHooks?: string;
  enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean;
  experimental_autoDependenciesHooks?: string[];
  requireExplicitEffectDeps?: boolean;
}];
// ----- react-x/x-no-unstable-default-props -----
type ReactXXNoUnstableDefaultProps = [] | [{
  safeDefaultProps?: string[];
}];
// ----- react-x/x-rules-of-hooks -----
type ReactXXRulesOfHooks = [] | [{
  additionalHooks?: string;
}];
// ----- react-x/x-use-state -----
type ReactXXUseState = [] | [{
  enforceAssignment?: boolean;
  enforceLazyInitialization?: boolean;
  enforceSetterName?: boolean;
}];
// ----- react/boolean-prop-naming -----
type ReactBooleanPropNaming = [] | [{
  propTypeNames?: [string, ...(string)[]];
  rule?: string;
  message?: string;
  validateNested?: boolean;
}];
// ----- react/button-has-type -----
type ReactButtonHasType = [] | [{
  button?: boolean;
  submit?: boolean;
  reset?: boolean;
}];
// ----- react/checked-requires-onchange-or-readonly -----
type ReactCheckedRequiresOnchangeOrReadonly = [] | [{
  ignoreMissingProperties?: boolean;
  ignoreExclusiveCheckedAttribute?: boolean;
}];
// ----- react/default-props-match-prop-types -----
type ReactDefaultPropsMatchPropTypes = [] | [{
  allowRequiredDefaults?: boolean;
}];
// ----- react/destructuring-assignment -----
type ReactDestructuringAssignment = [] | [("always" | "never")] | [("always" | "never"), {
  ignoreClassFields?: boolean;
  destructureInSignature?: ("always" | "ignore");
}];
// ----- react/display-name -----
type ReactDisplayName = [] | [{
  ignoreTranspilerName?: boolean;
  checkContextObjects?: boolean;
}];
// ----- react/forbid-component-props -----
type ReactForbidComponentProps = [] | [{
  forbid?: (string | {
    propName?: string;
    allowedFor?: string[];
    allowedForPatterns?: string[];
    message?: string;
  } | ({
    [k: string]: unknown | undefined;
  } | {
    [k: string]: unknown | undefined;
  }) | {
    propNamePattern?: string;
    allowedFor?: string[];
    allowedForPatterns?: string[];
    message?: string;
  } | ({
    [k: string]: unknown | undefined;
  } | {
    [k: string]: unknown | undefined;
  }))[];
  [k: string]: unknown | undefined;
}];
// ----- react/forbid-dom-props -----
type ReactForbidDomProps = [] | [{
  forbid?: (string | {
    propName?: string;
    disallowedFor?: string[];
    message?: string;
    [k: string]: unknown | undefined;
  })[];
}];
// ----- react/forbid-elements -----
type ReactForbidElements = [] | [{
  forbid?: (string | {
    element: string;
    message?: string;
  })[];
}];
// ----- react/forbid-foreign-prop-types -----
type ReactForbidForeignPropTypes = [] | [{
  allowInPropTypes?: boolean;
}];
// ----- react/forbid-prop-types -----
type ReactForbidPropTypes = [] | [{
  forbid?: string[];
  checkContextTypes?: boolean;
  checkChildContextTypes?: boolean;
  [k: string]: unknown | undefined;
}];
// ----- react/function-component-definition -----
type ReactFunctionComponentDefinition = [] | [{
  namedComponents?: (("function-declaration" | "arrow-function" | "function-expression") | ("function-declaration" | "arrow-function" | "function-expression")[]);
  unnamedComponents?: (("arrow-function" | "function-expression") | ("arrow-function" | "function-expression")[]);
  [k: string]: unknown | undefined;
}];
// ----- react/hook-use-state -----
type ReactHookUseState = [] | [{
  allowDestructuredState?: boolean;
}];
// ----- react/jsx-boolean-value -----
type ReactJsxBooleanValue = ([] | [("always" | "never")] | [] | ["always"] | ["always", {
  never?: string[];
  assumeUndefinedIsFalse?: boolean;
}] | [] | ["never"] | ["never", {
  always?: string[];
  assumeUndefinedIsFalse?: boolean;
}]);
// ----- react/jsx-closing-bracket-location -----
type ReactJsxClosingBracketLocation = [] | [(("after-props" | "props-aligned" | "tag-aligned" | "line-aligned") | {
  location?: ("after-props" | "props-aligned" | "tag-aligned" | "line-aligned");
} | {
  nonEmpty?: ("after-props" | "props-aligned" | "tag-aligned" | "line-aligned" | false);
  selfClosing?: ("after-props" | "props-aligned" | "tag-aligned" | "line-aligned" | false);
})];
// ----- react/jsx-closing-tag-location -----
type ReactJsxClosingTagLocation = [] | [(("tag-aligned" | "line-aligned") | {
  location?: ("tag-aligned" | "line-aligned");
})];
// ----- react/jsx-curly-brace-presence -----
type ReactJsxCurlyBracePresence = [] | [({
  props?: ("always" | "never" | "ignore");
  children?: ("always" | "never" | "ignore");
  propElementValues?: ("always" | "never" | "ignore");
} | ("always" | "never" | "ignore"))];
// ----- react/jsx-curly-newline -----
type ReactJsxCurlyNewline = [] | [(("consistent" | "never") | {
  singleline?: ("consistent" | "require" | "forbid");
  multiline?: ("consistent" | "require" | "forbid");
})];
// ----- react/jsx-curly-spacing -----
type ReactJsxCurlySpacing = [] | [((_ReactJsxCurlySpacing_BasicConfig & {
  attributes?: _ReactJsxCurlySpacingBasicConfigOrBoolean;
  children?: _ReactJsxCurlySpacingBasicConfigOrBoolean;
  [k: string]: unknown | undefined;
}) | ("always" | "never"))] | [((_ReactJsxCurlySpacing_BasicConfig & {
  attributes?: _ReactJsxCurlySpacingBasicConfigOrBoolean;
  children?: _ReactJsxCurlySpacingBasicConfigOrBoolean;
  [k: string]: unknown | undefined;
}) | ("always" | "never")), {
  allowMultiline?: boolean;
  spacing?: {
    objectLiterals?: ("always" | "never");
    [k: string]: unknown | undefined;
  };
}];
type _ReactJsxCurlySpacingBasicConfigOrBoolean = (_ReactJsxCurlySpacing_BasicConfig | boolean);
interface _ReactJsxCurlySpacing_BasicConfig {
  when?: ("always" | "never");
  allowMultiline?: boolean;
  spacing?: {
    objectLiterals?: ("always" | "never");
    [k: string]: unknown | undefined;
  };
  [k: string]: unknown | undefined;
}
// ----- react/jsx-equals-spacing -----
type ReactJsxEqualsSpacing = [] | [("always" | "never")];
// ----- react/jsx-filename-extension -----
type ReactJsxFilenameExtension = [] | [{
  allow?: ("always" | "as-needed");
  extensions?: string[];
  ignoreFilesWithoutCode?: boolean;
}];
// ----- react/jsx-first-prop-new-line -----
type ReactJsxFirstPropNewLine = [] | [("always" | "never" | "multiline" | "multiline-multiprop" | "multiprop")];
// ----- react/jsx-fragments -----
type ReactJsxFragments = [] | [("syntax" | "element")];
// ----- react/jsx-handler-names -----
type ReactJsxHandlerNames = [] | [({
  eventHandlerPrefix?: string;
  eventHandlerPropPrefix?: string;
  checkLocalVariables?: boolean;
  checkInlineFunction?: boolean;
  ignoreComponentNames?: string[];
} | {
  eventHandlerPrefix?: string;
  eventHandlerPropPrefix?: false;
  checkLocalVariables?: boolean;
  checkInlineFunction?: boolean;
  ignoreComponentNames?: string[];
} | {
  eventHandlerPrefix?: false;
  eventHandlerPropPrefix?: string;
  checkLocalVariables?: boolean;
  checkInlineFunction?: boolean;
  ignoreComponentNames?: string[];
} | {
  checkLocalVariables?: boolean;
} | {
  checkInlineFunction?: boolean;
} | {
  ignoreComponentNames?: string[];
  [k: string]: unknown | undefined;
})];
// ----- react/jsx-indent -----
type ReactJsxIndent = [] | [("tab" | number)] | [("tab" | number), {
  checkAttributes?: boolean;
  indentLogicalExpressions?: boolean;
}];
// ----- react/jsx-indent-props -----
type ReactJsxIndentProps = [] | [(("tab" | "first") | number | {
  indentMode?: (("tab" | "first") | number);
  ignoreTernaryOperator?: boolean;
  [k: string]: unknown | undefined;
})];
// ----- react/jsx-key -----
type ReactJsxKey = [] | [{
  checkFragmentShorthand?: boolean;
  checkKeyMustBeforeSpread?: boolean;
  warnOnDuplicates?: boolean;
}];
// ----- react/jsx-max-depth -----
type ReactJsxMaxDepth = [] | [{
  max?: number;
}];
// ----- react/jsx-max-props-per-line -----
type ReactJsxMaxPropsPerLine = [] | [({
  maximum?: {
    single?: number;
    multi?: number;
    [k: string]: unknown | undefined;
  };
} | {
  maximum?: number;
  when?: ("always" | "multiline");
})];
// ----- react/jsx-newline -----
type ReactJsxNewline = [] | [{
  prevent?: boolean;
  allowMultilines?: boolean;
}];
// ----- react/jsx-no-bind -----
type ReactJsxNoBind = [] | [{
  allowArrowFunctions?: boolean;
  allowBind?: boolean;
  allowFunctions?: boolean;
  ignoreRefs?: boolean;
  ignoreDOMComponents?: boolean;
}];
// ----- react/jsx-no-duplicate-props -----
type ReactJsxNoDuplicateProps = [] | [{
  ignoreCase?: boolean;
}];
// ----- react/jsx-no-leaked-render -----
type ReactJsxNoLeakedRender = [] | [{
  validStrategies?: ("ternary" | "coerce")[];
}];
// ----- react/jsx-no-literals -----
type ReactJsxNoLiterals = [] | [{
  elementOverrides?: {
    [k: string]: {
      applyToNestedElements?: boolean;
      noStrings?: boolean;
      allowedStrings?: string[];
      ignoreProps?: boolean;
      noAttributeStrings?: boolean;
      [k: string]: unknown | undefined;
    };
  };
  noStrings?: boolean;
  allowedStrings?: string[];
  ignoreProps?: boolean;
  noAttributeStrings?: boolean;
}];
// ----- react/jsx-no-script-url -----
type ReactJsxNoScriptUrl = ([] | [{
  name: string;
  props: string[];
}[]] | [{
  name: string;
  props: string[];
}[], {
  includeFromSettings?: boolean;
  [k: string]: unknown | undefined;
}] | [] | [{
  includeFromSettings?: boolean;
  [k: string]: unknown | undefined;
}]);
// ----- react/jsx-no-target-blank -----
type ReactJsxNoTargetBlank = [] | [{
  allowReferrer?: boolean;
  enforceDynamicLinks?: ("always" | "never");
  warnOnSpreadAttributes?: boolean;
  links?: boolean;
  forms?: boolean;
}];
// ----- react/jsx-no-undef -----
type ReactJsxNoUndef = [] | [{
  allowGlobals?: boolean;
}];
// ----- react/jsx-no-useless-fragment -----
type ReactJsxNoUselessFragment = [] | [{
  allowExpressions?: boolean;
  [k: string]: unknown | undefined;
}];
// ----- react/jsx-one-expression-per-line -----
type ReactJsxOneExpressionPerLine = [] | [{
  allow?: ("none" | "literal" | "single-child" | "non-jsx");
}];
// ----- react/jsx-pascal-case -----
type ReactJsxPascalCase = [] | [{
  allowAllCaps?: boolean;
  allowLeadingUnderscore?: boolean;
  allowNamespace?: boolean;
  ignore?: [] | [string];
}];
// ----- react/jsx-props-no-spreading -----
type ReactJsxPropsNoSpreading = [] | [({
  html?: ("enforce" | "ignore");
  custom?: ("enforce" | "ignore");
  explicitSpread?: ("enforce" | "ignore");
  exceptions?: string[];
  [k: string]: unknown | undefined;
} & {
  [k: string]: unknown | undefined;
})];
// ----- react/jsx-sort-default-props -----
type ReactJsxSortDefaultProps = [] | [{
  ignoreCase?: boolean;
}];
// ----- react/jsx-sort-props -----
type ReactJsxSortProps = [] | [{
  callbacksLast?: boolean;
  shorthandFirst?: boolean;
  shorthandLast?: boolean;
  multiline?: ("ignore" | "first" | "last");
  ignoreCase?: boolean;
  noSortAlphabetically?: boolean;
  reservedFirst?: (unknown[] | boolean);
  locale?: string;
}];
// ----- react/jsx-space-before-closing -----
type ReactJsxSpaceBeforeClosing = [] | [("always" | "never")];
// ----- react/jsx-tag-spacing -----
type ReactJsxTagSpacing = [] | [{
  closingSlash?: ("always" | "never" | "allow");
  beforeSelfClosing?: ("always" | "proportional-always" | "never" | "allow");
  afterOpening?: ("always" | "allow-multiline" | "never" | "allow");
  beforeClosing?: ("always" | "proportional-always" | "never" | "allow");
}];
// ----- react/jsx-wrap-multilines -----
type ReactJsxWrapMultilines = [] | [{
  declaration?: (true | false | "ignore" | "parens" | "parens-new-line" | "never");
  assignment?: (true | false | "ignore" | "parens" | "parens-new-line" | "never");
  return?: (true | false | "ignore" | "parens" | "parens-new-line" | "never");
  arrow?: (true | false | "ignore" | "parens" | "parens-new-line" | "never");
  condition?: (true | false | "ignore" | "parens" | "parens-new-line" | "never");
  logical?: (true | false | "ignore" | "parens" | "parens-new-line" | "never");
  prop?: (true | false | "ignore" | "parens" | "parens-new-line" | "never");
}];
// ----- react/no-children-prop -----
type ReactNoChildrenProp = [] | [{
  allowFunctions?: boolean;
}];
// ----- react/no-danger -----
type ReactNoDanger = [] | [{
  customComponentNames?: string[];
  [k: string]: unknown | undefined;
}];
// ----- react/no-did-mount-set-state -----
type ReactNoDidMountSetState = [] | ["disallow-in-func"];
// ----- react/no-did-update-set-state -----
type ReactNoDidUpdateSetState = [] | ["disallow-in-func"];
// ----- react/no-invalid-html-attribute -----
type ReactNoInvalidHtmlAttribute = [] | [("rel")[]];
// ----- react/no-multi-comp -----
type ReactNoMultiComp = [] | [{
  ignoreStateless?: boolean;
}];
// ----- react/no-string-refs -----
type ReactNoStringRefs = [] | [{
  noTemplateLiterals?: boolean;
}];
// ----- react/no-unescaped-entities -----
type ReactNoUnescapedEntities = [] | [{
  forbid?: (string | {
    char?: string;
    alternatives?: string[];
    [k: string]: unknown | undefined;
  })[];
}];
// ----- react/no-unknown-property -----
type ReactNoUnknownProperty = [] | [{
  ignore?: string[];
  requireDataLowercase?: boolean;
}];
// ----- react/no-unsafe -----
type ReactNoUnsafe = [] | [{
  checkAliases?: boolean;
}];
// ----- react/no-unstable-nested-components -----
type ReactNoUnstableNestedComponents = [] | [{
  customValidators?: string[];
  allowAsProps?: boolean;
  propNamePattern?: string;
}];
// ----- react/no-unused-prop-types -----
type ReactNoUnusedPropTypes = [] | [{
  ignore?: string[];
  customValidators?: string[];
  skipShapeProps?: boolean;
}];
// ----- react/no-will-update-set-state -----
type ReactNoWillUpdateSetState = [] | ["disallow-in-func"];
// ----- react/prefer-es6-class -----
type ReactPreferEs6Class = [] | [("always" | "never")];
// ----- react/prefer-stateless-function -----
type ReactPreferStatelessFunction = [] | [{
  ignorePureComponents?: boolean;
}];
// ----- react/prop-types -----
type ReactPropTypes = [] | [{
  ignore?: string[];
  customValidators?: string[];
  skipUndeclared?: boolean;
}];
// ----- react/require-default-props -----
type ReactRequireDefaultProps = [] | [{
  forbidDefaultForRequired?: boolean;
  classes?: ("defaultProps" | "ignore");
  functions?: ("defaultArguments" | "defaultProps" | "ignore");
  ignoreFunctionalComponents?: boolean;
}];
// ----- react/require-optimization -----
type ReactRequireOptimization = [] | [{
  allowDecorators?: string[];
}];
// ----- react/self-closing-comp -----
type ReactSelfClosingComp = [] | [{
  component?: boolean;
  html?: boolean;
}];
// ----- react/sort-comp -----
type ReactSortComp = [] | [{
  order?: string[];
  groups?: {
    [k: string]: string[];
  };
}];
// ----- react/sort-default-props -----
type ReactSortDefaultProps = [] | [{
  ignoreCase?: boolean;
}];
// ----- react/sort-prop-types -----
type ReactSortPropTypes = [] | [{
  requiredFirst?: boolean;
  callbacksLast?: boolean;
  ignoreCase?: boolean;
  noSortAlphabetically?: boolean;
  sortShapeProp?: boolean;
  checkTypes?: boolean;
}];
// ----- react/state-in-constructor -----
type ReactStateInConstructor = [] | [("always" | "never")];
// ----- react/static-property-placement -----
type ReactStaticPropertyPlacement = [] | [("static public field" | "static getter" | "property assignment")] | [("static public field" | "static getter" | "property assignment"), {
  propTypes?: ("static public field" | "static getter" | "property assignment");
  defaultProps?: ("static public field" | "static getter" | "property assignment");
  childContextTypes?: ("static public field" | "static getter" | "property assignment");
  contextTypes?: ("static public field" | "static getter" | "property assignment");
  contextType?: ("static public field" | "static getter" | "property assignment");
  displayName?: ("static public field" | "static getter" | "property assignment");
}];
// ----- react/style-prop-object -----
type ReactStylePropObject = [] | [{
  allow?: string[];
  [k: string]: unknown | undefined;
}];
// ----- 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");
  });
}];
// ----- simple-import-sort/imports -----
type SimpleImportSortImports = [] | [{
  groups?: string[][];
}];
// ----- sonarjs/arrow-function-convention -----
type SonarjsArrowFunctionConvention = [] | [{
  requireParameterParentheses?: boolean;
  requireBodyBraces?: boolean;
}];
// ----- sonarjs/class-name -----
type SonarjsClassName = [] | [{
  format?: string;
}];
// ----- sonarjs/cognitive-complexity -----
type SonarjsCognitiveComplexity = [] | [(number | "silence-issues")] | [(number | "silence-issues"), "silence-issues"];
// ----- sonarjs/comment-regex -----
type SonarjsCommentRegex = [] | [{
  regularExpression?: string;
  message?: string;
  flags?: string;
}];
// ----- sonarjs/content-length -----
type SonarjsContentLength = [] | [{
  fileUploadSizeLimit?: number;
  standardSizeLimit?: number;
}];
// ----- sonarjs/cyclomatic-complexity -----
type SonarjsCyclomaticComplexity = [] | [{
  threshold?: number;
}];
// ----- sonarjs/expression-complexity -----
type SonarjsExpressionComplexity = [] | [{
  max?: number;
}];
// ----- sonarjs/file-header -----
type SonarjsFileHeader = [] | [{
  headerFormat?: string;
  isRegularExpression?: boolean;
}];
// ----- sonarjs/function-name -----
type SonarjsFunctionName = [] | [{
  format?: string;
}];
// ----- sonarjs/max-lines -----
type SonarjsMaxLines = [] | [{
  maximum?: number;
}];
// ----- sonarjs/max-lines-per-function -----
type SonarjsMaxLinesPerFunction = [] | [{
  maximum?: number;
}];
// ----- sonarjs/max-switch-cases -----
type SonarjsMaxSwitchCases = [] | [number];
// ----- sonarjs/max-union-size -----
type SonarjsMaxUnionSize = [] | [{
  threshold?: number;
}];
// ----- sonarjs/nested-control-flow -----
type SonarjsNestedControlFlow = [] | [{
  maximumNestingLevel?: number;
}];
// ----- sonarjs/new-operator-misuse -----
type SonarjsNewOperatorMisuse = [] | [{
  considerJSDoc?: boolean;
}];
// ----- sonarjs/no-duplicate-string -----
type SonarjsNoDuplicateString = [] | [{
  threshold?: number;
  ignoreStrings?: string;
}];
// ----- sonarjs/no-hardcoded-passwords -----
type SonarjsNoHardcodedPasswords = [] | [{
  passwordWords?: string[];
}];
// ----- sonarjs/no-hardcoded-secrets -----
type SonarjsNoHardcodedSecrets = [] | [{
  secretWords?: string;
  randomnessSensibility?: number;
}];
// ----- sonarjs/no-identical-functions -----
type SonarjsNoIdenticalFunctions = [] | [number];
// ----- sonarjs/no-implicit-dependencies -----
type SonarjsNoImplicitDependencies = [] | [{
  whitelist?: string[];
}];
// ----- sonarjs/no-intrusive-permissions -----
type SonarjsNoIntrusivePermissions = [] | [{
  permissions?: string[];
}];
// ----- sonarjs/no-nested-functions -----
type SonarjsNoNestedFunctions = [] | [{
  threshold?: number;
}];
// ----- sonarjs/regex-complexity -----
type SonarjsRegexComplexity = [] | [{
  threshold?: number;
}];
// ----- sonarjs/variable-name -----
type SonarjsVariableName = [] | [{
  format?: string;
}];
// ----- storybook/meta-inline-properties -----
type StorybookMetaInlineProperties = [] | [{
  csfVersion?: number;
}];
// ----- storybook/no-uninstalled-addons -----
type StorybookNoUninstalledAddons = [] | [{
  packageJsonLocation?: string;
  ignore?: string[];
}];
// ----- tailwindcss/classnames-order -----
type TailwindcssClassnamesOrder = [] | [{}];
// ----- tailwindcss/enforces-negative-arbitrary-values -----
type TailwindcssEnforcesNegativeArbitraryValues = [] | [{}];
// ----- tailwindcss/enforces-shorthand -----
type TailwindcssEnforcesShorthand = [] | [{}];
// ----- tailwindcss/important-modifier-suffix -----
type TailwindcssImportantModifierSuffix = [] | [{}];
// ----- tailwindcss/no-arbitrary-value -----
type TailwindcssNoArbitraryValue = [] | [{}];
// ----- tailwindcss/no-contradicting-classname -----
type TailwindcssNoContradictingClassname = [] | [{}];
// ----- tailwindcss/no-custom-classname -----
type TailwindcssNoCustomClassname = [] | [{
  whitelist?: string[];
}];
// ----- tailwindcss/no-unnecessary-arbitrary-value -----
type TailwindcssNoUnnecessaryArbitraryValue = [] | [{}];
// ----- testing-library/await-async-events -----
type TestingLibraryAwaitAsyncEvents = [] | [{
  eventModule?: (("fireEvent" | "userEvent") | ("fireEvent" | "userEvent")[]);
}];
// ----- testing-library/consistent-data-testid -----
type TestingLibraryConsistentDataTestid = [] | [{
  testIdPattern: string;
  testIdAttribute?: (string | string[]);
  customMessage?: string;
}];
// ----- testing-library/no-await-sync-events -----
type TestingLibraryNoAwaitSyncEvents = [] | [{
  eventModules?: [("fire-event" | "user-event"), ...(("fire-event" | "user-event"))[]];
}];
// ----- testing-library/no-debugging-utils -----
type TestingLibraryNoDebuggingUtils = [] | [{
  utilsToCheckFor?: {
    prettyFormat?: boolean;
    logDOM?: boolean;
    logRoles?: boolean;
    prettyDOM?: boolean;
    logTestingPlaygroundURL?: boolean;
    debug?: boolean;
  };
}];
// ----- testing-library/no-dom-import -----
type TestingLibraryNoDomImport = [] | [string];
// ----- testing-library/no-node-access -----
type TestingLibraryNoNodeAccess = [] | [{
  allowContainerFirstChild?: boolean;
}];
// ----- testing-library/no-render-in-lifecycle -----
type TestingLibraryNoRenderInLifecycle = [] | [{
  allowTestingFrameworkSetupHook?: ("beforeEach" | "beforeAll");
}];
// ----- testing-library/no-unnecessary-act -----
type TestingLibraryNoUnnecessaryAct = [] | [{
  isStrict?: boolean;
}];
// ----- testing-library/prefer-explicit-assert -----
type TestingLibraryPreferExplicitAssert = [] | [{
  assertion?: ("toBeOnTheScreen" | "toBeInTheDocument" | "toBeTruthy" | "toBeDefined");
  includeFindQueries?: boolean;
}];
// ----- testing-library/prefer-presence-queries -----
type TestingLibraryPreferPresenceQueries = [] | [{
  presence?: boolean;
  absence?: boolean;
}];
// ----- testing-library/prefer-query-matchers -----
type TestingLibraryPreferQueryMatchers = [] | [{
  validEntries?: {
    query?: ("get" | "query");
    matcher?: string;
  }[];
}];
// ----- testing-library/prefer-user-event -----
type TestingLibraryPreferUserEvent = [] | [{
  allowedMethods?: unknown[];
}];
// ----- 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-newline -----
type TomlInlineTableCurlyNewline = [] | [(("always" | "never") | {
  multiline?: boolean;
  minProperties?: number;
  consistent?: boolean;
})];
// ----- toml/inline-table-curly-spacing -----
type TomlInlineTableCurlySpacing = [] | [("always" | "never")] | [("always" | "never"), {
  arraysInObjects?: boolean;
  objectsInObjects?: boolean;
  emptyObjects?: ("ignore" | "always" | "never");
}];
// ----- toml/inline-table-key-value-newline -----
type TomlInlineTableKeyValueNewline = [] | [{
  allowAllPropertiesOnSameLine?: 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")];
// ----- unicorn/catch-error-name -----
type UnicornCatchErrorName = [] | [{
  name?: string;
  ignore?: unknown[];
}];
// ----- unicorn/class-reference-in-static-methods -----
type UnicornClassReferenceInStaticMethods = [] | [{
  preferThis?: boolean;
  preferSuper?: boolean;
}];
// ----- unicorn/comment-content -----
type UnicornCommentContent = [] | [{
  checkUniformCase?: boolean;
  extendDefaultReplacements?: boolean;
  replacements?: {
    [k: string]: (false | string | {
      replacement: string;
      caseSensitive?: boolean;
    }) | undefined;
  };
}];
// ----- unicorn/consistent-boolean-name -----
type UnicornConsistentBooleanName = [] | [{
  checkProperties?: boolean;
  prefixes?: {
    [k: string]: boolean | undefined;
  };
  ignore?: unknown[];
}];
// ----- unicorn/consistent-class-member-order -----
type UnicornConsistentClassMemberOrder = [] | [{
  order?: [("static-field" | "static-block" | "static-method" | "private-field" | "public-field" | "constructor" | "private-method" | "public-method"), ("static-field" | "static-block" | "static-method" | "private-field" | "public-field" | "constructor" | "private-method" | "public-method"), ("static-field" | "static-block" | "static-method" | "private-field" | "public-field" | "constructor" | "private-method" | "public-method"), ("static-field" | "static-block" | "static-method" | "private-field" | "public-field" | "constructor" | "private-method" | "public-method"), ("static-field" | "static-block" | "static-method" | "private-field" | "public-field" | "constructor" | "private-method" | "public-method"), ("static-field" | "static-block" | "static-method" | "private-field" | "public-field" | "constructor" | "private-method" | "public-method"), ("static-field" | "static-block" | "static-method" | "private-field" | "public-field" | "constructor" | "private-method" | "public-method"), ("static-field" | "static-block" | "static-method" | "private-field" | "public-field" | "constructor" | "private-method" | "public-method")];
}];
// ----- unicorn/consistent-compound-words -----
type UnicornConsistentCompoundWords = [] | [{
  checkProperties?: boolean;
  checkVariables?: boolean;
  checkDefaultAndNamespaceImports?: (boolean | "internal");
  checkShorthandImports?: (boolean | "internal");
  checkShorthandProperties?: boolean;
  extendDefaultReplacements?: boolean;
  replacements?: _UnicornConsistentCompoundWords_Replacements;
  allowList?: _UnicornConsistentCompoundWords_TrueObject;
}];
interface _UnicornConsistentCompoundWords_Replacements {
  [k: string]: (false | string) | undefined;
}
interface _UnicornConsistentCompoundWords_TrueObject {
  [k: string]: true | undefined;
}
// ----- unicorn/consistent-conditional-object-spread -----
type UnicornConsistentConditionalObjectSpread = [] | [("logical" | "ternary")];
// ----- unicorn/consistent-export-decorator-position -----
type UnicornConsistentExportDecoratorPosition = [] | [("above" | "before" | "after")];
// ----- unicorn/consistent-function-scoping -----
type UnicornConsistentFunctionScoping = [] | [{
  checkArrowFunctions?: boolean;
}];
// ----- unicorn/consistent-function-style -----
type UnicornConsistentFunctionStyle = [] | [{
  default?: ("declaration" | "function-expression" | "arrow-function" | "ignore");
  namedFunctions?: ("declaration" | "function-expression" | "arrow-function" | "ignore");
  namedExports?: ("declaration" | "function-expression" | "arrow-function" | "ignore");
  callbacks?: ("function-expression" | "arrow-function" | "ignore");
  objectProperties?: ("method" | "function-expression" | "arrow-function" | "ignore");
  reassignedVariables?: ("function-expression" | "arrow-function" | "ignore");
  typedVariables?: ("function-expression" | "arrow-function" | "ignore");
}];
// ----- unicorn/consistent-json-file-read -----
type UnicornConsistentJsonFileRead = [] | [("string" | "buffer")];
// ----- unicorn/default-export-style -----
type UnicornDefaultExportStyle = [] | [{
  functions?: ("inline" | "separate" | "ignore");
  classes?: ("inline" | "separate" | "ignore");
}];
// ----- unicorn/dom-node-dataset -----
type UnicornDomNodeDataset = [] | [{
  preferAttributes?: boolean;
}];
// ----- unicorn/escape-case -----
type UnicornEscapeCase = [] | [("uppercase" | "lowercase")];
// ----- unicorn/expiring-todo-comments -----
type UnicornExpiringTodoComments = [] | [{
  terms?: string[];
  ignore?: unknown[];
  checkDates?: boolean;
  checkDatesOnPullRequests?: boolean;
  allowWarningComments?: boolean;
  date?: string;
}];
// ----- unicorn/explicit-length-check -----
type UnicornExplicitLengthCheck = [] | [{
  "non-zero"?: ("greater-than" | "not-equal");
}];
// ----- unicorn/explicit-timer-delay -----
type UnicornExplicitTimerDelay = [] | [("always" | "never")];
// ----- unicorn/filename-case -----
type UnicornFilenameCase = [] | [({
  case?: ("camelCase" | "camelCaseWithAcronyms" | "snakeCase" | "kebabCase" | "pascalCase");
  ignore?: unknown[];
  multipleFileExtensions?: boolean;
  checkDirectories?: boolean;
} | {
  cases?: {
    camelCase?: boolean;
    camelCaseWithAcronyms?: boolean;
    snakeCase?: boolean;
    kebabCase?: boolean;
    pascalCase?: boolean;
  };
  ignore?: unknown[];
  multipleFileExtensions?: boolean;
  checkDirectories?: boolean;
})];
// ----- unicorn/id-match -----
type UnicornIdMatch = [] | [string] | [string, {
  properties?: boolean;
  classFields?: boolean;
  onlyDeclarations?: boolean;
  ignoreDestructuring?: boolean;
  checkNamedSpecifiers?: 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/isolated-functions -----
type UnicornIsolatedFunctions = [] | [{
  overrideGlobals?: {
    [k: string]: (boolean | ("readonly" | "writable" | "writeable" | "off")) | undefined;
  };
  functions?: string[];
  selectors?: string[];
  comments?: string[];
}];
// ----- unicorn/logical-assignment-operators -----
type UnicornLogicalAssignmentOperators = (([] | ["always"] | ["always", {
  enforceForIfStatements?: boolean;
}] | ["never"]) & unknown[]);
// ----- unicorn/max-nested-calls -----
type UnicornMaxNestedCalls = [] | [{
  max?: number;
}];
// ----- unicorn/name-replacements -----
type UnicornNameReplacements = [] | [{
  checkProperties?: boolean;
  checkVariables?: boolean;
  checkDefaultAndNamespaceImports?: (boolean | string);
  checkShorthandImports?: (boolean | string);
  checkShorthandProperties?: boolean;
  checkFilenames?: boolean;
  extendDefaultReplacements?: boolean;
  replacements?: _UnicornNameReplacements_NameReplacements;
  extendDefaultAllowList?: boolean;
  allowList?: _UnicornNameReplacements_BooleanObject;
  ignore?: unknown[];
}];
type _UnicornNameReplacementsReplacements = (false | _UnicornNameReplacements_BooleanObject) | undefined;
interface _UnicornNameReplacements_NameReplacements {
  [k: string]: _UnicornNameReplacementsReplacements | undefined;
}
interface _UnicornNameReplacements_BooleanObject {
  [k: string]: boolean | undefined;
}
interface _UnicornNameReplacements_BooleanObject {
  [k: string]: boolean | undefined;
}
// ----- unicorn/no-array-callback-reference -----
type UnicornNoArrayCallbackReference = [] | [{
  ignore?: string[];
}];
// ----- unicorn/no-array-reduce -----
type UnicornNoArrayReduce = [] | [{
  allowSimpleOperations?: boolean;
}];
// ----- unicorn/no-array-reverse -----
type UnicornNoArrayReverse = [] | [{
  allowExpressionStatement?: boolean;
}];
// ----- unicorn/no-array-sort -----
type UnicornNoArraySort = [] | [{
  allowExpressionStatement?: boolean;
}];
// ----- unicorn/no-empty-file -----
type UnicornNoEmptyFile = [] | [{
  allowComments?: boolean;
}];
// ----- unicorn/no-instanceof-builtins -----
type UnicornNoInstanceofBuiltins = [] | [{
  useErrorIsError?: boolean;
  strategy?: ("loose" | "strict");
  include?: string[];
  exclude?: string[];
}];
// ----- unicorn/no-invalid-argument-count -----
type UnicornNoInvalidArgumentCount = [] | [{
  [k: string]: (number | [number, ...(number)[]] | {
    min?: number;
    max?: number;
  }) | undefined;
}];
// ----- unicorn/no-keyword-prefix -----
type UnicornNoKeywordPrefix = [] | [{
  disallowedPrefixes?: [] | [string];
  checkProperties?: boolean;
  onlyCamelCase?: boolean;
}];
// ----- unicorn/no-negated-comparison -----
type UnicornNoNegatedComparison = [] | [{
  checkLogicalExpressions?: boolean;
}];
// ----- unicorn/no-non-function-verb-prefix -----
type UnicornNoNonFunctionVerbPrefix = [] | [{
  verbs?: string[];
  ignore?: unknown[];
}];
// ----- unicorn/no-null -----
type UnicornNoNull = [] | [{
  checkArguments?: boolean;
  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-unreadable-array-destructuring -----
type UnicornNoUnreadableArrayDestructuring = [] | [{
  maximumIgnoredElements?: number;
}];
// ----- 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;
    fractionGroupLength?: number;
  };
  onlyIfContainsSeparator?: boolean;
}];
// ----- unicorn/operator-assignment -----
type UnicornOperatorAssignment = [] | [("always" | "never")];
// ----- 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-continue -----
type UnicornPreferContinue = [] | [{
  maximumStatements?: number;
}];
// ----- unicorn/prefer-dom-node-html-methods -----
type UnicornPreferDomNodeHtmlMethods = [] | [{
  checkGetHTML?: boolean;
  checkSetHTML?: boolean;
}];
// ----- unicorn/prefer-early-return -----
type UnicornPreferEarlyReturn = [] | [{
  maximumStatements?: number;
}];
// ----- unicorn/prefer-explicit-viewport-units -----
type UnicornPreferExplicitViewportUnits = [] | [{
  unit?: ("dvh" | "svh" | "lvh");
}];
// ----- unicorn/prefer-export-from -----
type UnicornPreferExportFrom = [] | [{
  checkUsedVariables?: boolean;
}];
// ----- unicorn/prefer-includes-over-repeated-comparisons -----
type UnicornPreferIncludesOverRepeatedComparisons = [] | [{
  minimumComparisons?: number;
}];
// ----- unicorn/prefer-minimal-ternary -----
type UnicornPreferMinimalTernary = [] | [{
  checkVaryingBase?: boolean;
  checkComputedMemberAccess?: boolean;
}];
// ----- unicorn/prefer-number-properties -----
type UnicornPreferNumberProperties = [] | [{
  checkInfinity?: boolean;
  checkNaN?: boolean;
}];
// ----- unicorn/prefer-object-from-entries -----
type UnicornPreferObjectFromEntries = [] | [{
  functions?: unknown[];
}];
// ----- unicorn/prefer-query-selector -----
type UnicornPreferQuerySelector = [] | [{
  allowWithVariables?: boolean;
}];
// ----- unicorn/prefer-queue-microtask -----
type UnicornPreferQueueMicrotask = [] | [{
  checkSetImmediate?: boolean;
  checkSetTimeout?: boolean;
}];
// ----- unicorn/prefer-set-has -----
type UnicornPreferSetHas = [] | [{
  minimumItems?: number;
}];
// ----- unicorn/prefer-short-arrow-method -----
type UnicornPreferShortArrowMethod = [] | [("always" | "consistent-as-needed")];
// ----- unicorn/prefer-single-call -----
type UnicornPreferSingleCall = [] | [{
  ignore?: unknown[];
}];
// ----- unicorn/prefer-string-repeat -----
type UnicornPreferStringRepeat = [] | [{
  minimumRepetitions?: number;
}];
// ----- 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-temporal -----
type UnicornPreferTemporal = [] | [{
  checkDateNow?: boolean;
  checkReferences?: boolean;
  checkMethods?: boolean;
}];
// ----- unicorn/prefer-ternary -----
type UnicornPreferTernary = [] | [("always" | "only-single-line")];
// ----- unicorn/relative-url-style -----
type UnicornRelativeUrlStyle = [] | [("never" | "always")];
// ----- unicorn/require-css-escape -----
type UnicornRequireCssEscape = [] | [{
  checkAllSelectors?: boolean;
}];
// ----- unicorn/require-frontmatter-fields -----
type UnicornRequireFrontmatterFields = [] | [{
  fields?: string[];
}];
// ----- unicorn/string-content -----
type UnicornStringContent = [] | [{
  patterns?: {
    [k: string]: (string | {
      suggest: string;
      fix?: boolean;
      caseSensitive?: boolean;
      message?: string;
    }) | undefined;
  };
  selectors?: string[];
}];
// ----- unicorn/switch-case-braces -----
type UnicornSwitchCaseBraces = [] | [("always" | "avoid" | "single-statement")];
// ----- unicorn/template-indent -----
type UnicornTemplateIndent = [] | [{
  indent?: (string | number);
  tags?: string[];
  functions?: string[];
  selectors?: string[];
  comments?: string[];
}];
// ----- unicorn/text-encoding-identifier-case -----
type UnicornTextEncodingIdentifierCase = [] | [{
  withDash?: boolean;
}];
// ----- unicorn/try-complexity -----
type UnicornTryComplexity = [] | [{
  max?: number;
}];
// ----- unocss/enforce-class-compile -----
type UnocssEnforceClassCompile = [] | [{
  prefix?: string;
  enableFix?: boolean;
}];
// ----- unocss/order -----
type UnocssOrder = [] | [{
  unoFunctions?: string[];
  unoVariables?: string[];
}];
// ----- vitest/consistent-each-for -----
type VitestConsistentEachFor = [] | [{
  test?: ("each" | "for");
  it?: ("each" | "for");
  describe?: ("each" | "for");
  suite?: ("each" | "for");
}];
// ----- vitest/consistent-test-filename -----
type VitestConsistentTestFilename = [] | [{
  pattern?: string;
  allTestPattern?: string;
}];
// ----- vitest/consistent-test-it -----
type VitestConsistentTestIt = [] | [{
  fn?: ("test" | "it");
  withinDescribe?: ("test" | "it");
}];
// ----- vitest/consistent-vitest-vi -----
type VitestConsistentVitestVi = [] | [{
  fn?: ("vi" | "vitest");
}];
// ----- vitest/expect-expect -----
type VitestExpectExpect = [] | [{
  assertFunctionNames?: string[];
  additionalTestBlockFunctions?: string[];
}];
// ----- vitest/max-expects -----
type VitestMaxExpects = [] | [{
  max?: number;
}];
// ----- vitest/max-nested-describe -----
type VitestMaxNestedDescribe = [] | [{
  max?: number;
}];
// ----- vitest/no-conditional-expect -----
type VitestNoConditionalExpect = [] | [{
  expectAssertions?: boolean;
}];
// ----- vitest/no-focused-tests -----
type VitestNoFocusedTests = [] | [{
  fixable?: boolean;
}];
// ----- vitest/no-hooks -----
type VitestNoHooks = [] | [{
  allow?: ("beforeAll" | "beforeEach" | "afterAll" | "afterEach" | "aroundAll" | "aroundEach")[];
}];
// ----- vitest/no-large-snapshots -----
type VitestNoLargeSnapshots = [] | [{
  maxSize?: number;
  inlineMaxSize?: number;
  allowedSnapshots?: {
    [k: string]: unknown[] | undefined;
  };
}];
// ----- vitest/no-only-tests -----
type VitestNoOnlyTests = [] | [{
  block?: string[];
  focus?: string[];
  functions?: string[];
  fix?: boolean;
}];
// ----- vitest/no-restricted-matchers -----
type VitestNoRestrictedMatchers = [] | [{
  [k: string]: (string | null) | undefined;
}];
// ----- vitest/no-restricted-vi-methods -----
type VitestNoRestrictedViMethods = [] | [{
  [k: string]: (string | null) | undefined;
}];
// ----- vitest/no-standalone-expect -----
type VitestNoStandaloneExpect = [] | [{
  additionalTestBlockFunctions?: string[];
}];
// ----- vitest/prefer-expect-assertions -----
type VitestPreferExpectAssertions = [] | [{
  onlyFunctionsWithAsyncKeyword?: boolean;
  onlyFunctionsWithExpectInLoop?: boolean;
  onlyFunctionsWithExpectInCallback?: boolean;
  disallowHasAssertions?: boolean;
}];
// ----- vitest/prefer-import-in-mock -----
type VitestPreferImportInMock = [] | [{
  fixable?: boolean;
}];
// ----- vitest/prefer-lowercase-title -----
type VitestPreferLowercaseTitle = [] | [{
  ignore?: ("describe" | "test" | "it")[];
  allowedPrefixes?: string[];
  ignoreTopLevelDescribe?: boolean;
  lowercaseFirstCharacterOnly?: boolean;
}];
// ----- vitest/prefer-snapshot-hint -----
type VitestPreferSnapshotHint = [] | [("always" | "multi")];
// ----- vitest/require-hook -----
type VitestRequireHook = [] | [{
  allowedFunctionCalls?: string[];
}];
// ----- vitest/require-mock-type-parameters -----
type VitestRequireMockTypeParameters = [] | [{
  checkImportFunctions?: boolean;
}];
// ----- vitest/require-top-level-describe -----
type VitestRequireTopLevelDescribe = [] | [{
  maxNumberOfTopLevelDescribes?: number;
}];
// ----- vitest/unbound-method -----
type VitestUnboundMethod = [] | [{
  ignoreStatic?: boolean;
}];
// ----- vitest/valid-expect -----
type VitestValidExpect = [] | [{
  alwaysAwait?: boolean;
  asyncMatchers?: string[];
  minArgs?: number;
  maxArgs?: number;
}];
// ----- vitest/valid-title -----
type VitestValidTitle = [] | [{
  ignoreTypeOfDescribeName?: boolean;
  allowArguments?: boolean;
  disallowedWords?: string[];
  [k: string]: (string | [string] | [string, string] | {
    [k: string]: (string | [string] | [string, string]) | undefined;
  });
}];
// ----- 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;
  emptyObjects?: ("ignore" | "always" | "never");
}];
// ----- 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/no-trailing-spaces -----
type YamlNoTrailingSpaces = [] | [{
  skipBlankLines?: boolean;
  ignoreComments?: boolean;
}];
// ----- 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;
      key?: string;
    };
  })[] | {
    type?: ("asc" | "desc");
    caseSensitive?: boolean;
    natural?: boolean;
    key?: string;
  });
  minValues?: number;
}, ...({
  pathPattern: string;
  order: ((string | {
    valuePattern?: string;
    order?: {
      type?: ("asc" | "desc");
      caseSensitive?: boolean;
      natural?: boolean;
      key?: string;
    };
  })[] | {
    type?: ("asc" | "desc");
    caseSensitive?: boolean;
    natural?: boolean;
    key?: string;
  });
  minValues?: number;
})[]];
// ----- yaml/spaced-comment -----
type YamlSpacedComment = [] | [("always" | "never")] | [("always" | "never"), {
  exceptions?: string[];
  markers?: string[];
}];
// ----- zod/array-style -----
type ZodArrayStyle = [] | [{
  style?: ("function" | "method");
}];
// ----- zod/consistent-import -----
type ZodConsistentImport = [] | [{
  syntax?: ("namespace" | "named");
}];
// ----- zod/consistent-import-source -----
type ZodConsistentImportSource = [] | [{
  sources?: [("zod" | "zod/v4" | "zod/v3"), ...(("zod" | "zod/v4" | "zod/v3"))[]];
}];
// ----- zod/consistent-object-schema-type -----
type ZodConsistentObjectSchemaType = [] | [{
  allow?: [("object" | "looseObject" | "strictObject"), ...(("object" | "looseObject" | "strictObject"))[]];
}];
// ----- zod/consistent-schema-output-type-style -----
type ZodConsistentSchemaOutputTypeStyle = [] | [{
  style?: ("infer" | "output");
}];
// ----- zod/consistent-schema-var-name -----
type ZodConsistentSchemaVarName = [] | [{
  before?: string;
  after?: string;
}];
// ----- zod/no-conflicting-checks -----
type ZodNoConflictingChecks = [] | [{
  checkImpossibleCases?: boolean;
  checkConfusingCases?: boolean;
  checkInapplicableChecks?: boolean;
}];
// ----- zod/no-optional-and-default-together -----
type ZodNoOptionalAndDefaultTogether = [] | [{
  preferredMethod?: ("none" | "default" | "optional");
}];
// ----- zod/prefer-top-level-string-formats -----
type ZodPreferTopLevelStringFormats = [] | [{
  ignore?: ("base64" | "base64url" | "cidrv4" | "cidrv6" | "cuid" | "cuid2" | "date" | "datetime" | "duration" | "e164" | "email" | "emoji" | "guid" | "ipv4" | "ipv6" | "jwt" | "ksuid" | "nanoid" | "time" | "ulid" | "url" | "uuid" | "uuidv4" | "uuidv6" | "uuidv7" | "xid")[];
}];
// ----- zod/schema-error-property-style -----
type ZodSchemaErrorPropertyStyle = [] | [{
  selector?: string;
  example?: string;
}];
// Names of all the configs
type ConfigNames = 'anolilab/antfu' | 'anolilab/astro/setup' | 'anolilab/astro/rules' | 'anolilab/best-practices/rules' | 'anolilab/best-practices/ts-rules' | 'compat/flat/recommended' | 'anolilab/errors/rules' | 'anolilab/errors/ts-rules' | 'anolilab/html/setup' | 'anolilab/no-secrets' | 'anolilab/no-unsanitized/setup' | 'anolilab/promise/rules' | 'anolilab/simple-import-sort' | 'anolilab/sonarjs/plugin' | 'anolilab/sonarjs/rules' | 'anolilab/sonarjs/js-and-ts-rules' | 'anolilab/sonarjs/js-rules' | 'storybook:recommended:setup' | 'storybook:recommended:stories-rules' | 'storybook:recommended:main-rules' | 'anolilab/tailwindcss/setup' | 'anolilab/validate-jsx-nesting/setup' | 'anolilab/variables/rules' | 'anolilab/variables/ts-rules' | 'anolilab/style/rules' | 'anolilab/style/ts-rules' | 'anolilab/eslint-comments/rules' | 'anolilab/formatter/setup' | 'anolilab/imports/setup' | 'anolilab/imports/rules' | 'anolilab/imports/d.ts-rules' | 'anolilab/javascript/setup' | '@eslint/js/recommended' | 'anolilab/jsx-a11y/setup' | 'anolilab/jsdoc/setup' | 'anolilab/jsdoc/js-rules' | 'anolilab/jsonc/json5-rules' | 'anolilab/jsonc/jsonc-rules' | 'anolilab/jsonc/json-rules' | 'anolilab/jsonc/package.json-rules' | 'anolilab/jsonc/tsconfig-json' | 'anolilab/markdown/setup' | 'anolilab/markdown/processor' | 'anolilab/markdown/parser' | 'anolilab/markdown/rules' | 'anolilab/markdown/disables/markdown' | 'anolilab/markdown/disables/code' | 'anolilab/perfectionist/setup' | 'anolilab/perfectionist/rules' | 'anolilab/perfectionist/typescript' | 'anolilab/perfectionist/postcss' | 'anolilab/react/setup' | 'anolilab/react/rules' | 'anolilab/react/jsx' | 'anolilab/react/tsx' | 'anolilab/react/storybook' | 'anolilab/node/setup' | 'anolilab/node/rules' | 'anolilab/stylistic/rules' | 'anolilab/vitest/setup' | 'anolilab/vitest/rules' | 'anolilab/toml' | 'anolilab/regexp/rules' | 'anolilab/typescript/setup' | 'anolilab/typescript/parser' | 'anolilab/typescript/type-aware-parser' | 'typescript-eslint/base' | 'typescript-eslint/eslint-recommended' | 'typescript-eslint/strict' | 'typescript-eslint/base' | 'typescript-eslint/eslint-recommended' | 'typescript-eslint/strict-type-checked-only' | 'anolilab/typescript/rules-type-aware' | 'anolilab/typescript/no-for-of-array/rules' | 'anolilab/typescript/rules' | 'anolilab/unicorn/plugin' | 'anolilab/unicorn/rules' | 'anolilab/unicorn/tsconfig-overrides' | 'anolilab/unicorn/ts-overrides' | 'anolilab/unocss' | 'anolilab/yaml' | 'anolilab/zod/rules';
type VendoredPrettierOptions = Partial<VendoredPrettierOptionsRequired>;
interface VendoredPrettierOptionsRequired {
  arrowParens: "always" | "avoid";
  bracketSameLine: boolean;
  bracketSpacing: boolean;
  endOfLine: "auto" | "cr" | "crlf" | "lf";
  htmlWhitespaceSensitivity: "css" | "ignore" | "strict";
  jsxBracketSameLine: boolean;
  jsxSingleQuote: boolean;
  plugins: any[];
  printWidth: number;
  proseWrap: "always" | "never" | "preserve";
  quoteProps: "as-needed" | "consistent" | "preserve";
  rangeEnd: number;
  rangeStart: number;
  semi: boolean;
  singleAttributePerLine: boolean;
  singleQuote: boolean;
  tabWidth: number;
  trailingComma: "all" | "es5" | "none";
  useTabs?: boolean;
  vueIndentScriptAndStyle: boolean;
  xmlQuoteAttributes: "double" | "preserve" | "single";
  xmlSelfClosingSpace: boolean;
  xmlSortAttributesByKey: boolean;
  xmlWhitespaceSensitivity: "ignore" | "preserve" | "strict";
}
type Awaitable<T> = Promise<T> | T;
interface OptionsComponentExtensions {
  componentExts?: string[];
}
interface OptionsConfig extends OptionsComponentExtensions, OptionsSilentConsoleLogs {
  antfu?: OptionsFiles & OptionsOverrides;
  astro?: boolean | (OptionsFiles & OptionsOverrides);
  comments?: OptionsFiles & OptionsOverrides;
  compat?: OptionsFiles;
  css?: boolean | (OptionsFiles & OptionsOverrides);
  cwd?: string;
  e18e?: boolean | (OptionsFiles & OptionsOverrides);
  formatters?: OptionsFormatters | boolean;
  gitignore?: FlatGitignoreOptions | boolean;
  html?: boolean | (OptionsFiles & OptionsOverrides);
  imports?: OptionsFiles & OptionsOverrides;
  isInEditor?: boolean;
  javascript?: OptionsOverrides;
  jsdoc?: OptionsFiles & OptionsOverrides;
  jsonc?: boolean | (OptionsFiles & OptionsOverrides);
  jsx?: boolean;
  "jsx-a11y"?: OptionsFiles & OptionsOverrides;
  lessOpinionated?: boolean;
  lodash?: boolean | (OptionsFiles & OptionsOverrides);
  markdown?: boolean | (OptionsFiles & OptionsMarkdown & OptionsOverrides);
  node?: OptionsFiles & OptionsOverrides;
  noSecrets?: OptionsOverrides;
  noUnsanitized?: OptionsOverrides;
  oxlint?: boolean | (OptionsOverrides & {
    configFile?: string;
    mode?: "all" | "recommended";
  });
  perfectionist?: OptionsFiles & OptionsOverrides;
  playwright?: boolean | (OptionsFiles & OptionsOverrides);
  pnpm?: boolean | (OptionsOverrides & OptionsPnpm);
  promise?: OptionsFiles & OptionsOverrides;
  react?: boolean | (OptionsFiles & OptionsOverrides & OptionsReact);
  reactCompiler?: boolean;
  regexp?: boolean | (OptionsFiles & OptionsOverrides & OptionsRegExp);
  simpleImportSort?: OptionsFiles & OptionsOverrides;
  sonarjs?: OptionsFiles & OptionsOverrides;
  storybook?: boolean | (OptionsFiles & OptionsOverrides);
  stylistic?: boolean | (OptionsFiles & OptionsOverrides & StylisticConfig);
  tailwindcss?: boolean | "v3" | "v4" | (OptionsFiles & OptionsOverrides & {
    version?: "v3" | "v4";
  });
  tanstackQuery?: boolean | (OptionsFiles & OptionsOverrides);
  tanstackRouter?: boolean | (OptionsFiles & OptionsOverrides);
  testingLibrary?: boolean | (OptionsFiles & OptionsOverrides & OptionsPackageJson);
  toml?: boolean | (OptionsFiles & OptionsOverrides);
  tsdoc?: boolean | (OptionsFiles & OptionsOverrides);
  typescript?: OptionsTypescript | boolean;
  unicorn?: OptionsUnicorn | boolean;
  unocss?: OptionsUnoCSS | boolean;
  unusedImports?: OptionsFiles & OptionsOverrides;
  validateJsxNesting?: OptionsFiles & OptionsOverrides;
  vitest?: boolean | (OptionsFiles & OptionsOverrides);
  yaml?: boolean | (OptionsFiles & OptionsOverrides);
  zod?: boolean | (OptionsFiles & OptionsOverrides);
}
interface OptionsCwd {
  cwd: string;
}
interface OptionsFiles {
  files?: string[];
}
interface OptionsFormatters {
  astro?: boolean | "prettier";
  css?: boolean | "prettier";
  dprintOptions?: {
    indent?: "space" | "tab";
    indentWidth?: number;
    quoteStyle?: "preferDouble" | "preferSingle";
    useTabs?: boolean;
  };
  graphql?: boolean | "prettier";
  html?: boolean | "prettier";
  markdown?: boolean | "dprint" | "prettier";
  prettierOptions?: VendoredPrettierOptions;
  slidev?: boolean | {
    files?: string[];
  };
  svg?: boolean | "prettier";
  xml?: boolean | "prettier";
}
interface OptionsHasPrettier {
  prettier?: boolean;
}
interface OptionsIsInEditor {
  isInEditor?: boolean;
}
interface OptionsMarkdown {
  gfm?: boolean;
  overridesMarkdown?: NonNullable<TypedFlatConfigItem["rules"]>;
}
interface OptionsOverrides {
  overrides?: NonNullable<TypedFlatConfigItem["rules"]>;
}
interface OptionsPnpm {
  catalogs?: boolean;
  json?: boolean;
  sort?: boolean;
  yaml?: boolean;
}
interface OptionsPackageJson {
  packageJson: NormalizedPackageJson;
}
interface OptionsRegExp {
  level?: "error" | "warn";
}
interface OptionsSilentConsoleLogs {
  silent?: boolean;
}
interface OptionsStylistic {
  stylistic?: StylisticConfig | boolean;
}
type OptionsTypescript = OptionsOverrides & OptionsTypeScriptParserOptions & OptionsTypeScriptWithTypes;
interface OptionsTypeScriptParserOptions {
  filesTypeAware?: string[];
  ignoresTypeAware?: string[];
  parserOptions?: Partial<ParserOptions & {
    erasableSyntaxOnly?: boolean;
  }>;
}
interface OptionsTypeScriptWithTypes {
  isTypeAware?: boolean;
  overridesTypeAware?: NonNullable<TypedFlatConfigItem["rules"]>;
  tsconfigPath?: string;
}
interface OptionsReact {
  reactCompiler?: boolean;
  reactUnhookify?: boolean;
  reactVersion?: string;
}
interface OptionsUnicorn {
  allRecommended?: boolean;
}
interface OptionsUnoCSS extends OptionsOverrides {
  attributify?: boolean;
  strict?: boolean;
}
type Rules = Record<string, Linter.RuleEntry<any> | undefined> & RuleOptions;
type StylisticConfig = Pick<StylisticCustomizeOptions, "indent" | "jsx" | "quotes" | "semi">;
type TypedFlatConfigItem = Omit<Linter.Config, "plugins" | "rules"> & {
  plugins?: Record<string, any>;
  rules?: Rules;
};
type FileType = "all" | "astro_ts" | "astro" | "css" | "e2e" | "graphql" | "html" | "js_and_ts" | "js" | "jsx" | "jsx_and_tsx" | "less" | "markdown_in_markdown" | "markdown_inline_js_jsx" | "markdown" | "postcss" | "scss" | "storybook" | "svg" | "toml" | "ts" | "types" | "vitest" | "xml" | "yaml";
declare const getFilesGlobs: (fileType: FileType) => string[];
type ResolvedOptions<T> = T extends boolean ? never : NonNullable<T>;
declare const resolveSubOptions: <K extends keyof OptionsConfig>(options: OptionsConfig, key: K) => ResolvedOptions<OptionsConfig[K]>;
declare const getOverrides: (options: OptionsConfig, key: keyof OptionsConfig) => Partial<Linter.RulesRecord & RuleOptions>;
declare const getFiles: (options: OptionsConfig, key: keyof OptionsConfig) => string[] | undefined;
type PromiseFlatConfigComposer = Promise<FlatConfigComposer<TypedFlatConfigItem, ConfigNames>>;
declare const createConfig: (options?: Omit<TypedFlatConfigItem, "files"> & OptionsConfig, ...userConfigs: Awaitable<FlatConfigComposer<any, any> | Linter.Config[] | TypedFlatConfigItem | TypedFlatConfigItem[]>[]) => PromiseFlatConfigComposer;
export { type Awaitable, type ConfigNames, type OptionsComponentExtensions, type OptionsConfig, type OptionsCwd, type OptionsFiles, type OptionsFormatters, type OptionsHasPrettier, type OptionsIsInEditor, type OptionsOverrides, type OptionsPackageJson, type OptionsReact, type OptionsRegExp, type OptionsSilentConsoleLogs, type OptionsStylistic, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type OptionsTypescript, type OptionsUnicorn, type OptionsUnoCSS, PromiseFlatConfigComposer, ResolvedOptions, type Rules, type StylisticConfig, type TypedFlatConfigItem, createConfig, getFiles, getFilesGlobs, getOverrides, resolveSubOptions };
