UNPKG

@shayanthenerd/eslint-config

Version:

A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style

23,541 lines 1.01 MB
import { Linter } from "eslint";
//#region src/types/eslint-schema.d.ts
declare module 'eslint' {
  namespace Linter {
    interface RulesRecord extends ESLintSchema {}
  }
}
interface ESLintSchema {
  /**
   * Disallows DOM elements from using 'dangerouslySetInnerHTML'.
   * @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml
   */
  '@eslint-react/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
   */
  '@eslint-react/dom-no-dangerously-set-innerhtml-with-children'?: Linter.RuleEntry<[]>;
  /**
   * Disallows 'findDOMNode'.
   * @see https://eslint-react.xyz/docs/rules/dom-no-find-dom-node
   */
  '@eslint-react/dom-no-find-dom-node'?: Linter.RuleEntry<[]>;
  /**
   * Disallows 'flushSync'.
   * @see https://eslint-react.xyz/docs/rules/dom-no-flush-sync
   */
  '@eslint-react/dom-no-flush-sync'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'ReactDOM.hydrate()' with 'hydrateRoot()'.
   * @see https://eslint-react.xyz/docs/rules/dom-no-hydrate
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/dom-no-render'?: Linter.RuleEntry<[]>;
  /**
   * Disallows the return value of 'ReactDOM.render'.
   * @see https://eslint-react.xyz/docs/rules/dom-no-render-return-value
   */
  '@eslint-react/dom-no-render-return-value'?: Linter.RuleEntry<[]>;
  /**
   * Disallows 'javascript:' URLs as attribute values.
   * @see https://eslint-react.xyz/docs/rules/dom-no-script-url
   */
  '@eslint-react/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
   */
  '@eslint-react/dom-no-string-style-prop'?: Linter.RuleEntry<[]>;
  /**
   * Disallows unknown 'DOM' properties.
   * @see https://eslint-react.xyz/docs/rules/dom-no-unknown-property
   */
  '@eslint-react/dom-no-unknown-property'?: Linter.RuleEntry<EslintReactDomNoUnknownProperty>;
  /**
   * 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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/error-boundaries'?: Linter.RuleEntry<[]>;
  /**
   * Verifies the list of dependencies for Hooks like 'useEffect' and similar.
   * @see https://github.com/facebook/react/issues/14920
   */
  '@eslint-react/exhaustive-deps'?: Linter.RuleEntry<EslintReactExhaustiveDeps>;
  /**
   * 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
   */
  '@eslint-react/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
   */
  '@eslint-react/immutability'?: Linter.RuleEntry<[]>;
  /**
   * Disallows passing 'children' as a prop.
   * @see https://eslint-react.xyz/docs/rules/jsx-no-children-prop
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/jsx-no-namespace'?: Linter.RuleEntry<[]>;
  /**
   * Disallows useless fragment elements.
   * @see https://eslint-react.xyz/docs/rules/jsx-no-useless-fragment
   */
  '@eslint-react/jsx-no-useless-fragment'?: Linter.RuleEntry<EslintReactJsxNoUselessFragment>;
  /**
   * 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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/no-children-to-array'?: Linter.RuleEntry<[]>;
  /**
   * Disallows class components except for error boundaries.
   * @see https://eslint-react.xyz/docs/rules/no-class-component
   */
  '@eslint-react/no-class-component'?: Linter.RuleEntry<[]>;
  /**
   * Disallows 'cloneElement'.
   * @see https://eslint-react.xyz/docs/rules/no-clone-element
   */
  '@eslint-react/no-clone-element'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'componentWillMount' with 'UNSAFE_componentWillMount'.
   * @see https://eslint-react.xyz/docs/rules/no-component-will-mount
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/no-component-will-update'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of '<Context.Provider>' with '<Context>'.
   * @see https://eslint-react.xyz/docs/rules/no-context-provider
   */
  '@eslint-react/no-context-provider'?: Linter.RuleEntry<[]>;
  /**
   * Disallows 'createRef' in function components and Hooks.
   * @see https://eslint-react.xyz/docs/rules/no-create-ref
   */
  '@eslint-react/no-create-ref'?: Linter.RuleEntry<[]>;
  /**
   * Disallows direct mutation of 'this.state'.
   * @see https://eslint-react.xyz/docs/rules/no-direct-mutation-state
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/no-forward-ref'?: Linter.RuleEntry<[]>;
  /**
   * Prevents implicitly passing the 'children' prop to components.
   * @see https://eslint-react.xyz/docs/rules/no-implicit-children
   */
  '@eslint-react/no-implicit-children'?: Linter.RuleEntry<[]>;
  /**
   * Prevents implicitly passing the 'key' prop to components.
   * @see https://eslint-react.xyz/docs/rules/no-implicit-key
   */
  '@eslint-react/no-implicit-key'?: Linter.RuleEntry<[]>;
  /**
   * Prevents implicitly passing the 'ref' prop to components.
   * @see https://eslint-react.xyz/docs/rules/no-implicit-ref
   */
  '@eslint-react/no-implicit-ref'?: Linter.RuleEntry<[]>;
  /**
   * Prevents problematic leaked values from being rendered.
   * @see https://eslint-react.xyz/docs/rules/no-leaked-conditional-rendering
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/no-missing-key'?: Linter.RuleEntry<[]>;
  /**
   * Prevents incorrect usage of 'captureOwnerStack'.
   * @see https://eslint-react.xyz/docs/rules/no-misused-capture-owner-stack
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/no-unsafe-component-will-update'?: Linter.RuleEntry<[]>;
  /**
   * Prevents non-stable values (i.e., object literals) from being used as a value for 'Context.Provider'.
   * @see https://eslint-react.xyz/docs/rules/no-unstable-context-value
   */
  '@eslint-react/no-unstable-context-value'?: Linter.RuleEntry<[]>;
  /**
   * Prevents using referential-type values as default props in object destructuring.
   * @see https://eslint-react.xyz/docs/rules/no-unstable-default-props
   */
  '@eslint-react/no-unstable-default-props'?: Linter.RuleEntry<EslintReactNoUnstableDefaultProps>;
  /**
   * Warns about unused class component methods and properties.
   * @see https://eslint-react.xyz/docs/rules/no-unused-class-component-members
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/no-unused-state'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'useContext' with 'use'.
   * @see https://eslint-react.xyz/docs/rules/no-use-context
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/refs'?: Linter.RuleEntry<[]>;
  /**
   * Validates and transforms React Client/Server Function definitions.
   * @see https://eslint-react.xyz/docs/rules/rsc-function-definition
   */
  '@eslint-react/rsc-function-definition'?: Linter.RuleEntry<[]>;
  /**
   * Enforces the Rules of Hooks.
   * @see https://react.dev/reference/rules/rules-of-hooks
   */
  '@eslint-react/rules-of-hooks'?: Linter.RuleEntry<EslintReactRulesOfHooks>;
  /**
   * 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
   */
  '@eslint-react/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
   */
  '@eslint-react/set-state-in-render'?: Linter.RuleEntry<[]>;
  /**
   * Validates that components are static, not recreated every render.
   * @see https://eslint-react.xyz/docs/rules/static-components
   */
  '@eslint-react/static-components'?: Linter.RuleEntry<[]>;
  /**
   * Validates against syntax that React Compiler does not support.
   * @see https://eslint-react.xyz/docs/rules/unsupported-syntax
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/use-state'?: Linter.RuleEntry<EslintReactUseState>;
  /**
   * 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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-react/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
   */
  '@eslint-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
   */
  '@eslint-react/x-exhaustive-deps'?: Linter.RuleEntry<EslintReactXExhaustiveDeps>;
  /**
   * 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
   */
  '@eslint-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
   */
  '@eslint-react/x-immutability'?: Linter.RuleEntry<[]>;
  /**
   * Disallows accessing 'this.state' inside 'setState' calls.
   * @see https://eslint-react.xyz/docs/rules/no-access-state-in-setstate
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-react/x-no-class-component'?: Linter.RuleEntry<[]>;
  /**
   * Disallows 'cloneElement'.
   * @see https://eslint-react.xyz/docs/rules/no-clone-element
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-react/x-no-context-provider'?: Linter.RuleEntry<[]>;
  /**
   * Disallows 'createRef' in function components and Hooks.
   * @see https://eslint-react.xyz/docs/rules/no-create-ref
   */
  '@eslint-react/x-no-create-ref'?: Linter.RuleEntry<[]>;
  /**
   * Disallows direct mutation of 'this.state'.
   * @see https://eslint-react.xyz/docs/rules/no-direct-mutation-state
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-react/x-no-missing-key'?: Linter.RuleEntry<[]>;
  /**
   * Prevents incorrect usage of 'captureOwnerStack'.
   * @see https://eslint-react.xyz/docs/rules/no-misused-capture-owner-stack
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-react/x-no-unstable-default-props'?: Linter.RuleEntry<EslintReactXNoUnstableDefaultProps>;
  /**
   * Warns about unused class component methods and properties.
   * @see https://eslint-react.xyz/docs/rules/no-unused-class-component-members
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-react/x-no-unused-state'?: Linter.RuleEntry<[]>;
  /**
   * Replaces usage of 'useContext' with 'use'.
   * @see https://eslint-react.xyz/docs/rules/no-use-context
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-react/x-refs'?: Linter.RuleEntry<[]>;
  /**
   * Enforces the Rules of Hooks.
   * @see https://react.dev/reference/rules/rules-of-hooks
   */
  '@eslint-react/x-rules-of-hooks'?: Linter.RuleEntry<EslintReactXRulesOfHooks>;
  /**
   * 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
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-react/x-static-components'?: Linter.RuleEntry<[]>;
  /**
   * Validates against syntax that React Compiler does not support.
   * @see https://eslint-react.xyz/docs/rules/unsupported-syntax
   */
  '@eslint-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
   */
  '@eslint-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
   */
  '@eslint-react/x-use-state'?: Linter.RuleEntry<EslintReactXUseState>;
  /**
   * Enforce newline between attributes
   * @see https://html-eslint.org/docs/rules/attrs-newline
   */
  '@html-eslint/attrs-newline'?: Linter.RuleEntry<HtmlEslintAttrsNewline>;
  /**
   * Disallow extra spacing in class attribute values
   * @see https://html-eslint.org/docs/rules/class-spacing
   */
  '@html-eslint/class-spacing'?: Linter.RuleEntry<[]>;
  /**
   * Disallows empty CSS blocks in `<style>` tags.
   */
  '@html-eslint/css-no-empty-blocks'?: Linter.RuleEntry<[]>;
  /**
   * Enforce newline between elements.
   * @see https://html-eslint.org/docs/rules/element-newline
   */
  '@html-eslint/element-newline'?: Linter.RuleEntry<HtmlEslintElementNewline>;
  /**
   * Enforce optimal ordering of elements in `<head>`
   * @see https://html-eslint.org/docs/rules/head-order
   */
  '@html-eslint/head-order'?: Linter.RuleEntry<HtmlEslintHeadOrder>;
  /**
   * Enforce consistent naming of id attributes
   * @see https://html-eslint.org/docs/rules/id-naming-convention
   */
  '@html-eslint/id-naming-convention'?: Linter.RuleEntry<HtmlEslintIdNamingConvention>;
  /**
   * Enforce consistent indentation
   */
  '@html-eslint/indent'?: Linter.RuleEntry<HtmlEslintIndent>;
  /**
   * Enforce use of lowercase for tag and attribute names.
   * @see https://html-eslint.org/docs/rules/lowercase
   */
  '@html-eslint/lowercase'?: Linter.RuleEntry<[]>;
  /**
   * Enforce maximum element depth
   * @see https://html-eslint.org/docs/rules/max-element-depth
   */
  '@html-eslint/max-element-depth'?: Linter.RuleEntry<HtmlEslintMaxElementDepth>;
  /**
   * Disallow use of abstract roles
   * @see https://html-eslint.org/docs/rules/no-abstract-roles
   */
  '@html-eslint/no-abstract-roles'?: Linter.RuleEntry<[]>;
  /**
   * Disallow use of accesskey attribute
   * @see https://html-eslint.org/docs/rules/no-accesskey-attrs
   */
  '@html-eslint/no-accesskey-attrs'?: Linter.RuleEntry<[]>;
  /**
   * Disallow use of aria-hidden attributes on the `body` element.
   * @see https://html-eslint.org/docs/rules/no-aria-hidden-body
   */
  '@html-eslint/no-aria-hidden-body'?: Linter.RuleEntry<[]>;
  /**
   * Disallow aria-hidden="true" on focusable elements
   * @see https://html-eslint.org/docs/rules/no-aria-hidden-on-focusable
   */
  '@html-eslint/no-aria-hidden-on-focusable'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate attributes
   * @see https://html-eslint.org/docs/rules/no-duplicate-attrs
   */
  '@html-eslint/no-duplicate-attrs'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate class names
   * @see https://html-eslint.org/docs/rules/no-duplicate-class
   */
  '@html-eslint/no-duplicate-class'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate id attributes
   * @see https://html-eslint.org/docs/rules/no-duplicate-id
   */
  '@html-eslint/no-duplicate-id'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate tags in `<head>`
   * @see https://html-eslint.org/docs/rules/no-duplicate-in-head
   */
  '@html-eslint/no-duplicate-in-head'?: Linter.RuleEntry<[]>;
  /**
   * Disallow empty or inaccessible headings.
   * @see https://html-eslint.org/docs/rules/no-empty-headings
   */
  '@html-eslint/no-empty-headings'?: Linter.RuleEntry<[]>;
  /**
   * Disallow extra spacing around attributes
   * @see https://html-eslint.org/docs/rules/no-extra-spacing-attrs
   * @deprecated
   */
  '@html-eslint/no-extra-spacing-attrs'?: Linter.RuleEntry<HtmlEslintNoExtraSpacingAttrs>;
  /**
   * Disallow extra spacing inside tags
   * @see https://html-eslint.org/docs/rules/no-extra-spacing-tags
   */
  '@html-eslint/no-extra-spacing-tags'?: Linter.RuleEntry<HtmlEslintNoExtraSpacingTags>;
  /**
   * Disallow unnecessary consecutive spaces
   * @see https://html-eslint.org/docs/rules/no-extra-spacing-text
   */
  '@html-eslint/no-extra-spacing-text'?: Linter.RuleEntry<HtmlEslintNoExtraSpacingText>;
  /**
   * Disallows the use of heading elements inside <button>.
   * @see https://html-eslint.org/docs/rules/no-heading-inside-button
   */
  '@html-eslint/no-heading-inside-button'?: Linter.RuleEntry<[]>;
  /**
   * Disallow HTML attributes that have no effect in their context
   * @see https://html-eslint.org/docs/rules/no-ineffective-attrs
   */
  '@html-eslint/no-ineffective-attrs'?: Linter.RuleEntry<[]>;
  /**
   * Disallow using inline style
   * @see https://html-eslint.org/docs/rules/no-inline-styles
   */
  '@html-eslint/no-inline-styles'?: Linter.RuleEntry<HtmlEslintNoInlineStyles>;
  /**
   * Disallow invalid attribute values according to HTML standards
   * @see https://html-eslint.org/docs/rules/no-invalid-attr-value
   */
  '@html-eslint/no-invalid-attr-value'?: Linter.RuleEntry<HtmlEslintNoInvalidAttrValue>;
  /**
   * Disallows the use of invalid HTML entities
   * @see https://html-eslint.org/docs/rules/no-invalid-entity
   */
  '@html-eslint/no-invalid-entity'?: Linter.RuleEntry<[]>;
  /**
   * Disallows use of invalid role.
   * @see https://html-eslint.org/docs/rules/no-invalid-role
   */
  '@html-eslint/no-invalid-role'?: Linter.RuleEntry<[]>;
  /**
   * Disallow multiple empty lines
   * @see https://html-eslint.org/docs/rules/no-multiple-empty-lines
   */
  '@html-eslint/no-multiple-empty-lines'?: Linter.RuleEntry<HtmlEslintNoMultipleEmptyLines>;
  /**
   * Disallow multiple `<h1></h1>`.
   * @see https://html-eslint.org/docs/rules/no-multiple-h1
   */
  '@html-eslint/no-multiple-h1'?: Linter.RuleEntry<[]>;
  /**
   * Disallows nested interactive elements
   * @see https://html-eslint.org/docs/rules/no-nested-interactive
   */
  '@html-eslint/no-nested-interactive'?: Linter.RuleEntry<[]>;
  /**
   * Disallow use of `user-scalable=no` in `<meta name="viewport">`.
   * @see https://html-eslint.org/docs/rules/no-non-scalable-viewport
   */
  '@html-eslint/no-non-scalable-viewport'?: Linter.RuleEntry<[]>;
  /**
   * Disallow use of obsolete attributes in HTML5
   * @see https://html-eslint.org/docs/rules/no-obsolete-attrs
   */
  '@html-eslint/no-obsolete-attrs'?: Linter.RuleEntry<[]>;
  /**
   * Disallow use of obsolete elements in HTML5
   * @see https://html-eslint.org/docs/rules/no-obsolete-tags
   */
  '@html-eslint/no-obsolete-tags'?: Linter.RuleEntry<[]>;
  /**
   * Disallow use of positive `tabindex`.
   * @see https://html-eslint.org/docs/rules/no-positive-tabindex
   */
  '@html-eslint/no-positive-tabindex'?: Linter.RuleEntry<[]>;
  /**
   * Disallow redundant role attributes that match the element's implicit role
   * @see https://html-eslint.org/docs/rules/no-redundant-role
   */
  '@html-eslint/no-redundant-role'?: Linter.RuleEntry<[]>;
  /**
   * Disallow specified attributes
   * @see https://html-eslint.org/docs/rules/no-restricted-attr-values
   */
  '@html-eslint/no-restricted-attr-values'?: Linter.RuleEntry<HtmlEslintNoRestrictedAttrValues>;
  /**
   * Disallow specified attributes
   * @see https://html-eslint.org/docs/rules/no-restricted-attrs
   */
  '@html-eslint/no-restricted-attrs'?: Linter.RuleEntry<HtmlEslintNoRestrictedAttrs>;
  /**
   * Disallow specified tags
   * @see https://html-eslint.org/docs/rules/no-restricted-tags
   */
  '@html-eslint/no-restricted-tags'?: Linter.RuleEntry<HtmlEslintNoRestrictedTags>;
  /**
   * Enforce to omit type attributes for style sheets and scripts
   * @see https://html-eslint.org/docs/rules/no-script-style-type
   */
  '@html-eslint/no-script-style-type'?: Linter.RuleEntry<[]>;
  /**
   * Disallow skipping heading levels
   * @see https://html-eslint.org/docs/rules/no-skip-heading-levels
   */
  '@html-eslint/no-skip-heading-levels'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of unsafe `target='_blank'`
   * @see https://html-eslint.org/docs/rules/no-target-blank
   */
  '@html-eslint/no-target-blank'?: Linter.RuleEntry<[]>;
  /**
   * Disallow trailing whitespace at the end of lines
   * @see https://html-eslint.org/docs/rules/no-trailing-spaces
   */
  '@html-eslint/no-trailing-spaces'?: Linter.RuleEntry<[]>;
  /**
   * Disallow tags with only whitespace children.
   * @see https://html-eslint.org/docs/rules/no-whitespace-only-children
   */
  '@html-eslint/no-whitespace-only-children'?: Linter.RuleEntry<HtmlEslintNoWhitespaceOnlyChildren>;
  /**
   * Prefer to use HTTPS for embedded resources
   * @see https://html-eslint.org/docs/rules/prefer-https
   */
  '@html-eslint/prefer-https'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent quoting attributes with double(") or single(')
   * @see https://html-eslint.org/docs/rules/quotes
   */
  '@html-eslint/quotes'?: Linter.RuleEntry<HtmlEslintQuotes>;
  /**
   * Disallow extra spacing in className values
   * @see https://html-eslint.org/docs/react/rules/classname-spacing
   */
  '@html-eslint/react/classname-spacing'?: Linter.RuleEntry<HtmlEslintReactClassnameSpacing>;
  /**
   * Disallow duplicate class names in className
   * @see https://html-eslint.org/docs/react/rules/no-duplicate-classname
   */
  '@html-eslint/react/no-duplicate-classname'?: Linter.RuleEntry<HtmlEslintReactNoDuplicateClassname>;
  /**
   * Disallow HTML attributes that have no effect in their context
   * @see https://html-eslint.org/docs/react/rules/no-ineffective-attrs
   */
  '@html-eslint/react/no-ineffective-attrs'?: Linter.RuleEntry<[]>;
  /**
   * Disallow invalid attribute values according to HTML standards
   * @see https://html-eslint.org/docs/react/rules/no-invalid-attr-value
   */
  '@html-eslint/react/no-invalid-attr-value'?: Linter.RuleEntry<HtmlEslintReactNoInvalidAttrValue>;
  /**
   * Disallow use of obsolete attributes in HTML5
   * @see https://html-eslint.org/docs/react/rules/no-obsolete-attrs
   */
  '@html-eslint/react/no-obsolete-attrs'?: Linter.RuleEntry<[]>;
  /**
   * Disallow use of obsolete elements in HTML5
   */
  '@html-eslint/react/no-obsolete-tags'?: Linter.RuleEntry<[]>;
  /**
   * Enforce the use of baseline features.
   * @see https://html-eslint.org/docs/react/rules/use-baseline
   */
  '@html-eslint/react/use-baseline'?: Linter.RuleEntry<HtmlEslintReactUseBaseline>;
  /**
   * Require specified attributes
   * @see https://html-eslint.org/docs/rules/require-attrs
   */
  '@html-eslint/require-attrs'?: Linter.RuleEntry<HtmlEslintRequireAttrs>;
  /**
   * Require use of the button element with a valid type attribute.
   * @see https://html-eslint.org/docs/rules/require-button-type
   */
  '@html-eslint/require-button-type'?: Linter.RuleEntry<[]>;
  /**
   * Require closing tags.
   * @see https://html-eslint.org/docs/rules/require-closing-tags
   */
  '@html-eslint/require-closing-tags'?: Linter.RuleEntry<HtmlEslintRequireClosingTags>;
  /**
   * Require that certain elements have meaningful content.
   * @see https://html-eslint.org/docs/rules/require-content
   */
  '@html-eslint/require-content'?: Linter.RuleEntry<[]>;
  /**
   * Require `<details>` elements to have a `<summary>` as their first child element.
   * @see https://html-eslint.org/docs/rules/require-details-summary
   */
  '@html-eslint/require-details-summary'?: Linter.RuleEntry<[]>;
  /**
   * Require `<!DOCTYPE HTML>` in HTML
   * @see https://html-eslint.org/docs/rules/require-doctype
   */
  '@html-eslint/require-doctype'?: Linter.RuleEntry<[]>;
  /**
   * Enforces that some elements (img, iframe) have explicitly defined width and height attributes.
   * @see https://html-eslint.org/docs/rules/require-explicit-size
   */
  '@html-eslint/require-explicit-size'?: Linter.RuleEntry<HtmlEslintRequireExplicitSize>;
  /**
   * Require `method` attribute in `<form>`
   * @see https://html-eslint.org/docs/rules/require-form-method
   */
  '@html-eslint/require-form-method'?: Linter.RuleEntry<[]>;
  /**
   * Require `title` in `<frame>`, `<iframe>`
   * @see https://html-eslint.org/docs/rules/require-frame-title
   */
  '@html-eslint/require-frame-title'?: Linter.RuleEntry<[]>;
  /**
   * Require `alt` attribute on `<img>` tag
   * @see https://html-eslint.org/docs/rules/require-img-alt
   */
  '@html-eslint/require-img-alt'?: Linter.RuleEntry<HtmlEslintRequireImgAlt>;
  /**
   * Enforces use of label for form elements(`input`, `textarea`, `select`)
   * @see https://html-eslint.org/docs/rules/require-input-label
   */
  '@html-eslint/require-input-label'?: Linter.RuleEntry<[]>;
  /**
   * Require `lang` attribute on `<html>` tag
   * @see https://html-eslint.org/docs/rules/require-lang
   */
  '@html-eslint/require-lang'?: Linter.RuleEntry<[]>;
  /**
   * Enforce `<li>` to be in `<ul>`, `<ol>` or `<menu>`.
   * @see https://html-eslint.org/docs/rules/require-li-container
   */
  '@html-eslint/require-li-container'?: Linter.RuleEntry<[]>;
  /**
   * Enforce use of `<meta charset="...">` in `<head>`
   * @see https://html-eslint.org/docs/rules/require-meta-charset
   */
  '@html-eslint/require-meta-charset'?: Linter.RuleEntry<[]>;
  /**
   * Require use of `<meta name="description">` in `<head>`
   * @see https://html-eslint.org/docs/rules/require-meta-description
   */
  '@html-eslint/require-meta-description'?: Linter.RuleEntry<[]>;
  /**
   * Enforce use of `<meta name="viewport">` in `<head>`
   * @see https://html-eslint.org/docs/rules/require-meta-viewport
   */
  '@html-eslint/require-meta-viewport'?: Linter.RuleEntry<[]>;
  /**
   * Enforce use of specified meta tags for open graph protocol.
   * @see https://html-eslint.org/docs/rules/require-open-graph-protocol
   */
  '@html-eslint/require-open-graph-protocol'?: Linter.RuleEntry<HtmlEslintRequireOpenGraphProtocol>;
  /**
   * Require `<title>` in the `<head>`
   * @see https://html-eslint.org/docs/rules/require-title
   */
  '@html-eslint/require-title'?: Linter.RuleEntry<[]>;
  /**
   * Enforce priority and alphabetical sorting of attributes
   * @see https://html-eslint.org/docs/rules/sort-attrs
   */
  '@html-eslint/sort-attrs'?: Linter.RuleEntry<HtmlEslintSortAttrs>;
  /**
   * Require `viewBox` attribute on `<svg>` elements
   * @see https://html-eslint.org/docs/rules/svg-require-viewbox
   */
  '@html-eslint/svg-require-viewbox'?: Linter.RuleEntry<[]>;
  /**
   * Enforce the use of baseline features.
   * @see https://html-eslint.org/docs/rules/use-baseline
   */
  '@html-eslint/use-baseline'?: Linter.RuleEntry<HtmlEslintUseBaseline>;
  /**
   * 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>;
  /**
   * 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 getter and setter pairs in objects and classes
   * @see https://eslint.org/docs/latest/rules/accessor-pairs
   */
  'accessor-pairs'?: Linter.RuleEntry<AccessorPairs>;
  /**
   * Enforce linebreaks after opening and before closing array brackets
   * @see https://eslint.org/docs/latest/rules/array-bracket-newline
   * @deprecated
   */
  'array-bracket-newline'?: Linter.RuleEntry<ArrayBracketNewline>;
  /**
   * Enforce consistent spacing inside array brackets
   * @see https://eslint.org/docs/latest/rules/array-bracket-spacing
   * @deprecated
   */
  'array-bracket-spacing'?: Linter.RuleEntry<ArrayBracketSpacing>;
  /**
   * Enforce `return` statements in callbacks of array methods
   * @see https://eslint.org/docs/latest/rules/array-callback-return
   */
  'array-callback-return'?: Linter.RuleEntry<ArrayCallbackReturn>;
  /**
   * Enforce line breaks after each array element
   * @see https://eslint.org/docs/latest/rules/array-element-newline
   * @deprecated
   */
  'array-element-newline'?: Linter.RuleEntry<ArrayElementNewline>;
  /**
   * Require braces around arrow function bodies
   * @see https://eslint.org/docs/latest/rules/arrow-body-style
   */
  'arrow-body-style'?: Linter.RuleEntry<ArrowBodyStyle>;
  /**
   * Require parentheses around arrow function arguments
   * @see https://eslint.org/docs/latest/rules/arrow-parens
   * @deprecated
   */
  'arrow-parens'?: Linter.RuleEntry<ArrowParens>;
  /**
   * Enforce consistent spacing before and after the arrow in arrow functions
   * @see https://eslint.org/docs/latest/rules/arrow-spacing
   * @deprecated
   */
  'arrow-spacing'?: Linter.RuleEntry<ArrowSpacing>;
  /**
   * apply `jsx-a11y/alt-text` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/alt-text/
   */
  'astro/jsx-a11y/alt-text'?: Linter.RuleEntry<AstroJsxA11YAltText>;
  /**
   * apply `jsx-a11y/anchor-ambiguous-text` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/anchor-ambiguous-text/
   */
  'astro/jsx-a11y/anchor-ambiguous-text'?: Linter.RuleEntry<AstroJsxA11YAnchorAmbiguousText>;
  /**
   * apply `jsx-a11y/anchor-has-content` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/anchor-has-content/
   */
  'astro/jsx-a11y/anchor-has-content'?: Linter.RuleEntry<AstroJsxA11YAnchorHasContent>;
  /**
   * apply `jsx-a11y/anchor-is-valid` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/anchor-is-valid/
   */
  'astro/jsx-a11y/anchor-is-valid'?: Linter.RuleEntry<AstroJsxA11YAnchorIsValid>;
  /**
   * apply `jsx-a11y/aria-activedescendant-has-tabindex` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-activedescendant-has-tabindex/
   */
  'astro/jsx-a11y/aria-activedescendant-has-tabindex'?: Linter.RuleEntry<AstroJsxA11YAriaActivedescendantHasTabindex>;
  /**
   * apply `jsx-a11y/aria-props` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-props/
   */
  'astro/jsx-a11y/aria-props'?: Linter.RuleEntry<AstroJsxA11YAriaProps>;
  /**
   * apply `jsx-a11y/aria-proptypes` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-proptypes/
   */
  'astro/jsx-a11y/aria-proptypes'?: Linter.RuleEntry<AstroJsxA11YAriaProptypes>;
  /**
   * apply `jsx-a11y/aria-role` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-role/
   */
  'astro/jsx-a11y/aria-role'?: Linter.RuleEntry<AstroJsxA11YAriaRole>;
  /**
   * apply `jsx-a11y/aria-unsupported-elements` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-unsupported-elements/
   */
  'astro/jsx-a11y/aria-unsupported-elements'?: Linter.RuleEntry<AstroJsxA11YAriaUnsupportedElements>;
  /**
   * apply `jsx-a11y/autocomplete-valid` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/autocomplete-valid/
   */
  'astro/jsx-a11y/autocomplete-valid'?: Linter.RuleEntry<AstroJsxA11YAutocompleteValid>;
  /**
   * apply `jsx-a11y/click-events-have-key-events` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/click-events-have-key-events/
   */
  'astro/jsx-a11y/click-events-have-key-events'?: Linter.RuleEntry<AstroJsxA11YClickEventsHaveKeyEvents>;
  /**
   * apply `jsx-a11y/control-has-associated-label` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/control-has-associated-label/
   */
  'astro/jsx-a11y/control-has-associated-label'?: Linter.RuleEntry<AstroJsxA11YControlHasAssociatedLabel>;
  /**
   * apply `jsx-a11y/heading-has-content` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/heading-has-content/
   */
  'astro/jsx-a11y/heading-has-content'?: Linter.RuleEntry<AstroJsxA11YHeadingHasContent>;
  /**
   * apply `jsx-a11y/html-has-lang` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/html-has-lang/
   */
  'astro/jsx-a11y/html-has-lang'?: Linter.RuleEntry<AstroJsxA11YHtmlHasLang>;
  /**
   * apply `jsx-a11y/iframe-has-title` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/iframe-has-title/
   */
  'astro/jsx-a11y/iframe-has-title'?: Linter.RuleEntry<AstroJsxA11YIframeHasTitle>;
  /**
   * apply `jsx-a11y/img-redundant-alt` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/img-redundant-alt/
   */
  'astro/jsx-a11y/img-redundant-alt'?: Linter.RuleEntry<AstroJsxA11YImgRedundantAlt>;
  /**
   * apply `jsx-a11y/interactive-supports-focus` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/interactive-supports-focus/
   */
  'astro/jsx-a11y/interactive-supports-focus'?: Linter.RuleEntry<AstroJsxA11YInteractiveSupportsFocus>;
  /**
   * apply `jsx-a11y/label-has-associated-control` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/label-has-associated-control/
   */
  'astro/jsx-a11y/label-has-associated-control'?: Linter.RuleEntry<AstroJsxA11YLabelHasAssociatedControl>;
  /**
   * apply `jsx-a11y/lang` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/lang/
   */
  'astro/jsx-a11y/lang'?: Linter.RuleEntry<AstroJsxA11YLang>;
  /**
   * apply `jsx-a11y/media-has-caption` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/media-has-caption/
   */
  'astro/jsx-a11y/media-has-caption'?: Linter.RuleEntry<AstroJsxA11YMediaHasCaption>;
  /**
   * apply `jsx-a11y/mouse-events-have-key-events` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/mouse-events-have-key-events/
   */
  'astro/jsx-a11y/mouse-events-have-key-events'?: Linter.RuleEntry<AstroJsxA11YMouseEventsHaveKeyEvents>;
  /**
   * apply `jsx-a11y/no-access-key` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-access-key/
   */
  'astro/jsx-a11y/no-access-key'?: Linter.RuleEntry<AstroJsxA11YNoAccessKey>;
  /**
   * apply `jsx-a11y/no-aria-hidden-on-focusable` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-aria-hidden-on-focusable/
   */
  'astro/jsx-a11y/no-aria-hidden-on-focusable'?: Linter.RuleEntry<AstroJsxA11YNoAriaHiddenOnFocusable>;
  /**
   * apply `jsx-a11y/no-autofocus` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-autofocus/
   */
  'astro/jsx-a11y/no-autofocus'?: Linter.RuleEntry<AstroJsxA11YNoAutofocus>;
  /**
   * apply `jsx-a11y/no-distracting-elements` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-distracting-elements/
   */
  'astro/jsx-a11y/no-distracting-elements'?: Linter.RuleEntry<AstroJsxA11YNoDistractingElements>;
  /**
   * apply `jsx-a11y/no-interactive-element-to-noninteractive-role` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-interactive-element-to-noninteractive-role/
   */
  'astro/jsx-a11y/no-interactive-element-to-noninteractive-role'?: Linter.RuleEntry<AstroJsxA11YNoInteractiveElementToNoninteractiveRole>;
  /**
   * apply `jsx-a11y/no-noninteractive-element-interactions` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-noninteractive-element-interactions/
   */
  'astro/jsx-a11y/no-noninteractive-element-interactions'?: Linter.RuleEntry<AstroJsxA11YNoNoninteractiveElementInteractions>;
  /**
   * apply `jsx-a11y/no-noninteractive-element-to-interactive-role` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-noninteractive-element-to-interactive-role/
   */
  'astro/jsx-a11y/no-noninteractive-element-to-interactive-role'?: Linter.RuleEntry<AstroJsxA11YNoNoninteractiveElementToInteractiveRole>;
  /**
   * apply `jsx-a11y/no-noninteractive-tabindex` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-noninteractive-tabindex/
   */
  'astro/jsx-a11y/no-noninteractive-tabindex'?: Linter.RuleEntry<AstroJsxA11YNoNoninteractiveTabindex>;
  /**
   * apply `jsx-a11y/no-redundant-roles` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-redundant-roles/
   */
  'astro/jsx-a11y/no-redundant-roles'?: Linter.RuleEntry<AstroJsxA11YNoRedundantRoles>;
  /**
   * apply `jsx-a11y/no-static-element-interactions` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-static-element-interactions/
   */
  'astro/jsx-a11y/no-static-element-interactions'?: Linter.RuleEntry<AstroJsxA11YNoStaticElementInteractions>;
  /**
   * apply `jsx-a11y/prefer-tag-over-role` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/prefer-tag-over-role/
   */
  'astro/jsx-a11y/prefer-tag-over-role'?: Linter.RuleEntry<AstroJsxA11YPreferTagOverRole>;
  /**
   * apply `jsx-a11y/role-has-required-aria-props` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/role-has-required-aria-props/
   */
  'astro/jsx-a11y/role-has-required-aria-props'?: Linter.RuleEntry<AstroJsxA11YRoleHasRequiredAriaProps>;
  /**
   * apply `jsx-a11y/role-supports-aria-props` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/role-supports-aria-props/
   */
  'astro/jsx-a11y/role-supports-aria-props'?: Linter.RuleEntry<AstroJsxA11YRoleSupportsAriaProps>;
  /**
   * apply `jsx-a11y/scope` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/scope/
   */
  'astro/jsx-a11y/scope'?: Linter.RuleEntry<AstroJsxA11YScope>;
  /**
   * apply `jsx-a11y/tabindex-no-positive` rule to Astro components
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/tabindex-no-positive/
   */
  'astro/jsx-a11y/tabindex-no-positive'?: Linter.RuleEntry<AstroJsxA11YTabindexNoPositive>;
  /**
   * the client:only directive is missing the correct component's framework value
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/missing-client-only-directive-value/
   */
  'astro/missing-client-only-directive-value'?: Linter.RuleEntry<[]>;
  /**
   * disallow conflicting set directives and child contents
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-conflict-set-directives/
   */
  'astro/no-conflict-set-directives'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated `Astro.canonicalURL`
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-deprecated-astro-canonicalurl/
   */
  'astro/no-deprecated-astro-canonicalurl'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated `Astro.fetchContent()`
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-deprecated-astro-fetchcontent/
   */
  'astro/no-deprecated-astro-fetchcontent'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated `Astro.resolve()`
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-deprecated-astro-resolve/
   */
  'astro/no-deprecated-astro-resolve'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated `getEntryBySlug()`
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-deprecated-getentrybyslug/
   */
  'astro/no-deprecated-getentrybyslug'?: Linter.RuleEntry<[]>;
  /**
   * disallow value export
   * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-exports-from-components/
   */
  'astro/no-exports-from-components'?: Linter.RuleEntry<[]>;
  /**
   * disallow 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<[]>;
  /**
   * disallow Atomics.pause() usage
   */
  'baseline-js/no-atomics-pause'?: Linter.RuleEntry<[]>;
  /**
   * disallow BigInt64Array/BigUint64Array usage
   */
  'baseline-js/no-bigint64array'?: Linter.RuleEntry<[]>;
  /**
   * disallow Function#caller and Function#arguments
   */
  'baseline-js/no-function-caller-arguments'?: Linter.RuleEntry<[]>;
  /**
   * disallow Math.sumPrecise() usage
   */
  'baseline-js/no-math-sum-precise'?: Linter.RuleEntry<[]>;
  /**
   * disallow Temporal API usage
   */
  'baseline-js/no-temporal'?: Linter.RuleEntry<[]>;
  /**
   * Enforce JS Baseline by delegating to underlying syntax rules (es-x)
   */
  'baseline-js/use-baseline'?: Linter.RuleEntry<BaselineJsUseBaseline>;
  /**
   * Enforce canonical class names.
   * @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/enforce-canonical-classes.md
   */
  'better-tailwindcss/enforce-canonical-classes'?: Linter.RuleEntry<BetterTailwindcssEnforceCanonicalClasses>;
  /**
   * Enforce a consistent order for tailwind classes.
   * @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/enforce-consistent-class-order.md
   */
  'better-tailwindcss/enforce-consistent-class-order'?: Linter.RuleEntry<BetterTailwindcssEnforceConsistentClassOrder>;
  /**
   * Enforce consistent important position for classes.
   * @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/enforce-consistent-important-position.md
   */
  'better-tailwindcss/enforce-consistent-important-position'?: Linter.RuleEntry<BetterTailwindcssEnforceConsistentImportantPosition>;
  /**
   * Enforce consistent line wrapping for tailwind classes.
   * @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/enforce-consistent-line-wrapping.md
   */
  'better-tailwindcss/enforce-consistent-line-wrapping'?: Linter.RuleEntry<BetterTailwindcssEnforceConsistentLineWrapping>;
  /**
   * Enforce consistent syntax for css variables.
   * @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/enforce-consistent-variable-syntax.md
   */
  'better-tailwindcss/enforce-consistent-variable-syntax'?: Linter.RuleEntry<BetterTailwindcssEnforceConsistentVariableSyntax>;
  /**
   * Enforce a consistent variant order for Tailwind classes.
   * @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/enforce-consistent-variant-order.md
   */
  'better-tailwindcss/enforce-consistent-variant-order'?: Linter.RuleEntry<BetterTailwindcssEnforceConsistentVariantOrder>;
  /**
   * Enforce logical property class names instead of physical directions.
   * @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/enforce-logical-properties.md
   */
  'better-tailwindcss/enforce-logical-properties'?: Linter.RuleEntry<BetterTailwindcssEnforceLogicalProperties>;
  /**
   * Enforce shorthand class names instead of longhand class names.
   * @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/enforce-shorthand-classes.md
   */
  'better-tailwindcss/enforce-shorthand-classes'?: Linter.RuleEntry<BetterTailwindcssEnforceShorthandClasses>;
  /**
   * Disallow concatenated classes in Tailwind CSS class strings.
   * @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/no-concatenated-classes.md
   */
  'better-tailwindcss/no-concatenated-classes'?: Linter.RuleEntry<BetterTailwindcssNoConcatenatedClasses>;
  /**
   * Disallow classes that produce conflicting styles.
   * @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/no-conflicting-classes.md
   */
  'better-tailwindcss/no-conflicting-classes'?: Linter.RuleEntry<BetterTailwindcssNoConflictingClasses>;
  /**
   * Disallow the use of deprecated Tailwind CSS classes.
   * @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/no-deprecated-classes.md
   */
  'better-tailwindcss/no-deprecated-classes'?: Linter.RuleEntry<BetterTailwindcssNoDeprecatedClasses>;
  /**
   * Disallow duplicate class names in tailwind classes.
   * @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/no-duplicate-classes.md
   */
  'better-tailwindcss/no-duplicate-classes'?: Linter.RuleEntry<BetterTailwindcssNoDuplicateClasses>;
  /**
   * Disallow restricted classes.
   * @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/no-restricted-classes.md
   */
  'better-tailwindcss/no-restricted-classes'?: Linter.RuleEntry<BetterTailwindcssNoRestrictedClasses>;
  /**
   * Disallow any css classes that are not registered in tailwindcss.
   * @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/no-unknown-classes.md
   */
  'better-tailwindcss/no-unknown-classes'?: Linter.RuleEntry<BetterTailwindcssNoUnknownClasses>;
  /**
   * Disallow unnecessary whitespace between Tailwind CSS classes.
   * @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/no-unnecessary-whitespace.md
   */
  'better-tailwindcss/no-unnecessary-whitespace'?: Linter.RuleEntry<BetterTailwindcssNoUnnecessaryWhitespace>;
  /**
   * Enforce the use of variables within the scope they are defined
   * @see https://eslint.org/docs/latest/rules/block-scoped-var
   */
  'block-scoped-var'?: Linter.RuleEntry<[]>;
  /**
   * Disallow or enforce spaces inside of blocks after opening block and before closing block
   * @see https://eslint.org/docs/latest/rules/block-spacing
   * @deprecated
   */
  'block-spacing'?: Linter.RuleEntry<BlockSpacing>;
  /**
   * Enforce consistent brace style for blocks
   * @see https://eslint.org/docs/latest/rules/brace-style
   * @deprecated
   */
  'brace-style'?: Linter.RuleEntry<BraceStyle>;
  /**
   * Require `return` statements after callbacks
   * @see https://eslint.org/docs/latest/rules/callback-return
   * @deprecated
   */
  'callback-return'?: Linter.RuleEntry<CallbackReturn>;
  /**
   * Enforce camelcase naming convention
   * @see https://eslint.org/docs/latest/rules/camelcase
   */
  'camelcase'?: Linter.RuleEntry<Camelcase>;
  /**
   * Enforce or disallow capitalization of the first letter of a comment
   * @see https://eslint.org/docs/latest/rules/capitalized-comments
   */
  'capitalized-comments'?: Linter.RuleEntry<CapitalizedComments>;
  /**
   * Enforce that class methods utilize `this`
   * @see https://eslint.org/docs/latest/rules/class-methods-use-this
   */
  'class-methods-use-this'?: Linter.RuleEntry<ClassMethodsUseThis>;
  /**
   * Require or disallow trailing commas
   * @see https://eslint.org/docs/latest/rules/comma-dangle
   * @deprecated
   */
  'comma-dangle'?: Linter.RuleEntry<CommaDangle>;
  /**
   * Enforce consistent spacing before and after commas
   * @see https://eslint.org/docs/latest/rules/comma-spacing
   * @deprecated
   */
  'comma-spacing'?: Linter.RuleEntry<CommaSpacing>;
  /**
   * Enforce consistent comma style
   * @see https://eslint.org/docs/latest/rules/comma-style
   * @deprecated
   */
  'comma-style'?: Linter.RuleEntry<CommaStyle>;
  /**
   * Enforce a maximum cyclomatic complexity allowed in a program
   * @see https://eslint.org/docs/latest/rules/complexity
   */
  'complexity'?: Linter.RuleEntry<Complexity>;
  /**
   * Enforce consistent spacing inside computed property brackets
   * @see https://eslint.org/docs/latest/rules/computed-property-spacing
   * @deprecated
   */
  'computed-property-spacing'?: Linter.RuleEntry<ComputedPropertySpacing>;
  /**
   * Require `return` statements to either always or never specify values
   * @see https://eslint.org/docs/latest/rules/consistent-return
   */
  'consistent-return'?: Linter.RuleEntry<ConsistentReturn>;
  /**
   * Enforce consistent naming when capturing the current execution context
   * @see https://eslint.org/docs/latest/rules/consistent-this
   */
  'consistent-this'?: Linter.RuleEntry<ConsistentThis>;
  /**
   * Require `super()` calls in constructors
   * @see https://eslint.org/docs/latest/rules/constructor-super
   */
  'constructor-super'?: Linter.RuleEntry<[]>;
  /**
   * Enforce use of fallback fonts and a generic font last
   * @see https://github.com/eslint/css/blob/main/docs/rules/font-family-fallbacks.md
   */
  'css/font-family-fallbacks'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate @import rules
   * @see https://github.com/eslint/css/blob/main/docs/rules/no-duplicate-imports.md
   */
  'css/no-duplicate-imports'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate selectors within keyframe blocks
   * @see https://github.com/eslint/css/blob/main/docs/rules/no-duplicate-keyframe-selectors.md
   */
  'css/no-duplicate-keyframe-selectors'?: Linter.RuleEntry<[]>;
  /**
   * Disallow empty blocks
   * @see https://github.com/eslint/css/blob/main/docs/rules/no-empty-blocks.md
   */
  'css/no-empty-blocks'?: Linter.RuleEntry<[]>;
  /**
   * Disallow !important flags
   * @see https://github.com/eslint/css/blob/main/docs/rules/no-important.md
   */
  'css/no-important'?: Linter.RuleEntry<[]>;
  /**
   * Disallow invalid placement of at-rules
   * @see https://github.com/eslint/css/blob/main/docs/rules/no-invalid-at-rule-placement.md
   */
  'css/no-invalid-at-rule-placement'?: Linter.RuleEntry<[]>;
  /**
   * Disallow invalid at-rules
   * @see https://github.com/eslint/css/blob/main/docs/rules/no-invalid-at-rules.md
   */
  'css/no-invalid-at-rules'?: Linter.RuleEntry<[]>;
  /**
   * Disallow invalid named grid areas
   * @see https://github.com/eslint/css/blob/main/docs/rules/no-invalid-named-grid-areas.md
   */
  'css/no-invalid-named-grid-areas'?: Linter.RuleEntry<[]>;
  /**
   * Disallow invalid properties
   * @see https://github.com/eslint/css/blob/main/docs/rules/no-invalid-properties.md
   */
  'css/no-invalid-properties'?: Linter.RuleEntry<CssNoInvalidProperties>;
  /**
   * Disallow unmatchable selectors
   * @see https://github.com/eslint/css/blob/main/docs/rules/no-unmatchable-selectors.md
   */
  'css/no-unmatchable-selectors'?: Linter.RuleEntry<[]>;
  /**
   * Enforce the use of logical properties
   * @see https://github.com/eslint/css/blob/main/docs/rules/prefer-logical-properties.md
   */
  'css/prefer-logical-properties'?: Linter.RuleEntry<CssPreferLogicalProperties>;
  /**
   * Enforce the use of relative font units
   * @see https://github.com/eslint/css/blob/main/docs/rules/relative-font-units.md
   */
  'css/relative-font-units'?: Linter.RuleEntry<CssRelativeFontUnits>;
  /**
   * Disallow and limit CSS selectors
   * @see https://github.com/eslint/css/blob/main/docs/rules/selector-complexity.md
   */
  'css/selector-complexity'?: Linter.RuleEntry<CssSelectorComplexity>;
  /**
   * Enforce the use of baseline features
   * @see https://github.com/eslint/css/blob/main/docs/rules/use-baseline.md
   */
  'css/use-baseline'?: Linter.RuleEntry<CssUseBaseline>;
  /**
   * Require use of layers
   * @see https://github.com/eslint/css/blob/main/docs/rules/use-layers.md
   */
  'css/use-layers'?: Linter.RuleEntry<CssUseLayers>;
  /**
   * Enforce consistent brace style for all control statements
   * @see https://eslint.org/docs/latest/rules/curly
   */
  'curly'?: Linter.RuleEntry<Curly>;
  /**
   * require screenshots to be preceded by an assertion
   * @see https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/assertion-before-screenshot.md
   */
  'cypress/assertion-before-screenshot'?: Linter.RuleEntry<[]>;
  /**
   * enforce `.should()` over `.and()` for starting assertion chains
   * @see https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-and.md
   */
  'cypress/no-and'?: Linter.RuleEntry<[]>;
  /**
   * disallow assigning return values of `cy` calls
   * @see https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-assigning-return-values.md
   */
  'cypress/no-assigning-return-values'?: Linter.RuleEntry<[]>;
  /**
   * disallow using `async`/`await` in Cypress `before` methods
   * @see https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-async-before.md
   */
  'cypress/no-async-before'?: Linter.RuleEntry<[]>;
  /**
   * disallow using `async`/`await` in Cypress test cases
   * @see https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-async-tests.md
   */
  'cypress/no-async-tests'?: Linter.RuleEntry<[]>;
  /**
   * disallow chain of `cy.get()` calls
   * @see https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-chained-get.md
   */
  'cypress/no-chained-get'?: Linter.RuleEntry<[]>;
  /**
   * disallow using `cy.debug()` calls
   * @see https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-debug.md
   */
  'cypress/no-debug'?: Linter.RuleEntry<[]>;
  /**
   * disallow using `force: true` with action commands
   * @see https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-force.md
   */
  'cypress/no-force'?: Linter.RuleEntry<[]>;
  /**
   * disallow using `cy.pause()` calls
   * @see https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-pause.md
   */
  'cypress/no-pause'?: Linter.RuleEntry<[]>;
  /**
   * disallow waiting for arbitrary time periods
   * @see https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-unnecessary-waiting.md
   */
  'cypress/no-unnecessary-waiting'?: Linter.RuleEntry<[]>;
  /**
   * disallow using `cy.xpath()` calls
   * @see https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-xpath.md
   * @deprecated
   */
  'cypress/no-xpath'?: Linter.RuleEntry<[]>;
  /**
   * require `data-*` attribute selectors
   * @see https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/require-data-selectors.md
   */
  'cypress/require-data-selectors'?: Linter.RuleEntry<[]>;
  /**
   * disallow actions within chains
   * @see https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/unsafe-to-chain-command.md
   */
  'cypress/unsafe-to-chain-command'?: Linter.RuleEntry<CypressUnsafeToChainCommand>;
  /**
   * Require `default` cases in `switch` statements
   * @see https://eslint.org/docs/latest/rules/default-case
   */
  'default-case'?: Linter.RuleEntry<DefaultCase>;
  /**
   * Enforce `default` clauses in `switch` statements to be last
   * @see https://eslint.org/docs/latest/rules/default-case-last
   */
  'default-case-last'?: Linter.RuleEntry<[]>;
  /**
   * Enforce default parameters to be last
   * @see https://eslint.org/docs/latest/rules/default-param-last
   */
  'default-param-last'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent newlines before and after dots
   * @see https://eslint.org/docs/latest/rules/dot-location
   * @deprecated
   */
  'dot-location'?: Linter.RuleEntry<DotLocation>;
  /**
   * Enforce dot notation whenever possible
   * @see https://eslint.org/docs/latest/rules/dot-notation
   */
  'dot-notation'?: Linter.RuleEntry<DotNotation>;
  /**
   * Require or disallow newline at the end of files
   * @see https://eslint.org/docs/latest/rules/eol-last
   * @deprecated
   */
  'eol-last'?: Linter.RuleEntry<EolLast>;
  /**
   * Require the use of `===` and `!==`
   * @see https://eslint.org/docs/latest/rules/eqeqeq
   */
  'eqeqeq'?: Linter.RuleEntry<Eqeqeq>;
  /**
   * Enforce `for` loop update clause moving the counter in the right direction
   * @see https://eslint.org/docs/latest/rules/for-direction
   */
  'for-direction'?: Linter.RuleEntry<[]>;
  /**
   * Require or disallow spacing between function identifiers and their invocations
   * @see https://eslint.org/docs/latest/rules/func-call-spacing
   * @deprecated
   */
  'func-call-spacing'?: Linter.RuleEntry<FuncCallSpacing>;
  /**
   * Require function names to match the name of the variable or property to which they are assigned
   * @see https://eslint.org/docs/latest/rules/func-name-matching
   */
  'func-name-matching'?: Linter.RuleEntry<FuncNameMatching>;
  /**
   * Require or disallow named `function` expressions
   * @see https://eslint.org/docs/latest/rules/func-names
   */
  'func-names'?: Linter.RuleEntry<FuncNames>;
  /**
   * Enforce the consistent use of either `function` declarations or expressions assigned to variables
   * @see https://eslint.org/docs/latest/rules/func-style
   */
  'func-style'?: Linter.RuleEntry<FuncStyle>;
  /**
   * Enforce line breaks between arguments of a function call
   * @see https://eslint.org/docs/latest/rules/function-call-argument-newline
   * @deprecated
   */
  'function-call-argument-newline'?: Linter.RuleEntry<FunctionCallArgumentNewline>;
  /**
   * Enforce consistent line breaks inside function parentheses
   * @see https://eslint.org/docs/latest/rules/function-paren-newline
   * @deprecated
   */
  'function-paren-newline'?: Linter.RuleEntry<FunctionParenNewline>;
  /**
   * Enforce consistent spacing around `*` operators in generator functions
   * @see https://eslint.org/docs/latest/rules/generator-star-spacing
   * @deprecated
   */
  'generator-star-spacing'?: Linter.RuleEntry<GeneratorStarSpacing>;
  /**
   * Enforce `return` statements in getters
   * @see https://eslint.org/docs/latest/rules/getter-return
   */
  'getter-return'?: Linter.RuleEntry<GetterReturn>;
  /**
   * Require `require()` calls to be placed at top-level module scope
   * @see https://eslint.org/docs/latest/rules/global-require
   * @deprecated
   */
  'global-require'?: Linter.RuleEntry<[]>;
  /**
   * Require grouped accessor pairs in object literals and classes
   * @see https://eslint.org/docs/latest/rules/grouped-accessor-pairs
   */
  'grouped-accessor-pairs'?: Linter.RuleEntry<GroupedAccessorPairs>;
  /**
   * Require `for-in` loops to include an `if` statement
   * @see https://eslint.org/docs/latest/rules/guard-for-in
   */
  'guard-for-in'?: Linter.RuleEntry<[]>;
  /**
   * Require error handling in callbacks
   * @see https://eslint.org/docs/latest/rules/handle-callback-err
   * @deprecated
   */
  'handle-callback-err'?: Linter.RuleEntry<HandleCallbackErr>;
  /**
   * Disallow specified identifiers
   * @see https://eslint.org/docs/latest/rules/id-blacklist
   * @deprecated
   */
  'id-blacklist'?: Linter.RuleEntry<IdBlacklist>;
  /**
   * Disallow specified identifiers
   * @see https://eslint.org/docs/latest/rules/id-denylist
   */
  'id-denylist'?: Linter.RuleEntry<IdDenylist>;
  /**
   * Enforce minimum and maximum identifier lengths
   * @see https://eslint.org/docs/latest/rules/id-length
   */
  'id-length'?: Linter.RuleEntry<IdLength>;
  /**
   * Require identifiers to match a specified regular expression
   * @see https://eslint.org/docs/latest/rules/id-match
   */
  'id-match'?: Linter.RuleEntry<IdMatch>;
  /**
   * Enforce the location of arrow function bodies
   * @see https://eslint.org/docs/latest/rules/implicit-arrow-linebreak
   * @deprecated
   */
  'implicit-arrow-linebreak'?: Linter.RuleEntry<ImplicitArrowLinebreak>;
  /**
   * Enforce or ban the use of inline type-only markers for named imports.
   * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.17.1/docs/rules/consistent-type-specifier-style.md
   */
  'import-x/consistent-type-specifier-style'?: Linter.RuleEntry<ImportXConsistentTypeSpecifierStyle>;
  /**
   * 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-x/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-x/dynamic-import-chunkname'?: Linter.RuleEntry<ImportXDynamicImportChunkname>;
  /**
   * 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-x/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-x/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-x/extensions'?: Linter.RuleEntry<ImportXExtensions>;
  /**
   * 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-x/first'?: Linter.RuleEntry<ImportXFirst>;
  /**
   * 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-x/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-x/imports-first'?: Linter.RuleEntry<ImportXImportsFirst>;
  /**
   * 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-x/max-dependencies'?: Linter.RuleEntry<ImportXMaxDependencies>;
  /**
   * 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-x/named'?: Linter.RuleEntry<ImportXNamed>;
  /**
   * 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-x/namespace'?: Linter.RuleEntry<ImportXNamespace>;
  /**
   * 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-x/newline-after-import'?: Linter.RuleEntry<ImportXNewlineAfterImport>;
  /**
   * 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-x/no-absolute-path'?: Linter.RuleEntry<ImportXNoAbsolutePath>;
  /**
   * 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-x/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-x/no-anonymous-default-export'?: Linter.RuleEntry<ImportXNoAnonymousDefaultExport>;
  /**
   * 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-x/no-commonjs'?: Linter.RuleEntry<ImportXNoCommonjs>;
  /**
   * 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-x/no-cycle'?: Linter.RuleEntry<ImportXNoCycle>;
  /**
   * Forbid default exports.
   * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.17.1/docs/rules/no-default-export.md
   */
  'import-x/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-x/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-x/no-duplicates'?: Linter.RuleEntry<ImportXNoDuplicates>;
  /**
   * 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-x/no-dynamic-require'?: Linter.RuleEntry<ImportXNoDynamicRequire>;
  /**
   * 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-x/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-x/no-extraneous-dependencies'?: Linter.RuleEntry<ImportXNoExtraneousDependencies>;
  /**
   * 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-x/no-import-module-exports'?: Linter.RuleEntry<ImportXNoImportModuleExports>;
  /**
   * 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-x/no-internal-modules'?: Linter.RuleEntry<ImportXNoInternalModules>;
  /**
   * 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-x/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-x/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-x/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-x/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-x/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-x/no-namespace'?: Linter.RuleEntry<ImportXNoNamespace>;
  /**
   * 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-x/no-nodejs-modules'?: Linter.RuleEntry<ImportXNoNodejsModules>;
  /**
   * 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-x/no-relative-packages'?: Linter.RuleEntry<ImportXNoRelativePackages>;
  /**
   * 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-x/no-relative-parent-imports'?: Linter.RuleEntry<ImportXNoRelativeParentImports>;
  /**
   * 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-x/no-rename-default'?: Linter.RuleEntry<ImportXNoRenameDefault>;
  /**
   * 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-x/no-restricted-paths'?: Linter.RuleEntry<ImportXNoRestrictedPaths>;
  /**
   * 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-x/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-x/no-unassigned-import'?: Linter.RuleEntry<ImportXNoUnassignedImport>;
  /**
   * 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-x/no-unresolved'?: Linter.RuleEntry<ImportXNoUnresolved>;
  /**
   * 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-x/no-unused-modules'?: Linter.RuleEntry<ImportXNoUnusedModules>;
  /**
   * 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-x/no-useless-path-segments'?: Linter.RuleEntry<ImportXNoUselessPathSegments>;
  /**
   * 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-x/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-x/order'?: Linter.RuleEntry<ImportXOrder>;
  /**
   * 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-x/prefer-default-export'?: Linter.RuleEntry<ImportXPreferDefaultExport>;
  /**
   * 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-x/prefer-namespace-import'?: Linter.RuleEntry<ImportXPreferNamespaceImport>;
  /**
   * 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-x/unambiguous'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent indentation
   * @see https://eslint.org/docs/latest/rules/indent
   * @deprecated
   */
  'indent'?: Linter.RuleEntry<Indent>;
  /**
   * Enforce consistent indentation
   * @see https://eslint.org/docs/latest/rules/indent-legacy
   * @deprecated
   */
  'indent-legacy'?: Linter.RuleEntry<IndentLegacy>;
  /**
   * Require or disallow initialization in variable declarations
   * @see https://eslint.org/docs/latest/rules/init-declarations
   */
  'init-declarations'?: Linter.RuleEntry<InitDeclarations>;
  /**
   * Enforce emojis are wrapped in `<span>` and provide screen reader access.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/accessible-emoji.md
   * @deprecated
   */
  'jsx-a11y/accessible-emoji'?: Linter.RuleEntry<JsxA11YAccessibleEmoji>;
  /**
   * Enforce all elements that require alternative text have meaningful information to relay back to end user.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/alt-text.md
   */
  'jsx-a11y/alt-text'?: Linter.RuleEntry<JsxA11YAltText>;
  /**
   * Enforce `<a>` text to not exactly match "click here", "here", "link", or "a link".
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-ambiguous-text.md
   */
  'jsx-a11y/anchor-ambiguous-text'?: Linter.RuleEntry<JsxA11YAnchorAmbiguousText>;
  /**
   * Enforce all anchors to contain accessible content.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-has-content.md
   */
  'jsx-a11y/anchor-has-content'?: Linter.RuleEntry<JsxA11YAnchorHasContent>;
  /**
   * Enforce all anchors are valid, navigable elements.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-is-valid.md
   */
  'jsx-a11y/anchor-is-valid'?: Linter.RuleEntry<JsxA11YAnchorIsValid>;
  /**
   * Enforce elements with aria-activedescendant are tabbable.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-activedescendant-has-tabindex.md
   */
  'jsx-a11y/aria-activedescendant-has-tabindex'?: Linter.RuleEntry<JsxA11YAriaActivedescendantHasTabindex>;
  /**
   * Enforce all `aria-*` props are valid.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-props.md
   */
  'jsx-a11y/aria-props'?: Linter.RuleEntry<JsxA11YAriaProps>;
  /**
   * Enforce ARIA state and property values are valid.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-proptypes.md
   */
  'jsx-a11y/aria-proptypes'?: Linter.RuleEntry<JsxA11YAriaProptypes>;
  /**
   * Enforce that elements with ARIA roles must use a valid, non-abstract ARIA role.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-role.md
   */
  'jsx-a11y/aria-role'?: Linter.RuleEntry<JsxA11YAriaRole>;
  /**
   * Enforce that elements that do not support ARIA roles, states, and properties do not have those attributes.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-unsupported-elements.md
   */
  'jsx-a11y/aria-unsupported-elements'?: Linter.RuleEntry<JsxA11YAriaUnsupportedElements>;
  /**
   * Enforce that autocomplete attributes are used correctly.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/autocomplete-valid.md
   */
  'jsx-a11y/autocomplete-valid'?: Linter.RuleEntry<JsxA11YAutocompleteValid>;
  /**
   * Enforce a clickable non-interactive element has at least one keyboard event listener.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/click-events-have-key-events.md
   */
  'jsx-a11y/click-events-have-key-events'?: Linter.RuleEntry<JsxA11YClickEventsHaveKeyEvents>;
  /**
   * Enforce that a control (an interactive element) has a text label.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/control-has-associated-label.md
   */
  'jsx-a11y/control-has-associated-label'?: Linter.RuleEntry<JsxA11YControlHasAssociatedLabel>;
  /**
   * Enforce heading (`h1`, `h2`, etc) elements contain accessible content.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/heading-has-content.md
   */
  'jsx-a11y/heading-has-content'?: Linter.RuleEntry<JsxA11YHeadingHasContent>;
  /**
   * Enforce `<html>` element has `lang` prop.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/html-has-lang.md
   */
  'jsx-a11y/html-has-lang'?: Linter.RuleEntry<JsxA11YHtmlHasLang>;
  /**
   * Enforce iframe elements have a title attribute.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/iframe-has-title.md
   */
  'jsx-a11y/iframe-has-title'?: Linter.RuleEntry<JsxA11YIframeHasTitle>;
  /**
   * Enforce `<img>` alt prop does not contain the word "image", "picture", or "photo".
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/img-redundant-alt.md
   */
  'jsx-a11y/img-redundant-alt'?: Linter.RuleEntry<JsxA11YImgRedundantAlt>;
  /**
   * Enforce that elements with interactive handlers like `onClick` must be focusable.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/interactive-supports-focus.md
   */
  'jsx-a11y/interactive-supports-focus'?: Linter.RuleEntry<JsxA11YInteractiveSupportsFocus>;
  /**
   * Enforce that a `label` tag has a text label and an associated control.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/label-has-associated-control.md
   */
  'jsx-a11y/label-has-associated-control'?: Linter.RuleEntry<JsxA11YLabelHasAssociatedControl>;
  /**
   * Enforce that `<label>` elements have the `htmlFor` prop.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/label-has-for.md
   * @deprecated
   */
  'jsx-a11y/label-has-for'?: Linter.RuleEntry<JsxA11YLabelHasFor>;
  /**
   * Enforce lang attribute has a valid value.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/lang.md
   */
  'jsx-a11y/lang'?: Linter.RuleEntry<JsxA11YLang>;
  /**
   * Enforces that `<audio>` and `<video>` elements must have a `<track>` for captions.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/media-has-caption.md
   */
  'jsx-a11y/media-has-caption'?: Linter.RuleEntry<JsxA11YMediaHasCaption>;
  /**
   * Enforce that `onMouseOver`/`onMouseOut` are accompanied by `onFocus`/`onBlur` for keyboard-only users.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/mouse-events-have-key-events.md
   */
  'jsx-a11y/mouse-events-have-key-events'?: Linter.RuleEntry<JsxA11YMouseEventsHaveKeyEvents>;
  /**
   * Enforce that the `accessKey` prop is not used on any element to avoid complications with keyboard commands used by a screen reader.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-access-key.md
   */
  'jsx-a11y/no-access-key'?: Linter.RuleEntry<JsxA11YNoAccessKey>;
  /**
   * Disallow `aria-hidden="true"` from being set on focusable elements.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-aria-hidden-on-focusable.md
   */
  'jsx-a11y/no-aria-hidden-on-focusable'?: Linter.RuleEntry<JsxA11YNoAriaHiddenOnFocusable>;
  /**
   * Enforce autoFocus prop is not used.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-autofocus.md
   */
  'jsx-a11y/no-autofocus'?: Linter.RuleEntry<JsxA11YNoAutofocus>;
  /**
   * Enforce distracting elements are not used.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-distracting-elements.md
   */
  'jsx-a11y/no-distracting-elements'?: Linter.RuleEntry<JsxA11YNoDistractingElements>;
  /**
   * Interactive elements should not be assigned non-interactive roles.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-interactive-element-to-noninteractive-role.md
   */
  'jsx-a11y/no-interactive-element-to-noninteractive-role'?: Linter.RuleEntry<JsxA11YNoInteractiveElementToNoninteractiveRole>;
  /**
   * Non-interactive elements should not be assigned mouse or keyboard event listeners.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-element-interactions.md
   */
  'jsx-a11y/no-noninteractive-element-interactions'?: Linter.RuleEntry<JsxA11YNoNoninteractiveElementInteractions>;
  /**
   * Non-interactive elements should not be assigned interactive roles.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-element-to-interactive-role.md
   */
  'jsx-a11y/no-noninteractive-element-to-interactive-role'?: Linter.RuleEntry<JsxA11YNoNoninteractiveElementToInteractiveRole>;
  /**
   * `tabIndex` should only be declared on interactive elements.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-tabindex.md
   */
  'jsx-a11y/no-noninteractive-tabindex'?: Linter.RuleEntry<JsxA11YNoNoninteractiveTabindex>;
  /**
   * Enforce usage of `onBlur` over `onChange` on select menus for accessibility.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-onchange.md
   * @deprecated
   */
  'jsx-a11y/no-onchange'?: Linter.RuleEntry<JsxA11YNoOnchange>;
  /**
   * Enforce explicit role property is not the same as implicit/default role property on element.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-redundant-roles.md
   */
  'jsx-a11y/no-redundant-roles'?: Linter.RuleEntry<JsxA11YNoRedundantRoles>;
  /**
   * Enforce that non-interactive, visible elements (such as `<div>`) that have click handlers use the role attribute.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-static-element-interactions.md
   */
  'jsx-a11y/no-static-element-interactions'?: Linter.RuleEntry<JsxA11YNoStaticElementInteractions>;
  /**
   * Enforces using semantic DOM elements over the ARIA `role` property.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/prefer-tag-over-role.md
   */
  'jsx-a11y/prefer-tag-over-role'?: Linter.RuleEntry<JsxA11YPreferTagOverRole>;
  /**
   * Enforce that elements with ARIA roles must have all required attributes for that role.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/role-has-required-aria-props.md
   */
  'jsx-a11y/role-has-required-aria-props'?: Linter.RuleEntry<JsxA11YRoleHasRequiredAriaProps>;
  /**
   * Enforce that elements with explicit or implicit roles defined contain only `aria-*` properties supported by that `role`.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/role-supports-aria-props.md
   */
  'jsx-a11y/role-supports-aria-props'?: Linter.RuleEntry<JsxA11YRoleSupportsAriaProps>;
  /**
   * Enforce `scope` prop is only used on `<th>` elements.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/scope.md
   */
  'jsx-a11y/scope'?: Linter.RuleEntry<JsxA11YScope>;
  /**
   * Enforce `tabIndex` value is not greater than zero.
   * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/tabindex-no-positive.md
   */
  'jsx-a11y/tabindex-no-positive'?: Linter.RuleEntry<JsxA11YTabindexNoPositive>;
  /**
   * Enforce the consistent use of either double or single quotes in JSX attributes
   * @see https://eslint.org/docs/latest/rules/jsx-quotes
   * @deprecated
   */
  'jsx-quotes'?: Linter.RuleEntry<JsxQuotes>;
  /**
   * Enforce consistent spacing between keys and values in object literal properties
   * @see https://eslint.org/docs/latest/rules/key-spacing
   * @deprecated
   */
  'key-spacing'?: Linter.RuleEntry<KeySpacing>;
  /**
   * Enforce consistent spacing before and after keywords
   * @see https://eslint.org/docs/latest/rules/keyword-spacing
   * @deprecated
   */
  'keyword-spacing'?: Linter.RuleEntry<KeywordSpacing>;
  /**
   * Enforce position of line comments
   * @see https://eslint.org/docs/latest/rules/line-comment-position
   * @deprecated
   */
  'line-comment-position'?: Linter.RuleEntry<LineCommentPosition>;
  /**
   * Enforce consistent linebreak style
   * @see https://eslint.org/docs/latest/rules/linebreak-style
   * @deprecated
   */
  'linebreak-style'?: Linter.RuleEntry<LinebreakStyle>;
  /**
   * Require empty lines around comments
   * @see https://eslint.org/docs/latest/rules/lines-around-comment
   * @deprecated
   */
  'lines-around-comment'?: Linter.RuleEntry<LinesAroundComment>;
  /**
   * Require or disallow newlines around directives
   * @see https://eslint.org/docs/latest/rules/lines-around-directive
   * @deprecated
   */
  'lines-around-directive'?: Linter.RuleEntry<LinesAroundDirective>;
  /**
   * Require or disallow an empty line between class members
   * @see https://eslint.org/docs/latest/rules/lines-between-class-members
   * @deprecated
   */
  'lines-between-class-members'?: Linter.RuleEntry<LinesBetweenClassMembers>;
  /**
   * Validate that relative URLs match a known vue-router route pattern
   */
  'link-checker/valid-route'?: Linter.RuleEntry<LinkCheckerValidRoute>;
  /**
   * Validate that relative URLs exist in the sitemap
   */
  'link-checker/valid-sitemap-link'?: Linter.RuleEntry<LinkCheckerValidSitemapLink>;
  /**
   * Require or disallow logical assignment operator shorthand
   * @see https://eslint.org/docs/latest/rules/logical-assignment-operators
   */
  'logical-assignment-operators'?: Linter.RuleEntry<LogicalAssignmentOperators>;
  /**
   * 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>;
  /**
   * Enforce a maximum number of classes per file
   * @see https://eslint.org/docs/latest/rules/max-classes-per-file
   */
  'max-classes-per-file'?: Linter.RuleEntry<MaxClassesPerFile>;
  /**
   * Enforce a maximum depth that blocks can be nested
   * @see https://eslint.org/docs/latest/rules/max-depth
   */
  'max-depth'?: Linter.RuleEntry<MaxDepth>;
  /**
   * Enforce a maximum line length
   * @see https://eslint.org/docs/latest/rules/max-len
   * @deprecated
   */
  'max-len'?: Linter.RuleEntry<MaxLen>;
  /**
   * Enforce a maximum number of lines per file
   * @see https://eslint.org/docs/latest/rules/max-lines
   */
  'max-lines'?: Linter.RuleEntry<MaxLines>;
  /**
   * Enforce a maximum number of lines of code in a function
   * @see https://eslint.org/docs/latest/rules/max-lines-per-function
   */
  'max-lines-per-function'?: Linter.RuleEntry<MaxLinesPerFunction>;
  /**
   * Enforce a maximum depth that callbacks can be nested
   * @see https://eslint.org/docs/latest/rules/max-nested-callbacks
   */
  'max-nested-callbacks'?: Linter.RuleEntry<MaxNestedCallbacks>;
  /**
   * Enforce a maximum number of parameters in function definitions
   * @see https://eslint.org/docs/latest/rules/max-params
   */
  'max-params'?: Linter.RuleEntry<MaxParams>;
  /**
   * Enforce a maximum number of statements allowed in function blocks
   * @see https://eslint.org/docs/latest/rules/max-statements
   */
  'max-statements'?: Linter.RuleEntry<MaxStatements>;
  /**
   * Enforce a maximum number of statements allowed per line
   * @see https://eslint.org/docs/latest/rules/max-statements-per-line
   * @deprecated
   */
  'max-statements-per-line'?: Linter.RuleEntry<MaxStatementsPerLine>;
  /**
   * Enforce a particular style for multiline comments
   * @see https://eslint.org/docs/latest/rules/multiline-comment-style
   * @deprecated
   */
  'multiline-comment-style'?: Linter.RuleEntry<MultilineCommentStyle>;
  /**
   * Enforce newlines between operands of ternary expressions
   * @see https://eslint.org/docs/latest/rules/multiline-ternary
   * @deprecated
   */
  'multiline-ternary'?: Linter.RuleEntry<MultilineTernary>;
  /**
   * require `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`, `__filename`, and `import.meta` paths
   * @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 `node:assert/strict` instead of `node:assert`.
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-import/assert-strict.md
   */
  'n/prefer-import/assert-strict'?: Linter.RuleEntry<[]>;
  /**
   * 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 using `process.getBuiltinModule()` to load Node.js built-in modules
   * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-process-get-builtin-module.md
   */
  'n/prefer-process-get-builtin-module'?: Linter.RuleEntry<NPreferProcessGetBuiltinModule>;
  /**
   * 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>;
  /**
   * Require constructor names to begin with a capital letter
   * @see https://eslint.org/docs/latest/rules/new-cap
   */
  'new-cap'?: Linter.RuleEntry<NewCap>;
  /**
   * Enforce or disallow parentheses when invoking a constructor with no arguments
   * @see https://eslint.org/docs/latest/rules/new-parens
   * @deprecated
   */
  'new-parens'?: Linter.RuleEntry<NewParens>;
  /**
   * Require or disallow an empty line after variable declarations
   * @see https://eslint.org/docs/latest/rules/newline-after-var
   * @deprecated
   */
  'newline-after-var'?: Linter.RuleEntry<NewlineAfterVar>;
  /**
   * Require an empty line before `return` statements
   * @see https://eslint.org/docs/latest/rules/newline-before-return
   * @deprecated
   */
  'newline-before-return'?: Linter.RuleEntry<[]>;
  /**
   * Require a newline after each call in a method chain
   * @see https://eslint.org/docs/latest/rules/newline-per-chained-call
   * @deprecated
   */
  'newline-per-chained-call'?: Linter.RuleEntry<NewlinePerChainedCall>;
  /**
   * Enforce font-display behavior with Google Fonts.
   * @see https://nextjs.org/docs/messages/google-font-display
   */
  'next/google-font-display'?: Linter.RuleEntry<[]>;
  /**
   * Ensure `preconnect` is used with Google Fonts.
   * @see https://nextjs.org/docs/messages/google-font-preconnect
   */
  'next/google-font-preconnect'?: Linter.RuleEntry<[]>;
  /**
   * Enforce `id` attribute on `next/script` components with inline content.
   * @see https://nextjs.org/docs/messages/inline-script-id
   */
  'next/inline-script-id'?: Linter.RuleEntry<[]>;
  /**
   * Prefer `@next/third-parties/google` when using the inline script for Google Analytics and Tag Manager.
   * @see https://nextjs.org/docs/messages/next-script-for-ga
   */
  'next/next-script-for-ga'?: Linter.RuleEntry<[]>;
  /**
   * Prevent assignment to the `module` variable.
   * @see https://nextjs.org/docs/messages/no-assign-module-variable
   */
  'next/no-assign-module-variable'?: Linter.RuleEntry<[]>;
  /**
   * Prevent Client Components from being async functions.
   * @see https://nextjs.org/docs/messages/no-async-client-component
   */
  'next/no-async-client-component'?: Linter.RuleEntry<[]>;
  /**
   * Prevent usage of `next/script`'s `beforeInteractive` strategy outside of `pages/_document.js`.
   * @see https://nextjs.org/docs/messages/no-before-interactive-script-outside-document
   */
  'next/no-before-interactive-script-outside-document'?: Linter.RuleEntry<[]>;
  /**
   * Prevent manual stylesheet tags.
   * @see https://nextjs.org/docs/messages/no-css-tags
   */
  'next/no-css-tags'?: Linter.RuleEntry<[]>;
  /**
   * Prevent importing `next/document` outside of `pages/_document.js`.
   * @see https://nextjs.org/docs/messages/no-document-import-in-page
   */
  'next/no-document-import-in-page'?: Linter.RuleEntry<[]>;
  /**
   * Prevent duplicate usage of `<Head>` in `pages/_document.js`.
   * @see https://nextjs.org/docs/messages/no-duplicate-head
   */
  'next/no-duplicate-head'?: Linter.RuleEntry<[]>;
  /**
   * Prevent usage of `<head>` element.
   * @see https://nextjs.org/docs/messages/no-head-element
   */
  'next/no-head-element'?: Linter.RuleEntry<[]>;
  /**
   * Prevent usage of `next/head` in `pages/_document.js`.
   * @see https://nextjs.org/docs/messages/no-head-import-in-document
   */
  'next/no-head-import-in-document'?: Linter.RuleEntry<[]>;
  /**
   * Prevent usage of `<a>` elements to navigate to internal Next.js pages.
   * @see https://nextjs.org/docs/messages/no-html-link-for-pages
   */
  'next/no-html-link-for-pages'?: Linter.RuleEntry<NextNoHtmlLinkForPages>;
  /**
   * Prevent usage of `<img>` element due to slower LCP and higher bandwidth.
   * @see https://nextjs.org/docs/messages/no-img-element
   */
  'next/no-img-element'?: Linter.RuleEntry<[]>;
  /**
   * Prevent usage of `location.assign` or `location.href` assignment to navigate to internal Next.js pages.
   * @see https://nextjs.org/docs/messages/no-location-assign-relative-destination
   */
  'next/no-location-assign-relative-destination'?: Linter.RuleEntry<[]>;
  /**
   * Prevent page-only custom fonts.
   * @see https://nextjs.org/docs/messages/no-page-custom-font
   */
  'next/no-page-custom-font'?: Linter.RuleEntry<[]>;
  /**
   * Prevent usage of `next/script` in `next/head` component.
   * @see https://nextjs.org/docs/messages/no-script-component-in-head
   */
  'next/no-script-component-in-head'?: Linter.RuleEntry<[]>;
  /**
   * Prevent usage of `styled-jsx` in `pages/_document.js`.
   * @see https://nextjs.org/docs/messages/no-styled-jsx-in-document
   */
  'next/no-styled-jsx-in-document'?: Linter.RuleEntry<[]>;
  /**
   * Prevent synchronous scripts.
   * @see https://nextjs.org/docs/messages/no-sync-scripts
   */
  'next/no-sync-scripts'?: Linter.RuleEntry<[]>;
  /**
   * Prevent usage of `<title>` with `Head` component from `next/document`.
   * @see https://nextjs.org/docs/messages/no-title-in-document-head
   */
  'next/no-title-in-document-head'?: Linter.RuleEntry<[]>;
  /**
   * Prevent common typos in Next.js data fetching functions.
   */
  'next/no-typos'?: Linter.RuleEntry<[]>;
  /**
   * Prevent duplicate polyfills from Polyfill.io.
   * @see https://nextjs.org/docs/messages/no-unwanted-polyfillio
   */
  'next/no-unwanted-polyfillio'?: Linter.RuleEntry<[]>;
  /**
   * Disallow the use of `alert`, `confirm`, and `prompt`
   * @see https://eslint.org/docs/latest/rules/no-alert
   */
  'no-alert'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `Array` constructors
   * @see https://eslint.org/docs/latest/rules/no-array-constructor
   */
  'no-array-constructor'?: Linter.RuleEntry<[]>;
  /**
   * Disallow using an async function as a Promise executor
   * @see https://eslint.org/docs/latest/rules/no-async-promise-executor
   */
  'no-async-promise-executor'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `await` inside of loops
   * @see https://eslint.org/docs/latest/rules/no-await-in-loop
   */
  'no-await-in-loop'?: Linter.RuleEntry<[]>;
  /**
   * Disallow bitwise operators
   * @see https://eslint.org/docs/latest/rules/no-bitwise
   */
  'no-bitwise'?: Linter.RuleEntry<NoBitwise>;
  /**
   * Disallow use of the `Buffer()` constructor
   * @see https://eslint.org/docs/latest/rules/no-buffer-constructor
   * @deprecated
   */
  'no-buffer-constructor'?: Linter.RuleEntry<[]>;
  /**
   * Disallow the use of `arguments.caller` or `arguments.callee`
   * @see https://eslint.org/docs/latest/rules/no-caller
   */
  'no-caller'?: Linter.RuleEntry<[]>;
  /**
   * Disallow lexical declarations in case clauses
   * @see https://eslint.org/docs/latest/rules/no-case-declarations
   */
  'no-case-declarations'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `catch` clause parameters from shadowing variables in the outer scope
   * @see https://eslint.org/docs/latest/rules/no-catch-shadow
   * @deprecated
   */
  'no-catch-shadow'?: Linter.RuleEntry<[]>;
  /**
   * Disallow reassigning class members
   * @see https://eslint.org/docs/latest/rules/no-class-assign
   */
  'no-class-assign'?: Linter.RuleEntry<[]>;
  /**
   * Disallow comparing against `-0`
   * @see https://eslint.org/docs/latest/rules/no-compare-neg-zero
   */
  'no-compare-neg-zero'?: Linter.RuleEntry<[]>;
  /**
   * Disallow assignment operators in conditional expressions
   * @see https://eslint.org/docs/latest/rules/no-cond-assign
   */
  'no-cond-assign'?: Linter.RuleEntry<NoCondAssign>;
  /**
   * Disallow arrow functions where they could be confused with comparisons
   * @see https://eslint.org/docs/latest/rules/no-confusing-arrow
   * @deprecated
   */
  'no-confusing-arrow'?: Linter.RuleEntry<NoConfusingArrow>;
  /**
   * Disallow the use of `console`
   * @see https://eslint.org/docs/latest/rules/no-console
   */
  'no-console'?: Linter.RuleEntry<NoConsole>;
  /**
   * Disallow reassigning `const`, `using`, and `await using` variables
   * @see https://eslint.org/docs/latest/rules/no-const-assign
   */
  'no-const-assign'?: Linter.RuleEntry<[]>;
  /**
   * Disallow expressions where the operation doesn't affect the value
   * @see https://eslint.org/docs/latest/rules/no-constant-binary-expression
   */
  'no-constant-binary-expression'?: Linter.RuleEntry<NoConstantBinaryExpression>;
  /**
   * Disallow constant expressions in conditions
   * @see https://eslint.org/docs/latest/rules/no-constant-condition
   */
  'no-constant-condition'?: Linter.RuleEntry<NoConstantCondition>;
  /**
   * Disallow returning value from constructor
   * @see https://eslint.org/docs/latest/rules/no-constructor-return
   */
  'no-constructor-return'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `continue` statements
   * @see https://eslint.org/docs/latest/rules/no-continue
   */
  'no-continue'?: Linter.RuleEntry<[]>;
  /**
   * Disallow control characters in regular expressions
   * @see https://eslint.org/docs/latest/rules/no-control-regex
   */
  'no-control-regex'?: Linter.RuleEntry<[]>;
  /**
   * Disallow the use of `debugger`
   * @see https://eslint.org/docs/latest/rules/no-debugger
   */
  'no-debugger'?: Linter.RuleEntry<[]>;
  /**
   * Disallow deleting variables
   * @see https://eslint.org/docs/latest/rules/no-delete-var
   */
  'no-delete-var'?: Linter.RuleEntry<[]>;
  /**
   * Disallow equal signs explicitly at the beginning of regular expressions
   * @see https://eslint.org/docs/latest/rules/no-div-regex
   */
  'no-div-regex'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate arguments in `function` definitions
   * @see https://eslint.org/docs/latest/rules/no-dupe-args
   */
  'no-dupe-args'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate class members
   * @see https://eslint.org/docs/latest/rules/no-dupe-class-members
   */
  'no-dupe-class-members'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate conditions in if-else-if chains
   * @see https://eslint.org/docs/latest/rules/no-dupe-else-if
   */
  'no-dupe-else-if'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate keys in object literals
   * @see https://eslint.org/docs/latest/rules/no-dupe-keys
   */
  'no-dupe-keys'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate case labels
   * @see https://eslint.org/docs/latest/rules/no-duplicate-case
   */
  'no-duplicate-case'?: Linter.RuleEntry<[]>;
  /**
   * Disallow duplicate module imports
   * @see https://eslint.org/docs/latest/rules/no-duplicate-imports
   */
  'no-duplicate-imports'?: Linter.RuleEntry<NoDuplicateImports>;
  /**
   * Disallow `else` blocks after `return` statements in `if` statements
   * @see https://eslint.org/docs/latest/rules/no-else-return
   */
  'no-else-return'?: Linter.RuleEntry<NoElseReturn>;
  /**
   * Disallow empty block statements
   * @see https://eslint.org/docs/latest/rules/no-empty
   */
  'no-empty'?: Linter.RuleEntry<NoEmpty>;
  /**
   * Disallow empty character classes in regular expressions
   * @see https://eslint.org/docs/latest/rules/no-empty-character-class
   */
  'no-empty-character-class'?: Linter.RuleEntry<[]>;
  /**
   * Disallow empty functions
   * @see https://eslint.org/docs/latest/rules/no-empty-function
   */
  'no-empty-function'?: Linter.RuleEntry<NoEmptyFunction>;
  /**
   * Disallow empty destructuring patterns
   * @see https://eslint.org/docs/latest/rules/no-empty-pattern
   */
  'no-empty-pattern'?: Linter.RuleEntry<NoEmptyPattern>;
  /**
   * Disallow empty static blocks
   * @see https://eslint.org/docs/latest/rules/no-empty-static-block
   */
  'no-empty-static-block'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `null` comparisons without type-checking operators
   * @see https://eslint.org/docs/latest/rules/no-eq-null
   */
  'no-eq-null'?: Linter.RuleEntry<[]>;
  /**
   * Disallow the use of `eval()`
   * @see https://eslint.org/docs/latest/rules/no-eval
   */
  'no-eval'?: Linter.RuleEntry<NoEval>;
  /**
   * Disallow reassigning exceptions in `catch` clauses
   * @see https://eslint.org/docs/latest/rules/no-ex-assign
   */
  'no-ex-assign'?: Linter.RuleEntry<[]>;
  /**
   * Disallow extending native types
   * @see https://eslint.org/docs/latest/rules/no-extend-native
   */
  'no-extend-native'?: Linter.RuleEntry<NoExtendNative>;
  /**
   * Disallow unnecessary calls to `.bind()`
   * @see https://eslint.org/docs/latest/rules/no-extra-bind
   */
  'no-extra-bind'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary boolean casts
   * @see https://eslint.org/docs/latest/rules/no-extra-boolean-cast
   */
  'no-extra-boolean-cast'?: Linter.RuleEntry<NoExtraBooleanCast>;
  /**
   * Disallow unnecessary labels
   * @see https://eslint.org/docs/latest/rules/no-extra-label
   */
  'no-extra-label'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary parentheses
   * @see https://eslint.org/docs/latest/rules/no-extra-parens
   * @deprecated
   */
  'no-extra-parens'?: Linter.RuleEntry<NoExtraParens>;
  /**
   * Disallow unnecessary semicolons
   * @see https://eslint.org/docs/latest/rules/no-extra-semi
   * @deprecated
   */
  'no-extra-semi'?: Linter.RuleEntry<[]>;
  /**
   * Disallow fallthrough of `case` statements
   * @see https://eslint.org/docs/latest/rules/no-fallthrough
   */
  'no-fallthrough'?: Linter.RuleEntry<NoFallthrough>;
  /**
   * Disallow leading or trailing decimal points in numeric literals
   * @see https://eslint.org/docs/latest/rules/no-floating-decimal
   * @deprecated
   */
  'no-floating-decimal'?: Linter.RuleEntry<[]>;
  /**
   * Disallow reassigning `function` declarations
   * @see https://eslint.org/docs/latest/rules/no-func-assign
   */
  'no-func-assign'?: Linter.RuleEntry<[]>;
  /**
   * Disallow assignments to native objects or read-only global variables
   * @see https://eslint.org/docs/latest/rules/no-global-assign
   */
  'no-global-assign'?: Linter.RuleEntry<NoGlobalAssign>;
  /**
   * Disallow shorthand type conversions
   * @see https://eslint.org/docs/latest/rules/no-implicit-coercion
   */
  'no-implicit-coercion'?: Linter.RuleEntry<NoImplicitCoercion>;
  /**
   * Disallow declarations in the global scope
   * @see https://eslint.org/docs/latest/rules/no-implicit-globals
   */
  'no-implicit-globals'?: Linter.RuleEntry<NoImplicitGlobals>;
  /**
   * Disallow the use of `eval()`-like methods
   * @see https://eslint.org/docs/latest/rules/no-implied-eval
   */
  'no-implied-eval'?: Linter.RuleEntry<[]>;
  /**
   * Disallow assigning to imported bindings
   * @see https://eslint.org/docs/latest/rules/no-import-assign
   */
  'no-import-assign'?: Linter.RuleEntry<[]>;
  /**
   * Disallow inline comments after code
   * @see https://eslint.org/docs/latest/rules/no-inline-comments
   */
  'no-inline-comments'?: Linter.RuleEntry<NoInlineComments>;
  /**
   * Disallow variable or `function` declarations in nested blocks
   * @see https://eslint.org/docs/latest/rules/no-inner-declarations
   */
  'no-inner-declarations'?: Linter.RuleEntry<NoInnerDeclarations>;
  /**
   * Disallow invalid regular expression strings in `RegExp` constructors
   * @see https://eslint.org/docs/latest/rules/no-invalid-regexp
   */
  'no-invalid-regexp'?: Linter.RuleEntry<NoInvalidRegexp>;
  /**
   * Disallow use of `this` in contexts where the value of `this` is `undefined`
   * @see https://eslint.org/docs/latest/rules/no-invalid-this
   */
  'no-invalid-this'?: Linter.RuleEntry<NoInvalidThis>;
  /**
   * Disallow irregular whitespace
   * @see https://eslint.org/docs/latest/rules/no-irregular-whitespace
   */
  'no-irregular-whitespace'?: Linter.RuleEntry<NoIrregularWhitespace>;
  /**
   * Disallow the use of the `__iterator__` property
   * @see https://eslint.org/docs/latest/rules/no-iterator
   */
  'no-iterator'?: Linter.RuleEntry<[]>;
  /**
   * Disallow labels that share a name with a variable
   * @see https://eslint.org/docs/latest/rules/no-label-var
   */
  'no-label-var'?: Linter.RuleEntry<[]>;
  /**
   * Disallow labeled statements
   * @see https://eslint.org/docs/latest/rules/no-labels
   */
  'no-labels'?: Linter.RuleEntry<NoLabels>;
  /**
   * Disallow unnecessary nested blocks
   * @see https://eslint.org/docs/latest/rules/no-lone-blocks
   */
  'no-lone-blocks'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `if` statements as the only statement in `else` blocks
   * @see https://eslint.org/docs/latest/rules/no-lonely-if
   */
  'no-lonely-if'?: Linter.RuleEntry<[]>;
  /**
   * Disallow function declarations that contain unsafe references inside loop statements
   * @see https://eslint.org/docs/latest/rules/no-loop-func
   */
  'no-loop-func'?: Linter.RuleEntry<[]>;
  /**
   * Disallow literal numbers that lose precision
   * @see https://eslint.org/docs/latest/rules/no-loss-of-precision
   */
  'no-loss-of-precision'?: Linter.RuleEntry<[]>;
  /**
   * Disallow magic numbers
   * @see https://eslint.org/docs/latest/rules/no-magic-numbers
   */
  'no-magic-numbers'?: Linter.RuleEntry<NoMagicNumbers>;
  /**
   * Disallow characters which are made with multiple code points in character class syntax
   * @see https://eslint.org/docs/latest/rules/no-misleading-character-class
   */
  'no-misleading-character-class'?: Linter.RuleEntry<NoMisleadingCharacterClass>;
  /**
   * Disallow mixed binary operators
   * @see https://eslint.org/docs/latest/rules/no-mixed-operators
   * @deprecated
   */
  'no-mixed-operators'?: Linter.RuleEntry<NoMixedOperators>;
  /**
   * Disallow `require` calls to be mixed with regular variable declarations
   * @see https://eslint.org/docs/latest/rules/no-mixed-requires
   * @deprecated
   */
  'no-mixed-requires'?: Linter.RuleEntry<NoMixedRequires>;
  /**
   * Disallow mixed spaces and tabs for indentation
   * @see https://eslint.org/docs/latest/rules/no-mixed-spaces-and-tabs
   * @deprecated
   */
  'no-mixed-spaces-and-tabs'?: Linter.RuleEntry<NoMixedSpacesAndTabs>;
  /**
   * Disallow use of chained assignment expressions
   * @see https://eslint.org/docs/latest/rules/no-multi-assign
   */
  'no-multi-assign'?: Linter.RuleEntry<NoMultiAssign>;
  /**
   * Disallow multiple spaces
   * @see https://eslint.org/docs/latest/rules/no-multi-spaces
   * @deprecated
   */
  'no-multi-spaces'?: Linter.RuleEntry<NoMultiSpaces>;
  /**
   * Disallow multiline strings
   * @see https://eslint.org/docs/latest/rules/no-multi-str
   */
  'no-multi-str'?: Linter.RuleEntry<[]>;
  /**
   * Disallow multiple empty lines
   * @see https://eslint.org/docs/latest/rules/no-multiple-empty-lines
   * @deprecated
   */
  'no-multiple-empty-lines'?: Linter.RuleEntry<NoMultipleEmptyLines>;
  /**
   * Disallow assignments to native objects or read-only global variables
   * @see https://eslint.org/docs/latest/rules/no-native-reassign
   * @deprecated
   */
  'no-native-reassign'?: Linter.RuleEntry<NoNativeReassign>;
  /**
   * Disallow negated conditions
   * @see https://eslint.org/docs/latest/rules/no-negated-condition
   */
  'no-negated-condition'?: Linter.RuleEntry<[]>;
  /**
   * Disallow negating the left operand in `in` expressions
   * @see https://eslint.org/docs/latest/rules/no-negated-in-lhs
   * @deprecated
   */
  'no-negated-in-lhs'?: Linter.RuleEntry<[]>;
  /**
   * Disallow nested ternary expressions
   * @see https://eslint.org/docs/latest/rules/no-nested-ternary
   */
  'no-nested-ternary'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `new` operators outside of assignments or comparisons
   * @see https://eslint.org/docs/latest/rules/no-new
   */
  'no-new'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `new` operators with the `Function` object
   * @see https://eslint.org/docs/latest/rules/no-new-func
   */
  'no-new-func'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `new` operators with global non-constructor functions
   * @see https://eslint.org/docs/latest/rules/no-new-native-nonconstructor
   */
  'no-new-native-nonconstructor'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `Object` constructors
   * @see https://eslint.org/docs/latest/rules/no-new-object
   * @deprecated
   */
  'no-new-object'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `new` operators with calls to `require`
   * @see https://eslint.org/docs/latest/rules/no-new-require
   * @deprecated
   */
  'no-new-require'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `new` operators with the `Symbol` object
   * @see https://eslint.org/docs/latest/rules/no-new-symbol
   * @deprecated
   */
  'no-new-symbol'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `new` operators with the `String`, `Number`, and `Boolean` objects
   * @see https://eslint.org/docs/latest/rules/no-new-wrappers
   */
  'no-new-wrappers'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `\8` and `\9` escape sequences in string literals
   * @see https://eslint.org/docs/latest/rules/no-nonoctal-decimal-escape
   */
  'no-nonoctal-decimal-escape'?: Linter.RuleEntry<[]>;
  /**
   * Disallow calling global object properties as functions
   * @see https://eslint.org/docs/latest/rules/no-obj-calls
   */
  'no-obj-calls'?: Linter.RuleEntry<[]>;
  /**
   * Disallow calls to the `Object` constructor without an argument
   * @see https://eslint.org/docs/latest/rules/no-object-constructor
   */
  'no-object-constructor'?: Linter.RuleEntry<[]>;
  /**
   * Disallow octal literals
   * @see https://eslint.org/docs/latest/rules/no-octal
   */
  'no-octal'?: Linter.RuleEntry<[]>;
  /**
   * Disallow octal escape sequences in string literals
   * @see https://eslint.org/docs/latest/rules/no-octal-escape
   */
  'no-octal-escape'?: Linter.RuleEntry<[]>;
  /**
   * Disallow reassigning function parameters
   * @see https://eslint.org/docs/latest/rules/no-param-reassign
   */
  'no-param-reassign'?: Linter.RuleEntry<NoParamReassign>;
  /**
   * Disallow string concatenation with `__dirname` and `__filename`
   * @see https://eslint.org/docs/latest/rules/no-path-concat
   * @deprecated
   */
  'no-path-concat'?: Linter.RuleEntry<[]>;
  /**
   * Disallow the unary operators `++` and `--`
   * @see https://eslint.org/docs/latest/rules/no-plusplus
   */
  'no-plusplus'?: Linter.RuleEntry<NoPlusplus>;
  /**
   * Disallow the use of `process.env`
   * @see https://eslint.org/docs/latest/rules/no-process-env
   * @deprecated
   */
  'no-process-env'?: Linter.RuleEntry<[]>;
  /**
   * Disallow the use of `process.exit()`
   * @see https://eslint.org/docs/latest/rules/no-process-exit
   * @deprecated
   */
  'no-process-exit'?: Linter.RuleEntry<[]>;
  /**
   * Disallow returning values from Promise executor functions
   * @see https://eslint.org/docs/latest/rules/no-promise-executor-return
   */
  'no-promise-executor-return'?: Linter.RuleEntry<NoPromiseExecutorReturn>;
  /**
   * Disallow the use of the `__proto__` property
   * @see https://eslint.org/docs/latest/rules/no-proto
   */
  'no-proto'?: Linter.RuleEntry<[]>;
  /**
   * Disallow calling some `Object.prototype` methods directly on objects
   * @see https://eslint.org/docs/latest/rules/no-prototype-builtins
   */
  'no-prototype-builtins'?: Linter.RuleEntry<[]>;
  /**
   * Disallow variable redeclaration
   * @see https://eslint.org/docs/latest/rules/no-redeclare
   */
  'no-redeclare'?: Linter.RuleEntry<NoRedeclare>;
  /**
   * Disallow multiple spaces in regular expressions
   * @see https://eslint.org/docs/latest/rules/no-regex-spaces
   */
  'no-regex-spaces'?: Linter.RuleEntry<[]>;
  /**
   * Disallow specified names in exports
   * @see https://eslint.org/docs/latest/rules/no-restricted-exports
   */
  'no-restricted-exports'?: Linter.RuleEntry<NoRestrictedExports>;
  /**
   * Disallow specified global variables
   * @see https://eslint.org/docs/latest/rules/no-restricted-globals
   */
  'no-restricted-globals'?: Linter.RuleEntry<NoRestrictedGlobals>;
  /**
   * Disallow specified modules when loaded by `import`
   * @see https://eslint.org/docs/latest/rules/no-restricted-imports
   */
  'no-restricted-imports'?: Linter.RuleEntry<NoRestrictedImports>;
  /**
   * Disallow specified modules when loaded by `require`
   * @see https://eslint.org/docs/latest/rules/no-restricted-modules
   * @deprecated
   */
  'no-restricted-modules'?: Linter.RuleEntry<NoRestrictedModules>;
  /**
   * Disallow certain properties on certain objects
   * @see https://eslint.org/docs/latest/rules/no-restricted-properties
   */
  'no-restricted-properties'?: Linter.RuleEntry<NoRestrictedProperties>;
  /**
   * Disallow specified syntax
   * @see https://eslint.org/docs/latest/rules/no-restricted-syntax
   */
  'no-restricted-syntax'?: Linter.RuleEntry<NoRestrictedSyntax>;
  /**
   * Disallow assignment operators in `return` statements
   * @see https://eslint.org/docs/latest/rules/no-return-assign
   */
  'no-return-assign'?: Linter.RuleEntry<NoReturnAssign>;
  /**
   * Disallow unnecessary `return await`
   * @see https://eslint.org/docs/latest/rules/no-return-await
   * @deprecated
   */
  'no-return-await'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `javascript:` URLs
   * @see https://eslint.org/docs/latest/rules/no-script-url
   */
  'no-script-url'?: Linter.RuleEntry<[]>;
  /**
   * Disallow assignments where both sides are exactly the same
   * @see https://eslint.org/docs/latest/rules/no-self-assign
   */
  'no-self-assign'?: Linter.RuleEntry<NoSelfAssign>;
  /**
   * Disallow comparisons where both sides are exactly the same
   * @see https://eslint.org/docs/latest/rules/no-self-compare
   */
  'no-self-compare'?: Linter.RuleEntry<[]>;
  /**
   * Disallow comma operators
   * @see https://eslint.org/docs/latest/rules/no-sequences
   */
  'no-sequences'?: Linter.RuleEntry<NoSequences>;
  /**
   * Disallow returning values from setters
   * @see https://eslint.org/docs/latest/rules/no-setter-return
   */
  'no-setter-return'?: Linter.RuleEntry<[]>;
  /**
   * Disallow variable declarations from shadowing variables declared in the outer scope
   * @see https://eslint.org/docs/latest/rules/no-shadow
   */
  'no-shadow'?: Linter.RuleEntry<NoShadow>;
  /**
   * Disallow identifiers from shadowing restricted names
   * @see https://eslint.org/docs/latest/rules/no-shadow-restricted-names
   */
  'no-shadow-restricted-names'?: Linter.RuleEntry<NoShadowRestrictedNames>;
  /**
   * Disallow spacing between function identifiers and their applications (deprecated)
   * @see https://eslint.org/docs/latest/rules/no-spaced-func
   * @deprecated
   */
  'no-spaced-func'?: Linter.RuleEntry<[]>;
  /**
   * Disallow sparse arrays
   * @see https://eslint.org/docs/latest/rules/no-sparse-arrays
   */
  'no-sparse-arrays'?: Linter.RuleEntry<[]>;
  /**
   * Disallow synchronous methods
   * @see https://eslint.org/docs/latest/rules/no-sync
   * @deprecated
   */
  'no-sync'?: Linter.RuleEntry<NoSync>;
  /**
   * Disallow all tabs
   * @see https://eslint.org/docs/latest/rules/no-tabs
   * @deprecated
   */
  'no-tabs'?: Linter.RuleEntry<NoTabs>;
  /**
   * Disallow template literal placeholder syntax in regular strings
   * @see https://eslint.org/docs/latest/rules/no-template-curly-in-string
   */
  'no-template-curly-in-string'?: Linter.RuleEntry<[]>;
  /**
   * Disallow ternary operators
   * @see https://eslint.org/docs/latest/rules/no-ternary
   */
  'no-ternary'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `this`/`super` before calling `super()` in constructors
   * @see https://eslint.org/docs/latest/rules/no-this-before-super
   */
  'no-this-before-super'?: Linter.RuleEntry<[]>;
  /**
   * Disallow throwing literals as exceptions
   * @see https://eslint.org/docs/latest/rules/no-throw-literal
   */
  'no-throw-literal'?: Linter.RuleEntry<[]>;
  /**
   * Disallow trailing whitespace at the end of lines
   * @see https://eslint.org/docs/latest/rules/no-trailing-spaces
   * @deprecated
   */
  'no-trailing-spaces'?: Linter.RuleEntry<NoTrailingSpaces>;
  /**
   * Disallow `let` or `var` variables that are read but never assigned
   * @see https://eslint.org/docs/latest/rules/no-unassigned-vars
   */
  'no-unassigned-vars'?: Linter.RuleEntry<[]>;
  /**
   * Disallow the use of undeclared variables unless mentioned in `/*global *\/` comments
   * @see https://eslint.org/docs/latest/rules/no-undef
   */
  'no-undef'?: Linter.RuleEntry<NoUndef>;
  /**
   * Disallow initializing variables to `undefined`
   * @see https://eslint.org/docs/latest/rules/no-undef-init
   */
  'no-undef-init'?: Linter.RuleEntry<[]>;
  /**
   * Disallow the use of `undefined` as an identifier
   * @see https://eslint.org/docs/latest/rules/no-undefined
   */
  'no-undefined'?: Linter.RuleEntry<[]>;
  /**
   * Disallow dangling underscores in identifiers
   * @see https://eslint.org/docs/latest/rules/no-underscore-dangle
   */
  'no-underscore-dangle'?: Linter.RuleEntry<NoUnderscoreDangle>;
  /**
   * Disallow confusing multiline expressions
   * @see https://eslint.org/docs/latest/rules/no-unexpected-multiline
   */
  'no-unexpected-multiline'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unmodified loop conditions
   * @see https://eslint.org/docs/latest/rules/no-unmodified-loop-condition
   */
  'no-unmodified-loop-condition'?: Linter.RuleEntry<NoUnmodifiedLoopCondition>;
  /**
   * Disallow ternary operators when simpler alternatives exist
   * @see https://eslint.org/docs/latest/rules/no-unneeded-ternary
   */
  'no-unneeded-ternary'?: Linter.RuleEntry<NoUnneededTernary>;
  /**
   * Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements
   * @see https://eslint.org/docs/latest/rules/no-unreachable
   */
  'no-unreachable'?: Linter.RuleEntry<[]>;
  /**
   * Disallow loops with a body that allows only one iteration
   * @see https://eslint.org/docs/latest/rules/no-unreachable-loop
   */
  'no-unreachable-loop'?: Linter.RuleEntry<NoUnreachableLoop>;
  /**
   * Disallow control flow statements in `finally` blocks
   * @see https://eslint.org/docs/latest/rules/no-unsafe-finally
   */
  'no-unsafe-finally'?: Linter.RuleEntry<[]>;
  /**
   * Disallow negating the left operand of relational operators
   * @see https://eslint.org/docs/latest/rules/no-unsafe-negation
   */
  'no-unsafe-negation'?: Linter.RuleEntry<NoUnsafeNegation>;
  /**
   * Disallow use of optional chaining in contexts where the `undefined` value is not allowed
   * @see https://eslint.org/docs/latest/rules/no-unsafe-optional-chaining
   */
  'no-unsafe-optional-chaining'?: Linter.RuleEntry<NoUnsafeOptionalChaining>;
  /**
   * Disallow unused expressions
   * @see https://eslint.org/docs/latest/rules/no-unused-expressions
   */
  'no-unused-expressions'?: Linter.RuleEntry<NoUnusedExpressions>;
  /**
   * Disallow unused labels
   * @see https://eslint.org/docs/latest/rules/no-unused-labels
   */
  'no-unused-labels'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unused private class members
   * @see https://eslint.org/docs/latest/rules/no-unused-private-class-members
   */
  'no-unused-private-class-members'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unused variables
   * @see https://eslint.org/docs/latest/rules/no-unused-vars
   */
  'no-unused-vars'?: Linter.RuleEntry<NoUnusedVars>;
  /**
   * Disallow the use of variables before they are defined
   * @see https://eslint.org/docs/latest/rules/no-use-before-define
   */
  'no-use-before-define'?: Linter.RuleEntry<NoUseBeforeDefine>;
  /**
   * Disallow variable assignments when the value is not used
   * @see https://eslint.org/docs/latest/rules/no-useless-assignment
   */
  'no-useless-assignment'?: Linter.RuleEntry<[]>;
  /**
   * Disallow useless backreferences in regular expressions
   * @see https://eslint.org/docs/latest/rules/no-useless-backreference
   */
  'no-useless-backreference'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary calls to `.call()` and `.apply()`
   * @see https://eslint.org/docs/latest/rules/no-useless-call
   */
  'no-useless-call'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary `catch` clauses
   * @see https://eslint.org/docs/latest/rules/no-useless-catch
   */
  'no-useless-catch'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary computed property keys in objects and classes
   * @see https://eslint.org/docs/latest/rules/no-useless-computed-key
   */
  'no-useless-computed-key'?: Linter.RuleEntry<NoUselessComputedKey>;
  /**
   * Disallow unnecessary concatenation of literals or template literals
   * @see https://eslint.org/docs/latest/rules/no-useless-concat
   */
  'no-useless-concat'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary constructors
   * @see https://eslint.org/docs/latest/rules/no-useless-constructor
   */
  'no-useless-constructor'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary escape characters
   * @see https://eslint.org/docs/latest/rules/no-useless-escape
   */
  'no-useless-escape'?: Linter.RuleEntry<NoUselessEscape>;
  /**
   * Disallow renaming import, export, and destructured assignments to the same name
   * @see https://eslint.org/docs/latest/rules/no-useless-rename
   */
  'no-useless-rename'?: Linter.RuleEntry<NoUselessRename>;
  /**
   * Disallow redundant return statements
   * @see https://eslint.org/docs/latest/rules/no-useless-return
   */
  'no-useless-return'?: Linter.RuleEntry<[]>;
  /**
   * Require `let` or `const` instead of `var`
   * @see https://eslint.org/docs/latest/rules/no-var
   */
  'no-var'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `void` operators
   * @see https://eslint.org/docs/latest/rules/no-void
   */
  'no-void'?: Linter.RuleEntry<NoVoid>;
  /**
   * Disallow specified warning terms in comments
   * @see https://eslint.org/docs/latest/rules/no-warning-comments
   */
  'no-warning-comments'?: Linter.RuleEntry<NoWarningComments>;
  /**
   * Disallow whitespace before properties
   * @see https://eslint.org/docs/latest/rules/no-whitespace-before-property
   * @deprecated
   */
  'no-whitespace-before-property'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `with` statements
   * @see https://eslint.org/docs/latest/rules/no-with
   */
  'no-with'?: Linter.RuleEntry<[]>;
  /**
   * Enforce the location of single-line statements
   * @see https://eslint.org/docs/latest/rules/nonblock-statement-body-position
   * @deprecated
   */
  'nonblock-statement-body-position'?: Linter.RuleEntry<NonblockStatementBodyPosition>;
  /**
   * Disallow setting `test` key in Nuxt config
   * @see https://eslint.nuxt.com/packages/plugin#nuxtno-nuxt-config-test-key
   */
  'nuxt/no-nuxt-config-test-key'?: Linter.RuleEntry<[]>;
  /**
   * Disallow runtime context values inside `definePageMeta` at the eager level, which is extracted into a separate chunk at build time and runs before component setup
   * @see https://eslint.nuxt.com/packages/plugin#nuxtno-page-meta-runtime-values
   */
  'nuxt/no-page-meta-runtime-values'?: Linter.RuleEntry<[]>;
  /**
   * Prefer recommended order of Nuxt config properties
   * @see https://eslint.nuxt.com/packages/plugin#nuxtnuxt-config-keys-order
   */
  'nuxt/nuxt-config-keys-order'?: Linter.RuleEntry<[]>;
  /**
   * Prefer using `import.meta.*` over `process.*`
   * @see https://eslint.nuxt.com/packages/plugin#nuxtprefer-import-meta
   */
  'nuxt/prefer-import-meta'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent line breaks after opening and before closing braces
   * @see https://eslint.org/docs/latest/rules/object-curly-newline
   * @deprecated
   */
  'object-curly-newline'?: Linter.RuleEntry<ObjectCurlyNewline>;
  /**
   * Enforce consistent spacing inside braces
   * @see https://eslint.org/docs/latest/rules/object-curly-spacing
   * @deprecated
   */
  'object-curly-spacing'?: Linter.RuleEntry<ObjectCurlySpacing>;
  /**
   * Enforce placing object properties on separate lines
   * @see https://eslint.org/docs/latest/rules/object-property-newline
   * @deprecated
   */
  'object-property-newline'?: Linter.RuleEntry<ObjectPropertyNewline>;
  /**
   * Require or disallow method and property shorthand syntax for object literals
   * @see https://eslint.org/docs/latest/rules/object-shorthand
   */
  'object-shorthand'?: Linter.RuleEntry<ObjectShorthand>;
  /**
   * Enforce variables to be declared either together or separately in functions
   * @see https://eslint.org/docs/latest/rules/one-var
   */
  'one-var'?: Linter.RuleEntry<OneVar>;
  /**
   * Require or disallow newlines around variable declarations
   * @see https://eslint.org/docs/latest/rules/one-var-declaration-per-line
   * @deprecated
   */
  'one-var-declaration-per-line'?: Linter.RuleEntry<OneVarDeclarationPerLine>;
  /**
   * Require or disallow assignment operator shorthand where possible
   * @see https://eslint.org/docs/latest/rules/operator-assignment
   */
  'operator-assignment'?: Linter.RuleEntry<OperatorAssignment>;
  /**
   * Enforce consistent linebreak style for operators
   * @see https://eslint.org/docs/latest/rules/operator-linebreak
   * @deprecated
   */
  'operator-linebreak'?: Linter.RuleEntry<OperatorLinebreak>;
  /**
   * Enforce that names for bin properties are in kebab case.
   * @see https://eslint-plugin-package-json.dev/rules/bin-name-casing
   */
  'package-json/bin-name-casing'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent format for the exports field (implicit or explicit subpaths).
   * @see https://eslint-plugin-package-json.dev/rules/exports-subpaths-style
   */
  'package-json/exports-subpaths-style'?: Linter.RuleEntry<PackageJsonExportsSubpathsStyle>;
  /**
   * Reports on unnecessary empty arrays and objects.
   * @see https://eslint-plugin-package-json.dev/rules/no-empty-fields
   */
  'package-json/no-empty-fields'?: Linter.RuleEntry<PackageJsonNoEmptyFields>;
  /**
   * Requires that dependencies do not use local file paths, which will likely result in errors when installing from a registry.
   * @see https://eslint-plugin-package-json.dev/rules/no-local-dependencies
   */
  'package-json/no-local-dependencies'?: Linter.RuleEntry<PackageJsonNoLocalDependencies>;
  /**
   * Prevents adding unnecessary / redundant files.
   * @see https://eslint-plugin-package-json.dev/rules/no-redundant-files
   */
  'package-json/no-redundant-files'?: Linter.RuleEntry<[]>;
  /**
   * Warns when publishConfig.access is used in unscoped packages.
   * @see https://eslint-plugin-package-json.dev/rules/no-redundant-publishConfig
   */
  'package-json/no-redundant-publishConfig'?: Linter.RuleEntry<[]>;
  /**
   * Enforces that package properties are declared in a consistent order.
   * @see https://eslint-plugin-package-json.dev/rules/order-properties
   */
  'package-json/order-properties'?: Linter.RuleEntry<PackageJsonOrderProperties>;
  /**
   * Enforce either object or shorthand declaration for repository.
   * @see https://eslint-plugin-package-json.dev/rules/repository-shorthand
   */
  'package-json/repository-shorthand'?: Linter.RuleEntry<PackageJsonRepositoryShorthand>;
  /**
   * Ensures that proper attribution is included, requiring that either `author` or `contributors` is defined, and that if `contributors` is present, it should include at least one contributor.
   * @see https://eslint-plugin-package-json.dev/rules/require-attribution
   */
  'package-json/require-attribution'?: Linter.RuleEntry<PackageJsonRequireAttribution>;
  /**
   * Requires the `author` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-author
   */
  'package-json/require-author'?: Linter.RuleEntry<PackageJsonRequireAuthor>;
  /**
   * Requires the `bin` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-bin
   */
  'package-json/require-bin'?: Linter.RuleEntry<PackageJsonRequireBin>;
  /**
   * Requires the `browser` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-browser
   */
  'package-json/require-browser'?: Linter.RuleEntry<PackageJsonRequireBrowser>;
  /**
   * Requires the `bugs` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-bugs
   */
  'package-json/require-bugs'?: Linter.RuleEntry<PackageJsonRequireBugs>;
  /**
   * Requires the `bundleDependencies` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-bundleDependencies
   */
  'package-json/require-bundleDependencies'?: Linter.RuleEntry<PackageJsonRequireBundleDependencies>;
  /**
   * Requires the `config` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-config
   */
  'package-json/require-config'?: Linter.RuleEntry<PackageJsonRequireConfig>;
  /**
   * Requires the `contributors` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-contributors
   */
  'package-json/require-contributors'?: Linter.RuleEntry<PackageJsonRequireContributors>;
  /**
   * Requires the `cpu` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-cpu
   */
  'package-json/require-cpu'?: Linter.RuleEntry<PackageJsonRequireCpu>;
  /**
   * Requires the `dependencies` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-dependencies
   */
  'package-json/require-dependencies'?: Linter.RuleEntry<PackageJsonRequireDependencies>;
  /**
   * Requires the `description` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-description
   */
  'package-json/require-description'?: Linter.RuleEntry<PackageJsonRequireDescription>;
  /**
   * Requires the `devDependencies` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-devDependencies
   */
  'package-json/require-devDependencies'?: Linter.RuleEntry<PackageJsonRequireDevDependencies>;
  /**
   * Requires the `devEngines` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-devEngines
   */
  'package-json/require-devEngines'?: Linter.RuleEntry<PackageJsonRequireDevEngines>;
  /**
   * Requires the `directories` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-directories
   */
  'package-json/require-directories'?: Linter.RuleEntry<PackageJsonRequireDirectories>;
  /**
   * Requires the `engines` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-engines
   */
  'package-json/require-engines'?: Linter.RuleEntry<PackageJsonRequireEngines>;
  /**
   * Requires the `exports` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-exports
   */
  'package-json/require-exports'?: Linter.RuleEntry<PackageJsonRequireExports>;
  /**
   * Requires the `files` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-files
   */
  'package-json/require-files'?: Linter.RuleEntry<PackageJsonRequireFiles>;
  /**
   * Requires the `funding` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-funding
   */
  'package-json/require-funding'?: Linter.RuleEntry<PackageJsonRequireFunding>;
  /**
   * Requires the `gypfile` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-gypfile
   */
  'package-json/require-gypfile'?: Linter.RuleEntry<PackageJsonRequireGypfile>;
  /**
   * Requires the `homepage` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-homepage
   */
  'package-json/require-homepage'?: Linter.RuleEntry<PackageJsonRequireHomepage>;
  /**
   * Requires the `keywords` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-keywords
   */
  'package-json/require-keywords'?: Linter.RuleEntry<PackageJsonRequireKeywords>;
  /**
   * Requires the `libc` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-libc
   */
  'package-json/require-libc'?: Linter.RuleEntry<PackageJsonRequireLibc>;
  /**
   * Requires the `license` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-license
   */
  'package-json/require-license'?: Linter.RuleEntry<PackageJsonRequireLicense>;
  /**
   * Requires the `main` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-main
   */
  'package-json/require-main'?: Linter.RuleEntry<PackageJsonRequireMain>;
  /**
   * Requires the `man` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-man
   */
  'package-json/require-man'?: Linter.RuleEntry<PackageJsonRequireMan>;
  /**
   * Requires the `module` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-module
   */
  'package-json/require-module'?: Linter.RuleEntry<PackageJsonRequireModule>;
  /**
   * Requires the `name` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-name
   */
  'package-json/require-name'?: Linter.RuleEntry<PackageJsonRequireName>;
  /**
   * Requires the `optionalDependencies` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-optionalDependencies
   */
  'package-json/require-optionalDependencies'?: Linter.RuleEntry<PackageJsonRequireOptionalDependencies>;
  /**
   * Requires the `os` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-os
   */
  'package-json/require-os'?: Linter.RuleEntry<PackageJsonRequireOs>;
  /**
   * Requires the `packageManager` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-packageManager
   */
  'package-json/require-packageManager'?: Linter.RuleEntry<PackageJsonRequirePackageManager>;
  /**
   * Requires the `peerDependencies` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-peerDependencies
   */
  'package-json/require-peerDependencies'?: Linter.RuleEntry<PackageJsonRequirePeerDependencies>;
  /**
   * Requires the `peerDependenciesMeta` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-peerDependenciesMeta
   */
  'package-json/require-peerDependenciesMeta'?: Linter.RuleEntry<PackageJsonRequirePeerDependenciesMeta>;
  /**
   * Requires the `private` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-private
   */
  'package-json/require-private'?: Linter.RuleEntry<[]>;
  /**
   * Requires the `publishConfig` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-publishConfig
   */
  'package-json/require-publishConfig'?: Linter.RuleEntry<PackageJsonRequirePublishConfig>;
  /**
   * Requires the `repository` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-repository
   */
  'package-json/require-repository'?: Linter.RuleEntry<PackageJsonRequireRepository>;
  /**
   * Requires the `scripts` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-scripts
   */
  'package-json/require-scripts'?: Linter.RuleEntry<PackageJsonRequireScripts>;
  /**
   * Requires the `sideEffects` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-sideEffects
   */
  'package-json/require-sideEffects'?: Linter.RuleEntry<PackageJsonRequireSideEffects>;
  /**
   * Requires the `type` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-type
   */
  'package-json/require-type'?: Linter.RuleEntry<PackageJsonRequireType>;
  /**
   * Requires the `types` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-types
   */
  'package-json/require-types'?: Linter.RuleEntry<PackageJsonRequireTypes>;
  /**
   * Requires the `version` property to be present.
   * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-version
   */
  'package-json/require-version'?: Linter.RuleEntry<PackageJsonRequireVersion>;
  /**
   * Restricts the range of dependencies to allow or disallow specific types of ranges.
   * @see https://eslint-plugin-package-json.dev/rules/restrict-dependency-ranges
   */
  'package-json/restrict-dependency-ranges'?: Linter.RuleEntry<PackageJsonRestrictDependencyRanges>;
  /**
   * Disallows unnecessary properties in private packages.
   * @see https://eslint-plugin-package-json.dev/rules/restrict-private-properties
   */
  'package-json/restrict-private-properties'?: Linter.RuleEntry<PackageJsonRestrictPrivateProperties>;
  /**
   * Disallows specified top-level properties in package.json.
   * @see https://eslint-plugin-package-json.dev/rules/restrict-top-level-properties
   */
  'package-json/restrict-top-level-properties'?: Linter.RuleEntry<PackageJsonRestrictTopLevelProperties>;
  /**
   * Enforce that names for `scripts` are in kebab case (optionally separated by colons).
   * @see https://eslint-plugin-package-json.dev/rules/scripts-name-casing
   */
  'package-json/scripts-name-casing'?: Linter.RuleEntry<PackageJsonScriptsNameCasing>;
  /**
   * Selected collections must be in a consistent order (lexicographical for most; lifecycle-aware for scripts).
   * @see https://eslint-plugin-package-json.dev/rules/sort-collections
   */
  'package-json/sort-collections'?: Linter.RuleEntry<PackageJsonSortCollections>;
  /**
   * Requires that all peer dependencies are also declared as dev dependencies
   * @see https://eslint-plugin-package-json.dev/rules/specify-peers-locally
   */
  'package-json/specify-peers-locally'?: Linter.RuleEntry<[]>;
  /**
   * Checks a dependency isn't specified more than once (i.e. in `dependencies` and `devDependencies`)
   * @see https://eslint-plugin-package-json.dev/rules/unique-dependencies
   */
  'package-json/unique-dependencies'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `author` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-author
   */
  'package-json/valid-author'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `bin` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-bin
   */
  'package-json/valid-bin'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `browser` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-browser
   */
  'package-json/valid-browser'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `bugs` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-bugs
   */
  'package-json/valid-bugs'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `bundleDependencies` (also `bundledDependencies`) property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-bundleDependencies
   */
  'package-json/valid-bundleDependencies'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `config` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-config
   */
  'package-json/valid-config'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `contributors` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-contributors
   */
  'package-json/valid-contributors'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `cpu` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-cpu
   */
  'package-json/valid-cpu'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `dependencies` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-dependencies
   */
  'package-json/valid-dependencies'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `description` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-description
   */
  'package-json/valid-description'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `devDependencies` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-devDependencies
   */
  'package-json/valid-devDependencies'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `devEngines` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-devEngines
   */
  'package-json/valid-devEngines'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `directories` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-directories
   */
  'package-json/valid-directories'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `engines` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-engines
   */
  'package-json/valid-engines'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `exports` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-exports
   */
  'package-json/valid-exports'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `files` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-files
   */
  'package-json/valid-files'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `funding` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-funding
   */
  'package-json/valid-funding'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `gypfile` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-gypfile
   */
  'package-json/valid-gypfile'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `homepage` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-homepage
   */
  'package-json/valid-homepage'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `keywords` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-keywords
   */
  'package-json/valid-keywords'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `libc` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-libc
   */
  'package-json/valid-libc'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `license` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-license
   */
  'package-json/valid-license'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `main` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-main
   */
  'package-json/valid-main'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `man` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-man
   */
  'package-json/valid-man'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `module` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-module
   */
  'package-json/valid-module'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `name` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-name
   */
  'package-json/valid-name'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `optionalDependencies` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-optionalDependencies
   */
  'package-json/valid-optionalDependencies'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `os` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-os
   */
  'package-json/valid-os'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `packageManager` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-packageManager
   */
  'package-json/valid-packageManager'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `peerDependencies` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-peerDependencies
   */
  'package-json/valid-peerDependencies'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `peerDependenciesMeta` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-peerDependenciesMeta
   */
  'package-json/valid-peerDependenciesMeta'?: Linter.RuleEntry<[]>;
  /**
   * Enforces that any dependencies declared in `peerDependenciesMeta` are also defined in the package's `peerDependencies`.
   * @see https://eslint-plugin-package-json.dev/rules/valid-peerDependenciesMeta-relationship
   */
  'package-json/valid-peerDependenciesMeta-relationship'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `private` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-private
   */
  'package-json/valid-private'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `publishConfig` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-publishConfig
   */
  'package-json/valid-publishConfig'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `repository` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-repository
   */
  'package-json/valid-repository'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that if repository directory is specified, it matches the path to the package.json file
   * @see https://eslint-plugin-package-json.dev/rules/valid-repository-directory
   */
  'package-json/valid-repository-directory'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `scripts` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-scripts
   */
  'package-json/valid-scripts'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `sideEffects` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-sideEffects
   */
  'package-json/valid-sideEffects'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `type` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-type
   */
  'package-json/valid-type'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `version` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-version
   */
  'package-json/valid-version'?: Linter.RuleEntry<[]>;
  /**
   * Enforce that the `workspaces` property is valid.
   * @see https://eslint-plugin-package-json.dev/rules/valid-properties/valid-workspaces
   */
  'package-json/valid-workspaces'?: Linter.RuleEntry<[]>;
  /**
   * Require or disallow padding within blocks
   * @see https://eslint.org/docs/latest/rules/padded-blocks
   * @deprecated
   */
  'padded-blocks'?: Linter.RuleEntry<PaddedBlocks>;
  /**
   * Require or disallow padding lines between statements
   * @see https://eslint.org/docs/latest/rules/padding-line-between-statements
   * @deprecated
   */
  'padding-line-between-statements'?: Linter.RuleEntry<PaddingLineBetweenStatements>;
  /**
   * Enforce sorted arrays before include method.
   * @see https://perfectionist.dev/rules/sort-array-includes
   */
  'perfectionist/sort-array-includes'?: Linter.RuleEntry<PerfectionistSortArrayIncludes>;
  /**
   * Enforce sorted 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<[]>;
  /**
   * Disallow assertions on a Locator that can never fail
   * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-unnecessary-assertions.md
   */
  'playwright/no-unnecessary-assertions'?: 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 using arrow functions for callbacks
   * @see https://eslint.org/docs/latest/rules/prefer-arrow-callback
   */
  'prefer-arrow-callback'?: Linter.RuleEntry<PreferArrowCallback>;
  /**
   * Require `const` declarations for variables that are never reassigned after declared
   * @see https://eslint.org/docs/latest/rules/prefer-const
   */
  'prefer-const'?: Linter.RuleEntry<PreferConst>;
  /**
   * Require destructuring from arrays and/or objects
   * @see https://eslint.org/docs/latest/rules/prefer-destructuring
   */
  'prefer-destructuring'?: Linter.RuleEntry<PreferDestructuring>;
  /**
   * Disallow the use of `Math.pow` in favor of the `**` operator
   * @see https://eslint.org/docs/latest/rules/prefer-exponentiation-operator
   */
  'prefer-exponentiation-operator'?: Linter.RuleEntry<[]>;
  /**
   * Enforce using named capture group in regular expression
   * @see https://eslint.org/docs/latest/rules/prefer-named-capture-group
   */
  'prefer-named-capture-group'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals
   * @see https://eslint.org/docs/latest/rules/prefer-numeric-literals
   */
  'prefer-numeric-literals'?: Linter.RuleEntry<[]>;
  /**
   * Disallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()`
   * @see https://eslint.org/docs/latest/rules/prefer-object-has-own
   */
  'prefer-object-has-own'?: Linter.RuleEntry<[]>;
  /**
   * Disallow using `Object.assign` with an object literal as the first argument and prefer the use of object spread instead
   * @see https://eslint.org/docs/latest/rules/prefer-object-spread
   */
  'prefer-object-spread'?: Linter.RuleEntry<[]>;
  /**
   * Require using Error objects as Promise rejection reasons
   * @see https://eslint.org/docs/latest/rules/prefer-promise-reject-errors
   */
  'prefer-promise-reject-errors'?: Linter.RuleEntry<PreferPromiseRejectErrors>;
  /**
   * Require `Reflect` methods where applicable
   * @see https://eslint.org/docs/latest/rules/prefer-reflect
   * @deprecated
   */
  'prefer-reflect'?: Linter.RuleEntry<PreferReflect>;
  /**
   * Disallow use of the `RegExp` constructor in favor of regular expression literals
   * @see https://eslint.org/docs/latest/rules/prefer-regex-literals
   */
  'prefer-regex-literals'?: Linter.RuleEntry<PreferRegexLiterals>;
  /**
   * Require rest parameters instead of `arguments`
   * @see https://eslint.org/docs/latest/rules/prefer-rest-params
   */
  'prefer-rest-params'?: Linter.RuleEntry<[]>;
  /**
   * Require spread operators instead of `.apply()`
   * @see https://eslint.org/docs/latest/rules/prefer-spread
   */
  'prefer-spread'?: Linter.RuleEntry<[]>;
  /**
   * Require template literals instead of string concatenation
   * @see https://eslint.org/docs/latest/rules/prefer-template
   */
  'prefer-template'?: Linter.RuleEntry<[]>;
  /**
   * Disallow losing originally caught error when re-throwing custom errors
   * @see https://eslint.org/docs/latest/rules/preserve-caught-error
   */
  'preserve-caught-error'?: Linter.RuleEntry<PreserveCaughtError>;
  /**
   * 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>;
  /**
   * Require quotes around object literal property names
   * @see https://eslint.org/docs/latest/rules/quote-props
   * @deprecated
   */
  'quote-props'?: Linter.RuleEntry<QuoteProps>;
  /**
   * Enforce the consistent use of either backticks, double, or single quotes
   * @see https://eslint.org/docs/latest/rules/quotes
   * @deprecated
   */
  'quotes'?: Linter.RuleEntry<Quotes>;
  /**
   * Enforce the use of the radix argument when using `parseInt()`
   * @see https://eslint.org/docs/latest/rules/radix
   */
  'radix'?: Linter.RuleEntry<Radix>;
  /**
   * Disallow assignments that can lead to race conditions due to usage of `await` or `yield`
   * @see https://eslint.org/docs/latest/rules/require-atomic-updates
   */
  'require-atomic-updates'?: Linter.RuleEntry<RequireAtomicUpdates>;
  /**
   * Disallow async functions which have no `await` expression
   * @see https://eslint.org/docs/latest/rules/require-await
   */
  'require-await'?: Linter.RuleEntry<[]>;
  /**
   * Enforce the use of `u` or `v` flag on regular expressions
   * @see https://eslint.org/docs/latest/rules/require-unicode-regexp
   */
  'require-unicode-regexp'?: Linter.RuleEntry<RequireUnicodeRegexp>;
  /**
   * Require generator functions to contain `yield`
   * @see https://eslint.org/docs/latest/rules/require-yield
   */
  'require-yield'?: Linter.RuleEntry<[]>;
  /**
   * Enforce spacing between rest and spread operators and their expressions
   * @see https://eslint.org/docs/latest/rules/rest-spread-spacing
   * @deprecated
   */
  'rest-spread-spacing'?: Linter.RuleEntry<RestSpreadSpacing>;
  /**
   * Require or disallow semicolons instead of ASI
   * @see https://eslint.org/docs/latest/rules/semi
   * @deprecated
   */
  'semi'?: Linter.RuleEntry<Semi>;
  /**
   * Enforce consistent spacing before and after semicolons
   * @see https://eslint.org/docs/latest/rules/semi-spacing
   * @deprecated
   */
  'semi-spacing'?: Linter.RuleEntry<SemiSpacing>;
  /**
   * Enforce location of semicolons
   * @see https://eslint.org/docs/latest/rules/semi-style
   * @deprecated
   */
  'semi-style'?: Linter.RuleEntry<SemiStyle>;
  /**
   * Enforce sorted `import` declarations within modules
   * @see https://eslint.org/docs/latest/rules/sort-imports
   */
  'sort-imports'?: Linter.RuleEntry<SortImports>;
  /**
   * Require object keys to be sorted
   * @see https://eslint.org/docs/latest/rules/sort-keys
   */
  'sort-keys'?: Linter.RuleEntry<SortKeys>;
  /**
   * Require variables within the same declaration block to be sorted
   * @see https://eslint.org/docs/latest/rules/sort-vars
   */
  'sort-vars'?: Linter.RuleEntry<SortVars>;
  /**
   * Enforce consistent spacing before blocks
   * @see https://eslint.org/docs/latest/rules/space-before-blocks
   * @deprecated
   */
  'space-before-blocks'?: Linter.RuleEntry<SpaceBeforeBlocks>;
  /**
   * Enforce consistent spacing before `function` definition opening parenthesis
   * @see https://eslint.org/docs/latest/rules/space-before-function-paren
   * @deprecated
   */
  'space-before-function-paren'?: Linter.RuleEntry<SpaceBeforeFunctionParen>;
  /**
   * Enforce consistent spacing inside parentheses
   * @see https://eslint.org/docs/latest/rules/space-in-parens
   * @deprecated
   */
  'space-in-parens'?: Linter.RuleEntry<SpaceInParens>;
  /**
   * Require spacing around infix operators
   * @see https://eslint.org/docs/latest/rules/space-infix-ops
   * @deprecated
   */
  'space-infix-ops'?: Linter.RuleEntry<SpaceInfixOps>;
  /**
   * Enforce consistent spacing before or after unary operators
   * @see https://eslint.org/docs/latest/rules/space-unary-ops
   * @deprecated
   */
  'space-unary-ops'?: Linter.RuleEntry<SpaceUnaryOps>;
  /**
   * Enforce consistent spacing after the `//` or `/*` in a comment
   * @see https://eslint.org/docs/latest/rules/spaced-comment
   * @deprecated
   */
  'spaced-comment'?: Linter.RuleEntry<SpacedComment>;
  /**
   * 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<[]>;
  /**
   * Require or disallow strict mode directives
   * @see https://eslint.org/docs/latest/rules/strict
   */
  'strict'?: Linter.RuleEntry<Strict>;
  /**
   * Enforce spacing around colons of switch statements
   * @see https://eslint.org/docs/latest/rules/switch-colon-spacing
   * @deprecated
   */
  'switch-colon-spacing'?: Linter.RuleEntry<SwitchColonSpacing>;
  /**
   * Require symbol descriptions
   * @see https://eslint.org/docs/latest/rules/symbol-description
   */
  'symbol-description'?: Linter.RuleEntry<[]>;
  /**
   * Require or disallow spacing around embedded expressions of template strings
   * @see https://eslint.org/docs/latest/rules/template-curly-spacing
   * @deprecated
   */
  'template-curly-spacing'?: Linter.RuleEntry<TemplateCurlySpacing>;
  /**
   * Require or disallow spacing between template tags and their literals
   * @see https://eslint.org/docs/latest/rules/template-tag-spacing
   * @deprecated
   */
  'template-tag-spacing'?: Linter.RuleEntry<TemplateTagSpacing>;
  /**
   * Require or disallow Unicode byte order mark (BOM)
   * @see https://eslint.org/docs/latest/rules/unicode-bom
   */
  'unicode-bom'?: Linter.RuleEntry<UnicodeBom>;
  /**
   * Prefer better DOM traversal APIs.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v73.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/v73.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/v73.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/v73.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/v73.0.0/docs/rules/comment-content.md
   */
  'unicorn/comment-content'?: Linter.RuleEntry<UnicornCommentContent>;
  /**
   * Enforce a consistent return style for multiline arrow function bodies.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v73.0.0/docs/rules/consistent-arrow-return-style.md
   */
  'unicorn/consistent-arrow-return-style'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent assertion style with `node:assert`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.0.0/docs/rules/isolated-functions.md
   */
  'unicorn/isolated-functions'?: Linter.RuleEntry<UnicornIsolatedFunctions>;
  /**
   * Enforce a consistent style for optional loop sources.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v73.0.0/docs/rules/iteration-fallback-style.md
   */
  'unicorn/iteration-fallback-style'?: Linter.RuleEntry<UnicornIterationFallbackStyle>;
  /**
   * Require or disallow logical assignment operator shorthand
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.0.0/docs/rules/no-await-in-promise-methods.md
   */
  'unicorn/no-await-in-promise-methods'?: Linter.RuleEntry<[]>;
  /**
   * Disallow barrel files.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v73.0.0/docs/rules/no-barrel-files.md
   */
  'unicorn/no-barrel-files'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary `Blob` to `File` conversion.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.0.0/docs/rules/no-unsafe-property-key.md
   */
  'unicorn/no-unsafe-property-key'?: Linter.RuleEntry<[]>;
  /**
   * Disallow interpolation into SQL strings passed to Node’s `node:sqlite` APIs.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v73.0.0/docs/rules/no-unsafe-sqlite-interpolation.md
   */
  'unicorn/no-unsafe-sqlite-interpolation'?: Linter.RuleEntry<[]>;
  /**
   * Disallow non-literal replacement values in `String#replace()` and `String#replaceAll()`.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.0.0/docs/rules/prefer-https.md
   */
  'unicorn/prefer-https'?: Linter.RuleEntry<UnicornPreferHttps>;
  /**
   * Prefer identifiers over string literals in import and export specifiers.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.0.0/docs/rules/require-proxy-trap-boolean-return.md
   */
  'unicorn/require-proxy-trap-boolean-return'?: Linter.RuleEntry<[]>;
  /**
   * Enforce a consistent style for single-line block comments.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v73.0.0/docs/rules/single-line-block-comment-style.md
   */
  'unicorn/single-line-block-comment-style'?: Linter.RuleEntry<UnicornSingleLineBlockCommentStyle>;
  /**
   * Enforce better string content.
   * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v73.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/v73.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/v73.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/v73.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/v73.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/v73.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/v73.0.0/docs/rules/try-complexity.md
   */
  'unicorn/try-complexity'?: Linter.RuleEntry<UnicornTryComplexity>;
  /**
   * Require calls to `isNaN()` when checking for `NaN`
   * @see https://eslint.org/docs/latest/rules/use-isnan
   */
  'use-isnan'?: Linter.RuleEntry<UseIsnan>;
  /**
   * Enforce comparing `typeof` expressions against valid strings
   * @see https://eslint.org/docs/latest/rules/valid-typeof
   */
  'valid-typeof'?: Linter.RuleEntry<ValidTypeof>;
  /**
   * Require `var` declarations be placed at the top of their containing scope
   * @see https://eslint.org/docs/latest/rules/vars-on-top
   */
  'vars-on-top'?: Linter.RuleEntry<[]>;
  /**
   * 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 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<[]>;
  /**
   * Enforce linebreaks after opening and before closing array brackets in `<template>`
   * @see https://eslint.vuejs.org/rules/array-bracket-newline.html
   */
  'vue/array-bracket-newline'?: Linter.RuleEntry<VueArrayBracketNewline>;
  /**
   * Enforce consistent spacing inside array brackets in `<template>`
   * @see https://eslint.vuejs.org/rules/array-bracket-spacing.html
   */
  'vue/array-bracket-spacing'?: Linter.RuleEntry<VueArrayBracketSpacing>;
  /**
   * Enforce line breaks after each array element in `<template>`
   * @see https://eslint.vuejs.org/rules/array-element-newline.html
   */
  'vue/array-element-newline'?: Linter.RuleEntry<VueArrayElementNewline>;
  /**
   * Enforce consistent spacing before and after the arrow in arrow functions in `<template>`
   * @see https://eslint.vuejs.org/rules/arrow-spacing.html
   */
  'vue/arrow-spacing'?: Linter.RuleEntry<VueArrowSpacing>;
  /**
   * enforce attribute naming style on custom components in template
   * @see https://eslint.vuejs.org/rules/attribute-hyphenation.html
   */
  'vue/attribute-hyphenation'?: Linter.RuleEntry<VueAttributeHyphenation>;
  /**
   * enforce order of attributes
   * @see https://eslint.vuejs.org/rules/attributes-order.html
   */
  'vue/attributes-order'?: Linter.RuleEntry<VueAttributesOrder>;
  /**
   * disallow use other than available `lang`
   * @see https://eslint.vuejs.org/rules/block-lang.html
   */
  'vue/block-lang'?: Linter.RuleEntry<VueBlockLang>;
  /**
   * enforce order of component top-level elements
   * @see https://eslint.vuejs.org/rules/block-order.html
   */
  'vue/block-order'?: Linter.RuleEntry<VueBlockOrder>;
  /**
   * Disallow or enforce spaces inside of blocks after opening block and before closing block in `<template>`
   * @see https://eslint.vuejs.org/rules/block-spacing.html
   */
  'vue/block-spacing'?: Linter.RuleEntry<VueBlockSpacing>;
  /**
   * enforce line breaks after opening and before closing block-level tags
   * @see https://eslint.vuejs.org/rules/block-tag-newline.html
   */
  'vue/block-tag-newline'?: Linter.RuleEntry<VueBlockTagNewline>;
  /**
   * Enforce consistent brace style for blocks in `<template>`
   * @see https://eslint.vuejs.org/rules/brace-style.html
   */
  'vue/brace-style'?: Linter.RuleEntry<VueBraceStyle>;
  /**
   * Enforce camelcase naming convention in `<template>`
   * @see https://eslint.vuejs.org/rules/camelcase.html
   */
  'vue/camelcase'?: Linter.RuleEntry<VueCamelcase>;
  /**
   * Require or disallow trailing commas in `<template>`
   * @see https://eslint.vuejs.org/rules/comma-dangle.html
   */
  'vue/comma-dangle'?: Linter.RuleEntry<VueCommaDangle>;
  /**
   * Enforce consistent spacing before and after commas in `<template>`
   * @see https://eslint.vuejs.org/rules/comma-spacing.html
   */
  'vue/comma-spacing'?: Linter.RuleEntry<VueCommaSpacing>;
  /**
   * Enforce consistent comma style in `<template>`
   * @see https://eslint.vuejs.org/rules/comma-style.html
   */
  'vue/comma-style'?: Linter.RuleEntry<VueCommaStyle>;
  /**
   * support comment-directives in `<template>`
   * @see https://eslint.vuejs.org/rules/comment-directive.html
   */
  'vue/comment-directive'?: Linter.RuleEntry<VueCommentDirective>;
  /**
   * enforce component API style
   * @see https://eslint.vuejs.org/rules/component-api-style.html
   */
  'vue/component-api-style'?: Linter.RuleEntry<VueComponentApiStyle>;
  /**
   * enforce specific casing for component definition name
   * @see https://eslint.vuejs.org/rules/component-definition-name-casing.html
   */
  'vue/component-definition-name-casing'?: Linter.RuleEntry<VueComponentDefinitionNameCasing>;
  /**
   * enforce specific casing for the component naming style in template
   * @see https://eslint.vuejs.org/rules/component-name-in-template-casing.html
   */
  'vue/component-name-in-template-casing'?: Linter.RuleEntry<VueComponentNameInTemplateCasing>;
  /**
   * enforce the casing of component name in `components` options
   * @see https://eslint.vuejs.org/rules/component-options-name-casing.html
   */
  'vue/component-options-name-casing'?: Linter.RuleEntry<VueComponentOptionsNameCasing>;
  /**
   * enforce specific casing for custom event name
   * @see https://eslint.vuejs.org/rules/custom-event-name-casing.html
   */
  'vue/custom-event-name-casing'?: Linter.RuleEntry<VueCustomEventNameCasing>;
  /**
   * enforce declaration style of `defineEmits`
   * @see https://eslint.vuejs.org/rules/define-emits-declaration.html
   */
  'vue/define-emits-declaration'?: Linter.RuleEntry<VueDefineEmitsDeclaration>;
  /**
   * enforce order of compiler macros (`defineProps`, `defineEmits`, etc.)
   * @see https://eslint.vuejs.org/rules/define-macros-order.html
   */
  'vue/define-macros-order'?: Linter.RuleEntry<VueDefineMacrosOrder>;
  /**
   * enforce declaration style of `defineProps`
   * @see https://eslint.vuejs.org/rules/define-props-declaration.html
   */
  'vue/define-props-declaration'?: Linter.RuleEntry<VueDefinePropsDeclaration>;
  /**
   * enforce consistent style for props destructuring
   * @see https://eslint.vuejs.org/rules/define-props-destructuring.html
   */
  'vue/define-props-destructuring'?: Linter.RuleEntry<VueDefinePropsDestructuring>;
  /**
   * Enforce consistent newlines before and after dots in `<template>`
   * @see https://eslint.vuejs.org/rules/dot-location.html
   */
  'vue/dot-location'?: Linter.RuleEntry<VueDotLocation>;
  /**
   * Enforce dot notation whenever possible in `<template>`
   * @see https://eslint.vuejs.org/rules/dot-notation.html
   */
  'vue/dot-notation'?: Linter.RuleEntry<VueDotNotation>;
  /**
   * enforce or forbid the use of the `scoped` and `module` attributes in SFC top level style tags
   * @see https://eslint.vuejs.org/rules/enforce-style-attribute.html
   */
  'vue/enforce-style-attribute'?: Linter.RuleEntry<VueEnforceStyleAttribute>;
  /**
   * Require the use of `===` and `!==` in `<template>`
   * @see https://eslint.vuejs.org/rules/eqeqeq.html
   */
  'vue/eqeqeq'?: Linter.RuleEntry<VueEqeqeq>;
  /**
   * enforce the location of first attribute
   * @see https://eslint.vuejs.org/rules/first-attribute-linebreak.html
   */
  'vue/first-attribute-linebreak'?: Linter.RuleEntry<VueFirstAttributeLinebreak>;
  /**
   * Require or disallow spacing between function identifiers and their invocations in `<template>`
   * @see https://eslint.vuejs.org/rules/func-call-spacing.html
   */
  'vue/func-call-spacing'?: Linter.RuleEntry<VueFuncCallSpacing>;
  /**
   * disallow usage of button without an explicit type attribute
   * @see https://eslint.vuejs.org/rules/html-button-has-type.html
   */
  'vue/html-button-has-type'?: Linter.RuleEntry<VueHtmlButtonHasType>;
  /**
   * require or disallow a line break before tag's closing brackets
   * @see https://eslint.vuejs.org/rules/html-closing-bracket-newline.html
   */
  'vue/html-closing-bracket-newline'?: Linter.RuleEntry<VueHtmlClosingBracketNewline>;
  /**
   * require or disallow a space before tag's closing brackets
   * @see https://eslint.vuejs.org/rules/html-closing-bracket-spacing.html
   */
  'vue/html-closing-bracket-spacing'?: Linter.RuleEntry<VueHtmlClosingBracketSpacing>;
  /**
   * enforce unified line break in HTML comments
   * @see https://eslint.vuejs.org/rules/html-comment-content-newline.html
   */
  'vue/html-comment-content-newline'?: Linter.RuleEntry<VueHtmlCommentContentNewline>;
  /**
   * enforce unified spacing in HTML comments
   * @see https://eslint.vuejs.org/rules/html-comment-content-spacing.html
   */
  'vue/html-comment-content-spacing'?: Linter.RuleEntry<VueHtmlCommentContentSpacing>;
  /**
   * enforce consistent indentation in HTML comments
   * @see https://eslint.vuejs.org/rules/html-comment-indent.html
   */
  'vue/html-comment-indent'?: Linter.RuleEntry<VueHtmlCommentIndent>;
  /**
   * enforce end tag style
   * @see https://eslint.vuejs.org/rules/html-end-tags.html
   */
  'vue/html-end-tags'?: Linter.RuleEntry<[]>;
  /**
   * enforce consistent indentation in `<template>`
   * @see https://eslint.vuejs.org/rules/html-indent.html
   */
  'vue/html-indent'?: Linter.RuleEntry<VueHtmlIndent>;
  /**
   * enforce quotes style of HTML attributes
   * @see https://eslint.vuejs.org/rules/html-quotes.html
   */
  'vue/html-quotes'?: Linter.RuleEntry<VueHtmlQuotes>;
  /**
   * enforce self-closing style
   * @see https://eslint.vuejs.org/rules/html-self-closing.html
   */
  'vue/html-self-closing'?: Linter.RuleEntry<VueHtmlSelfClosing>;
  /**
   * prevent variables used in JSX to be marked as unused
   * @see https://eslint.vuejs.org/rules/jsx-uses-vars.html
   */
  'vue/jsx-uses-vars'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent spacing between property names and type annotations in types and interfaces in `<template>`
   * @see https://eslint.vuejs.org/rules/key-spacing.html
   */
  'vue/key-spacing'?: Linter.RuleEntry<VueKeySpacing>;
  /**
   * Enforce consistent spacing before and after keywords in `<template>`
   * @see https://eslint.vuejs.org/rules/keyword-spacing.html
   */
  'vue/keyword-spacing'?: Linter.RuleEntry<VueKeywordSpacing>;
  /**
   * require component name property to match its file name
   * @see https://eslint.vuejs.org/rules/match-component-file-name.html
   */
  'vue/match-component-file-name'?: Linter.RuleEntry<VueMatchComponentFileName>;
  /**
   * require the registered component name to match the imported component name
   * @see https://eslint.vuejs.org/rules/match-component-import-name.html
   */
  'vue/match-component-import-name'?: Linter.RuleEntry<[]>;
  /**
   * enforce the maximum number of attributes per line
   * @see https://eslint.vuejs.org/rules/max-attributes-per-line.html
   */
  'vue/max-attributes-per-line'?: Linter.RuleEntry<VueMaxAttributesPerLine>;
  /**
   * enforce a maximum line length in `.vue` files
   * @see https://eslint.vuejs.org/rules/max-len.html
   */
  'vue/max-len'?: Linter.RuleEntry<VueMaxLen>;
  /**
   * enforce maximum number of lines in Vue SFC blocks
   * @see https://eslint.vuejs.org/rules/max-lines-per-block.html
   */
  'vue/max-lines-per-block'?: Linter.RuleEntry<VueMaxLinesPerBlock>;
  /**
   * enforce maximum number of props in Vue component
   * @see https://eslint.vuejs.org/rules/max-props.html
   */
  'vue/max-props'?: Linter.RuleEntry<VueMaxProps>;
  /**
   * enforce maximum depth of template
   * @see https://eslint.vuejs.org/rules/max-template-depth.html
   */
  'vue/max-template-depth'?: Linter.RuleEntry<VueMaxTemplateDepth>;
  /**
   * require component names to be always multi-word
   * @see https://eslint.vuejs.org/rules/multi-word-component-names.html
   */
  'vue/multi-word-component-names'?: Linter.RuleEntry<VueMultiWordComponentNames>;
  /**
   * require a line break before and after the contents of a multiline element
   * @see https://eslint.vuejs.org/rules/multiline-html-element-content-newline.html
   */
  'vue/multiline-html-element-content-newline'?: Linter.RuleEntry<VueMultilineHtmlElementContentNewline>;
  /**
   * Enforce newlines between operands of ternary expressions in `<template>`
   * @see https://eslint.vuejs.org/rules/multiline-ternary.html
   */
  'vue/multiline-ternary'?: Linter.RuleEntry<VueMultilineTernary>;
  /**
   * enforce unified spacing in mustache interpolations
   * @see https://eslint.vuejs.org/rules/mustache-interpolation-spacing.html
   */
  'vue/mustache-interpolation-spacing'?: Linter.RuleEntry<VueMustacheInterpolationSpacing>;
  /**
   * enforce new lines between multi-line properties in Vue components
   * @see https://eslint.vuejs.org/rules/new-line-between-multi-line-property.html
   */
  'vue/new-line-between-multi-line-property'?: Linter.RuleEntry<VueNewLineBetweenMultiLineProperty>;
  /**
   * enforce Promise or callback style in `nextTick`
   * @see https://eslint.vuejs.org/rules/next-tick-style.html
   */
  'vue/next-tick-style'?: Linter.RuleEntry<VueNextTickStyle>;
  /**
   * disallow using arrow functions to define watcher
   * @see https://eslint.vuejs.org/rules/no-arrow-functions-in-watch.html
   */
  'vue/no-arrow-functions-in-watch'?: Linter.RuleEntry<[]>;
  /**
   * disallow asynchronous actions in computed properties
   * @see https://eslint.vuejs.org/rules/no-async-in-computed-properties.html
   */
  'vue/no-async-in-computed-properties'?: Linter.RuleEntry<VueNoAsyncInComputedProperties>;
  /**
   * disallow the use of bare strings in `<template>`
   * @see https://eslint.vuejs.org/rules/no-bare-strings-in-template.html
   */
  'vue/no-bare-strings-in-template'?: Linter.RuleEntry<VueNoBareStringsInTemplate>;
  /**
   * disallow boolean defaults
   * @see https://eslint.vuejs.org/rules/no-boolean-default.html
   */
  'vue/no-boolean-default'?: Linter.RuleEntry<VueNoBooleanDefault>;
  /**
   * disallow element's child contents which would be overwritten by a directive like `v-html` or `v-text`
   * @see https://eslint.vuejs.org/rules/no-child-content.html
   */
  'vue/no-child-content'?: Linter.RuleEntry<VueNoChildContent>;
  /**
   * disallow accessing computed properties in `data`
   * @see https://eslint.vuejs.org/rules/no-computed-properties-in-data.html
   */
  'vue/no-computed-properties-in-data'?: Linter.RuleEntry<[]>;
  /**
   * Disallow the use of `console` in `<template>`
   * @see https://eslint.vuejs.org/rules/no-console.html
   */
  'vue/no-console'?: Linter.RuleEntry<VueNoConsole>;
  /**
   * Disallow constant expressions in conditions in `<template>`
   * @see https://eslint.vuejs.org/rules/no-constant-condition.html
   */
  'vue/no-constant-condition'?: Linter.RuleEntry<VueNoConstantCondition>;
  /**
   * disallow custom modifiers on v-model used on the component
   * @see https://eslint.vuejs.org/rules/no-custom-modifiers-on-v-model.html
   */
  'vue/no-custom-modifiers-on-v-model'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated object declaration on data (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-data-object-declaration.html
   */
  'vue/no-deprecated-data-object-declaration'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated `$delete` and `$set` (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-delete-set.html
   */
  'vue/no-deprecated-delete-set'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated `destroyed` and `beforeDestroy` lifecycle hooks (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-destroyed-lifecycle.html
   */
  'vue/no-deprecated-destroyed-lifecycle'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated `$listeners` (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-dollar-listeners-api.html
   */
  'vue/no-deprecated-dollar-listeners-api'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated `$scopedSlots` (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-dollar-scopedslots-api.html
   */
  'vue/no-deprecated-dollar-scopedslots-api'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated events api (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-events-api.html
   */
  'vue/no-deprecated-events-api'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated filters syntax (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-filter.html
   */
  'vue/no-deprecated-filter'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated the `functional` template (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-functional-template.html
   */
  'vue/no-deprecated-functional-template'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated the `is` attribute on HTML elements (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-html-element-is.html
   */
  'vue/no-deprecated-html-element-is'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated `inline-template` attribute (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-inline-template.html
   */
  'vue/no-deprecated-inline-template'?: Linter.RuleEntry<[]>;
  /**
   * disallow deprecated `model` definition (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-model-definition.html
   */
  'vue/no-deprecated-model-definition'?: Linter.RuleEntry<VueNoDeprecatedModelDefinition>;
  /**
   * disallow deprecated `this` access in props default function (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-props-default-this.html
   */
  'vue/no-deprecated-props-default-this'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated `tag` property on `RouterLink` (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-router-link-tag-prop.html
   */
  'vue/no-deprecated-router-link-tag-prop'?: Linter.RuleEntry<VueNoDeprecatedRouterLinkTagProp>;
  /**
   * disallow deprecated `scope` attribute (in Vue.js 2.5.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-scope-attribute.html
   */
  'vue/no-deprecated-scope-attribute'?: Linter.RuleEntry<[]>;
  /**
   * disallow deprecated `slot` attribute (in Vue.js 2.6.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-slot-attribute.html
   */
  'vue/no-deprecated-slot-attribute'?: Linter.RuleEntry<VueNoDeprecatedSlotAttribute>;
  /**
   * disallow deprecated `slot-scope` attribute (in Vue.js 2.6.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-slot-scope-attribute.html
   */
  'vue/no-deprecated-slot-scope-attribute'?: Linter.RuleEntry<[]>;
  /**
   * disallow use of deprecated `.sync` modifier on `v-bind` directive (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-v-bind-sync.html
   */
  'vue/no-deprecated-v-bind-sync'?: Linter.RuleEntry<[]>;
  /**
   * disallow deprecated `v-is` directive (in Vue.js 3.1.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-v-is.html
   */
  'vue/no-deprecated-v-is'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated `.native` modifiers (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-v-on-native-modifier.html
   */
  'vue/no-deprecated-v-on-native-modifier'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated number (keycode) modifiers (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-v-on-number-modifiers.html
   */
  'vue/no-deprecated-v-on-number-modifiers'?: Linter.RuleEntry<[]>;
  /**
   * disallow using deprecated `Vue.config.keyCodes` (in Vue.js 3.0.0+)
   * @see https://eslint.vuejs.org/rules/no-deprecated-vue-config-keycodes.html
   */
  'vue/no-deprecated-vue-config-keycodes'?: Linter.RuleEntry<[]>;
  /**
   * disallow duplication of field names
   * @see https://eslint.vuejs.org/rules/no-dupe-keys.html
   */
  'vue/no-dupe-keys'?: Linter.RuleEntry<VueNoDupeKeys>;
  /**
   * disallow duplicate conditions in `v-if` / `v-else-if` chains
   * @see https://eslint.vuejs.org/rules/no-dupe-v-else-if.html
   */
  'vue/no-dupe-v-else-if'?: Linter.RuleEntry<[]>;
  /**
   * enforce `inheritAttrs` to be set to `false` when using `v-bind="$attrs"`
   * @see https://eslint.vuejs.org/rules/no-duplicate-attr-inheritance.html
   */
  'vue/no-duplicate-attr-inheritance'?: Linter.RuleEntry<VueNoDuplicateAttrInheritance>;
  /**
   * disallow duplication of attributes
   * @see https://eslint.vuejs.org/rules/no-duplicate-attributes.html
   */
  'vue/no-duplicate-attributes'?: Linter.RuleEntry<VueNoDuplicateAttributes>;
  /**
   * disallow duplication of class names in class attributes
   * @see https://eslint.vuejs.org/rules/no-duplicate-class-names.html
   */
  'vue/no-duplicate-class-names'?: Linter.RuleEntry<[]>;
  /**
   * disallow the `<template>` `<script>` `<style>` block to be empty
   * @see https://eslint.vuejs.org/rules/no-empty-component-block.html
   */
  'vue/no-empty-component-block'?: Linter.RuleEntry<[]>;
  /**
   * Disallow empty destructuring patterns in `<template>`
   * @see https://eslint.vuejs.org/rules/no-empty-pattern.html
   */
  'vue/no-empty-pattern'?: Linter.RuleEntry<VueNoEmptyPattern>;
  /**
   * disallow `export` in `<script setup>`
   * @see https://eslint.vuejs.org/rules/no-export-in-script-setup.html
   */
  'vue/no-export-in-script-setup'?: Linter.RuleEntry<[]>;
  /**
   * disallow asynchronously registered `expose`
   * @see https://eslint.vuejs.org/rules/no-expose-after-await.html
   */
  'vue/no-expose-after-await'?: Linter.RuleEntry<[]>;
  /**
   * Disallow unnecessary parentheses in `<template>`
   * @see https://eslint.vuejs.org/rules/no-extra-parens.html
   */
  'vue/no-extra-parens'?: Linter.RuleEntry<VueNoExtraParens>;
  /**
   * Disallow shorthand type conversions in `<template>`
   * @see https://eslint.vuejs.org/rules/no-implicit-coercion.html
   */
  'vue/no-implicit-coercion'?: Linter.RuleEntry<VueNoImplicitCoercion>;
  /**
   * disallow importing Vue compiler macros
   * @see https://eslint.vuejs.org/rules/no-import-compiler-macros.html
   */
  'vue/no-import-compiler-macros'?: Linter.RuleEntry<[]>;
  /**
   * disallow irregular whitespace in `.vue` files
   * @see https://eslint.vuejs.org/rules/no-irregular-whitespace.html
   */
  'vue/no-irregular-whitespace'?: Linter.RuleEntry<VueNoIrregularWhitespace>;
  /**
   * disallow asynchronously registered lifecycle hooks
   * @see https://eslint.vuejs.org/rules/no-lifecycle-after-await.html
   */
  'vue/no-lifecycle-after-await'?: Linter.RuleEntry<[]>;
  /**
   * disallow object, array, and function literals in template
   * @see https://eslint.vuejs.org/rules/no-literals-in-template.html
   */
  'vue/no-literals-in-template'?: Linter.RuleEntry<VueNoLiteralsInTemplate>;
  /**
   * disallow unnecessary `<template>`
   * @see https://eslint.vuejs.org/rules/no-lone-template.html
   */
  'vue/no-lone-template'?: Linter.RuleEntry<VueNoLoneTemplate>;
  /**
   * Disallow literal numbers that lose precision in `<template>`
   * @see https://eslint.vuejs.org/rules/no-loss-of-precision.html
   */
  'vue/no-loss-of-precision'?: Linter.RuleEntry<[]>;
  /**
   * disallow multiple spaces
   * @see https://eslint.vuejs.org/rules/no-multi-spaces.html
   */
  'vue/no-multi-spaces'?: Linter.RuleEntry<VueNoMultiSpaces>;
  /**
   * disallow passing multiple objects in an array to class
   * @see https://eslint.vuejs.org/rules/no-multiple-objects-in-class.html
   */
  'vue/no-multiple-objects-in-class'?: Linter.RuleEntry<[]>;
  /**
   * disallow passing multiple arguments to scoped slots
   * @see https://eslint.vuejs.org/rules/no-multiple-slot-args.html
   */
  'vue/no-multiple-slot-args'?: Linter.RuleEntry<[]>;
  /**
   * disallow adding multiple root nodes to the template
   * @see https://eslint.vuejs.org/rules/no-multiple-template-root.html
   */
  'vue/no-multiple-template-root'?: Linter.RuleEntry<VueNoMultipleTemplateRoot>;
  /**
   * disallow mutation of component props
   * @see https://eslint.vuejs.org/rules/no-mutating-props.html
   */
  'vue/no-mutating-props'?: Linter.RuleEntry<VueNoMutatingProps>;
  /**
   * Disallow negated conditions in `<template>`
   * @see https://eslint.vuejs.org/rules/no-negated-condition.html
   */
  'vue/no-negated-condition'?: Linter.RuleEntry<[]>;
  /**
   * disallow negated conditions in v-if/v-else
   * @see https://eslint.vuejs.org/rules/no-negated-v-if-condition.html
   */
  'vue/no-negated-v-if-condition'?: Linter.RuleEntry<[]>;
  /**
   * disallow parsing errors in `<template>`
   * @see https://eslint.vuejs.org/rules/no-parsing-error.html
   */
  'vue/no-parsing-error'?: Linter.RuleEntry<VueNoParsingError>;
  /**
   * disallow a potential typo in your component property
   * @see https://eslint.vuejs.org/rules/no-potential-component-option-typo.html
   */
  'vue/no-potential-component-option-typo'?: Linter.RuleEntry<VueNoPotentialComponentOptionTypo>;
  /**
   * disallow use of value wrapped by `ref()` (Composition API) as an operand
   * @see https://eslint.vuejs.org/rules/no-ref-as-operand.html
   */
  'vue/no-ref-as-operand'?: Linter.RuleEntry<[]>;
  /**
   * disallow usages of ref objects that can lead to loss of reactivity
   * @see https://eslint.vuejs.org/rules/no-ref-object-reactivity-loss.html
   */
  'vue/no-ref-object-reactivity-loss'?: Linter.RuleEntry<[]>;
  /**
   * enforce props with default values to be optional
   * @see https://eslint.vuejs.org/rules/no-required-prop-with-default.html
   */
  'vue/no-required-prop-with-default'?: Linter.RuleEntry<VueNoRequiredPropWithDefault>;
  /**
   * disallow the use of reserved names in component definitions
   * @see https://eslint.vuejs.org/rules/no-reserved-component-names.html
   */
  'vue/no-reserved-component-names'?: Linter.RuleEntry<VueNoReservedComponentNames>;
  /**
   * disallow overwriting reserved keys
   * @see https://eslint.vuejs.org/rules/no-reserved-keys.html
   */
  'vue/no-reserved-keys'?: Linter.RuleEntry<VueNoReservedKeys>;
  /**
   * disallow reserved names in props
   * @see https://eslint.vuejs.org/rules/no-reserved-props.html
   */
  'vue/no-reserved-props'?: Linter.RuleEntry<VueNoReservedProps>;
  /**
   * disallow specific block
   * @see https://eslint.vuejs.org/rules/no-restricted-block.html
   */
  'vue/no-restricted-block'?: Linter.RuleEntry<VueNoRestrictedBlock>;
  /**
   * disallow asynchronously called restricted methods
   * @see https://eslint.vuejs.org/rules/no-restricted-call-after-await.html
   */
  'vue/no-restricted-call-after-await'?: Linter.RuleEntry<VueNoRestrictedCallAfterAwait>;
  /**
   * disallow specific classes in Vue components
   * @see https://eslint.vuejs.org/rules/no-restricted-class.html
   */
  'vue/no-restricted-class'?: Linter.RuleEntry<VueNoRestrictedClass>;
  /**
   * disallow specific component names
   * @see https://eslint.vuejs.org/rules/no-restricted-component-names.html
   */
  'vue/no-restricted-component-names'?: Linter.RuleEntry<VueNoRestrictedComponentNames>;
  /**
   * disallow specific component option
   * @see https://eslint.vuejs.org/rules/no-restricted-component-options.html
   */
  'vue/no-restricted-component-options'?: Linter.RuleEntry<VueNoRestrictedComponentOptions>;
  /**
   * disallow specific custom event
   * @see https://eslint.vuejs.org/rules/no-restricted-custom-event.html
   */
  'vue/no-restricted-custom-event'?: Linter.RuleEntry<VueNoRestrictedCustomEvent>;
  /**
   * disallow specific elements
   * @see https://eslint.vuejs.org/rules/no-restricted-html-elements.html
   */
  'vue/no-restricted-html-elements'?: Linter.RuleEntry<VueNoRestrictedHtmlElements>;
  /**
   * disallow specific props
   * @see https://eslint.vuejs.org/rules/no-restricted-props.html
   */
  'vue/no-restricted-props'?: Linter.RuleEntry<VueNoRestrictedProps>;
  /**
   * disallow specific attribute
   * @see https://eslint.vuejs.org/rules/no-restricted-static-attribute.html
   */
  'vue/no-restricted-static-attribute'?: Linter.RuleEntry<VueNoRestrictedStaticAttribute>;
  /**
   * Disallow specified syntax in `<template>`
   * @see https://eslint.vuejs.org/rules/no-restricted-syntax.html
   */
  'vue/no-restricted-syntax'?: Linter.RuleEntry<VueNoRestrictedSyntax>;
  /**
   * disallow specific argument in `v-bind`
   * @see https://eslint.vuejs.org/rules/no-restricted-v-bind.html
   */
  'vue/no-restricted-v-bind'?: Linter.RuleEntry<VueNoRestrictedVBind>;
  /**
   * disallow specific argument in `v-on`
   * @see https://eslint.vuejs.org/rules/no-restricted-v-on.html
   */
  'vue/no-restricted-v-on'?: Linter.RuleEntry<VueNoRestrictedVOn>;
  /**
   * disallow `v-if` directives on root element
   * @see https://eslint.vuejs.org/rules/no-root-v-if.html
   */
  'vue/no-root-v-if'?: Linter.RuleEntry<[]>;
  /**
   * disallow usages that lose the reactivity of `props` passed to `setup`
   * @see https://eslint.vuejs.org/rules/no-setup-props-reactivity-loss.html
   */
  'vue/no-setup-props-reactivity-loss'?: Linter.RuleEntry<[]>;
  /**
   * enforce component's data property to be a function
   * @see https://eslint.vuejs.org/rules/no-shared-component-data.html
   */
  'vue/no-shared-component-data'?: Linter.RuleEntry<[]>;
  /**
   * disallow side effects in computed properties
   * @see https://eslint.vuejs.org/rules/no-side-effects-in-computed-properties.html
   */
  'vue/no-side-effects-in-computed-properties'?: Linter.RuleEntry<[]>;
  /**
   * disallow spaces around equal signs in attribute
   * @see https://eslint.vuejs.org/rules/no-spaces-around-equal-signs-in-attribute.html
   */
  'vue/no-spaces-around-equal-signs-in-attribute'?: Linter.RuleEntry<[]>;
  /**
   * Disallow sparse arrays in `<template>`
   * @see https://eslint.vuejs.org/rules/no-sparse-arrays.html
   */
  'vue/no-sparse-arrays'?: Linter.RuleEntry<[]>;
  /**
   * disallow static inline `style` attributes
   * @see https://eslint.vuejs.org/rules/no-static-inline-styles.html
   */
  'vue/no-static-inline-styles'?: Linter.RuleEntry<VueNoStaticInlineStyles>;
  /**
   * disallow `key` attribute on `<template>`
   * @see https://eslint.vuejs.org/rules/no-template-key.html
   */
  'vue/no-template-key'?: Linter.RuleEntry<[]>;
  /**
   * disallow variable declarations from shadowing variables declared in the outer scope
   * @see https://eslint.vuejs.org/rules/no-template-shadow.html
   */
  'vue/no-template-shadow'?: Linter.RuleEntry<VueNoTemplateShadow>;
  /**
   * disallow target="_blank" attribute without rel="noopener noreferrer"
   * @see https://eslint.vuejs.org/rules/no-template-target-blank.html
   */
  'vue/no-template-target-blank'?: Linter.RuleEntry<VueNoTemplateTargetBlank>;
  /**
   * disallow mustaches in `<textarea>`
   * @see https://eslint.vuejs.org/rules/no-textarea-mustache.html
   */
  'vue/no-textarea-mustache'?: Linter.RuleEntry<[]>;
  /**
   * disallow `this` usage in a `beforeRouteEnter` method
   * @see https://eslint.vuejs.org/rules/no-this-in-before-route-enter.html
   */
  'vue/no-this-in-before-route-enter'?: Linter.RuleEntry<[]>;
  /**
   * disallow use of undefined components in `<template>`
   * @see https://eslint.vuejs.org/rules/no-undef-components.html
   */
  'vue/no-undef-components'?: Linter.RuleEntry<VueNoUndefComponents>;
  /**
   * disallow use of undefined custom directives
   * @see https://eslint.vuejs.org/rules/no-undef-directives.html
   */
  'vue/no-undef-directives'?: Linter.RuleEntry<VueNoUndefDirectives>;
  /**
   * disallow undefined properties
   * @see https://eslint.vuejs.org/rules/no-undef-properties.html
   */
  'vue/no-undef-properties'?: Linter.RuleEntry<VueNoUndefProperties>;
  /**
   * disallow unsupported Vue.js syntax on the specified version
   * @see https://eslint.vuejs.org/rules/no-unsupported-features.html
   */
  'vue/no-unsupported-features'?: Linter.RuleEntry<VueNoUnsupportedFeatures>;
  /**
   * disallow registering components that are not used inside templates
   * @see https://eslint.vuejs.org/rules/no-unused-components.html
   */
  'vue/no-unused-components'?: Linter.RuleEntry<VueNoUnusedComponents>;
  /**
   * disallow unused emit declarations
   * @see https://eslint.vuejs.org/rules/no-unused-emit-declarations.html
   */
  'vue/no-unused-emit-declarations'?: Linter.RuleEntry<[]>;
  /**
   * disallow unused properties
   * @see https://eslint.vuejs.org/rules/no-unused-properties.html
   */
  'vue/no-unused-properties'?: Linter.RuleEntry<VueNoUnusedProperties>;
  /**
   * disallow unused refs
   * @see https://eslint.vuejs.org/rules/no-unused-refs.html
   */
  'vue/no-unused-refs'?: Linter.RuleEntry<[]>;
  /**
   * disallow unused variable definitions of v-for directives or scope attributes
   * @see https://eslint.vuejs.org/rules/no-unused-vars.html
   */
  'vue/no-unused-vars'?: Linter.RuleEntry<VueNoUnusedVars>;
  /**
   * disallow use computed property like method
   * @see https://eslint.vuejs.org/rules/no-use-computed-property-like-method.html
   */
  'vue/no-use-computed-property-like-method'?: Linter.RuleEntry<[]>;
  /**
   * disallow using `v-else-if`/`v-else` on the same element as `v-for`
   * @see https://eslint.vuejs.org/rules/no-use-v-else-with-v-for.html
   */
  'vue/no-use-v-else-with-v-for'?: Linter.RuleEntry<[]>;
  /**
   * disallow using `v-if` on the same element as `v-for`
   * @see https://eslint.vuejs.org/rules/no-use-v-if-with-v-for.html
   */
  'vue/no-use-v-if-with-v-for'?: Linter.RuleEntry<VueNoUseVIfWithVFor>;
  /**
   * Disallow unnecessary concatenation of literals or template literals in `<template>`
   * @see https://eslint.vuejs.org/rules/no-useless-concat.html
   */
  'vue/no-useless-concat'?: Linter.RuleEntry<[]>;
  /**
   * disallow unnecessary mustache interpolations
   * @see https://eslint.vuejs.org/rules/no-useless-mustaches.html
   */
  'vue/no-useless-mustaches'?: Linter.RuleEntry<VueNoUselessMustaches>;
  /**
   * disallow useless attribute on `<template>`
   * @see https://eslint.vuejs.org/rules/no-useless-template-attributes.html
   */
  'vue/no-useless-template-attributes'?: Linter.RuleEntry<[]>;
  /**
   * disallow unnecessary `v-bind` directives
   * @see https://eslint.vuejs.org/rules/no-useless-v-bind.html
   */
  'vue/no-useless-v-bind'?: Linter.RuleEntry<VueNoUselessVBind>;
  /**
   * disallow `key` attribute on `<template v-for>`
   * @see https://eslint.vuejs.org/rules/no-v-for-template-key.html
   * @deprecated
   */
  'vue/no-v-for-template-key'?: Linter.RuleEntry<[]>;
  /**
   * disallow key of `<template v-for>` placed on child elements
   * @see https://eslint.vuejs.org/rules/no-v-for-template-key-on-child.html
   */
  'vue/no-v-for-template-key-on-child'?: Linter.RuleEntry<[]>;
  /**
   * disallow use of v-html to prevent XSS attack
   * @see https://eslint.vuejs.org/rules/no-v-html.html
   */
  'vue/no-v-html'?: Linter.RuleEntry<VueNoVHtml>;
  /**
   * disallow adding an argument to `v-model` used in custom component
   * @see https://eslint.vuejs.org/rules/no-v-model-argument.html
   * @deprecated
   */
  'vue/no-v-model-argument'?: Linter.RuleEntry<[]>;
  /**
   * disallow use of v-text
   * @see https://eslint.vuejs.org/rules/no-v-text.html
   */
  'vue/no-v-text'?: Linter.RuleEntry<[]>;
  /**
   * disallow v-text / v-html on component
   * @see https://eslint.vuejs.org/rules/no-v-text-v-html-on-component.html
   */
  'vue/no-v-text-v-html-on-component'?: Linter.RuleEntry<VueNoVTextVHtmlOnComponent>;
  /**
   * disallow asynchronously registered `watch`
   * @see https://eslint.vuejs.org/rules/no-watch-after-await.html
   */
  'vue/no-watch-after-await'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent line breaks after opening and before closing braces in `<template>`
   * @see https://eslint.vuejs.org/rules/object-curly-newline.html
   */
  'vue/object-curly-newline'?: Linter.RuleEntry<VueObjectCurlyNewline>;
  /**
   * Enforce consistent spacing inside braces in `<template>`
   * @see https://eslint.vuejs.org/rules/object-curly-spacing.html
   */
  'vue/object-curly-spacing'?: Linter.RuleEntry<VueObjectCurlySpacing>;
  /**
   * Enforce placing object properties on separate lines in `<template>`
   * @see https://eslint.vuejs.org/rules/object-property-newline.html
   */
  'vue/object-property-newline'?: Linter.RuleEntry<VueObjectPropertyNewline>;
  /**
   * Require or disallow method and property shorthand syntax for object literals in `<template>`
   * @see https://eslint.vuejs.org/rules/object-shorthand.html
   */
  'vue/object-shorthand'?: Linter.RuleEntry<VueObjectShorthand>;
  /**
   * enforce that each component should be in its own file
   * @see https://eslint.vuejs.org/rules/one-component-per-file.html
   */
  'vue/one-component-per-file'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent linebreak style for operators in `<template>`
   * @see https://eslint.vuejs.org/rules/operator-linebreak.html
   */
  'vue/operator-linebreak'?: Linter.RuleEntry<VueOperatorLinebreak>;
  /**
   * enforce order of properties in components
   * @see https://eslint.vuejs.org/rules/order-in-components.html
   */
  'vue/order-in-components'?: Linter.RuleEntry<VueOrderInComponents>;
  /**
   * require or disallow padding lines between blocks
   * @see https://eslint.vuejs.org/rules/padding-line-between-blocks.html
   */
  'vue/padding-line-between-blocks'?: Linter.RuleEntry<VuePaddingLineBetweenBlocks>;
  /**
   * require or disallow newlines between sibling tags in template
   * @see https://eslint.vuejs.org/rules/padding-line-between-tags.html
   */
  'vue/padding-line-between-tags'?: Linter.RuleEntry<VuePaddingLineBetweenTags>;
  /**
   * require or disallow padding lines in component definition
   * @see https://eslint.vuejs.org/rules/padding-lines-in-component-definition.html
   */
  'vue/padding-lines-in-component-definition'?: Linter.RuleEntry<VuePaddingLinesInComponentDefinition>;
  /**
   * enforce use of `defineOptions` instead of default export
   * @see https://eslint.vuejs.org/rules/prefer-define-options.html
   */
  'vue/prefer-define-options'?: Linter.RuleEntry<[]>;
  /**
   * enforce import from 'vue' instead of import from '@vue/*'
   * @see https://eslint.vuejs.org/rules/prefer-import-from-vue.html
   */
  'vue/prefer-import-from-vue'?: Linter.RuleEntry<[]>;
  /**
   * enforce `Boolean` comes first in component prop types
   * @see https://eslint.vuejs.org/rules/prefer-prop-type-boolean-first.html
   */
  'vue/prefer-prop-type-boolean-first'?: Linter.RuleEntry<[]>;
  /**
   * require static class names in template to be in a separate `class` attribute
   * @see https://eslint.vuejs.org/rules/prefer-separate-static-class.html
   */
  'vue/prefer-separate-static-class'?: Linter.RuleEntry<[]>;
  /**
   * enforce passing a single argument to custom event emissions
   * @see https://eslint.vuejs.org/rules/prefer-single-event-payload.html
   */
  'vue/prefer-single-event-payload'?: Linter.RuleEntry<[]>;
  /**
   * Require template literals instead of string concatenation in `<template>`
   * @see https://eslint.vuejs.org/rules/prefer-template.html
   */
  'vue/prefer-template'?: Linter.RuleEntry<[]>;
  /**
   * require shorthand form attribute when `v-bind` value is `true`
   * @see https://eslint.vuejs.org/rules/prefer-true-attribute-shorthand.html
   */
  'vue/prefer-true-attribute-shorthand'?: Linter.RuleEntry<VuePreferTrueAttributeShorthand>;
  /**
   * require using `useTemplateRef` instead of `ref`/`shallowRef` for template refs
   * @see https://eslint.vuejs.org/rules/prefer-use-template-ref.html
   */
  'vue/prefer-use-template-ref'?: Linter.RuleEntry<[]>;
  /**
   * enforce using `v-model` instead of `:prop`/`@update:prop` pair
   * @see https://eslint.vuejs.org/rules/prefer-v-model.html
   */
  'vue/prefer-v-model'?: Linter.RuleEntry<[]>;
  /**
   * enforce specific casing for the Prop name in Vue components
   * @see https://eslint.vuejs.org/rules/prop-name-casing.html
   */
  'vue/prop-name-casing'?: Linter.RuleEntry<VuePropNameCasing>;
  /**
   * Require quotes around object literal, type literal, interfaces and enums property names in `<template>`
   * @see https://eslint.vuejs.org/rules/quote-props.html
   */
  'vue/quote-props'?: Linter.RuleEntry<VueQuoteProps>;
  /**
   * require `v-bind:is` of `<component>` elements
   * @see https://eslint.vuejs.org/rules/require-component-is.html
   */
  'vue/require-component-is'?: Linter.RuleEntry<[]>;
  /**
   * require components to be the default export
   * @see https://eslint.vuejs.org/rules/require-default-export.html
   */
  'vue/require-default-export'?: Linter.RuleEntry<[]>;
  /**
   * require default value for props
   * @see https://eslint.vuejs.org/rules/require-default-prop.html
   */
  'vue/require-default-prop'?: Linter.RuleEntry<[]>;
  /**
   * require the component to be directly exported
   * @see https://eslint.vuejs.org/rules/require-direct-export.html
   */
  'vue/require-direct-export'?: Linter.RuleEntry<VueRequireDirectExport>;
  /**
   * require type definitions in emits
   * @see https://eslint.vuejs.org/rules/require-emit-validator.html
   */
  'vue/require-emit-validator'?: Linter.RuleEntry<[]>;
  /**
   * require `emits` option with name triggered by `$emit()`
   * @see https://eslint.vuejs.org/rules/require-explicit-emits.html
   */
  'vue/require-explicit-emits'?: Linter.RuleEntry<VueRequireExplicitEmits>;
  /**
   * require slots to be explicitly defined
   * @see https://eslint.vuejs.org/rules/require-explicit-slots.html
   */
  'vue/require-explicit-slots'?: Linter.RuleEntry<[]>;
  /**
   * require declare public properties using `expose`
   * @see https://eslint.vuejs.org/rules/require-expose.html
   */
  'vue/require-expose'?: Linter.RuleEntry<[]>;
  /**
   * require a certain macro variable name
   * @see https://eslint.vuejs.org/rules/require-macro-variable-name.html
   */
  'vue/require-macro-variable-name'?: Linter.RuleEntry<VueRequireMacroVariableName>;
  /**
   * require a name property in Vue components
   * @see https://eslint.vuejs.org/rules/require-name-property.html
   */
  'vue/require-name-property'?: Linter.RuleEntry<[]>;
  /**
   * require props to have a comment
   * @see https://eslint.vuejs.org/rules/require-prop-comment.html
   */
  'vue/require-prop-comment'?: Linter.RuleEntry<VueRequirePropComment>;
  /**
   * require prop type to be a constructor
   * @see https://eslint.vuejs.org/rules/require-prop-type-constructor.html
   */
  'vue/require-prop-type-constructor'?: Linter.RuleEntry<[]>;
  /**
   * require type definitions in props
   * @see https://eslint.vuejs.org/rules/require-prop-types.html
   */
  'vue/require-prop-types'?: Linter.RuleEntry<[]>;
  /**
   * enforce render function to always return value
   * @see https://eslint.vuejs.org/rules/require-render-return.html
   */
  'vue/require-render-return'?: Linter.RuleEntry<[]>;
  /**
   * enforce properties of `$slots` to be used as a function
   * @see https://eslint.vuejs.org/rules/require-slots-as-functions.html
   */
  'vue/require-slots-as-functions'?: Linter.RuleEntry<[]>;
  /**
   * require control the display of the content inside `<transition>`
   * @see https://eslint.vuejs.org/rules/require-toggle-inside-transition.html
   */
  'vue/require-toggle-inside-transition'?: Linter.RuleEntry<VueRequireToggleInsideTransition>;
  /**
   * enforce adding type declarations to object props
   * @see https://eslint.vuejs.org/rules/require-typed-object-prop.html
   */
  'vue/require-typed-object-prop'?: Linter.RuleEntry<[]>;
  /**
   * require `ref` and `shallowRef` functions to be strongly typed
   * @see https://eslint.vuejs.org/rules/require-typed-ref.html
   */
  'vue/require-typed-ref'?: Linter.RuleEntry<[]>;
  /**
   * require `v-bind:key` with `v-for` directives
   * @see https://eslint.vuejs.org/rules/require-v-for-key.html
   */
  'vue/require-v-for-key'?: Linter.RuleEntry<[]>;
  /**
   * enforce props default values to be valid
   * @see https://eslint.vuejs.org/rules/require-valid-default-prop.html
   */
  'vue/require-valid-default-prop'?: Linter.RuleEntry<[]>;
  /**
   * enforce using only specific component names
   * @see https://eslint.vuejs.org/rules/restricted-component-names.html
   */
  'vue/restricted-component-names'?: Linter.RuleEntry<VueRestrictedComponentNames>;
  /**
   * enforce that a return statement is present in computed property
   * @see https://eslint.vuejs.org/rules/return-in-computed-property.html
   */
  'vue/return-in-computed-property'?: Linter.RuleEntry<VueReturnInComputedProperty>;
  /**
   * enforce that a return statement is present in emits validator
   * @see https://eslint.vuejs.org/rules/return-in-emits-validator.html
   */
  'vue/return-in-emits-validator'?: Linter.RuleEntry<[]>;
  /**
   * enforce consistent indentation in `<script>`
   * @see https://eslint.vuejs.org/rules/script-indent.html
   */
  'vue/script-indent'?: Linter.RuleEntry<VueScriptIndent>;
  /**
   * require a line break before and after the contents of a singleline element
   * @see https://eslint.vuejs.org/rules/singleline-html-element-content-newline.html
   */
  'vue/singleline-html-element-content-newline'?: Linter.RuleEntry<VueSinglelineHtmlElementContentNewline>;
  /**
   * enforce specific casing for slot names
   * @see https://eslint.vuejs.org/rules/slot-name-casing.html
   */
  'vue/slot-name-casing'?: Linter.RuleEntry<VueSlotNameCasing>;
  /**
   * enforce sort-keys in a manner that is compatible with order-in-components
   * @see https://eslint.vuejs.org/rules/sort-keys.html
   */
  'vue/sort-keys'?: Linter.RuleEntry<VueSortKeys>;
  /**
   * Enforce consistent spacing inside parentheses in `<template>`
   * @see https://eslint.vuejs.org/rules/space-in-parens.html
   */
  'vue/space-in-parens'?: Linter.RuleEntry<VueSpaceInParens>;
  /**
   * Require spacing around infix operators in `<template>`
   * @see https://eslint.vuejs.org/rules/space-infix-ops.html
   */
  'vue/space-infix-ops'?: Linter.RuleEntry<VueSpaceInfixOps>;
  /**
   * Enforce consistent spacing before or after unary operators in `<template>`
   * @see https://eslint.vuejs.org/rules/space-unary-ops.html
   */
  'vue/space-unary-ops'?: Linter.RuleEntry<VueSpaceUnaryOps>;
  /**
   * enforce static class names order
   * @see https://eslint.vuejs.org/rules/static-class-names-order.html
   */
  'vue/static-class-names-order'?: Linter.RuleEntry<[]>;
  /**
   * Require or disallow spacing around embedded expressions of template strings in `<template>`
   * @see https://eslint.vuejs.org/rules/template-curly-spacing.html
   */
  'vue/template-curly-spacing'?: Linter.RuleEntry<VueTemplateCurlySpacing>;
  /**
   * disallow usage of `this` in template
   * @see https://eslint.vuejs.org/rules/this-in-template.html
   */
  'vue/this-in-template'?: Linter.RuleEntry<VueThisInTemplate>;
  /**
   * enforce usage of `exact` modifier on `v-on`
   * @see https://eslint.vuejs.org/rules/use-v-on-exact.html
   */
  'vue/use-v-on-exact'?: Linter.RuleEntry<[]>;
  /**
   * enforce `v-bind` directive style
   * @see https://eslint.vuejs.org/rules/v-bind-style.html
   */
  'vue/v-bind-style'?: Linter.RuleEntry<VueVBindStyle>;
  /**
   * enforce `v-for` directive's delimiter style
   * @see https://eslint.vuejs.org/rules/v-for-delimiter-style.html
   */
  'vue/v-for-delimiter-style'?: Linter.RuleEntry<VueVForDelimiterStyle>;
  /**
   * require key attribute for conditionally rendered repeated components
   * @see https://eslint.vuejs.org/rules/v-if-else-key.html
   */
  'vue/v-if-else-key'?: Linter.RuleEntry<[]>;
  /**
   * enforce v-on event naming style on custom components in template
   * @see https://eslint.vuejs.org/rules/v-on-event-hyphenation.html
   */
  'vue/v-on-event-hyphenation'?: Linter.RuleEntry<VueVOnEventHyphenation>;
  /**
   * enforce writing style for handlers in `v-on` directives
   * @see https://eslint.vuejs.org/rules/v-on-handler-style.html
   */
  'vue/v-on-handler-style'?: Linter.RuleEntry<VueVOnHandlerStyle>;
  /**
   * enforce `v-on` directive style
   * @see https://eslint.vuejs.org/rules/v-on-style.html
   */
  'vue/v-on-style'?: Linter.RuleEntry<VueVOnStyle>;
  /**
   * enforce `v-slot` directive style
   * @see https://eslint.vuejs.org/rules/v-slot-style.html
   */
  'vue/v-slot-style'?: Linter.RuleEntry<VueVSlotStyle>;
  /**
   * require valid attribute names
   * @see https://eslint.vuejs.org/rules/valid-attribute-name.html
   */
  'vue/valid-attribute-name'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `defineEmits` compiler macro
   * @see https://eslint.vuejs.org/rules/valid-define-emits.html
   */
  'vue/valid-define-emits'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `defineOptions` compiler macro
   * @see https://eslint.vuejs.org/rules/valid-define-options.html
   */
  'vue/valid-define-options'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `defineProps` compiler macro
   * @see https://eslint.vuejs.org/rules/valid-define-props.html
   */
  'vue/valid-define-props'?: Linter.RuleEntry<[]>;
  /**
   * require valid keys in model option
   * @see https://eslint.vuejs.org/rules/valid-model-definition.html
   * @deprecated
   */
  'vue/valid-model-definition'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `nextTick` function calls
   * @see https://eslint.vuejs.org/rules/valid-next-tick.html
   */
  'vue/valid-next-tick'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid template root
   * @see https://eslint.vuejs.org/rules/valid-template-root.html
   */
  'vue/valid-template-root'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `v-bind` directives
   * @see https://eslint.vuejs.org/rules/valid-v-bind.html
   */
  'vue/valid-v-bind'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `.sync` modifier on `v-bind` directives
   * @see https://eslint.vuejs.org/rules/valid-v-bind-sync.html
   * @deprecated
   */
  'vue/valid-v-bind-sync'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `v-cloak` directives
   * @see https://eslint.vuejs.org/rules/valid-v-cloak.html
   */
  'vue/valid-v-cloak'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `v-else` directives
   * @see https://eslint.vuejs.org/rules/valid-v-else.html
   */
  'vue/valid-v-else'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `v-else-if` directives
   * @see https://eslint.vuejs.org/rules/valid-v-else-if.html
   */
  'vue/valid-v-else-if'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `v-for` directives
   * @see https://eslint.vuejs.org/rules/valid-v-for.html
   */
  'vue/valid-v-for'?: Linter.RuleEntry<VueValidVFor>;
  /**
   * enforce valid `v-html` directives
   * @see https://eslint.vuejs.org/rules/valid-v-html.html
   */
  'vue/valid-v-html'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `v-if` directives
   * @see https://eslint.vuejs.org/rules/valid-v-if.html
   */
  'vue/valid-v-if'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `v-is` directives
   * @see https://eslint.vuejs.org/rules/valid-v-is.html
   */
  'vue/valid-v-is'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `v-memo` directives
   * @see https://eslint.vuejs.org/rules/valid-v-memo.html
   */
  'vue/valid-v-memo'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `v-model` directives
   * @see https://eslint.vuejs.org/rules/valid-v-model.html
   */
  'vue/valid-v-model'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `v-on` directives
   * @see https://eslint.vuejs.org/rules/valid-v-on.html
   */
  'vue/valid-v-on'?: Linter.RuleEntry<VueValidVOn>;
  /**
   * enforce valid `v-once` directives
   * @see https://eslint.vuejs.org/rules/valid-v-once.html
   */
  'vue/valid-v-once'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `v-pre` directives
   * @see https://eslint.vuejs.org/rules/valid-v-pre.html
   */
  'vue/valid-v-pre'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `v-show` directives
   * @see https://eslint.vuejs.org/rules/valid-v-show.html
   */
  'vue/valid-v-show'?: Linter.RuleEntry<[]>;
  /**
   * enforce valid `v-slot` directives
   * @see https://eslint.vuejs.org/rules/valid-v-slot.html
   */
  'vue/valid-v-slot'?: Linter.RuleEntry<VueValidVSlot>;
  /**
   * enforce valid `v-text` directives
   * @see https://eslint.vuejs.org/rules/valid-v-text.html
   */
  'vue/valid-v-text'?: Linter.RuleEntry<[]>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/alt-text.html
   */
  'vuejs-accessibility/alt-text'?: Linter.RuleEntry<VuejsAccessibilityAltText>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/anchor-has-content.html
   */
  'vuejs-accessibility/anchor-has-content'?: Linter.RuleEntry<VuejsAccessibilityAnchorHasContent>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-props.html
   */
  'vuejs-accessibility/aria-props'?: Linter.RuleEntry<[]>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-role.html
   */
  'vuejs-accessibility/aria-role'?: Linter.RuleEntry<VuejsAccessibilityAriaRole>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-unsupported-elements.html
   */
  'vuejs-accessibility/aria-unsupported-elements'?: Linter.RuleEntry<[]>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/click-events-have-key-events.html
   */
  'vuejs-accessibility/click-events-have-key-events'?: Linter.RuleEntry<[]>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/form-control-has-label.html
   */
  'vuejs-accessibility/form-control-has-label'?: Linter.RuleEntry<VuejsAccessibilityFormControlHasLabel>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/heading-has-content.html
   */
  'vuejs-accessibility/heading-has-content'?: Linter.RuleEntry<VuejsAccessibilityHeadingHasContent>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/iframe-has-title.html
   */
  'vuejs-accessibility/iframe-has-title'?: Linter.RuleEntry<[]>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/interactive-supports-focus.html
   */
  'vuejs-accessibility/interactive-supports-focus'?: Linter.RuleEntry<VuejsAccessibilityInteractiveSupportsFocus>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/label-has-for.html
   */
  'vuejs-accessibility/label-has-for'?: Linter.RuleEntry<VuejsAccessibilityLabelHasFor>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/media-has-caption.html
   */
  'vuejs-accessibility/media-has-caption'?: Linter.RuleEntry<VuejsAccessibilityMediaHasCaption>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/mouse-events-have-key-events.html
   */
  'vuejs-accessibility/mouse-events-have-key-events'?: Linter.RuleEntry<[]>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-access-key.html
   */
  'vuejs-accessibility/no-access-key'?: Linter.RuleEntry<[]>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-aria-hidden-on-focusable.html
   */
  'vuejs-accessibility/no-aria-hidden-on-focusable'?: Linter.RuleEntry<[]>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-autofocus.html
   */
  'vuejs-accessibility/no-autofocus'?: Linter.RuleEntry<VuejsAccessibilityNoAutofocus>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-distracting-elements.html
   */
  'vuejs-accessibility/no-distracting-elements'?: Linter.RuleEntry<VuejsAccessibilityNoDistractingElements>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-onchange.html
   * @deprecated
   */
  'vuejs-accessibility/no-onchange'?: Linter.RuleEntry<[]>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-redundant-roles.html
   */
  'vuejs-accessibility/no-redundant-roles'?: Linter.RuleEntry<VuejsAccessibilityNoRedundantRoles>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-role-presentation-on-focusable.html
   */
  'vuejs-accessibility/no-role-presentation-on-focusable'?: Linter.RuleEntry<[]>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-static-element-interactions.html
   */
  'vuejs-accessibility/no-static-element-interactions'?: Linter.RuleEntry<[]>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/role-has-required-aria-props.html
   */
  'vuejs-accessibility/role-has-required-aria-props'?: Linter.RuleEntry<[]>;
  /**
   * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/tabindex-no-positive.html
   */
  'vuejs-accessibility/tabindex-no-positive'?: Linter.RuleEntry<[]>;
  /**
   * Require parentheses around immediate `function` invocations
   * @see https://eslint.org/docs/latest/rules/wrap-iife
   * @deprecated
   */
  'wrap-iife'?: Linter.RuleEntry<WrapIife>;
  /**
   * Require parenthesis around regex literals
   * @see https://eslint.org/docs/latest/rules/wrap-regex
   * @deprecated
   */
  'wrap-regex'?: Linter.RuleEntry<[]>;
  /**
   * Require or disallow spacing around the `*` in `yield*` expressions
   * @see https://eslint.org/docs/latest/rules/yield-star-spacing
   * @deprecated
   */
  'yield-star-spacing'?: Linter.RuleEntry<YieldStarSpacing>;
  /**
   * Require or disallow "Yoda" conditions
   * @see https://eslint.org/docs/latest/rules/yoda
   */
  'yoda'?: Linter.RuleEntry<Yoda>;
  /**
   * Enforce a consistent import style for Zod Mini
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/consistent-import.md
   */
  'zod-mini/consistent-import'?: Linter.RuleEntry<ZodMiniConsistentImport>;
  /**
   * Enforce consistent source from Zod Mini imports
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/consistent-import-source.md
   */
  'zod-mini/consistent-import-source'?: Linter.RuleEntry<ZodMiniConsistentImportSource>;
  /**
   * Enforce consistent usage of Zod Mini schema methods
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/consistent-object-schema-type.md
   */
  'zod-mini/consistent-object-schema-type'?: Linter.RuleEntry<ZodMiniConsistentObjectSchemaType>;
  /**
   * 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-mini/docs/rules/consistent-schema-output-type-style.md
   */
  'zod-mini/consistent-schema-output-type-style'?: Linter.RuleEntry<ZodMiniConsistentSchemaOutputTypeStyle>;
  /**
   * Enforce a consistent naming convention for Zod Mini schema variables
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/consistent-schema-var-name.md
   */
  'zod-mini/consistent-schema-var-name'?: Linter.RuleEntry<ZodMiniConsistentSchemaVarName>;
  /**
   * Disallow usage of `z.any()` in Zod Mini schemas
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/no-any-schema.md
   */
  'zod-mini/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-mini/docs/rules/no-coerce-boolean.md
   */
  'zod-mini/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-mini/docs/rules/no-conflicting-checks.md
   */
  'zod-mini/no-conflicting-checks'?: Linter.RuleEntry<ZodMiniNoConflictingChecks>;
  /**
   * 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-mini/docs/rules/no-duplicate-schema-methods.md
   */
  'zod-mini/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-mini/docs/rules/no-empty-custom-schema.md
   */
  'zod-mini/no-empty-custom-schema'?: Linter.RuleEntry<[]>;
  /**
   * Disallow throwing errors directly inside Zod Mini refine callbacks
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/no-throw-in-refine.md
   */
  'zod-mini/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-mini/docs/rules/no-transform-in-record-key.md
   */
  'zod-mini/no-transform-in-record-key'?: Linter.RuleEntry<[]>;
  /**
   * Disallow usage of `z.unknown()` in Zod Mini schemas
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/no-unknown-schema.md
   */
  'zod-mini/no-unknown-schema'?: Linter.RuleEntry<[]>;
  /**
   * Disallow `z.readonly()` on schemas whose output is already immutable
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/no-unnecessary-readonly.md
   */
  'zod-mini/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-mini/docs/rules/prefer-enum-over-literal-union.md
   */
  'zod-mini/prefer-enum-over-literal-union'?: Linter.RuleEntry<[]>;
  /**
   * Enforce usage of `z.meta()` over `z.describe()`
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/prefer-meta.md
   */
  'zod-mini/prefer-meta'?: Linter.RuleEntry<[]>;
  /**
   * Enforce `z.nullish()` instead of combining `z.optional()` and `z.nullable()`
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/prefer-nullish.md
   */
  'zod-mini/prefer-nullish'?: 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-mini/docs/rules/prefer-tuple-over-array-length.md
   */
  'zod-mini/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-mini/docs/rules/require-brand-type-parameter.md
   */
  'zod-mini/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-mini/docs/rules/require-error-message.md
   */
  'zod-mini/require-error-message'?: Linter.RuleEntry<[]>;
  /**
   * Enforce consistent style for error messages in Zod Mini schema validation (using ESQuery patterns)
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/schema-error-property-style.md
   */
  'zod-mini/schema-error-property-style'?: Linter.RuleEntry<ZodMiniSchemaErrorPropertyStyle>;
  /**
   * 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<[]>;
  /**
   * Enforce `.nullish()` instead of combining `.optional()` and `.nullable()`
   * @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/prefer-nullish.md
   */
  'zod/prefer-nullish'?: 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 ======= */
// ----- @eslint-react/dom-no-unknown-property -----
type EslintReactDomNoUnknownProperty = [] | [{
  ignore?: string[];
  requireDataLowercase?: boolean;
}];
// ----- @eslint-react/exhaustive-deps -----
type EslintReactExhaustiveDeps = [] | [{
  additionalHooks?: string;
  enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean;
  experimental_autoDependenciesHooks?: string[];
  requireExplicitEffectDeps?: boolean;
}];
// ----- @eslint-react/jsx-no-useless-fragment -----
type EslintReactJsxNoUselessFragment = [] | [{
  allowEmptyFragment?: boolean;
  allowExpressions?: boolean;
}];
// ----- @eslint-react/no-unstable-default-props -----
type EslintReactNoUnstableDefaultProps = [] | [{
  safeDefaultProps?: string[];
}];
// ----- @eslint-react/rules-of-hooks -----
type EslintReactRulesOfHooks = [] | [{
  additionalHooks?: string;
}];
// ----- @eslint-react/use-state -----
type EslintReactUseState = [] | [{
  enforceAssignment?: boolean;
  enforceLazyInitialization?: boolean;
  enforceSetterName?: boolean;
}];
// ----- @eslint-react/x-exhaustive-deps -----
type EslintReactXExhaustiveDeps = [] | [{
  additionalHooks?: string;
  enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean;
  experimental_autoDependenciesHooks?: string[];
  requireExplicitEffectDeps?: boolean;
}];
// ----- @eslint-react/x-no-unstable-default-props -----
type EslintReactXNoUnstableDefaultProps = [] | [{
  safeDefaultProps?: string[];
}];
// ----- @eslint-react/x-rules-of-hooks -----
type EslintReactXRulesOfHooks = [] | [{
  additionalHooks?: string;
}];
// ----- @eslint-react/x-use-state -----
type EslintReactXUseState = [] | [{
  enforceAssignment?: boolean;
  enforceLazyInitialization?: boolean;
  enforceSetterName?: boolean;
}];
// ----- @html-eslint/attrs-newline -----
type HtmlEslintAttrsNewline = [] | [{
  closeStyle?: ("newline" | "sameline");
  ifAttrsMoreThan?: number;
  maxLen?: number;
  skip?: string[];
  inline?: string[];
}];
// ----- @html-eslint/element-newline -----
type HtmlEslintElementNewline = [] | [{
  inline?: string[];
  skip?: string[];
}];
// ----- @html-eslint/head-order -----
type HtmlEslintHeadOrder = [] | [{
  ignores?: {
    tagPattern?: string;
    attrKeyPattern?: string;
    attrValuePattern?: string;
  }[];
}];
// ----- @html-eslint/id-naming-convention -----
type HtmlEslintIdNamingConvention = [] | [("camelCase" | "snake_case" | "PascalCase" | "kebab-case" | "regex")] | [("camelCase" | "snake_case" | "PascalCase" | "kebab-case" | "regex"), {
  pattern?: string;
  flags?: string;
}];
// ----- @html-eslint/indent -----
type HtmlEslintIndent = [] | [("tab" | number)] | [("tab" | number), {
  Attribute?: number;
  tagChildrenIndent?: {
    [k: string]: number;
  };
  ignoreComment?: boolean;
  templateIndentBase?: ("first" | "templateTag");
}];
// ----- @html-eslint/max-element-depth -----
type HtmlEslintMaxElementDepth = [] | [{
  max: number;
}];
// ----- @html-eslint/no-extra-spacing-attrs -----
type HtmlEslintNoExtraSpacingAttrs = [] | [{
  disallowInAssignment?: boolean;
  disallowMissing?: boolean;
  disallowTabs?: boolean;
  enforceBeforeSelfClose?: boolean;
}];
// ----- @html-eslint/no-extra-spacing-tags -----
type HtmlEslintNoExtraSpacingTags = [] | [{
  disallowInAssignment?: boolean;
  disallowMissing?: boolean;
  disallowTabs?: boolean;
  enforceBeforeSelfClose?: boolean;
}];
// ----- @html-eslint/no-extra-spacing-text -----
type HtmlEslintNoExtraSpacingText = [] | [{
  skip?: string[];
}];
// ----- @html-eslint/no-inline-styles -----
type HtmlEslintNoInlineStyles = [] | [{
  allowExpressions?: boolean;
}];
// ----- @html-eslint/no-invalid-attr-value -----
type HtmlEslintNoInvalidAttrValue = [] | [{
  allow?: {
    tag: string;
    attr: string;
    valuePattern?: string;
  }[];
}];
// ----- @html-eslint/no-multiple-empty-lines -----
type HtmlEslintNoMultipleEmptyLines = [] | [{
  max: number;
}];
// ----- @html-eslint/no-restricted-attr-values -----
type HtmlEslintNoRestrictedAttrValues = {
  attrPatterns: string[];
  attrValuePatterns: string[];
  message?: string;
}[];
// ----- @html-eslint/no-restricted-attrs -----
type HtmlEslintNoRestrictedAttrs = {
  tagPatterns: string[];
  attrPatterns: string[];
  message?: string;
}[];
// ----- @html-eslint/no-restricted-tags -----
type HtmlEslintNoRestrictedTags = {
  tagPatterns: string[];
  message?: string;
}[];
// ----- @html-eslint/no-whitespace-only-children -----
type HtmlEslintNoWhitespaceOnlyChildren = [] | [{
  tagPatterns?: string[];
}];
// ----- @html-eslint/quotes -----
type HtmlEslintQuotes = [] | [("single" | "double")] | [("single" | "double"), {
  enforceTemplatedAttrValue?: boolean;
}];
// ----- @html-eslint/react/classname-spacing -----
type HtmlEslintReactClassnameSpacing = [] | [{
  callees?: string[];
}];
// ----- @html-eslint/react/no-duplicate-classname -----
type HtmlEslintReactNoDuplicateClassname = [] | [{
  callees?: string[];
}];
// ----- @html-eslint/react/no-invalid-attr-value -----
type HtmlEslintReactNoInvalidAttrValue = [] | [{
  allow?: {
    tag: string;
    attr: string;
    valuePattern?: string;
  }[];
}];
// ----- @html-eslint/react/use-baseline -----
type HtmlEslintReactUseBaseline = [] | [{
  available?: (("widely" | "newly") | number);
}];
// ----- @html-eslint/require-attrs -----
type HtmlEslintRequireAttrs = {
  tag: string;
  attr: string;
  value?: string;
  message?: string;
  conditions?: {
    attr: string;
    value?: string;
    kind: ("present" | "absent" | "equal" | "not-equal");
  }[];
}[];
// ----- @html-eslint/require-closing-tags -----
type HtmlEslintRequireClosingTags = [] | [{
  selfClosing?: ("always" | "never");
  selfClosingCustomPatterns?: string[];
}];
// ----- @html-eslint/require-explicit-size -----
type HtmlEslintRequireExplicitSize = [] | [{
  allowClass?: string[];
  allowId?: string[];
}];
// ----- @html-eslint/require-img-alt -----
type HtmlEslintRequireImgAlt = [] | [{
  substitute?: string[];
}];
// ----- @html-eslint/require-open-graph-protocol -----
type HtmlEslintRequireOpenGraphProtocol = [] | [string[]];
// ----- @html-eslint/sort-attrs -----
type HtmlEslintSortAttrs = [] | [{
  priority?: (string | {
    pattern: string;
    order?: ("preserve" | "alphabetically");
  })[];
}];
// ----- @html-eslint/use-baseline -----
type HtmlEslintUseBaseline = [] | [{
  available?: (("widely" | "newly") | number);
}];
// ----- @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;
})];
// ----- @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;
}];
// ----- accessor-pairs -----
type AccessorPairs = [] | [{
  getWithoutSet?: boolean;
  setWithoutGet?: boolean;
  enforceForClassMembers?: boolean;
  enforceForTSTypes?: boolean;
}];
// ----- array-bracket-newline -----
type ArrayBracketNewline = [] | [(("always" | "never" | "consistent") | {
  multiline?: boolean;
  minItems?: (number | null);
})];
// ----- array-bracket-spacing -----
type ArrayBracketSpacing = [] | [("always" | "never")] | [("always" | "never"), {
  singleValue?: boolean;
  objectsInArrays?: boolean;
  arraysInArrays?: boolean;
}];
// ----- array-callback-return -----
type ArrayCallbackReturn = [] | [{
  allowImplicit?: boolean;
  checkForEach?: boolean;
  allowVoid?: boolean;
}];
// ----- array-element-newline -----
type ArrayElementNewline = [] | [(_ArrayElementNewlineBasicConfig | {
  ArrayExpression?: _ArrayElementNewlineBasicConfig;
  ArrayPattern?: _ArrayElementNewlineBasicConfig;
})];
type _ArrayElementNewlineBasicConfig = (("always" | "never" | "consistent") | {
  multiline?: boolean;
  minItems?: (number | null);
});
// ----- arrow-body-style -----
type ArrowBodyStyle = ([] | [("always" | "never")] | [] | ["as-needed"] | ["as-needed", {
  requireReturnForObjectLiteral?: boolean;
}]);
// ----- arrow-parens -----
type ArrowParens = [] | [("always" | "as-needed")] | [("always" | "as-needed"), {
  requireForBlockBody?: boolean;
}];
// ----- arrow-spacing -----
type ArrowSpacing = [] | [{
  before?: boolean;
  after?: boolean;
}];
// ----- astro/jsx-a11y/alt-text -----
type AstroJsxA11YAltText = [] | [{
  elements?: string[];
  img?: string[];
  object?: string[];
  area?: string[];
  "input[type=\"image\"]"?: string[];
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/anchor-ambiguous-text -----
type AstroJsxA11YAnchorAmbiguousText = [] | [{
  words?: string[];
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/anchor-has-content -----
type AstroJsxA11YAnchorHasContent = [] | [{
  components?: string[];
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/anchor-is-valid -----
type AstroJsxA11YAnchorIsValid = [] | [{
  components?: string[];
  specialLink?: string[];
  aspects?: [("noHref" | "invalidHref" | "preferButton"), ...(("noHref" | "invalidHref" | "preferButton"))[]];
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/aria-activedescendant-has-tabindex -----
type AstroJsxA11YAriaActivedescendantHasTabindex = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/aria-props -----
type AstroJsxA11YAriaProps = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/aria-proptypes -----
type AstroJsxA11YAriaProptypes = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/aria-role -----
type AstroJsxA11YAriaRole = [] | [{
  allowedInvalidRoles?: string[];
  ignoreNonDOM?: boolean;
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/aria-unsupported-elements -----
type AstroJsxA11YAriaUnsupportedElements = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/autocomplete-valid -----
type AstroJsxA11YAutocompleteValid = [] | [{
  inputComponents?: string[];
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/click-events-have-key-events -----
type AstroJsxA11YClickEventsHaveKeyEvents = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/control-has-associated-label -----
type AstroJsxA11YControlHasAssociatedLabel = [] | [{
  labelAttributes?: string[];
  controlComponents?: string[];
  ignoreElements?: string[];
  ignoreRoles?: string[];
  depth?: number;
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/heading-has-content -----
type AstroJsxA11YHeadingHasContent = [] | [{
  components?: string[];
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/html-has-lang -----
type AstroJsxA11YHtmlHasLang = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/iframe-has-title -----
type AstroJsxA11YIframeHasTitle = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/img-redundant-alt -----
type AstroJsxA11YImgRedundantAlt = [] | [{
  components?: string[];
  words?: string[];
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/interactive-supports-focus -----
type AstroJsxA11YInteractiveSupportsFocus = [] | [{
  tabbable?: ("button" | "checkbox" | "columnheader" | "combobox" | "grid" | "gridcell" | "link" | "listbox" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "option" | "progressbar" | "radio" | "radiogroup" | "row" | "rowheader" | "scrollbar" | "searchbox" | "slider" | "spinbutton" | "switch" | "tab" | "tablist" | "textbox" | "tree" | "treegrid" | "treeitem" | "doc-backlink" | "doc-biblioref" | "doc-glossref" | "doc-noteref")[];
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/label-has-associated-control -----
type AstroJsxA11YLabelHasAssociatedControl = [] | [{
  labelComponents?: string[];
  labelAttributes?: string[];
  controlComponents?: string[];
  assert?: ("htmlFor" | "nesting" | "both" | "either");
  depth?: number;
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/lang -----
type AstroJsxA11YLang = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/media-has-caption -----
type AstroJsxA11YMediaHasCaption = [] | [{
  audio?: string[];
  video?: string[];
  track?: string[];
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/mouse-events-have-key-events -----
type AstroJsxA11YMouseEventsHaveKeyEvents = [] | [{
  hoverInHandlers?: string[];
  hoverOutHandlers?: string[];
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/no-access-key -----
type AstroJsxA11YNoAccessKey = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/no-aria-hidden-on-focusable -----
type AstroJsxA11YNoAriaHiddenOnFocusable = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/no-autofocus -----
type AstroJsxA11YNoAutofocus = [] | [{
  ignoreNonDOM?: boolean;
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/no-distracting-elements -----
type AstroJsxA11YNoDistractingElements = [] | [{
  elements?: ("marquee" | "blink")[];
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/no-interactive-element-to-noninteractive-role -----
type AstroJsxA11YNoInteractiveElementToNoninteractiveRole = [] | [{
  [k: string]: string[] | undefined;
}];
// ----- astro/jsx-a11y/no-noninteractive-element-interactions -----
type AstroJsxA11YNoNoninteractiveElementInteractions = [] | [{
  handlers?: string[];
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/no-noninteractive-element-to-interactive-role -----
type AstroJsxA11YNoNoninteractiveElementToInteractiveRole = [] | [{
  [k: string]: string[] | undefined;
}];
// ----- astro/jsx-a11y/no-noninteractive-tabindex -----
type AstroJsxA11YNoNoninteractiveTabindex = [] | [{
  roles?: string[];
  tags?: string[];
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/no-redundant-roles -----
type AstroJsxA11YNoRedundantRoles = [] | [{
  [k: string]: string[] | undefined;
}];
// ----- astro/jsx-a11y/no-static-element-interactions -----
type AstroJsxA11YNoStaticElementInteractions = [] | [{
  handlers?: string[];
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/prefer-tag-over-role -----
type AstroJsxA11YPreferTagOverRole = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/role-has-required-aria-props -----
type AstroJsxA11YRoleHasRequiredAriaProps = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/role-supports-aria-props -----
type AstroJsxA11YRoleSupportsAriaProps = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/scope -----
type AstroJsxA11YScope = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- astro/jsx-a11y/tabindex-no-positive -----
type AstroJsxA11YTabindexNoPositive = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- astro/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");
}];
// ----- baseline-js/use-baseline -----
type BaselineJsUseBaseline = [] | [{
  baseline?: (("widely" | "newly") | number);
  available?: (("widely" | "newly") | number);
  ignoreFeatures?: string[];
  ignoreNodeTypes?: string[];
  includeWebApis?: (boolean | {
    preset?: ("auto" | "safe" | "type-aware" | "heuristic");
    useTypes?: ("off" | "auto" | "require");
    heuristics?: ("off" | "conservative" | "aggressive");
    only?: string[];
    ignore?: string[];
  });
  includeJsBuiltins?: (boolean | {
    preset?: ("auto" | "safe" | "type-aware" | "heuristic");
    useTypes?: ("off" | "auto" | "require");
    heuristics?: ("off" | "conservative" | "aggressive");
    only?: string[];
    ignore?: string[];
  });
}];
// ----- better-tailwindcss/enforce-canonical-classes -----
type BetterTailwindcssEnforceCanonicalClasses = [] | [{
  selectors?: ({
    kind: "attribute";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  } | ({
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  } | {
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  }) | ({
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
  } | {
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
  }) | {
    kind: "variable";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  })[];
  callees?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  attributes?: (string | [string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]])[];
  variables?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  tags?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  entryPoint?: string;
  messageStyle?: ("visual" | "compact" | "raw");
  tailwindConfig?: string;
  tsconfig?: string;
  detectComponentClasses?: boolean;
  rootFontSize?: number;
  cwd?: string;
  collapse?: boolean;
  ignore?: string[];
  logical?: boolean;
}];
// ----- better-tailwindcss/enforce-consistent-class-order -----
type BetterTailwindcssEnforceConsistentClassOrder = [] | [{
  selectors?: ({
    kind: "attribute";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  } | ({
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  } | {
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  }) | ({
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
  } | {
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
  }) | {
    kind: "variable";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  })[];
  callees?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  attributes?: (string | [string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]])[];
  variables?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  tags?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  entryPoint?: string;
  messageStyle?: ("visual" | "compact" | "raw");
  tailwindConfig?: string;
  tsconfig?: string;
  detectComponentClasses?: boolean;
  rootFontSize?: number;
  cwd?: string;
  componentClassOrder?: ("asc" | "desc" | "preserve");
  componentClassPosition?: ("start" | "end");
  order?: ("asc" | "desc" | "official" | "strict");
  unknownClassOrder?: ("asc" | "desc" | "preserve");
  unknownClassPosition?: ("start" | "end");
}];
// ----- better-tailwindcss/enforce-consistent-important-position -----
type BetterTailwindcssEnforceConsistentImportantPosition = [] | [{
  selectors?: ({
    kind: "attribute";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  } | ({
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  } | {
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  }) | ({
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
  } | {
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
  }) | {
    kind: "variable";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  })[];
  callees?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  attributes?: (string | [string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]])[];
  variables?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  tags?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  entryPoint?: string;
  messageStyle?: ("visual" | "compact" | "raw");
  tailwindConfig?: string;
  tsconfig?: string;
  detectComponentClasses?: boolean;
  rootFontSize?: number;
  cwd?: string;
  position?: ("legacy" | "recommended");
}];
// ----- better-tailwindcss/enforce-consistent-line-wrapping -----
type BetterTailwindcssEnforceConsistentLineWrapping = [] | [{
  selectors?: ({
    kind: "attribute";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  } | ({
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  } | {
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  }) | ({
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
  } | {
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
  }) | {
    kind: "variable";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  })[];
  callees?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  attributes?: (string | [string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]])[];
  variables?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  tags?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  entryPoint?: string;
  messageStyle?: ("visual" | "compact" | "raw");
  tailwindConfig?: string;
  tsconfig?: string;
  detectComponentClasses?: boolean;
  rootFontSize?: number;
  cwd?: string;
  classesPerLine?: number;
  group?: ("newLine" | "emptyLine" | "never");
  indent?: ("tab" | number);
  lineBreakStyle?: ("unix" | "windows");
  preferSingleLine?: boolean;
  printWidth?: number;
  strictness?: ("strict" | "loose");
  tabWidth?: number;
  vueConvertToBinding?: boolean;
}];
// ----- better-tailwindcss/enforce-consistent-variable-syntax -----
type BetterTailwindcssEnforceConsistentVariableSyntax = [] | [{
  selectors?: ({
    kind: "attribute";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  } | ({
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  } | {
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  }) | ({
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
  } | {
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
  }) | {
    kind: "variable";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  })[];
  callees?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  attributes?: (string | [string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]])[];
  variables?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  tags?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  entryPoint?: string;
  messageStyle?: ("visual" | "compact" | "raw");
  tailwindConfig?: string;
  tsconfig?: string;
  detectComponentClasses?: boolean;
  rootFontSize?: number;
  cwd?: string;
  syntax?: ("shorthand" | "variable");
}];
// ----- better-tailwindcss/enforce-consistent-variant-order -----
type BetterTailwindcssEnforceConsistentVariantOrder = [] | [{
  selectors?: ({
    kind: "attribute";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  } | ({
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  } | {
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  }) | ({
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
  } | {
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
  }) | {
    kind: "variable";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  })[];
  callees?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  attributes?: (string | [string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]])[];
  variables?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  tags?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  entryPoint?: string;
  messageStyle?: ("visual" | "compact" | "raw");
  tailwindConfig?: string;
  tsconfig?: string;
  detectComponentClasses?: boolean;
  rootFontSize?: number;
  cwd?: string;
}];
// ----- better-tailwindcss/enforce-logical-properties -----
type BetterTailwindcssEnforceLogicalProperties = [] | [{
  selectors?: ({
    kind: "attribute";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  } | ({
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  } | {
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  }) | ({
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
  } | {
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
  }) | {
    kind: "variable";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  })[];
  callees?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  attributes?: (string | [string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]])[];
  variables?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  tags?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  entryPoint?: string;
  messageStyle?: ("visual" | "compact" | "raw");
  tailwindConfig?: string;
  tsconfig?: string;
  detectComponentClasses?: boolean;
  rootFontSize?: number;
  cwd?: string;
  ignore?: string[];
}];
// ----- better-tailwindcss/enforce-shorthand-classes -----
type BetterTailwindcssEnforceShorthandClasses = [] | [{
  selectors?: ({
    kind: "attribute";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  } | ({
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  } | {
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  }) | ({
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
  } | {
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
  }) | {
    kind: "variable";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  })[];
  callees?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  attributes?: (string | [string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]])[];
  variables?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  tags?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  entryPoint?: string;
  messageStyle?: ("visual" | "compact" | "raw");
  tailwindConfig?: string;
  tsconfig?: string;
  detectComponentClasses?: boolean;
  rootFontSize?: number;
  cwd?: string;
}];
// ----- better-tailwindcss/no-concatenated-classes -----
type BetterTailwindcssNoConcatenatedClasses = [] | [{
  selectors?: ({
    kind: "attribute";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  } | ({
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  } | {
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  }) | ({
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
  } | {
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
  }) | {
    kind: "variable";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  })[];
  callees?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  attributes?: (string | [string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]])[];
  variables?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  tags?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  entryPoint?: string;
  messageStyle?: ("visual" | "compact" | "raw");
  tailwindConfig?: string;
  tsconfig?: string;
  detectComponentClasses?: boolean;
  rootFontSize?: number;
  cwd?: string;
}];
// ----- better-tailwindcss/no-conflicting-classes -----
type BetterTailwindcssNoConflictingClasses = [] | [{
  selectors?: ({
    kind: "attribute";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  } | ({
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  } | {
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  }) | ({
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
  } | {
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
  }) | {
    kind: "variable";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  })[];
  callees?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  attributes?: (string | [string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]])[];
  variables?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  tags?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  entryPoint?: string;
  messageStyle?: ("visual" | "compact" | "raw");
  tailwindConfig?: string;
  tsconfig?: string;
  detectComponentClasses?: boolean;
  rootFontSize?: number;
  cwd?: string;
}];
// ----- better-tailwindcss/no-deprecated-classes -----
type BetterTailwindcssNoDeprecatedClasses = [] | [{
  selectors?: ({
    kind: "attribute";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  } | ({
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  } | {
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  }) | ({
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
  } | {
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
  }) | {
    kind: "variable";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  })[];
  callees?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  attributes?: (string | [string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]])[];
  variables?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  tags?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  entryPoint?: string;
  messageStyle?: ("visual" | "compact" | "raw");
  tailwindConfig?: string;
  tsconfig?: string;
  detectComponentClasses?: boolean;
  rootFontSize?: number;
  cwd?: string;
}];
// ----- better-tailwindcss/no-duplicate-classes -----
type BetterTailwindcssNoDuplicateClasses = [] | [{
  selectors?: ({
    kind: "attribute";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  } | ({
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  } | {
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  }) | ({
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
  } | {
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
  }) | {
    kind: "variable";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  })[];
  callees?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  attributes?: (string | [string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]])[];
  variables?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  tags?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  entryPoint?: string;
  messageStyle?: ("visual" | "compact" | "raw");
  tailwindConfig?: string;
  tsconfig?: string;
  detectComponentClasses?: boolean;
  rootFontSize?: number;
  cwd?: string;
}];
// ----- better-tailwindcss/no-restricted-classes -----
type BetterTailwindcssNoRestrictedClasses = [] | [{
  selectors?: ({
    kind: "attribute";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  } | ({
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  } | {
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  }) | ({
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
  } | {
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
  }) | {
    kind: "variable";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  })[];
  callees?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  attributes?: (string | [string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]])[];
  variables?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  tags?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  entryPoint?: string;
  messageStyle?: ("visual" | "compact" | "raw");
  tailwindConfig?: string;
  tsconfig?: string;
  detectComponentClasses?: boolean;
  rootFontSize?: number;
  cwd?: string;
  restrict?: ({
    fix?: string;
    message?: string;
    pattern: string;
  } | string)[];
}];
// ----- better-tailwindcss/no-unknown-classes -----
type BetterTailwindcssNoUnknownClasses = [] | [{
  selectors?: ({
    kind: "attribute";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  } | ({
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  } | {
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  }) | ({
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
  } | {
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
  }) | {
    kind: "variable";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  })[];
  callees?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  attributes?: (string | [string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]])[];
  variables?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  tags?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  entryPoint?: string;
  messageStyle?: ("visual" | "compact" | "raw");
  tailwindConfig?: string;
  tsconfig?: string;
  detectComponentClasses?: boolean;
  rootFontSize?: number;
  cwd?: string;
  ignore?: string[];
}];
// ----- better-tailwindcss/no-unnecessary-whitespace -----
type BetterTailwindcssNoUnnecessaryWhitespace = [] | [{
  selectors?: ({
    kind: "attribute";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  } | ({
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  } | {
    callTarget?: ("all" | "first" | "last" | number);
    kind: "callee";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
    targetArgument?: ("all" | "first" | "last" | number);
    targetCall?: ("all" | "first" | "last" | number);
  }) | ({
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
    path?: string;
  } | {
    kind: "tag";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name?: string;
    path: string;
  }) | {
    kind: "variable";
    match?: ({
      type: "strings";
    } | {
      path?: string;
      type: "objectKeys";
    } | {
      path?: string;
      type: "objectValues";
    } | {
      match: ({
        type: "strings";
      } | {
        path?: string;
        type: "objectKeys";
      } | {
        path?: string;
        type: "objectValues";
      })[];
      type: "anonymousFunctionReturn";
    })[];
    name: string;
  })[];
  callees?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  attributes?: (string | [string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]])[];
  variables?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  tags?: ([string, ({
    match: "strings";
  } | {
    match: "objectKeys";
    pathPattern?: string;
  } | {
    match: "objectValues";
    pathPattern?: string;
  })[]] | string)[];
  entryPoint?: string;
  messageStyle?: ("visual" | "compact" | "raw");
  tailwindConfig?: string;
  tsconfig?: string;
  detectComponentClasses?: boolean;
  rootFontSize?: number;
  cwd?: string;
  allowMultiline?: boolean;
}];
// ----- block-spacing -----
type BlockSpacing = [] | [("always" | "never")];
// ----- brace-style -----
type BraceStyle = [] | [("1tbs" | "stroustrup" | "allman")] | [("1tbs" | "stroustrup" | "allman"), {
  allowSingleLine?: boolean;
}];
// ----- callback-return -----
type CallbackReturn = [] | [string[]];
// ----- camelcase -----
type Camelcase = [] | [{
  ignoreDestructuring?: boolean;
  ignoreImports?: boolean;
  ignoreGlobals?: boolean;
  properties?: ("always" | "never");
  allow?: string[];
}];
// ----- capitalized-comments -----
type CapitalizedComments = [] | [("always" | "never")] | [("always" | "never"), ({
  ignorePattern?: string;
  ignoreInlineComments?: boolean;
  ignoreConsecutiveComments?: boolean;
} | {
  line?: {
    ignorePattern?: string;
    ignoreInlineComments?: boolean;
    ignoreConsecutiveComments?: boolean;
  };
  block?: {
    ignorePattern?: string;
    ignoreInlineComments?: boolean;
    ignoreConsecutiveComments?: boolean;
  };
})];
// ----- class-methods-use-this -----
type ClassMethodsUseThis = [] | [{
  exceptMethods?: string[];
  enforceForClassFields?: boolean;
  ignoreOverrideMethods?: boolean;
  ignoreClassesWithImplements?: ("all" | "public-fields");
}];
// ----- comma-dangle -----
type CommaDangle = [] | [(_CommaDangleValue | {
  arrays?: _CommaDangleValueWithIgnore;
  objects?: _CommaDangleValueWithIgnore;
  imports?: _CommaDangleValueWithIgnore;
  exports?: _CommaDangleValueWithIgnore;
  functions?: _CommaDangleValueWithIgnore;
})];
type _CommaDangleValue = ("always-multiline" | "always" | "never" | "only-multiline");
type _CommaDangleValueWithIgnore = ("always-multiline" | "always" | "ignore" | "never" | "only-multiline");
// ----- comma-spacing -----
type CommaSpacing = [] | [{
  before?: boolean;
  after?: boolean;
}];
// ----- comma-style -----
type CommaStyle = [] | [("first" | "last")] | [("first" | "last"), {
  exceptions?: {
    [k: string]: boolean | undefined;
  };
}];
// ----- complexity -----
type Complexity = [] | [(number | {
  maximum?: number;
  max?: number;
  variant?: ("classic" | "modified");
})];
// ----- computed-property-spacing -----
type ComputedPropertySpacing = [] | [("always" | "never")] | [("always" | "never"), {
  enforceForClassMembers?: boolean;
}];
// ----- consistent-return -----
type ConsistentReturn = [] | [{
  treatUndefinedAsUnspecified?: boolean;
}];
// ----- consistent-this -----
type ConsistentThis = string[];
// ----- css/no-invalid-properties -----
type CssNoInvalidProperties = [] | [{
  allowUnknownVariables?: boolean;
}];
// ----- css/prefer-logical-properties -----
type CssPreferLogicalProperties = [] | [{
  allowProperties?: ("bottom" | "border-bottom" | "border-bottom-color" | "border-bottom-left-radius" | "border-bottom-right-radius" | "border-bottom-style" | "border-bottom-width" | "border-left" | "border-left-color" | "border-left-style" | "border-left-width" | "border-right" | "border-right-color" | "border-right-style" | "border-right-width" | "border-top" | "border-top-color" | "border-top-left-radius" | "border-top-right-radius" | "border-top-style" | "border-top-width" | "contain-intrinsic-height" | "contain-intrinsic-width" | "height" | "left" | "margin-bottom" | "margin-left" | "margin-right" | "margin-top" | "max-height" | "max-width" | "min-height" | "min-width" | "overflow-x" | "overflow-y" | "overscroll-behavior-x" | "overscroll-behavior-y" | "padding-bottom" | "padding-left" | "padding-right" | "padding-top" | "right" | "scroll-margin-bottom" | "scroll-margin-left" | "scroll-margin-right" | "scroll-margin-top" | "scroll-padding-bottom" | "scroll-padding-left" | "scroll-padding-right" | "scroll-padding-top" | "top" | "width")[];
  allowUnits?: ("cqh" | "cqw" | "dvh" | "dvw" | "lvh" | "lvw" | "svh" | "svw" | "vh" | "vw")[];
}];
// ----- css/relative-font-units -----
type CssRelativeFontUnits = [] | [{
  allowUnits?: ("%" | "cap" | "ch" | "em" | "ex" | "ic" | "lh" | "rcap" | "rch" | "rem" | "rex" | "ric" | "rlh")[];
}];
// ----- css/selector-complexity -----
type CssSelectorComplexity = [] | [{
  maxIds?: number;
  maxClasses?: number;
  maxTypes?: number;
  maxAttributes?: number;
  maxPseudoClasses?: number;
  maxUniversals?: number;
  maxCompounds?: number;
  maxCombinators?: number;
  disallowCombinators?: string[];
  disallowPseudoClasses?: string[];
  disallowPseudoElements?: string[];
  disallowAttributes?: string[];
  disallowAttributeMatchers?: string[];
}];
// ----- css/use-baseline -----
type CssUseBaseline = [] | [{
  available?: (("widely" | "newly") | number);
  allowAtRules?: ("position-try" | "keyframes" | "layer" | "charset" | "container" | "counter-style" | "view-transition" | "custom-media" | "font-face" | "font-palette-values" | "font-feature-values" | "function" | "import" | "media" | "namespace" | "page" | "property" | "scope" | "starting-style" | "supports")[];
  allowFunctions?: ("abs" | "sign" | "anchor" | "anchor-size" | "attr" | "calc" | "calc-size" | "shape" | "rect" | "color" | "color-mix" | "conic-gradient" | "repeating-conic-gradient" | "contrast-color" | "round" | "superellipse" | "counter" | "counters" | "cross-fade" | "cubic-bezier" | "var" | "dynamic-range-limit-mix" | "element" | "exp" | "hypot" | "log" | "pow" | "sqrt" | "blur" | "brightness" | "contrast" | "drop-shadow" | "grayscale" | "hue-rotate" | "invert" | "opacity" | "saturate" | "sepia" | "filter" | "fit-content" | "url" | "type" | "linear-gradient" | "radial-gradient" | "repeating-linear-gradient" | "repeating-radial-gradient" | "hsl" | "hwb" | "if" | "image" | "image-set" | "lab" | "lch" | "light-dark" | "clamp" | "max" | "min" | "ray" | "oklab" | "oklch" | "paint" | "path" | "progress" | "random" | "xywh" | "rgb" | "mod" | "rem" | "env" | "circle" | "ellipse" | "inset" | "polygon" | "sibling-count" | "sibling-index" | "steps" | "matrix" | "rotate" | "scale" | "scaleX" | "scaleY" | "skew" | "skewX" | "skewY" | "translate" | "translateX" | "translateY" | "matrix3d" | "perspective" | "rotate3d" | "rotateX" | "rotateY" | "rotateZ" | "scale3d" | "scaleZ" | "translate3d" | "translateZ" | "acos" | "asin" | "atan" | "atan2" | "cos" | "sin" | "tan" | "cross-origin" | "integrity" | "referrer-policy")[];
  allowMediaConditions?: ("color-gamut" | "device-posture" | "device-aspect-ratio" | "device-height" | "device-width" | "display-mode" | "dynamic-range" | "forced-colors" | "any-hover" | "any-pointer" | "hover" | "pointer" | "inverted-colors" | "aspect-ratio" | "calc" | "color" | "color-index" | "grid" | "height" | "monochrome" | "nested-queries" | "orientation" | "width" | "overflow-block" | "overflow-inline" | "prefers-color-scheme" | "prefers-contrast" | "prefers-reduced-data" | "prefers-reduced-motion" | "prefers-reduced-transparency" | "resolution" | "-webkit-device-pixel-ratio" | "-webkit-max-device-pixel-ratio" | "-webkit-min-device-pixel-ratio" | "scripting" | "-webkit-transform-3d" | "update" | "video-dynamic-range" | "horizontal-viewport-segments" | "vertical-viewport-segments")[];
  allowProperties?: ("accent-color" | "alignment-baseline" | "all" | "anchor-name" | "anchor-scope" | "position-anchor" | "position-area" | "position-try" | "position-try-fallbacks" | "position-try-order" | "position-visibility" | "animation-composition" | "animation" | "animation-delay" | "animation-direction" | "animation-duration" | "animation-fill-mode" | "animation-iteration-count" | "animation-name" | "animation-play-state" | "animation-timing-function" | "appearance" | "aspect-ratio" | "backdrop-filter" | "background" | "background-attachment" | "background-blend-mode" | "background-clip" | "background-color" | "background-image" | "background-origin" | "background-position" | "background-position-x" | "background-position-y" | "background-repeat" | "background-size" | "baseline-shift" | "baseline-source" | "border-image" | "border-image-outset" | "border-image-repeat" | "border-image-slice" | "border-image-source" | "border-image-width" | "border-bottom-left-radius" | "border-bottom-right-radius" | "border-radius" | "border-top-left-radius" | "border-top-right-radius" | "border-shape" | "border" | "border-bottom" | "border-bottom-color" | "border-bottom-style" | "border-bottom-width" | "border-color" | "border-left" | "border-left-color" | "border-left-style" | "border-left-width" | "border-right" | "border-right-color" | "border-right-style" | "border-right-width" | "border-style" | "border-top" | "border-top-color" | "border-top-style" | "border-top-width" | "border-width" | "box-decoration-break" | "box-shadow" | "box-sizing" | "caret-color" | "caret-shape" | "clip" | "clip-path" | "color" | "color-adjust" | "color-scheme" | "column-fill" | "column-span" | "contain" | "contain-intrinsic-block-size" | "contain-intrinsic-height" | "contain-intrinsic-inline-size" | "contain-intrinsic-size" | "contain-intrinsic-width" | "container" | "container-name" | "container-type" | "content" | "content-visibility" | "corner-block-end-shape" | "corner-block-start-shape" | "corner-bottom-left-shape" | "corner-bottom-right-shape" | "corner-bottom-shape" | "corner-end-end-shape" | "corner-end-start-shape" | "corner-inline-end-shape" | "corner-inline-start-shape" | "corner-left-shape" | "corner-right-shape" | "corner-shape" | "corner-start-end-shape" | "corner-start-start-shape" | "corner-top-left-shape" | "corner-top-right-shape" | "corner-top-shape" | "counter-set" | "counter-increment" | "counter-reset" | "custom-property" | "display" | "dominant-baseline" | "dynamic-range-limit" | "field-sizing" | "filter" | "align-content" | "align-items" | "align-self" | "flex" | "flex-basis" | "flex-direction" | "flex-flow" | "flex-grow" | "flex-shrink" | "flex-wrap" | "justify-content" | "justify-items" | "order" | "place-content" | "place-items" | "place-self" | "clear" | "float" | "font-family" | "font-feature-settings" | "font-kerning" | "font-language-override" | "font-optical-sizing" | "font-palette" | "font" | "font-size" | "font-size-adjust" | "font-stretch" | "font-style" | "font-synthesis" | "font-synthesis-position" | "font-synthesis-small-caps" | "font-synthesis-style" | "font-synthesis-weight" | "font-variant" | "font-variant-alternates" | "font-variant-caps" | "font-variant-east-asian" | "font-variant-emoji" | "font-variant-ligatures" | "font-variant-numeric" | "font-variant-position" | "font-variation-settings" | "font-weight" | "font-width" | "forced-color-adjust" | "column-rule-break" | "column-rule-inset" | "column-rule-inset-cap" | "column-rule-inset-cap-end" | "column-rule-inset-cap-start" | "column-rule-inset-end" | "column-rule-inset-junction" | "column-rule-inset-junction-end" | "column-rule-inset-junction-start" | "column-rule-inset-start" | "column-rule-visibility-items" | "row-rule" | "row-rule-break" | "row-rule-color" | "row-rule-inset" | "row-rule-inset-cap" | "row-rule-inset-cap-end" | "row-rule-inset-cap-start" | "row-rule-inset-end" | "row-rule-inset-junction" | "row-rule-inset-junction-end" | "row-rule-inset-junction-start" | "row-rule-inset-start" | "row-rule-style" | "row-rule-visibility-items" | "row-rule-width" | "rule" | "rule-break" | "rule-color" | "rule-inset" | "rule-inset-cap" | "rule-inset-end" | "rule-inset-junction" | "rule-inset-start" | "rule-overlap" | "rule-style" | "rule-visibility-items" | "rule-width" | "glyph-orientation-vertical" | "gap" | "grid" | "grid-area" | "grid-auto-columns" | "grid-auto-flow" | "grid-auto-rows" | "grid-column" | "grid-column-end" | "grid-column-start" | "grid-row" | "grid-row-end" | "grid-row-start" | "grid-template" | "grid-template-areas" | "grid-template-columns" | "grid-template-rows" | "justify-self" | "row-gap" | "hanging-punctuation" | "hyphenate-character" | "hyphenate-limit-chars" | "hyphens" | "image-orientation" | "image-rendering" | "ime-mode" | "rotate" | "scale" | "translate" | "initial-letter" | "interactivity" | "interpolate-size" | "isolation" | "direction" | "unicode-bidi" | "letter-spacing" | "line-break" | "line-clamp" | "line-height" | "list-style" | "list-style-image" | "list-style-position" | "list-style-type" | "block-size" | "border-block" | "border-block-color" | "border-block-end" | "border-block-end-color" | "border-block-end-style" | "border-block-end-width" | "border-block-start" | "border-block-start-color" | "border-block-start-style" | "border-block-start-width" | "border-block-style" | "border-block-width" | "border-end-end-radius" | "border-end-start-radius" | "border-inline" | "border-inline-color" | "border-inline-end" | "border-inline-end-color" | "border-inline-end-style" | "border-inline-end-width" | "border-inline-start" | "border-inline-start-color" | "border-inline-start-style" | "border-inline-start-width" | "border-inline-style" | "border-inline-width" | "border-start-end-radius" | "border-start-start-radius" | "inline-size" | "inset" | "inset-block" | "inset-block-end" | "inset-block-start" | "inset-inline" | "inset-inline-end" | "inset-inline-start" | "margin-block" | "margin-block-end" | "margin-block-start" | "margin-inline" | "margin-inline-end" | "margin-inline-start" | "max-block-size" | "max-inline-size" | "min-block-size" | "min-inline-size" | "overflow-block" | "overflow-inline" | "padding-block" | "padding-block-end" | "padding-block-start" | "padding-inline" | "padding-inline-end" | "padding-inline-start" | "margin" | "margin-bottom" | "margin-left" | "margin-right" | "margin-top" | "margin-trim" | "mask-border" | "mask-border-outset" | "mask-border-repeat" | "mask-border-slice" | "mask-border-source" | "mask-border-width" | "mask-type" | "mask" | "mask-clip" | "mask-composite" | "mask-image" | "mask-mode" | "mask-origin" | "mask-position" | "mask-repeat" | "mask-size" | "math-depth" | "math-shift" | "math-style" | "max-height" | "max-width" | "min-height" | "min-width" | "mix-blend-mode" | "offset" | "offset-anchor" | "offset-distance" | "offset-path" | "offset-position" | "offset-rotate" | "column-count" | "column-gap" | "column-rule" | "column-rule-color" | "column-rule-style" | "column-rule-width" | "column-width" | "columns" | "object-fit" | "object-position" | "object-view-box" | "opacity" | "fill-opacity" | "stroke-opacity" | "outline" | "outline-color" | "outline-offset" | "outline-style" | "outline-width" | "overflow-anchor" | "overflow-clip-margin" | "overflow" | "overflow-x" | "overflow-y" | "overflow-wrap" | "overlay" | "overscroll-behavior" | "overscroll-behavior-block" | "overscroll-behavior-inline" | "overscroll-behavior-x" | "overscroll-behavior-y" | "padding" | "padding-bottom" | "padding-left" | "padding-right" | "padding-top" | "page-break-after" | "page-break-before" | "page-break-inside" | "break-after" | "break-before" | "break-inside" | "page" | "paint-order" | "bottom" | "left" | "right" | "top" | "pointer-events" | "position" | "print-color-adjust" | "quotes" | "reading-flow" | "reading-order" | "resize" | "ruby-align" | "ruby-overhang" | "ruby-position" | "scroll-behavior" | "animation-range" | "animation-range-end" | "animation-range-start" | "animation-timeline" | "scroll-timeline" | "scroll-timeline-axis" | "scroll-timeline-name" | "timeline-scope" | "view-timeline" | "view-timeline-axis" | "view-timeline-inset" | "view-timeline-name" | "scroll-initial-target" | "scroll-marker-group" | "scroll-margin" | "scroll-margin-block" | "scroll-margin-block-end" | "scroll-margin-block-start" | "scroll-margin-bottom" | "scroll-margin-inline" | "scroll-margin-inline-end" | "scroll-margin-inline-start" | "scroll-margin-left" | "scroll-margin-right" | "scroll-margin-top" | "scroll-padding" | "scroll-padding-block" | "scroll-padding-block-end" | "scroll-padding-block-start" | "scroll-padding-bottom" | "scroll-padding-inline" | "scroll-padding-inline-end" | "scroll-padding-inline-start" | "scroll-padding-left" | "scroll-padding-right" | "scroll-padding-top" | "scroll-snap-align" | "scroll-snap-stop" | "scroll-snap-type" | "scroll-target-group" | "scrollbar-color" | "scrollbar-gutter" | "scrollbar-width" | "shape-image-threshold" | "shape-margin" | "shape-outside" | "speak" | "speak-as" | "clip-rule" | "color-interpolation" | "cx" | "cy" | "d" | "fill" | "fill-rule" | "marker" | "marker-end" | "marker-mid" | "marker-start" | "r" | "rx" | "ry" | "shape-rendering" | "stop-color" | "stop-opacity" | "stroke" | "stroke-color" | "stroke-dasharray" | "stroke-dashoffset" | "stroke-linecap" | "stroke-linejoin" | "stroke-miterlimit" | "stroke-width" | "text-anchor" | "text-rendering" | "vector-effect" | "x" | "y" | "color-interpolation-filters" | "flood-color" | "flood-opacity" | "lighting-color" | "tab-size" | "border-collapse" | "border-spacing" | "caption-side" | "empty-cells" | "table-layout" | "text-align" | "text-align-last" | "text-autospace" | "text-box" | "text-box-edge" | "text-box-trim" | "text-combine-upright" | "text-decoration" | "text-decoration-color" | "text-decoration-line" | "text-decoration-style" | "text-decoration-thickness" | "text-decoration-skip-ink" | "text-emphasis" | "text-emphasis-color" | "text-emphasis-position" | "text-emphasis-style" | "text-indent" | "text-justify" | "text-orientation" | "text-overflow" | "text-shadow" | "text-size-adjust" | "text-spacing-trim" | "-webkit-text-fill-color" | "-webkit-text-stroke" | "-webkit-text-stroke-color" | "-webkit-text-stroke-width" | "text-transform" | "text-underline-offset" | "text-underline-position" | "text-wrap" | "text-wrap-mode" | "text-wrap-style" | "touch-action" | "transform-box" | "transform" | "transform-origin" | "backface-visibility" | "perspective" | "perspective-origin" | "transform-style" | "transition-behavior" | "transition" | "transition-delay" | "transition-duration" | "transition-property" | "transition-timing-function" | "user-select" | "vertical-align" | "view-transition-class" | "view-transition-name" | "view-transition-scope" | "visibility" | "white-space" | "white-space-collapse" | "orphans" | "widows" | "height" | "width" | "will-change" | "word-break" | "word-spacing" | "writing-mode" | "z-index" | "zoom")[];
  allowPropertyValues?: {
    position?: ("absolute" | "fixed" | "relative" | "static" | "sticky")[];
    "accent-color"?: ("auto" | "currentColor" | "transparent")[];
    "alignment-baseline"?: ("alphabetic" | "baseline" | "central" | "ideographic" | "mathematical" | "middle" | "text-after-edge" | "text-before-edge")[];
    "align-items"?: ("anchor-center")[];
    "align-self"?: ("anchor-center" | "auto" | "normal" | "stretch")[];
    "anchor-name"?: ("none")[];
    "anchor-scope"?: ("all" | "none")[];
    "block-size"?: ("anchor-size" | "fit-content" | "max-content" | "min-content")[];
    bottom?: ("anchor" | "anchor-size" | "auto")[];
    height?: ("anchor-size" | "fit-content" | "max-content" | "min-content" | "stretch" | "auto")[];
    "inline-size"?: ("anchor-size" | "fit-content" | "max-content" | "min-content")[];
    "inset-block-end"?: ("anchor" | "anchor-size" | "auto")[];
    "inset-block-start"?: ("anchor" | "anchor-size" | "auto")[];
    "inset-block"?: ("anchor" | "anchor-size" | "auto")[];
    "inset-inline-end"?: ("anchor" | "anchor-size" | "auto")[];
    "inset-inline-start"?: ("anchor" | "anchor-size" | "auto")[];
    "inset-inline"?: ("anchor" | "anchor-size" | "auto")[];
    inset?: ("anchor" | "anchor-size" | "auto")[];
    "justify-items"?: ("anchor-center" | "center" | "left" | "legacy" | "right")[];
    "justify-self"?: ("anchor-center" | "auto" | "left" | "normal" | "right" | "stretch")[];
    left?: ("anchor" | "anchor-size" | "auto")[];
    "margin-block-end"?: ("anchor-size")[];
    "margin-block-start"?: ("anchor-size")[];
    "margin-block"?: ("anchor-size")[];
    "margin-bottom"?: ("anchor-size" | "auto")[];
    "margin-inline-end"?: ("anchor-size")[];
    "margin-inline-start"?: ("anchor-size")[];
    "margin-inline"?: ("anchor-size")[];
    "margin-left"?: ("anchor-size" | "auto")[];
    "margin-right"?: ("anchor-size" | "auto")[];
    "margin-top"?: ("anchor-size" | "auto")[];
    margin?: ("anchor-size" | "auto")[];
    "max-block-size"?: ("anchor-size" | "fit-content" | "max-content" | "min-content")[];
    "max-height"?: ("anchor-size" | "fit-content" | "max-content" | "min-content" | "none" | "stretch")[];
    "max-inline-size"?: ("anchor-size" | "fit-content" | "max-content" | "min-content")[];
    "max-width"?: ("anchor-size" | "fit-content" | "max-content" | "min-content" | "none" | "stretch")[];
    "min-block-size"?: ("anchor-size" | "fit-content" | "max-content" | "min-content")[];
    "min-height"?: ("anchor-size" | "fit-content" | "max-content" | "min-content" | "auto" | "stretch")[];
    "min-inline-size"?: ("anchor-size" | "fit-content" | "max-content" | "min-content")[];
    "min-width"?: ("anchor-size" | "fit-content" | "max-content" | "min-content" | "auto" | "stretch")[];
    "place-items"?: ("anchor-center")[];
    "place-self"?: ("anchor-center")[];
    "position-anchor"?: ("auto" | "none" | "normal")[];
    "position-area"?: ("block-end" | "block-start" | "bottom" | "center" | "end" | "inline-end" | "inline-start" | "left" | "none" | "right" | "self-block-end" | "self-block-start" | "self-end" | "self-inline-end" | "self-inline-start" | "self-start" | "self-x-end" | "self-x-start" | "self-y-end" | "self-y-start" | "span-all" | "span-block-end" | "span-block-start" | "span-bottom" | "span-end" | "span-inline-end" | "span-inline-start" | "span-left" | "span-right" | "span-self-block-end" | "span-self-block-start" | "span-self-end" | "span-self-inline-end" | "span-self-inline-start" | "span-self-start" | "span-self-x-end" | "span-self-x-start" | "span-self-y-end" | "span-self-y-start" | "span-start" | "span-top" | "span-x-end" | "span-x-start" | "span-y-end" | "span-y-start" | "start" | "top" | "x-end" | "x-start" | "y-end" | "y-start")[];
    "position-try-fallbacks"?: ("block-end" | "block-start" | "bottom" | "center" | "end" | "flip-block" | "flip-inline" | "flip-start" | "flip-x" | "flip-y" | "inline-end" | "inline-start" | "left" | "none" | "position-area" | "right" | "self-block-end" | "self-block-start" | "self-end" | "self-inline-end" | "self-inline-start" | "self-start" | "self-x-end" | "self-x-start" | "self-y-end" | "self-y-start" | "span-all" | "span-block-end" | "span-block-start" | "span-bottom" | "span-end" | "span-inline-end" | "span-inline-start" | "span-left" | "span-right" | "span-self-block-end" | "span-self-block-start" | "span-self-end" | "span-self-inline-end" | "span-self-inline-start" | "span-self-start" | "span-self-x-end" | "span-self-x-start" | "span-self-y-end" | "span-self-y-start" | "span-start" | "span-top" | "span-x-end" | "span-x-start" | "span-y-end" | "span-y-start" | "start" | "top" | "x-end" | "x-start" | "y-end" | "y-start")[];
    "position-try-order"?: ("most-block-size" | "most-height" | "most-inline-size" | "most-width" | "normal")[];
    "position-try"?: ("block-end" | "block-start" | "bottom" | "center" | "end" | "flip-block" | "flip-inline" | "flip-start" | "flip-x" | "flip-y" | "inline-end" | "inline-start" | "left" | "none" | "right" | "self-block-end" | "self-block-start" | "self-end" | "self-inline-end" | "self-inline-start" | "self-start" | "self-x-end" | "self-x-start" | "self-y-end" | "self-y-start" | "span-all" | "span-block-end" | "span-block-start" | "span-bottom" | "span-end" | "span-inline-end" | "span-inline-start" | "span-left" | "span-right" | "span-self-block-end" | "span-self-block-start" | "span-self-end" | "span-self-inline-end" | "span-self-inline-start" | "span-self-start" | "span-self-x-end" | "span-self-x-start" | "span-self-y-end" | "span-self-y-start" | "span-start" | "span-top" | "span-x-end" | "span-x-start" | "span-y-end" | "span-y-start" | "start" | "top" | "x-end" | "x-start" | "y-end" | "y-start")[];
    "position-visibility"?: ("always" | "anchors-valid" | "anchors-visible" | "no-overflow")[];
    right?: ("anchor" | "anchor-size" | "auto")[];
    top?: ("anchor" | "anchor-size" | "auto")[];
    width?: ("anchor-size" | "fit-content" | "max-content" | "min-content" | "stretch" | "auto")[];
    "animation-direction"?: ("alternate" | "alternate-reverse" | "normal" | "reverse")[];
    "animation-duration"?: ("auto")[];
    "animation-fill-mode"?: ("backwards" | "both" | "forwards" | "none")[];
    "animation-iteration-count"?: ("infinite")[];
    "animation-name"?: ("none")[];
    "animation-play-state"?: ("paused" | "running")[];
    "animation-timing-function"?: ("ease" | "ease-in" | "ease-in-out" | "ease-out" | "jump" | "linear" | "step-end" | "step-start")[];
    animation?: ("alternate" | "alternate-reverse" | "auto" | "backwards" | "both" | "ease" | "ease-in" | "ease-in-out" | "ease-out" | "forwards" | "infinite" | "linear" | "none" | "normal" | "reverse" | "step-end" | "step-start")[];
    appearance?: ("auto" | "button" | "checkbox" | "listbox" | "menulist" | "menulist-button" | "meter" | "none" | "progress-bar" | "radio" | "searchfield" | "textarea" | "textfield" | "base-select")[];
    "aspect-ratio"?: ("auto")[];
    background?: ("local" | "no-repeat" | "none" | "repeat" | "repeat-x" | "repeat-y" | "round" | "scroll" | "space" | "transparent" | "background-clip" | "background-origin" | "background-size" | "currentColor")[];
    "background-attachment"?: ("fixed" | "local" | "scroll")[];
    "background-clip"?: ("border-box" | "content-box" | "padding-box" | "border-area" | "text")[];
    "background-color"?: ("transparent" | "currentColor")[];
    "background-image"?: ("none" | "element" | "gradients" | "image-set")[];
    "background-origin"?: ("border-box" | "content-box" | "padding-box")[];
    "background-position"?: ("bottom" | "center" | "left" | "right" | "top")[];
    "background-repeat"?: ("2-value" | "no-repeat" | "repeat" | "repeat-x" | "repeat-y" | "round" | "space")[];
    "background-size"?: ("auto" | "contain" | "cover")[];
    "baseline-shift"?: ("sub" | "super")[];
    "baseline-source"?: ("auto" | "first" | "last")[];
    "border-image-repeat"?: ("repeat" | "round" | "space" | "stretch")[];
    "border-image-width"?: ("auto")[];
    "border-image"?: ("fill" | "gradient" | "none" | "repeat" | "round" | "space" | "stretch")[];
    "border-bottom-left-radius"?: ("percentages")[];
    "border-bottom-right-radius"?: ("percentages")[];
    "border-radius"?: ("percentages")[];
    "border-top-left-radius"?: ("percentages")[];
    "border-top-right-radius"?: ("percentages")[];
    "border-shape"?: ("none")[];
    "border-bottom-color"?: ("transparent" | "currentColor")[];
    "border-bottom-style"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid")[];
    "border-bottom-width"?: ("medium" | "thick" | "thin")[];
    "border-bottom"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "medium" | "none" | "outset" | "ridge" | "solid" | "thick" | "thin" | "transparent" | "currentColor")[];
    "border-color"?: ("transparent" | "currentColor")[];
    "border-left-color"?: ("transparent" | "currentColor")[];
    "border-left-style"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid")[];
    "border-left-width"?: ("medium" | "thick" | "thin")[];
    "border-left"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "medium" | "none" | "outset" | "ridge" | "solid" | "thick" | "thin" | "transparent" | "currentColor")[];
    "border-right-color"?: ("transparent" | "currentColor")[];
    "border-right-style"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid")[];
    "border-right-width"?: ("medium" | "thick" | "thin")[];
    "border-right"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "medium" | "none" | "outset" | "ridge" | "solid" | "thick" | "thin" | "transparent" | "currentColor")[];
    "border-style"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid")[];
    "border-top-color"?: ("transparent" | "currentColor")[];
    "border-top-style"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid")[];
    "border-top-width"?: ("medium" | "thick" | "thin")[];
    "border-top"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "medium" | "none" | "outset" | "ridge" | "solid" | "thick" | "thin" | "transparent" | "currentColor")[];
    "border-width"?: ("medium" | "thick" | "thin")[];
    border?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "medium" | "none" | "outset" | "ridge" | "solid" | "thick" | "thin" | "transparent" | "currentColor")[];
    "box-decoration-break"?: ("clone" | "slice")[];
    "box-shadow"?: ("inset" | "none")[];
    "box-sizing"?: ("border-box" | "content-box")[];
    "caret-color"?: ("currentColor" | "transparent")[];
    "caret-shape"?: ("auto" | "bar" | "block" | "underscore")[];
    clip?: ("auto")[];
    "clip-path"?: ("path" | "fill-box" | "stroke-box" | "view-box")[];
    color?: ("transparent" | "currentColor")[];
    "color-scheme"?: ("dark" | "light" | "normal" | "only")[];
    "break-after"?: ("avoid-column" | "column" | "always" | "auto" | "avoid" | "avoid-page" | "left" | "page" | "recto" | "right" | "verso")[];
    "break-before"?: ("avoid-column" | "column" | "always" | "auto" | "avoid" | "avoid-page" | "left" | "page" | "recto" | "right" | "verso")[];
    "break-inside"?: ("avoid-column" | "auto" | "avoid" | "avoid-page")[];
    "column-fill"?: ("auto" | "balance")[];
    "column-span"?: ("all" | "none")[];
    contain?: ("content" | "none" | "strict" | "inline-size" | "layout" | "paint" | "size" | "style")[];
    "contain-intrinsic-block-size"?: ("none")[];
    "contain-intrinsic-height"?: ("none")[];
    "contain-intrinsic-inline-size"?: ("none")[];
    "contain-intrinsic-size"?: ("none")[];
    "contain-intrinsic-width"?: ("none")[];
    "container-type"?: ("anchored" | "inline-size" | "normal" | "size" | "scroll-state")[];
    "container-name"?: ("none")[];
    content?: ("close-quote" | "gradient" | "no-close-quote" | "no-open-quote" | "none" | "normal" | "open-quote" | "url" | "image-set")[];
    "content-visibility"?: ("auto" | "hidden" | "visible")[];
    "counter-reset"?: ("reversed" | "list-item" | "none")[];
    "counter-set"?: ("list-item" | "none")[];
    "counter-increment"?: ("list-item" | "none")[];
    "image-rendering"?: ("crisp-edges" | "auto" | "pixelated" | "smooth")[];
    "outline-color"?: ("currentColor" | "transparent")[];
    "text-overflow"?: ("string" | "clip" | "ellipsis")[];
    display?: ("block" | "inline" | "inline-block" | "none" | "contents" | "flow-root" | "list-item" | "ruby" | "ruby-base" | "ruby-base-container" | "ruby-text" | "ruby-text-container" | "inline-table" | "table" | "table-caption" | "table-cell" | "table-column" | "table-column-group" | "table-footer-group" | "table-header-group" | "table-row" | "table-row-group" | "flex" | "inline-flex" | "grid" | "inline-grid" | "math")[];
    "ruby-position"?: ("alternate" | "inter-character" | "over" | "under")[];
    "dominant-baseline"?: ("alphabetic" | "auto" | "central" | "hanging" | "ideographic" | "mathematical" | "middle")[];
    "dynamic-range-limit"?: ("constrained" | "no-limit" | "standard")[];
    "field-sizing"?: ("content" | "fixed")[];
    filter?: ("blur" | "brightness" | "contrast" | "drop-shadow" | "grayscale" | "hue-rotate" | "invert" | "opacity" | "saturate" | "sepia")[];
    "align-content"?: ("normal")[];
    "flex-basis"?: ("auto" | "content" | "fit-content" | "max-content" | "min-content")[];
    "flex-direction"?: ("column" | "column-reverse" | "row" | "row-reverse")[];
    "flex-wrap"?: ("nowrap" | "wrap" | "wrap-reverse")[];
    flex?: ("none")[];
    "justify-content"?: ("left" | "normal" | "right")[];
    clear?: ("both" | "left" | "none" | "right" | "inline-end" | "inline-start")[];
    float?: ("left" | "none" | "right" | "inline-end" | "inline-start")[];
    "font-family"?: ("cursive" | "fantasy" | "monospace" | "sans-serif" | "serif" | "math" | "system-ui" | "ui-monospace" | "ui-rounded" | "ui-sans-serif" | "ui-serif")[];
    "font-feature-settings"?: ("normal")[];
    "font-kerning"?: ("auto" | "none" | "normal")[];
    "font-optical-sizing"?: ("auto" | "none")[];
    "font-palette"?: ("dark" | "light" | "normal")[];
    font?: ("caption" | "icon" | "menu" | "message-box" | "small-caption" | "status-bar")[];
    "font-size"?: ("xxx-large" | "math")[];
    "font-size-adjust"?: ("from-font" | "none" | "two-values")[];
    "font-stretch"?: ("condensed" | "expanded" | "extra-condensed" | "extra-expanded" | "normal" | "percentage" | "semi-condensed" | "semi-expanded" | "ultra-condensed" | "ultra-expanded")[];
    "font-style"?: ("italic" | "normal" | "oblique" | "oblique-angle")[];
    "font-synthesis"?: ("position" | "small-caps" | "style" | "weight")[];
    "font-synthesis-position"?: ("auto" | "none")[];
    "font-synthesis-small-caps"?: ("auto" | "none")[];
    "font-synthesis-style"?: ("auto" | "none")[];
    "font-synthesis-weight"?: ("auto" | "none")[];
    "font-variant"?: ("historical-forms" | "none" | "normal" | "sub" | "super")[];
    "font-variant-alternates"?: ("annotation" | "historical-forms" | "normal" | "ornaments" | "styleset" | "stylistic" | "swash")[];
    "font-variant-caps"?: ("all-petite-caps" | "all-small-caps" | "normal" | "petite-caps" | "small-caps" | "titling-caps" | "unicase")[];
    "font-variant-east-asian"?: ("full-width" | "jis04" | "jis78" | "jis83" | "jis90" | "normal" | "proportional-width" | "ruby" | "simplified" | "traditional")[];
    "font-variant-emoji"?: ("emoji" | "normal" | "text" | "unicode")[];
    "font-variant-ligatures"?: ("common-ligatures" | "contextual" | "discretionary-ligatures" | "historical-ligatures" | "no-common-ligatures" | "no-contextual" | "no-discretionary-ligatures" | "no-historical-ligatures" | "none" | "normal")[];
    "font-variant-numeric"?: ("diagonal-fractions" | "lining-nums" | "normal" | "oldstyle-nums" | "ordinal" | "proportional-nums" | "slashed-zero" | "stacked-fractions" | "tabular-nums")[];
    "font-variant-position"?: ("normal" | "sub" | "super")[];
    "font-weight"?: ("bold" | "bolder" | "lighter" | "normal" | "number")[];
    "font-width"?: ("condensed" | "expanded" | "extra-condensed" | "extra-expanded" | "normal" | "semi-condensed" | "semi-expanded" | "ultra-condensed" | "ultra-expanded")[];
    "forced-color-adjust"?: ("auto" | "none" | "preserve-parent-color")[];
    "column-rule-break"?: ("intersection" | "none" | "normal")[];
    "column-rule-inset-cap-end"?: ("overlap-join")[];
    "column-rule-inset-cap-start"?: ("overlap-join")[];
    "column-rule-inset-cap"?: ("overlap-join")[];
    "column-rule-inset-end"?: ("overlap-join")[];
    "column-rule-inset-junction-end"?: ("overlap-join")[];
    "column-rule-inset-junction-start"?: ("overlap-join")[];
    "column-rule-inset-junction"?: ("overlap-join")[];
    "column-rule-inset-start"?: ("overlap-join")[];
    "column-rule-inset"?: ("overlap-join")[];
    "column-rule-visibility-items"?: ("all" | "around" | "between" | "normal")[];
    "row-rule-break"?: ("intersection" | "none" | "normal")[];
    "row-rule-color"?: ("currentColor" | "transparent")[];
    "row-rule-inset-cap-end"?: ("overlap-join")[];
    "row-rule-inset-cap-start"?: ("overlap-join")[];
    "row-rule-inset-cap"?: ("overlap-join")[];
    "row-rule-inset-end"?: ("overlap-join")[];
    "row-rule-inset-junction-end"?: ("overlap-join")[];
    "row-rule-inset-junction-start"?: ("overlap-join")[];
    "row-rule-inset-junction"?: ("overlap-join")[];
    "row-rule-inset-start"?: ("overlap-join")[];
    "row-rule-inset"?: ("overlap-join")[];
    "row-rule-style"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid")[];
    "row-rule-visibility-items"?: ("all" | "around" | "between" | "normal")[];
    "row-rule-width"?: ("medium" | "thick" | "thin")[];
    "row-rule"?: ("currentColor" | "dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "medium" | "none" | "outset" | "ridge" | "solid" | "thick" | "thin" | "transparent")[];
    "rule-break"?: ("intersection" | "none" | "normal")[];
    "rule-color"?: ("currentColor" | "transparent")[];
    "rule-inset-cap"?: ("overlap-join")[];
    "rule-inset-end"?: ("overlap-join")[];
    "rule-inset-junction"?: ("overlap-join")[];
    "rule-inset-start"?: ("overlap-join")[];
    "rule-inset"?: ("overlap-join")[];
    "rule-overlap"?: ("column-over-row" | "row-over-column")[];
    "rule-style"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid")[];
    "rule-visibility-items"?: ("all" | "around" | "between" | "normal")[];
    "rule-width"?: ("medium" | "thick" | "thin")[];
    rule?: ("currentColor" | "dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "medium" | "none" | "outset" | "ridge" | "solid" | "thick" | "thin" | "transparent")[];
    gap?: ("normal")[];
    "grid-auto-flow"?: ("column" | "dense" | "row")[];
    "grid-template-areas"?: ("none")[];
    "grid-template-columns"?: ("auto" | "fit-content" | "max-content" | "min-content" | "minmax" | "none" | "repeat" | "animation" | "masonry" | "subgrid")[];
    "grid-template-rows"?: ("auto" | "fit-content" | "max-content" | "min-content" | "minmax" | "none" | "repeat" | "animation" | "masonry" | "subgrid")[];
    "grid-template"?: ("none")[];
    "row-gap"?: ("normal")[];
    "hanging-punctuation"?: ("allow-end" | "first" | "force-end" | "last" | "none")[];
    "hyphenate-character"?: ("auto")[];
    "hyphenate-limit-chars"?: ("auto")[];
    hyphens?: ("auto")[];
    "image-orientation"?: ("from-image" | "none")[];
    rotate?: ("none")[];
    scale?: ("none")[];
    translate?: ("none")[];
    "initial-letter"?: ("normal")[];
    interactivity?: ("auto" | "inert")[];
    "interpolate-size"?: ("allow-keywords" | "numeric-only")[];
    direction?: ("ltr" | "rtl")[];
    "unicode-bidi"?: ("bidi-override" | "embed" | "isolate" | "isolate-override" | "normal" | "plaintext")[];
    "letter-spacing"?: ("normal")[];
    "line-break"?: ("anywhere" | "auto" | "loose" | "normal" | "strict")[];
    "line-clamp"?: ("none")[];
    "line-height"?: ("normal")[];
    "list-style-image"?: ("none")[];
    "list-style-position"?: ("inside" | "outside")[];
    "list-style-type"?: ("arabic-indic" | "armenian" | "bengali" | "cambodian" | "circle" | "cjk-decimal" | "cjk-earthly-branch" | "cjk-heavenly-stem" | "cjk-ideographic" | "decimal" | "decimal-leading-zero" | "devanagari" | "disc" | "disclosure-closed" | "disclosure-open" | "ethiopic-numeric" | "georgian" | "gujarati" | "gurmukhi" | "hebrew" | "hiragana" | "hiragana-iroha" | "japanese-formal" | "japanese-informal" | "kannada" | "katakana" | "katakana-iroha" | "khmer" | "korean-hangul-formal" | "korean-hanja-formal" | "korean-hanja-informal" | "lao" | "lower-alpha" | "lower-armenian" | "lower-greek" | "lower-latin" | "lower-roman" | "malayalam" | "mongolian" | "myanmar" | "none" | "oriya" | "persian" | "simp-chinese-formal" | "simp-chinese-informal" | "square" | "string" | "symbols" | "tamil" | "telugu" | "thai" | "tibetan" | "trad-chinese-formal" | "trad-chinese-informal" | "upper-alpha" | "upper-armenian" | "upper-latin" | "upper-roman")[];
    "list-style"?: ("inside" | "none" | "outside" | "symbols")[];
    "border-block-color"?: ("currentColor" | "transparent")[];
    "border-block-end-color"?: ("currentColor" | "transparent")[];
    "border-block-end-style"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid")[];
    "border-block-end-width"?: ("medium" | "thick" | "thin")[];
    "border-block-end"?: ("currentColor" | "dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "medium" | "none" | "outset" | "ridge" | "solid" | "thick" | "thin" | "transparent")[];
    "border-block-start-color"?: ("currentColor" | "transparent")[];
    "border-block-start-style"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid")[];
    "border-block-start-width"?: ("medium" | "thick" | "thin")[];
    "border-block-start"?: ("currentColor" | "dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "medium" | "none" | "outset" | "ridge" | "solid" | "thick" | "thin" | "transparent")[];
    "border-block-style"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid")[];
    "border-block-width"?: ("medium" | "thick" | "thin")[];
    "border-block"?: ("currentColor" | "dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "medium" | "none" | "outset" | "ridge" | "solid" | "thick" | "thin" | "transparent")[];
    "border-inline-color"?: ("currentColor" | "transparent")[];
    "border-inline-end-color"?: ("currentColor" | "transparent")[];
    "border-inline-end-style"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid")[];
    "border-inline-end-width"?: ("medium" | "thick" | "thin")[];
    "border-inline-end"?: ("currentColor" | "dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "medium" | "none" | "outset" | "ridge" | "solid" | "thick" | "thin" | "transparent")[];
    "border-inline-start-color"?: ("currentColor" | "transparent")[];
    "border-inline-start-style"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid")[];
    "border-inline-start-width"?: ("medium" | "thick" | "thin")[];
    "border-inline-start"?: ("currentColor" | "dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "medium" | "none" | "outset" | "ridge" | "solid" | "thick" | "thin" | "transparent")[];
    "border-inline-style"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid")[];
    "border-inline-width"?: ("medium" | "thick" | "thin")[];
    "border-inline"?: ("currentColor" | "dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "medium" | "none" | "outset" | "ridge" | "solid" | "thick" | "thin" | "transparent")[];
    "overflow-block"?: ("overlay")[];
    "overflow-inline"?: ("overlay")[];
    "margin-trim"?: ("block" | "block-end" | "block-start" | "inline" | "inline-end" | "inline-start" | "none")[];
    "mask-type"?: ("alpha" | "luminance")[];
    "mask-clip"?: ("border" | "content" | "padding" | "text")[];
    "mask-composite"?: ("add" | "exclude" | "intersect" | "subtract")[];
    "mask-mode"?: ("alpha" | "luminance" | "match-source")[];
    "mask-origin"?: ("border" | "content" | "fill-box" | "padding" | "stroke-box" | "view-box")[];
    "text-transform"?: ("math-auto" | "capitalize" | "full-size-kana" | "full-width" | "lowercase" | "none" | "uppercase")[];
    "mix-blend-mode"?: ("plus-darker" | "plus-lighter")[];
    "offset-anchor"?: ("auto" | "bottom" | "center" | "left" | "right" | "top")[];
    "offset-path"?: ("border-box" | "content-box" | "fill-box" | "margin-box" | "none" | "padding-box" | "path" | "ray" | "stroke-box" | "url" | "view-box")[];
    "offset-position"?: ("auto" | "bottom" | "center" | "left" | "normal" | "right" | "top")[];
    "offset-rotate"?: ("auto" | "reverse")[];
    "column-count"?: ("auto")[];
    "column-gap"?: ("normal")[];
    "column-rule-color"?: ("currentColor" | "transparent")[];
    "column-rule-style"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid")[];
    "column-rule-width"?: ("medium" | "thick" | "thin")[];
    "column-rule"?: ("currentColor" | "dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "medium" | "none" | "outset" | "ridge" | "solid" | "thick" | "thin" | "transparent")[];
    "column-width"?: ("auto")[];
    "object-fit"?: ("contain" | "cover" | "fill" | "none" | "scale-down")[];
    "object-view-box"?: ("none")[];
    opacity?: ("percentages")[];
    outline?: ("currentColor" | "dashed" | "dotted" | "double" | "groove" | "inset" | "medium" | "none" | "outset" | "ridge" | "solid" | "thick" | "thin" | "transparent")[];
    "outline-style"?: ("auto" | "dashed" | "dotted" | "double" | "groove" | "inset" | "none" | "outset" | "ridge" | "solid")[];
    "outline-width"?: ("medium" | "thick" | "thin")[];
    "overflow-anchor"?: ("auto" | "none")[];
    "overflow-x"?: ("clip" | "auto" | "hidden" | "scroll" | "visible")[];
    "overflow-y"?: ("clip" | "auto" | "hidden" | "scroll" | "visible")[];
    overflow?: ("clip" | "auto" | "hidden" | "scroll" | "visible")[];
    "overflow-clip-margin"?: ("border-box" | "content-box" | "padding-box")[];
    "overflow-wrap"?: ("anywhere" | "break-word" | "normal")[];
    overlay?: ("auto" | "none")[];
    "overscroll-behavior-block"?: ("auto" | "contain" | "none")[];
    "overscroll-behavior-inline"?: ("auto" | "contain" | "none")[];
    "overscroll-behavior-x"?: ("auto" | "contain" | "none")[];
    "overscroll-behavior-y"?: ("auto" | "contain" | "none")[];
    "overscroll-behavior"?: ("auto" | "contain" | "none")[];
    "page-break-after"?: ("always" | "auto" | "avoid" | "left" | "right")[];
    "page-break-before"?: ("always" | "auto" | "avoid" | "left" | "right")[];
    "page-break-inside"?: ("auto" | "avoid")[];
    "print-color-adjust"?: ("economy" | "exact")[];
    quotes?: ("auto" | "none")[];
    "reading-flow"?: ("flex-flow" | "flex-visual" | "grid-columns" | "grid-order" | "grid-rows" | "normal" | "source-order")[];
    resize?: ("block" | "inline")[];
    "ruby-align"?: ("center" | "space-around" | "space-between" | "start")[];
    "ruby-overhang"?: ("auto" | "none")[];
    "scroll-behavior"?: ("auto" | "smooth")[];
    "animation-range-end"?: ("normal")[];
    "animation-range-start"?: ("normal")[];
    "animation-timeline"?: ("scroll" | "view")[];
    "scroll-timeline-axis"?: ("block" | "inline" | "x" | "y")[];
    "timeline-scope"?: ("all" | "none")[];
    "view-timeline-axis"?: ("block" | "inline" | "x" | "y")[];
    "view-timeline-inset"?: ("auto")[];
    "scroll-initial-target"?: ("nearest" | "none")[];
    "scroll-marker-group"?: ("after" | "before" | "none")[];
    "scroll-padding-block-end"?: ("auto")[];
    "scroll-padding-block-start"?: ("auto")[];
    "scroll-padding-block"?: ("auto")[];
    "scroll-padding-inline-end"?: ("auto")[];
    "scroll-padding-inline-start"?: ("auto")[];
    "scroll-padding-inline"?: ("auto")[];
    "scroll-padding"?: ("auto")[];
    "scroll-snap-align"?: ("center" | "end" | "none" | "start")[];
    "scroll-snap-stop"?: ("always" | "normal")[];
    "scroll-snap-type"?: ("block" | "both" | "inline" | "none" | "x" | "y")[];
    "scroll-target-group"?: ("auto" | "none")[];
    "scrollbar-color"?: ("auto")[];
    "scrollbar-gutter"?: ("auto" | "stable")[];
    "scrollbar-width"?: ("auto" | "none" | "thin")[];
    "shape-image-threshold"?: ("percentages")[];
    "shape-outside"?: ("circle" | "gradient" | "image" | "inset" | "none" | "path" | "polygon")[];
    "speak-as"?: ("digits" | "literal-punctuation" | "no-punctuation" | "normal" | "spell-out")[];
    "clip-rule"?: ("evenodd" | "nonzero")[];
    "color-interpolation"?: ("auto" | "linearGradient" | "sRGB")[];
    "fill-rule"?: ("evenodd" | "nonzero")[];
    fill?: ("none")[];
    "marker-end"?: ("none")[];
    "marker-mid"?: ("none")[];
    "marker-start"?: ("none")[];
    marker?: ("none")[];
    "shape-rendering"?: ("auto")[];
    "stop-color"?: ("currentColor" | "transparent")[];
    "stroke-color"?: ("currentColor" | "transparent")[];
    "stroke-dasharray"?: ("none")[];
    "stroke-linecap"?: ("butt" | "round" | "square")[];
    "stroke-linejoin"?: ("bevel" | "miter" | "round")[];
    stroke?: ("none")[];
    "text-anchor"?: ("end" | "middle" | "start")[];
    "text-rendering"?: ("auto" | "geometricPrecision")[];
    "color-interpolation-filters"?: ("auto" | "linearRGB" | "sRGB")[];
    "flood-color"?: ("currentColor" | "transparent")[];
    "lighting-color"?: ("currentColor" | "transparent")[];
    "tab-size"?: ("length")[];
    "border-collapse"?: ("collapse" | "separate")[];
    "caption-side"?: ("bottom" | "bottom-outside" | "top" | "top-outside")[];
    "empty-cells"?: ("hide" | "show")[];
    "table-layout"?: ("auto" | "fixed")[];
    "text-align"?: ("center" | "end" | "justify" | "left" | "match-parent" | "right" | "start")[];
    "text-align-last"?: ("auto")[];
    "text-autospace"?: ("auto" | "ideograph-alpha" | "ideograph-numeric" | "insert" | "no-autospace" | "normal" | "punctuation" | "replace")[];
    "text-box-edge"?: ("auto")[];
    "text-box-trim"?: ("none" | "trim-both" | "trim-end" | "trim-start")[];
    "text-box"?: ("normal")[];
    "text-combine-upright"?: ("all" | "none")[];
    "text-decoration-color"?: ("currentColor" | "transparent")[];
    "text-decoration-line"?: ("line-through" | "none" | "overline" | "underline" | "blink" | "grammar-error" | "spelling-error")[];
    "text-decoration-style"?: ("wavy")[];
    "text-decoration-thickness"?: ("auto" | "from-font" | "percentage")[];
    "text-decoration"?: ("currentColor" | "line-through" | "none" | "overline" | "transparent" | "underline")[];
    "text-decoration-skip-ink"?: ("auto" | "none" | "all")[];
    "text-emphasis-color"?: ("currentColor" | "transparent")[];
    "text-emphasis-position"?: ("auto" | "left" | "over" | "right" | "under")[];
    "text-emphasis-style"?: ("circle" | "dot" | "double-circle" | "filled" | "none" | "sesame" | "triangle")[];
    "text-emphasis"?: ("currentColor" | "transparent")[];
    "text-indent"?: ("each-line" | "hanging")[];
    "text-justify"?: ("auto" | "inter-character" | "inter-word" | "none")[];
    "text-orientation"?: ("mixed" | "sideways" | "upright")[];
    "text-size-adjust"?: ("auto" | "none" | "percentages")[];
    "text-spacing-trim"?: ("normal" | "space-all" | "space-first" | "trim-start")[];
    "text-underline-offset"?: ("auto" | "percentage")[];
    "text-underline-position"?: ("auto" | "from-font" | "left" | "right" | "under")[];
    "text-wrap-mode"?: ("nowrap" | "wrap")[];
    "text-wrap-style"?: ("auto" | "stable" | "balance" | "pretty")[];
    "text-wrap"?: ("nowrap" | "stable" | "wrap" | "balance" | "pretty")[];
    "touch-action"?: ("manipulation" | "none" | "pan-down" | "pan-left" | "pan-right" | "pan-up" | "pan-x" | "pan-y" | "pinch-zoom")[];
    "transform-box"?: ("border-box" | "content-box" | "fill-box" | "stroke-box" | "view-box")[];
    "transform-origin"?: ("bottom" | "center" | "left" | "right" | "top")[];
    transform?: ("none" | "3d")[];
    "perspective-origin"?: ("bottom" | "center" | "left" | "right" | "top")[];
    perspective?: ("none")[];
    transition?: ("transition-behavior" | "all" | "ease" | "ease-in" | "ease-in-out" | "ease-out" | "linear" | "none" | "step-end" | "step-start")[];
    "transition-property"?: ("all" | "none")[];
    "transition-timing-function"?: ("ease" | "ease-in" | "ease-in-out" | "ease-out" | "jump" | "linear" | "step-end" | "step-start")[];
    "user-select"?: ("all" | "auto" | "none" | "text")[];
    "vertical-align"?: ("baseline" | "bottom" | "middle" | "sub" | "super" | "text-bottom" | "text-top" | "top")[];
    "view-transition-class"?: ("none")[];
    "view-transition-name"?: ("match-element" | "none")[];
    "view-transition-scope"?: ("all" | "none")[];
    visibility?: ("collapse" | "hidden" | "visible")[];
    "white-space"?: ("break-spaces" | "normal" | "nowrap" | "pre" | "pre-line" | "pre-wrap")[];
    "white-space-collapse"?: ("break-spaces" | "collapse" | "preserve" | "preserve-breaks" | "preserve-spaces")[];
    "will-change"?: ("auto" | "contents" | "scroll-position")[];
    "word-break"?: ("break-all" | "keep-all" | "normal" | "auto-phrase" | "break-word")[];
    "word-spacing"?: ("normal")[];
    "writing-mode"?: ("horizontal-tb" | "sideways-lr" | "sideways-rl" | "vertical-lr" | "vertical-rl" | "lr" | "lr-tb" | "rl" | "rl-tb" | "tb" | "tb-rl")[];
    "z-index"?: ("auto")[];
  };
  allowSelectors?: ("active-view-transition" | "active-view-transition-type" | "autofill" | "defined" | "backdrop" | "after" | "before" | "column" | "checkmark" | "picker" | "picker-icon" | "default" | "details-content" | "dir" | "empty" | "file-selector-button" | "first-letter" | "first-line" | "focus-visible" | "focus-within" | "in-range" | "invalid" | "optional" | "out-of-range" | "required" | "valid" | "fullscreen" | "has" | "has-slotted" | "heading" | "headingfunction" | "highlight" | "host" | "hostfunction" | "host-context" | "indeterminate" | "checked" | "disabled" | "enabled" | "interest-source" | "interest-target" | "is" | "lang" | "any-link" | "link" | "visited" | "marker" | "buffering" | "muted" | "paused" | "playing" | "seeking" | "stalled" | "volume-locked" | "modal" | "namespace" | "nesting" | "not" | "first-child" | "last-child" | "nth-child" | "nth-last-child" | "only-child" | "first-of-type" | "last-of-type" | "nth-last-of-type" | "nth-of-type" | "only-of-type" | "open" | "first" | "left" | "right" | "picture-in-picture" | "placeholder" | "placeholder-shown" | "popover-open" | "read-only" | "read-write" | "root" | "scope" | "scroll-button" | "target-after" | "target-before" | "target-current" | "scroll-marker" | "scroll-marker-group" | "selection" | "attribute" | "child" | "class" | "descendant" | "id" | "list" | "next-sibling" | "subsequent-sibling" | "type" | "universal" | "part" | "slotted" | "grammar-error" | "spelling-error" | "state" | "target" | "target-text" | "future" | "past" | "active" | "focus" | "hover" | "user-invalid" | "user-valid" | "view-transition" | "view-transition-group" | "view-transition-image-pair" | "view-transition-new" | "view-transition-old" | "cue" | "xr-overlay" | "where")[];
  allowUnits?: ("cap" | "ch" | "cqw" | "cqh" | "cqi" | "cqb" | "cqmin" | "cqmax" | "em" | "ex" | "ic" | "lh" | "Q" | "rcap" | "rch" | "rem" | "rex" | "ric" | "rlh" | "vb" | "vi" | "dvb" | "dvh" | "dvi" | "dvmax" | "dvmin" | "dvw" | "lvb" | "lvh" | "lvi" | "lvmax" | "lvmin" | "lvw" | "svb" | "svh" | "svi" | "svmax" | "svmin" | "svw" | "vh" | "vmax" | "vmin" | "vw")[];
}];
// ----- css/use-layers -----
type CssUseLayers = [] | [{
  allowUnnamedLayers?: boolean;
  requireImportLayers?: boolean;
  layerNamePattern?: string;
}];
// ----- curly -----
type Curly = ([] | ["all"] | [] | [("multi" | "multi-line" | "multi-or-nest")] | [("multi" | "multi-line" | "multi-or-nest"), "consistent"]);
// ----- cypress/unsafe-to-chain-command -----
type CypressUnsafeToChainCommand = [] | [_CypressUnsafeToChainCommandRules];
interface _CypressUnsafeToChainCommandRules {
  methods?: unknown[];
}
// ----- default-case -----
type DefaultCase = [] | [{
  commentPattern?: string;
}];
// ----- dot-location -----
type DotLocation = [] | [("object" | "property")];
// ----- dot-notation -----
type DotNotation = [] | [{
  allowKeywords?: boolean;
  allowPattern?: string;
}];
// ----- eol-last -----
type EolLast = [] | [("always" | "never" | "unix" | "windows")];
// ----- eqeqeq -----
type Eqeqeq = ([] | ["always"] | ["always", {
  null?: ("always" | "never" | "ignore");
}] | [] | [("smart" | "allow-null")]);
// ----- func-call-spacing -----
type FuncCallSpacing = ([] | ["never"] | [] | ["always"] | ["always", {
  allowNewlines?: boolean;
}]);
// ----- func-name-matching -----
type FuncNameMatching = ([] | [("always" | "never")] | [("always" | "never"), {
  considerPropertyDescriptor?: boolean;
  includeCommonJSModuleExports?: boolean;
}] | [] | [{
  considerPropertyDescriptor?: boolean;
  includeCommonJSModuleExports?: boolean;
}]);
// ----- func-names -----
type FuncNames = [] | [_FuncNamesValue] | [_FuncNamesValue, {
  generators?: _FuncNamesValue;
}];
type _FuncNamesValue = ("always" | "as-needed" | "never");
// ----- func-style -----
type FuncStyle = [] | [("declaration" | "expression")] | [("declaration" | "expression"), {
  allowArrowFunctions?: boolean;
  allowTypeAnnotation?: boolean;
  overrides?: {
    namedExports?: ("declaration" | "expression" | "ignore");
  };
}];
// ----- function-call-argument-newline -----
type FunctionCallArgumentNewline = [] | [("always" | "never" | "consistent")];
// ----- function-paren-newline -----
type FunctionParenNewline = [] | [(("always" | "never" | "consistent" | "multiline" | "multiline-arguments") | {
  minItems?: number;
})];
// ----- generator-star-spacing -----
type GeneratorStarSpacing = [] | [(("before" | "after" | "both" | "neither") | {
  before?: boolean;
  after?: boolean;
  named?: (("before" | "after" | "both" | "neither") | {
    before?: boolean;
    after?: boolean;
  });
  anonymous?: (("before" | "after" | "both" | "neither") | {
    before?: boolean;
    after?: boolean;
  });
  method?: (("before" | "after" | "both" | "neither") | {
    before?: boolean;
    after?: boolean;
  });
})];
// ----- getter-return -----
type GetterReturn = [] | [{
  allowImplicit?: boolean;
}];
// ----- grouped-accessor-pairs -----
type GroupedAccessorPairs = [] | [("anyOrder" | "getBeforeSet" | "setBeforeGet")] | [("anyOrder" | "getBeforeSet" | "setBeforeGet"), {
  enforceForTSTypes?: boolean;
}];
// ----- handle-callback-err -----
type HandleCallbackErr = [] | [string];
// ----- id-blacklist -----
type IdBlacklist = string[];
// ----- id-denylist -----
type IdDenylist = string[];
// ----- id-length -----
type IdLength = [] | [{
  min?: number;
  max?: number;
  exceptions?: string[];
  exceptionPatterns?: string[];
  properties?: ("always" | "never");
}];
// ----- id-match -----
type IdMatch = [] | [string] | [string, {
  properties?: boolean;
  classFields?: boolean;
  onlyDeclarations?: boolean;
  ignoreDestructuring?: boolean;
}];
// ----- implicit-arrow-linebreak -----
type ImplicitArrowLinebreak = [] | [("beside" | "below")];
// ----- import-x/consistent-type-specifier-style -----
type ImportXConsistentTypeSpecifierStyle = [] | [("prefer-top-level" | "prefer-inline")];
// ----- import-x/dynamic-import-chunkname -----
type ImportXDynamicImportChunkname = [] | [{
  importFunctions?: string[];
  allowEmpty?: boolean;
  webpackChunknameFormat?: string;
  [k: string]: unknown | undefined;
}];
// ----- import-x/extensions -----
type ImportXExtensions = ([] | [("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-x/first -----
type ImportXFirst = [] | [("absolute-first" | "disable-absolute-first")];
// ----- import-x/imports-first -----
type ImportXImportsFirst = [] | [("absolute-first" | "disable-absolute-first")];
// ----- import-x/max-dependencies -----
type ImportXMaxDependencies = [] | [{
  max?: number;
  ignoreTypeImports?: boolean;
}];
// ----- import-x/named -----
type ImportXNamed = [] | [{
  commonjs?: boolean;
}];
// ----- import-x/namespace -----
type ImportXNamespace = [] | [{
  allowComputed?: boolean;
}];
// ----- import-x/newline-after-import -----
type ImportXNewlineAfterImport = [] | [{
  count?: number;
  exactCount?: boolean;
  considerComments?: boolean;
}];
// ----- import-x/no-absolute-path -----
type ImportXNoAbsolutePath = [] | [{
  commonjs?: boolean;
  amd?: boolean;
  esmodule?: boolean;
  ignore?: [unknown, ...(unknown)[]];
}];
// ----- import-x/no-anonymous-default-export -----
type ImportXNoAnonymousDefaultExport = [] | [{
  allowArray?: boolean;
  allowArrowFunction?: boolean;
  allowCallExpression?: boolean;
  allowAnonymousClass?: boolean;
  allowAnonymousFunction?: boolean;
  allowLiteral?: boolean;
  allowObject?: boolean;
  allowNew?: boolean;
}];
// ----- import-x/no-commonjs -----
type ImportXNoCommonjs = ([] | ["allow-primitive-modules"] | [] | [{
  allowPrimitiveModules?: boolean;
  allowRequire?: boolean;
  allowConditionalRequire?: boolean;
}]);
// ----- import-x/no-cycle -----
type ImportXNoCycle = [] | [{
  commonjs?: boolean;
  amd?: boolean;
  esmodule?: boolean;
  ignore?: [unknown, ...(unknown)[]];
  maxDepth?: (number | "∞");
  ignoreExternal?: boolean;
  allowUnsafeDynamicCyclicDependency?: boolean;
}];
// ----- import-x/no-duplicates -----
type ImportXNoDuplicates = [] | [{
  considerQueryString?: boolean;
  "prefer-inline"?: boolean;
}];
// ----- import-x/no-dynamic-require -----
type ImportXNoDynamicRequire = [] | [{
  esmodule?: boolean;
}];
// ----- import-x/no-extraneous-dependencies -----
type ImportXNoExtraneousDependencies = [] | [{
  devDependencies?: (boolean | unknown[]);
  optionalDependencies?: (boolean | unknown[]);
  peerDependencies?: (boolean | unknown[]);
  bundledDependencies?: (boolean | unknown[]);
  packageDir?: (string | unknown[]);
  includeInternal?: boolean;
  includeTypes?: boolean;
  whitelist?: unknown[];
}];
// ----- import-x/no-import-module-exports -----
type ImportXNoImportModuleExports = [] | [{
  exceptions?: unknown[];
}];
// ----- import-x/no-internal-modules -----
type ImportXNoInternalModules = [] | [({
  allow?: string[];
} | {
  forbid?: string[];
})];
// ----- import-x/no-namespace -----
type ImportXNoNamespace = [] | [{
  ignore?: string[];
  [k: string]: unknown | undefined;
}];
// ----- import-x/no-nodejs-modules -----
type ImportXNoNodejsModules = [] | [{
  allow?: string[];
}];
// ----- import-x/no-relative-packages -----
type ImportXNoRelativePackages = [] | [{
  commonjs?: boolean;
  amd?: boolean;
  esmodule?: boolean;
  ignore?: [unknown, ...(unknown)[]];
}];
// ----- import-x/no-relative-parent-imports -----
type ImportXNoRelativeParentImports = [] | [{
  commonjs?: boolean;
  amd?: boolean;
  esmodule?: boolean;
  ignore?: [unknown, ...(unknown)[]];
}];
// ----- import-x/no-rename-default -----
type ImportXNoRenameDefault = [] | [{
  commonjs?: boolean;
  preventRenamingBindings?: boolean;
}];
// ----- import-x/no-restricted-paths -----
type ImportXNoRestrictedPaths = [] | [{
  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-x/no-unassigned-import -----
type ImportXNoUnassignedImport = [] | [{
  devDependencies?: (boolean | unknown[]);
  optionalDependencies?: (boolean | unknown[]);
  peerDependencies?: (boolean | unknown[]);
  allow?: string[];
}];
// ----- import-x/no-unresolved -----
type ImportXNoUnresolved = [] | [{
  commonjs?: boolean;
  amd?: boolean;
  esmodule?: boolean;
  ignore?: [unknown, ...(unknown)[]];
  caseSensitive?: boolean;
  caseSensitiveStrict?: boolean;
}];
// ----- import-x/no-unused-modules -----
type ImportXNoUnusedModules = [] | [({
  unusedExports: true;
  src?: [unknown, ...(unknown)[]];
  [k: string]: unknown | undefined;
} | {
  missingExports: true;
  [k: string]: unknown | undefined;
})];
// ----- import-x/no-useless-path-segments -----
type ImportXNoUselessPathSegments = [] | [{
  commonjs?: boolean;
  noUselessIndex?: boolean;
}];
// ----- import-x/order -----
type ImportXOrder = [] | [{
  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-x/prefer-default-export -----
type ImportXPreferDefaultExport = [] | [{
  target?: ("single" | "any");
}];
// ----- import-x/prefer-namespace-import -----
type ImportXPreferNamespaceImport = [] | [{
  patterns?: string[];
}];
// ----- indent -----
type Indent = [] | [("tab" | number)] | [("tab" | number), {
  SwitchCase?: number;
  VariableDeclarator?: ((number | ("first" | "off")) | {
    var?: (number | ("first" | "off"));
    let?: (number | ("first" | "off"));
    const?: (number | ("first" | "off"));
  });
  outerIIFEBody?: (number | "off");
  MemberExpression?: (number | "off");
  FunctionDeclaration?: {
    parameters?: (number | ("first" | "off"));
    body?: number;
  };
  FunctionExpression?: {
    parameters?: (number | ("first" | "off"));
    body?: number;
  };
  StaticBlock?: {
    body?: number;
  };
  CallExpression?: {
    arguments?: (number | ("first" | "off"));
  };
  ArrayExpression?: (number | ("first" | "off"));
  ObjectExpression?: (number | ("first" | "off"));
  ImportDeclaration?: (number | ("first" | "off"));
  flatTernaryExpressions?: boolean;
  offsetTernaryExpressions?: boolean;
  ignoredNodes?: string[];
  ignoreComments?: boolean;
}];
// ----- indent-legacy -----
type IndentLegacy = [] | [("tab" | number)] | [("tab" | number), {
  SwitchCase?: number;
  VariableDeclarator?: (number | {
    var?: number;
    let?: number;
    const?: number;
    [k: string]: unknown | undefined;
  });
  outerIIFEBody?: number;
  MemberExpression?: number;
  FunctionDeclaration?: {
    parameters?: (number | "first");
    body?: number;
    [k: string]: unknown | undefined;
  };
  FunctionExpression?: {
    parameters?: (number | "first");
    body?: number;
    [k: string]: unknown | undefined;
  };
  CallExpression?: {
    parameters?: (number | "first");
    [k: string]: unknown | undefined;
  };
  ArrayExpression?: (number | "first");
  ObjectExpression?: (number | "first");
}];
// ----- init-declarations -----
type InitDeclarations = ([] | ["always"] | [] | ["never"] | ["never", {
  ignoreForLoopInit?: boolean;
}]);
// ----- jsx-a11y/accessible-emoji -----
type JsxA11YAccessibleEmoji = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/alt-text -----
type JsxA11YAltText = [] | [{
  elements?: string[];
  img?: string[];
  object?: string[];
  area?: string[];
  "input[type=\"image\"]"?: string[];
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/anchor-ambiguous-text -----
type JsxA11YAnchorAmbiguousText = [] | [{
  words?: string[];
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/anchor-has-content -----
type JsxA11YAnchorHasContent = [] | [{
  components?: string[];
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/anchor-is-valid -----
type JsxA11YAnchorIsValid = [] | [{
  components?: string[];
  specialLink?: string[];
  aspects?: [("noHref" | "invalidHref" | "preferButton"), ...(("noHref" | "invalidHref" | "preferButton"))[]];
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/aria-activedescendant-has-tabindex -----
type JsxA11YAriaActivedescendantHasTabindex = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/aria-props -----
type JsxA11YAriaProps = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/aria-proptypes -----
type JsxA11YAriaProptypes = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/aria-role -----
type JsxA11YAriaRole = [] | [{
  allowedInvalidRoles?: string[];
  ignoreNonDOM?: boolean;
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/aria-unsupported-elements -----
type JsxA11YAriaUnsupportedElements = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/autocomplete-valid -----
type JsxA11YAutocompleteValid = [] | [{
  inputComponents?: string[];
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/click-events-have-key-events -----
type JsxA11YClickEventsHaveKeyEvents = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/control-has-associated-label -----
type JsxA11YControlHasAssociatedLabel = [] | [{
  labelAttributes?: string[];
  controlComponents?: string[];
  ignoreElements?: string[];
  ignoreRoles?: string[];
  depth?: number;
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/heading-has-content -----
type JsxA11YHeadingHasContent = [] | [{
  components?: string[];
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/html-has-lang -----
type JsxA11YHtmlHasLang = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/iframe-has-title -----
type JsxA11YIframeHasTitle = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/img-redundant-alt -----
type JsxA11YImgRedundantAlt = [] | [{
  components?: string[];
  words?: string[];
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/interactive-supports-focus -----
type JsxA11YInteractiveSupportsFocus = [] | [{
  tabbable?: ("button" | "checkbox" | "columnheader" | "combobox" | "grid" | "gridcell" | "link" | "listbox" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "option" | "progressbar" | "radio" | "radiogroup" | "row" | "rowheader" | "scrollbar" | "searchbox" | "slider" | "spinbutton" | "switch" | "tab" | "tablist" | "textbox" | "tree" | "treegrid" | "treeitem" | "doc-backlink" | "doc-biblioref" | "doc-glossref" | "doc-noteref")[];
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/label-has-associated-control -----
type JsxA11YLabelHasAssociatedControl = [] | [{
  labelComponents?: string[];
  labelAttributes?: string[];
  controlComponents?: string[];
  assert?: ("htmlFor" | "nesting" | "both" | "either");
  depth?: number;
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/label-has-for -----
type JsxA11YLabelHasFor = [] | [{
  components?: string[];
  required?: (("nesting" | "id") | {
    some: ("nesting" | "id")[];
    [k: string]: unknown | undefined;
  } | {
    every: ("nesting" | "id")[];
    [k: string]: unknown | undefined;
  });
  allowChildren?: boolean;
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/lang -----
type JsxA11YLang = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/media-has-caption -----
type JsxA11YMediaHasCaption = [] | [{
  audio?: string[];
  video?: string[];
  track?: string[];
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/mouse-events-have-key-events -----
type JsxA11YMouseEventsHaveKeyEvents = [] | [{
  hoverInHandlers?: string[];
  hoverOutHandlers?: string[];
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/no-access-key -----
type JsxA11YNoAccessKey = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/no-aria-hidden-on-focusable -----
type JsxA11YNoAriaHiddenOnFocusable = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/no-autofocus -----
type JsxA11YNoAutofocus = [] | [{
  ignoreNonDOM?: boolean;
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/no-distracting-elements -----
type JsxA11YNoDistractingElements = [] | [{
  elements?: ("marquee" | "blink")[];
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/no-interactive-element-to-noninteractive-role -----
type JsxA11YNoInteractiveElementToNoninteractiveRole = [] | [{
  [k: string]: string[] | undefined;
}];
// ----- jsx-a11y/no-noninteractive-element-interactions -----
type JsxA11YNoNoninteractiveElementInteractions = [] | [{
  handlers?: string[];
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/no-noninteractive-element-to-interactive-role -----
type JsxA11YNoNoninteractiveElementToInteractiveRole = [] | [{
  [k: string]: string[] | undefined;
}];
// ----- jsx-a11y/no-noninteractive-tabindex -----
type JsxA11YNoNoninteractiveTabindex = [] | [{
  roles?: string[];
  tags?: string[];
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/no-onchange -----
type JsxA11YNoOnchange = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/no-redundant-roles -----
type JsxA11YNoRedundantRoles = [] | [{
  [k: string]: string[] | undefined;
}];
// ----- jsx-a11y/no-static-element-interactions -----
type JsxA11YNoStaticElementInteractions = [] | [{
  handlers?: string[];
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/prefer-tag-over-role -----
type JsxA11YPreferTagOverRole = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/role-has-required-aria-props -----
type JsxA11YRoleHasRequiredAriaProps = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/role-supports-aria-props -----
type JsxA11YRoleSupportsAriaProps = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/scope -----
type JsxA11YScope = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-a11y/tabindex-no-positive -----
type JsxA11YTabindexNoPositive = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- jsx-quotes -----
type JsxQuotes = [] | [("prefer-single" | "prefer-double")];
// ----- key-spacing -----
type KeySpacing = [] | [({
  align?: (("colon" | "value") | {
    mode?: ("strict" | "minimum");
    on?: ("colon" | "value");
    beforeColon?: boolean;
    afterColon?: boolean;
  });
  mode?: ("strict" | "minimum");
  beforeColon?: boolean;
  afterColon?: boolean;
} | {
  singleLine?: {
    mode?: ("strict" | "minimum");
    beforeColon?: boolean;
    afterColon?: boolean;
  };
  multiLine?: {
    align?: (("colon" | "value") | {
      mode?: ("strict" | "minimum");
      on?: ("colon" | "value");
      beforeColon?: boolean;
      afterColon?: boolean;
    });
    mode?: ("strict" | "minimum");
    beforeColon?: boolean;
    afterColon?: boolean;
  };
} | {
  singleLine?: {
    mode?: ("strict" | "minimum");
    beforeColon?: boolean;
    afterColon?: boolean;
  };
  multiLine?: {
    mode?: ("strict" | "minimum");
    beforeColon?: boolean;
    afterColon?: boolean;
  };
  align?: {
    mode?: ("strict" | "minimum");
    on?: ("colon" | "value");
    beforeColon?: boolean;
    afterColon?: boolean;
  };
})];
// ----- keyword-spacing -----
type KeywordSpacing = [] | [{
  before?: boolean;
  after?: boolean;
  overrides?: {
    abstract?: {
      before?: boolean;
      after?: boolean;
    };
    as?: {
      before?: boolean;
      after?: boolean;
    };
    async?: {
      before?: boolean;
      after?: boolean;
    };
    await?: {
      before?: boolean;
      after?: boolean;
    };
    boolean?: {
      before?: boolean;
      after?: boolean;
    };
    break?: {
      before?: boolean;
      after?: boolean;
    };
    byte?: {
      before?: boolean;
      after?: boolean;
    };
    case?: {
      before?: boolean;
      after?: boolean;
    };
    catch?: {
      before?: boolean;
      after?: boolean;
    };
    char?: {
      before?: boolean;
      after?: boolean;
    };
    class?: {
      before?: boolean;
      after?: boolean;
    };
    const?: {
      before?: boolean;
      after?: boolean;
    };
    continue?: {
      before?: boolean;
      after?: boolean;
    };
    debugger?: {
      before?: boolean;
      after?: boolean;
    };
    default?: {
      before?: boolean;
      after?: boolean;
    };
    delete?: {
      before?: boolean;
      after?: boolean;
    };
    do?: {
      before?: boolean;
      after?: boolean;
    };
    double?: {
      before?: boolean;
      after?: boolean;
    };
    else?: {
      before?: boolean;
      after?: boolean;
    };
    enum?: {
      before?: boolean;
      after?: boolean;
    };
    export?: {
      before?: boolean;
      after?: boolean;
    };
    extends?: {
      before?: boolean;
      after?: boolean;
    };
    false?: {
      before?: boolean;
      after?: boolean;
    };
    final?: {
      before?: boolean;
      after?: boolean;
    };
    finally?: {
      before?: boolean;
      after?: boolean;
    };
    float?: {
      before?: boolean;
      after?: boolean;
    };
    for?: {
      before?: boolean;
      after?: boolean;
    };
    from?: {
      before?: boolean;
      after?: boolean;
    };
    function?: {
      before?: boolean;
      after?: boolean;
    };
    get?: {
      before?: boolean;
      after?: boolean;
    };
    goto?: {
      before?: boolean;
      after?: boolean;
    };
    if?: {
      before?: boolean;
      after?: boolean;
    };
    implements?: {
      before?: boolean;
      after?: boolean;
    };
    import?: {
      before?: boolean;
      after?: boolean;
    };
    in?: {
      before?: boolean;
      after?: boolean;
    };
    instanceof?: {
      before?: boolean;
      after?: boolean;
    };
    int?: {
      before?: boolean;
      after?: boolean;
    };
    interface?: {
      before?: boolean;
      after?: boolean;
    };
    let?: {
      before?: boolean;
      after?: boolean;
    };
    long?: {
      before?: boolean;
      after?: boolean;
    };
    native?: {
      before?: boolean;
      after?: boolean;
    };
    new?: {
      before?: boolean;
      after?: boolean;
    };
    null?: {
      before?: boolean;
      after?: boolean;
    };
    of?: {
      before?: boolean;
      after?: boolean;
    };
    package?: {
      before?: boolean;
      after?: boolean;
    };
    private?: {
      before?: boolean;
      after?: boolean;
    };
    protected?: {
      before?: boolean;
      after?: boolean;
    };
    public?: {
      before?: boolean;
      after?: boolean;
    };
    return?: {
      before?: boolean;
      after?: boolean;
    };
    set?: {
      before?: boolean;
      after?: boolean;
    };
    short?: {
      before?: boolean;
      after?: boolean;
    };
    static?: {
      before?: boolean;
      after?: boolean;
    };
    super?: {
      before?: boolean;
      after?: boolean;
    };
    switch?: {
      before?: boolean;
      after?: boolean;
    };
    synchronized?: {
      before?: boolean;
      after?: boolean;
    };
    this?: {
      before?: boolean;
      after?: boolean;
    };
    throw?: {
      before?: boolean;
      after?: boolean;
    };
    throws?: {
      before?: boolean;
      after?: boolean;
    };
    transient?: {
      before?: boolean;
      after?: boolean;
    };
    true?: {
      before?: boolean;
      after?: boolean;
    };
    try?: {
      before?: boolean;
      after?: boolean;
    };
    typeof?: {
      before?: boolean;
      after?: boolean;
    };
    var?: {
      before?: boolean;
      after?: boolean;
    };
    void?: {
      before?: boolean;
      after?: boolean;
    };
    volatile?: {
      before?: boolean;
      after?: boolean;
    };
    while?: {
      before?: boolean;
      after?: boolean;
    };
    with?: {
      before?: boolean;
      after?: boolean;
    };
    yield?: {
      before?: boolean;
      after?: boolean;
    };
  };
}];
// ----- line-comment-position -----
type LineCommentPosition = [] | [(("above" | "beside") | {
  position?: ("above" | "beside");
  ignorePattern?: string;
  applyDefaultPatterns?: boolean;
  applyDefaultIgnorePatterns?: boolean;
})];
// ----- linebreak-style -----
type LinebreakStyle = [] | [("unix" | "windows")];
// ----- lines-around-comment -----
type LinesAroundComment = [] | [{
  beforeBlockComment?: boolean;
  afterBlockComment?: boolean;
  beforeLineComment?: boolean;
  afterLineComment?: boolean;
  allowBlockStart?: boolean;
  allowBlockEnd?: boolean;
  allowClassStart?: boolean;
  allowClassEnd?: boolean;
  allowObjectStart?: boolean;
  allowObjectEnd?: boolean;
  allowArrayStart?: boolean;
  allowArrayEnd?: boolean;
  ignorePattern?: string;
  applyDefaultIgnorePatterns?: boolean;
  afterHashbangComment?: boolean;
}];
// ----- lines-around-directive -----
type LinesAroundDirective = [] | [(("always" | "never") | {
  before?: ("always" | "never");
  after?: ("always" | "never");
})];
// ----- lines-between-class-members -----
type LinesBetweenClassMembers = [] | [({
  enforce: [{
    blankLine: ("always" | "never");
    prev: ("method" | "field" | "*");
    next: ("method" | "field" | "*");
  }, ...({
    blankLine: ("always" | "never");
    prev: ("method" | "field" | "*");
    next: ("method" | "field" | "*");
  })[]];
} | ("always" | "never"))] | [({
  enforce: [{
    blankLine: ("always" | "never");
    prev: ("method" | "field" | "*");
    next: ("method" | "field" | "*");
  }, ...({
    blankLine: ("always" | "never");
    prev: ("method" | "field" | "*");
    next: ("method" | "field" | "*");
  })[]];
} | ("always" | "never")), {
  exceptAfterSingleLine?: boolean;
}];
// ----- link-checker/valid-route -----
type LinkCheckerValidRoute = [] | [{
  routesFile?: string;
  rootDir?: string;
}];
// ----- link-checker/valid-sitemap-link -----
type LinkCheckerValidSitemapLink = [] | [{
  routesFile?: string;
  rootDir?: string;
}];
// ----- logical-assignment-operators -----
type LogicalAssignmentOperators = (([] | ["always"] | ["always", {
  enforceForIfStatements?: boolean;
}] | ["never"]) & unknown[]);
// ----- 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;
}];
// ----- max-classes-per-file -----
type MaxClassesPerFile = [] | [(number | {
  ignoreExpressions?: boolean;
  max?: number;
})];
// ----- max-depth -----
type MaxDepth = [] | [(number | {
  maximum?: number;
  max?: number;
})];
// ----- max-len -----
type MaxLen = [] | [({
  code?: number;
  comments?: number;
  tabWidth?: number;
  ignorePattern?: string;
  ignoreComments?: boolean;
  ignoreStrings?: boolean;
  ignoreUrls?: boolean;
  ignoreTemplateLiterals?: boolean;
  ignoreRegExpLiterals?: boolean;
  ignoreTrailingComments?: boolean;
} | number)] | [({
  code?: number;
  comments?: number;
  tabWidth?: number;
  ignorePattern?: string;
  ignoreComments?: boolean;
  ignoreStrings?: boolean;
  ignoreUrls?: boolean;
  ignoreTemplateLiterals?: boolean;
  ignoreRegExpLiterals?: boolean;
  ignoreTrailingComments?: boolean;
} | number), ({
  code?: number;
  comments?: number;
  tabWidth?: number;
  ignorePattern?: string;
  ignoreComments?: boolean;
  ignoreStrings?: boolean;
  ignoreUrls?: boolean;
  ignoreTemplateLiterals?: boolean;
  ignoreRegExpLiterals?: boolean;
  ignoreTrailingComments?: boolean;
} | number)] | [({
  code?: number;
  comments?: number;
  tabWidth?: number;
  ignorePattern?: string;
  ignoreComments?: boolean;
  ignoreStrings?: boolean;
  ignoreUrls?: boolean;
  ignoreTemplateLiterals?: boolean;
  ignoreRegExpLiterals?: boolean;
  ignoreTrailingComments?: boolean;
} | number), ({
  code?: number;
  comments?: number;
  tabWidth?: number;
  ignorePattern?: string;
  ignoreComments?: boolean;
  ignoreStrings?: boolean;
  ignoreUrls?: boolean;
  ignoreTemplateLiterals?: boolean;
  ignoreRegExpLiterals?: boolean;
  ignoreTrailingComments?: boolean;
} | number), {
  code?: number;
  comments?: number;
  tabWidth?: number;
  ignorePattern?: string;
  ignoreComments?: boolean;
  ignoreStrings?: boolean;
  ignoreUrls?: boolean;
  ignoreTemplateLiterals?: boolean;
  ignoreRegExpLiterals?: boolean;
  ignoreTrailingComments?: boolean;
}];
// ----- max-lines -----
type MaxLines = [] | [(number | {
  max?: number;
  skipComments?: boolean;
  skipBlankLines?: boolean;
})];
// ----- max-lines-per-function -----
type MaxLinesPerFunction = [] | [({
  max?: number;
  skipComments?: boolean;
  skipBlankLines?: boolean;
  IIFEs?: boolean;
} | number)];
// ----- max-nested-callbacks -----
type MaxNestedCallbacks = [] | [(number | {
  maximum?: number;
  max?: number;
  checkConstructorCallCallbacks?: boolean;
})];
// ----- max-params -----
type MaxParams = [] | [(number | {
  maximum?: number;
  max?: number;
  countVoidThis?: boolean;
  countThis?: ("never" | "except-void" | "always");
})];
// ----- max-statements -----
type MaxStatements = [] | [(number | {
  maximum?: number;
  max?: number;
})] | [(number | {
  maximum?: number;
  max?: number;
}), {
  ignoreTopLevelFunctions?: boolean;
}];
// ----- max-statements-per-line -----
type MaxStatementsPerLine = [] | [{
  max?: number;
}];
// ----- multiline-comment-style -----
type MultilineCommentStyle = ([] | [("starred-block" | "bare-block")] | [] | ["separate-lines"] | ["separate-lines", {
  checkJSDoc?: boolean;
}]);
// ----- multiline-ternary -----
type MultilineTernary = [] | [("always" | "always-multiline" | "never")];
// ----- 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/prefer-process-get-builtin-module -----
type NPreferProcessGetBuiltinModule = [] | [{
  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;
  };
}];
// ----- new-cap -----
type NewCap = [] | [{
  newIsCap?: boolean;
  capIsNew?: boolean;
  newIsCapExceptions?: string[];
  newIsCapExceptionPattern?: string;
  capIsNewExceptions?: string[];
  capIsNewExceptionPattern?: string;
  properties?: boolean;
}];
// ----- new-parens -----
type NewParens = [] | [("always" | "never")];
// ----- newline-after-var -----
type NewlineAfterVar = [] | [("never" | "always")];
// ----- newline-per-chained-call -----
type NewlinePerChainedCall = [] | [{
  ignoreChainWithDepth?: number;
}];
// ----- next/no-html-link-for-pages -----
type NextNoHtmlLinkForPages = [] | [(string | string[])];
// ----- no-bitwise -----
type NoBitwise = [] | [{
  allow?: ("^" | "|" | "&" | "<<" | ">>" | ">>>" | "^=" | "|=" | "&=" | "<<=" | ">>=" | ">>>=" | "~")[];
  int32Hint?: boolean;
}];
// ----- no-cond-assign -----
type NoCondAssign = [] | [("except-parens" | "always")];
// ----- no-confusing-arrow -----
type NoConfusingArrow = [] | [{
  allowParens?: boolean;
  onlyOneSimpleParam?: boolean;
}];
// ----- no-console -----
type NoConsole = [] | [{
  allow?: [string, ...(string)[]];
}];
// ----- no-constant-binary-expression -----
type NoConstantBinaryExpression = [] | [{
  checkRelationalComparisons?: boolean;
}];
// ----- no-constant-condition -----
type NoConstantCondition = [] | [{
  checkLoops?: ("all" | "allExceptWhileTrue" | "none" | true | false);
}];
// ----- no-duplicate-imports -----
type NoDuplicateImports = [] | [{
  includeExports?: boolean;
  allowSeparateTypeImports?: boolean;
}];
// ----- no-else-return -----
type NoElseReturn = [] | [{
  allowElseIf?: boolean;
}];
// ----- no-empty -----
type NoEmpty = [] | [{
  allowEmptyCatch?: boolean;
}];
// ----- no-empty-function -----
type NoEmptyFunction = [] | [{
  allow?: ("functions" | "arrowFunctions" | "generatorFunctions" | "methods" | "generatorMethods" | "getters" | "setters" | "constructors" | "asyncFunctions" | "asyncMethods" | "privateConstructors" | "protectedConstructors" | "decoratedFunctions" | "overrideMethods")[];
}];
// ----- no-empty-pattern -----
type NoEmptyPattern = [] | [{
  allowObjectPatternsAsParameters?: boolean;
}];
// ----- no-eval -----
type NoEval = [] | [{
  allowIndirect?: boolean;
}];
// ----- no-extend-native -----
type NoExtendNative = [] | [{
  exceptions?: string[];
}];
// ----- no-extra-boolean-cast -----
type NoExtraBooleanCast = [] | [({
  enforceForInnerExpressions?: boolean;
} | {
  enforceForLogicalOperands?: boolean;
})];
// ----- no-extra-parens -----
type NoExtraParens = ([] | ["functions"] | [] | ["all"] | ["all", {
  conditionalAssign?: boolean;
  ternaryOperandBinaryExpressions?: boolean;
  nestedBinaryExpressions?: boolean;
  returnAssign?: boolean;
  ignoreJSX?: ("none" | "all" | "single-line" | "multi-line");
  enforceForArrowConditionals?: boolean;
  enforceForSequenceExpressions?: boolean;
  enforceForNewInMemberExpressions?: boolean;
  enforceForFunctionPrototypeMethods?: boolean;
  allowParensAfterCommentPattern?: string;
}]);
// ----- no-fallthrough -----
type NoFallthrough = [] | [{
  commentPattern?: string;
  allowEmptyCase?: boolean;
  reportUnusedFallthroughComment?: boolean;
}];
// ----- no-global-assign -----
type NoGlobalAssign = [] | [{
  exceptions?: string[];
}];
// ----- no-implicit-coercion -----
type NoImplicitCoercion = [] | [{
  boolean?: boolean;
  number?: boolean;
  string?: boolean;
  disallowTemplateShorthand?: boolean;
  allow?: ("~" | "!!" | "+" | "- -" | "-" | "*")[];
}];
// ----- no-implicit-globals -----
type NoImplicitGlobals = [] | [{
  lexicalBindings?: boolean;
}];
// ----- no-inline-comments -----
type NoInlineComments = [] | [{
  ignorePattern?: string;
}];
// ----- no-inner-declarations -----
type NoInnerDeclarations = [] | [("functions" | "both")] | [("functions" | "both"), {
  blockScopedFunctions?: ("allow" | "disallow");
}];
// ----- no-invalid-regexp -----
type NoInvalidRegexp = [] | [{
  allowConstructorFlags?: string[];
}];
// ----- no-invalid-this -----
type NoInvalidThis = [] | [{
  capIsConstructor?: boolean;
}];
// ----- no-irregular-whitespace -----
type NoIrregularWhitespace = [] | [{
  skipComments?: boolean;
  skipStrings?: boolean;
  skipTemplates?: boolean;
  skipRegExps?: boolean;
  skipJSXText?: boolean;
}];
// ----- no-labels -----
type NoLabels = [] | [{
  allowLoop?: boolean;
  allowSwitch?: boolean;
}];
// ----- no-magic-numbers -----
type NoMagicNumbers = [] | [{
  detectObjects?: boolean;
  enforceConst?: boolean;
  ignore?: (number | string)[];
  ignoreArrayIndexes?: boolean;
  ignoreDefaultValues?: boolean;
  ignoreClassFieldInitialValues?: boolean;
  ignoreEnums?: boolean;
  ignoreNumericLiteralTypes?: boolean;
  ignoreReadonlyClassProperties?: boolean;
  ignoreTypeIndexes?: boolean;
}];
// ----- no-misleading-character-class -----
type NoMisleadingCharacterClass = [] | [{
  allowEscape?: boolean;
}];
// ----- no-mixed-operators -----
type NoMixedOperators = [] | [{
  groups?: [("+" | "-" | "*" | "/" | "%" | "**" | "&" | "|" | "^" | "~" | "<<" | ">>" | ">>>" | "==" | "!=" | "===" | "!==" | ">" | ">=" | "<" | "<=" | "&&" | "||" | "in" | "instanceof" | "?:" | "??"), ("+" | "-" | "*" | "/" | "%" | "**" | "&" | "|" | "^" | "~" | "<<" | ">>" | ">>>" | "==" | "!=" | "===" | "!==" | ">" | ">=" | "<" | "<=" | "&&" | "||" | "in" | "instanceof" | "?:" | "??"), ...(("+" | "-" | "*" | "/" | "%" | "**" | "&" | "|" | "^" | "~" | "<<" | ">>" | ">>>" | "==" | "!=" | "===" | "!==" | ">" | ">=" | "<" | "<=" | "&&" | "||" | "in" | "instanceof" | "?:" | "??"))[]][];
  allowSamePrecedence?: boolean;
}];
// ----- no-mixed-requires -----
type NoMixedRequires = [] | [(boolean | {
  grouping?: boolean;
  allowCall?: boolean;
})];
// ----- no-mixed-spaces-and-tabs -----
type NoMixedSpacesAndTabs = [] | [("smart-tabs" | true | false)];
// ----- no-multi-assign -----
type NoMultiAssign = [] | [{
  ignoreNonDeclaration?: boolean;
}];
// ----- no-multi-spaces -----
type NoMultiSpaces = [] | [{
  exceptions?: {
    [k: string]: boolean;
  };
  ignoreEOLComments?: boolean;
}];
// ----- no-multiple-empty-lines -----
type NoMultipleEmptyLines = [] | [{
  max: number;
  maxEOF?: number;
  maxBOF?: number;
}];
// ----- no-native-reassign -----
type NoNativeReassign = [] | [{
  exceptions?: string[];
}];
// ----- no-param-reassign -----
type NoParamReassign = [] | [({
  props?: false;
} | {
  props?: true;
  ignorePropertyModificationsFor?: string[];
  ignorePropertyModificationsForRegex?: string[];
})];
// ----- no-plusplus -----
type NoPlusplus = [] | [{
  allowForLoopAfterthoughts?: boolean;
}];
// ----- no-promise-executor-return -----
type NoPromiseExecutorReturn = [] | [{
  allowVoid?: boolean;
}];
// ----- no-redeclare -----
type NoRedeclare = [] | [{
  builtinGlobals?: boolean;
}];
// ----- no-restricted-exports -----
type NoRestrictedExports = [] | [({
  restrictedNamedExports?: string[];
  restrictedNamedExportsPattern?: string;
} | {
  restrictedNamedExports?: string[];
  restrictedNamedExportsPattern?: string;
  restrictDefaultExports?: {
    direct?: boolean;
    named?: boolean;
    defaultFrom?: boolean;
    namedFrom?: boolean;
    namespaceFrom?: boolean;
  };
})];
// ----- no-restricted-globals -----
type NoRestrictedGlobals = ((string | {
  name: string;
  message?: string;
})[] | [] | [{
  globals: (string | {
    name: string;
    message?: string;
  })[];
  checkGlobalObject?: boolean;
  globalObjects?: string[];
}]);
// ----- no-restricted-imports -----
type NoRestrictedImports = ((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[] | ({
    [k: string]: unknown | undefined;
  } | {
    [k: string]: unknown | undefined;
  })[]);
}]);
// ----- no-restricted-modules -----
type NoRestrictedModules = ((string | {
  name: string;
  message?: string;
})[] | {
  paths?: (string | {
    name: string;
    message?: string;
  })[];
  patterns?: string[];
}[]);
// ----- no-restricted-properties -----
type NoRestrictedProperties = ({
  [k: string]: unknown | undefined;
} | {
  [k: string]: unknown | undefined;
})[];
// ----- no-restricted-syntax -----
type NoRestrictedSyntax = (string | {
  selector: string;
  message?: string;
})[];
// ----- no-return-assign -----
type NoReturnAssign = [] | [("except-parens" | "always")];
// ----- no-self-assign -----
type NoSelfAssign = [] | [{
  props?: boolean;
}];
// ----- no-sequences -----
type NoSequences = [] | [{
  allowInParentheses?: boolean;
}];
// ----- no-shadow -----
type NoShadow = [] | [{
  builtinGlobals?: boolean;
  hoist?: ("all" | "functions" | "never" | "types" | "functions-and-types");
  allow?: string[];
  ignoreOnInitialization?: boolean;
  ignoreTypeValueShadow?: boolean;
  ignoreFunctionTypeParameterNameValueShadow?: boolean;
}];
// ----- no-shadow-restricted-names -----
type NoShadowRestrictedNames = [] | [{
  reportGlobalThis?: boolean;
}];
// ----- no-sync -----
type NoSync = [] | [{
  allowAtRootLevel?: boolean;
}];
// ----- no-tabs -----
type NoTabs = [] | [{
  allowIndentationTabs?: boolean;
}];
// ----- no-trailing-spaces -----
type NoTrailingSpaces = [] | [{
  skipBlankLines?: boolean;
  ignoreComments?: boolean;
}];
// ----- no-undef -----
type NoUndef = [] | [{
  typeof?: boolean;
}];
// ----- no-underscore-dangle -----
type NoUnderscoreDangle = [] | [{
  allow?: string[];
  allowAfterThis?: boolean;
  allowAfterSuper?: boolean;
  allowAfterThisConstructor?: boolean;
  enforceInMethodNames?: boolean;
  allowFunctionParams?: boolean;
  enforceInClassFields?: boolean;
  allowInArrayDestructuring?: boolean;
  allowInObjectDestructuring?: boolean;
}];
// ----- no-unmodified-loop-condition -----
type NoUnmodifiedLoopCondition = [] | [{
  checkConditionalExpressions?: boolean;
}];
// ----- no-unneeded-ternary -----
type NoUnneededTernary = [] | [{
  defaultAssignment?: boolean;
}];
// ----- no-unreachable-loop -----
type NoUnreachableLoop = [] | [{
  ignore?: ("WhileStatement" | "DoWhileStatement" | "ForStatement" | "ForInStatement" | "ForOfStatement")[];
}];
// ----- no-unsafe-negation -----
type NoUnsafeNegation = [] | [{
  enforceForOrderingRelations?: boolean;
}];
// ----- no-unsafe-optional-chaining -----
type NoUnsafeOptionalChaining = [] | [{
  disallowArithmeticOperators?: boolean;
}];
// ----- no-unused-expressions -----
type NoUnusedExpressions = [] | [{
  allowShortCircuit?: boolean;
  allowTernary?: boolean;
  allowTaggedTemplates?: boolean;
  enforceForJSX?: boolean;
  ignoreDirectives?: boolean;
}];
// ----- no-unused-vars -----
type NoUnusedVars = [] | [(("all" | "local") | {
  vars?: ("all" | "local");
  varsIgnorePattern?: string;
  args?: ("all" | "after-used" | "none");
  ignoreRestSiblings?: boolean;
  argsIgnorePattern?: string;
  caughtErrors?: ("all" | "none");
  caughtErrorsIgnorePattern?: string;
  destructuredArrayIgnorePattern?: string;
  ignoreClassWithStaticInitBlock?: boolean;
  ignoreUsingDeclarations?: boolean;
  reportUsedIgnorePattern?: boolean;
})];
// ----- no-use-before-define -----
type NoUseBeforeDefine = [] | [("nofunc" | {
  functions?: boolean;
  classes?: boolean;
  variables?: boolean;
  allowNamedExports?: boolean;
  enums?: boolean;
  typedefs?: boolean;
  ignoreTypeReferences?: boolean;
})];
// ----- no-useless-computed-key -----
type NoUselessComputedKey = [] | [{
  enforceForClassMembers?: boolean;
}];
// ----- no-useless-escape -----
type NoUselessEscape = [] | [{
  allowRegexCharacters?: string[];
}];
// ----- no-useless-rename -----
type NoUselessRename = [] | [{
  ignoreDestructuring?: boolean;
  ignoreImport?: boolean;
  ignoreExport?: boolean;
}];
// ----- no-void -----
type NoVoid = [] | [{
  allowAsStatement?: boolean;
}];
// ----- no-warning-comments -----
type NoWarningComments = [] | [{
  terms?: string[];
  location?: ("start" | "anywhere");
  decoration?: [string, ...(string)[]];
}];
// ----- nonblock-statement-body-position -----
type NonblockStatementBodyPosition = [] | [("beside" | "below" | "any")] | [("beside" | "below" | "any"), {
  overrides?: {
    if?: ("beside" | "below" | "any");
    else?: ("beside" | "below" | "any");
    while?: ("beside" | "below" | "any");
    do?: ("beside" | "below" | "any");
    for?: ("beside" | "below" | "any");
  };
}];
// ----- object-curly-newline -----
type ObjectCurlyNewline = [] | [((("always" | "never") | {
  multiline?: boolean;
  minProperties?: number;
  consistent?: boolean;
}) | {
  ObjectExpression?: (("always" | "never") | {
    multiline?: boolean;
    minProperties?: number;
    consistent?: boolean;
  });
  ObjectPattern?: (("always" | "never") | {
    multiline?: boolean;
    minProperties?: number;
    consistent?: boolean;
  });
  ImportDeclaration?: (("always" | "never") | {
    multiline?: boolean;
    minProperties?: number;
    consistent?: boolean;
  });
  ExportDeclaration?: (("always" | "never") | {
    multiline?: boolean;
    minProperties?: number;
    consistent?: boolean;
  });
})];
// ----- object-curly-spacing -----
type ObjectCurlySpacing = [] | [("always" | "never")] | [("always" | "never"), {
  arraysInObjects?: boolean;
  objectsInObjects?: boolean;
}];
// ----- object-property-newline -----
type ObjectPropertyNewline = [] | [{
  allowAllPropertiesOnSameLine?: boolean;
  allowMultiplePropertiesPerLine?: boolean;
}];
// ----- object-shorthand -----
type ObjectShorthand = ([] | [("always" | "methods" | "properties" | "never" | "consistent" | "consistent-as-needed")] | [] | [("always" | "methods" | "properties")] | [("always" | "methods" | "properties"), {
  avoidQuotes?: boolean;
}] | [] | [("always" | "methods")] | [("always" | "methods"), {
  ignoreConstructors?: boolean;
  methodsIgnorePattern?: string;
  avoidQuotes?: boolean;
  avoidExplicitReturnArrows?: boolean;
}]);
// ----- one-var -----
type OneVar = [] | [(("always" | "never" | "consecutive") | {
  separateRequires?: boolean;
  var?: ("always" | "never" | "consecutive");
  let?: ("always" | "never" | "consecutive");
  const?: ("always" | "never" | "consecutive");
  using?: ("always" | "never" | "consecutive");
  awaitUsing?: ("always" | "never" | "consecutive");
} | {
  initialized?: ("always" | "never" | "consecutive");
  uninitialized?: ("always" | "never" | "consecutive");
})];
// ----- one-var-declaration-per-line -----
type OneVarDeclarationPerLine = [] | [("always" | "initializations")];
// ----- operator-assignment -----
type OperatorAssignment = [] | [("always" | "never")];
// ----- operator-linebreak -----
type OperatorLinebreak = [] | [("after" | "before" | "none" | null)] | [("after" | "before" | "none" | null), {
  overrides?: {
    [k: string]: ("after" | "before" | "none" | "ignore") | undefined;
  };
}];
// ----- package-json/exports-subpaths-style -----
type PackageJsonExportsSubpathsStyle = [] | [{
  prefer?: ("implicit" | "explicit");
}];
// ----- package-json/no-empty-fields -----
type PackageJsonNoEmptyFields = [] | [{
  ignoreProperties?: string[];
}];
// ----- package-json/no-local-dependencies -----
type PackageJsonNoLocalDependencies = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/order-properties -----
type PackageJsonOrderProperties = [] | [{
  order?: ("sort-package-json" | string[]);
}];
// ----- package-json/repository-shorthand -----
type PackageJsonRepositoryShorthand = [] | [{
  form?: ("object" | "shorthand");
}];
// ----- package-json/require-attribution -----
type PackageJsonRequireAttribution = [] | [{
  ignorePrivate?: boolean;
  preferContributorsOnly?: boolean;
}];
// ----- package-json/require-author -----
type PackageJsonRequireAuthor = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-bin -----
type PackageJsonRequireBin = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-browser -----
type PackageJsonRequireBrowser = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-bugs -----
type PackageJsonRequireBugs = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-bundleDependencies -----
type PackageJsonRequireBundleDependencies = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-config -----
type PackageJsonRequireConfig = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-contributors -----
type PackageJsonRequireContributors = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-cpu -----
type PackageJsonRequireCpu = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-dependencies -----
type PackageJsonRequireDependencies = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-description -----
type PackageJsonRequireDescription = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-devDependencies -----
type PackageJsonRequireDevDependencies = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-devEngines -----
type PackageJsonRequireDevEngines = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-directories -----
type PackageJsonRequireDirectories = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-engines -----
type PackageJsonRequireEngines = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-exports -----
type PackageJsonRequireExports = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-files -----
type PackageJsonRequireFiles = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-funding -----
type PackageJsonRequireFunding = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-gypfile -----
type PackageJsonRequireGypfile = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-homepage -----
type PackageJsonRequireHomepage = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-keywords -----
type PackageJsonRequireKeywords = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-libc -----
type PackageJsonRequireLibc = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-license -----
type PackageJsonRequireLicense = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-main -----
type PackageJsonRequireMain = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-man -----
type PackageJsonRequireMan = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-module -----
type PackageJsonRequireModule = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-name -----
type PackageJsonRequireName = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-optionalDependencies -----
type PackageJsonRequireOptionalDependencies = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-os -----
type PackageJsonRequireOs = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-packageManager -----
type PackageJsonRequirePackageManager = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-peerDependencies -----
type PackageJsonRequirePeerDependencies = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-peerDependenciesMeta -----
type PackageJsonRequirePeerDependenciesMeta = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-publishConfig -----
type PackageJsonRequirePublishConfig = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-repository -----
type PackageJsonRequireRepository = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-scripts -----
type PackageJsonRequireScripts = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-sideEffects -----
type PackageJsonRequireSideEffects = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-type -----
type PackageJsonRequireType = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-types -----
type PackageJsonRequireTypes = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/require-version -----
type PackageJsonRequireVersion = [] | [{
  ignorePrivate?: boolean;
}];
// ----- package-json/restrict-dependency-ranges -----
type PackageJsonRestrictDependencyRanges = [] | [({
  forDependencyTypes?: ("dependencies" | "devDependencies" | "optionalDependencies" | "peerDependencies")[];
  forPackages?: string[];
  forVersions?: string;
  rangeType: (("^" | "~" | "<" | "<=" | ">" | ">=" | "caret" | "pin" | "tilde" | "lt" | "le" | "gt" | "ge") | ("^" | "~" | "<" | "<=" | ">" | ">=" | "caret" | "pin" | "tilde" | "lt" | "le" | "gt" | "ge")[]);
} | {
  forDependencyTypes?: ("dependencies" | "devDependencies" | "optionalDependencies" | "peerDependencies")[];
  forPackages?: string[];
  forVersions?: string;
  rangeType: (("^" | "~" | "<" | "<=" | ">" | ">=" | "caret" | "pin" | "tilde" | "lt" | "le" | "gt" | "ge") | ("^" | "~" | "<" | "<=" | ">" | ">=" | "caret" | "pin" | "tilde" | "lt" | "le" | "gt" | "ge")[]);
}[])];
// ----- package-json/restrict-private-properties -----
type PackageJsonRestrictPrivateProperties = [] | [{
  blockedProperties?: string[];
}];
// ----- package-json/restrict-top-level-properties -----
type PackageJsonRestrictTopLevelProperties = [] | [{
  ban?: (string | {
    message?: string;
    property: string;
  })[];
}];
// ----- package-json/scripts-name-casing -----
type PackageJsonScriptsNameCasing = [] | [{
  ignoreNames?: string[];
  ignorePatterns?: string[];
}];
// ----- package-json/sort-collections -----
type PackageJsonSortCollections = [] | [(string | {
  key: string;
  order: string[];
})[]];
// ----- padded-blocks -----
type PaddedBlocks = [] | [(("always" | "never") | {
  blocks?: ("always" | "never");
  switches?: ("always" | "never");
  classes?: ("always" | "never");
})] | [(("always" | "never") | {
  blocks?: ("always" | "never");
  switches?: ("always" | "never");
  classes?: ("always" | "never");
}), {
  allowSingleLineBlocks?: boolean;
}];
// ----- padding-line-between-statements -----
type _PaddingLineBetweenStatementsPaddingType = ("any" | "never" | "always");
type _PaddingLineBetweenStatementsStatementType = (("*" | "block-like" | "cjs-export" | "cjs-import" | "directive" | "expression" | "iife" | "multiline-block-like" | "multiline-expression" | "multiline-const" | "multiline-let" | "multiline-var" | "singleline-const" | "singleline-let" | "singleline-var" | "block" | "empty" | "function" | "break" | "case" | "class" | "const" | "continue" | "debugger" | "default" | "do" | "export" | "for" | "if" | "import" | "let" | "return" | "switch" | "throw" | "try" | "var" | "while" | "with") | [("*" | "block-like" | "cjs-export" | "cjs-import" | "directive" | "expression" | "iife" | "multiline-block-like" | "multiline-expression" | "multiline-const" | "multiline-let" | "multiline-var" | "singleline-const" | "singleline-let" | "singleline-var" | "block" | "empty" | "function" | "break" | "case" | "class" | "const" | "continue" | "debugger" | "default" | "do" | "export" | "for" | "if" | "import" | "let" | "return" | "switch" | "throw" | "try" | "var" | "while" | "with"), ...(("*" | "block-like" | "cjs-export" | "cjs-import" | "directive" | "expression" | "iife" | "multiline-block-like" | "multiline-expression" | "multiline-const" | "multiline-let" | "multiline-var" | "singleline-const" | "singleline-let" | "singleline-var" | "block" | "empty" | "function" | "break" | "case" | "class" | "const" | "continue" | "debugger" | "default" | "do" | "export" | "for" | "if" | "import" | "let" | "return" | "switch" | "throw" | "try" | "var" | "while" | "with"))[]]);
type PaddingLineBetweenStatements = {
  blankLine: _PaddingLineBetweenStatementsPaddingType;
  prev: _PaddingLineBetweenStatementsStatementType;
  next: _PaddingLineBetweenStatementsStatementType;
}[];
// ----- perfectionist/sort-array-includes -----
type PerfectionistSortArrayIncludes = {
  fallbackSort?: {
    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;
  });
}];
// ----- prefer-arrow-callback -----
type PreferArrowCallback = [] | [{
  allowNamedFunctions?: boolean;
  allowUnboundThis?: boolean;
}];
// ----- prefer-const -----
type PreferConst = [] | [{
  destructuring?: ("any" | "all");
  ignoreReadBeforeAssign?: boolean;
}];
// ----- prefer-destructuring -----
type PreferDestructuring = [] | [({
  VariableDeclarator?: {
    array?: boolean;
    object?: boolean;
  };
  AssignmentExpression?: {
    array?: boolean;
    object?: boolean;
  };
} | {
  array?: boolean;
  object?: boolean;
})] | [({
  VariableDeclarator?: {
    array?: boolean;
    object?: boolean;
  };
  AssignmentExpression?: {
    array?: boolean;
    object?: boolean;
  };
} | {
  array?: boolean;
  object?: boolean;
}), {
  enforceForRenamedProperties?: boolean;
}];
// ----- prefer-promise-reject-errors -----
type PreferPromiseRejectErrors = [] | [{
  allowEmptyReject?: boolean;
}];
// ----- prefer-reflect -----
type PreferReflect = [] | [{
  exceptions?: ("apply" | "call" | "delete" | "defineProperty" | "getOwnPropertyDescriptor" | "getPrototypeOf" | "setPrototypeOf" | "isExtensible" | "getOwnPropertyNames" | "preventExtensions")[];
}];
// ----- prefer-regex-literals -----
type PreferRegexLiterals = [] | [{
  disallowRedundantWrapping?: boolean;
}];
// ----- preserve-caught-error -----
type PreserveCaughtError = [] | [{
  requireCatchParameter?: boolean;
  errorClassNames?: (string | {
    name: string;
    argumentPosition: number;
  })[];
}];
// ----- 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[];
}];
// ----- quote-props -----
type QuoteProps = ([] | [("always" | "as-needed" | "consistent" | "consistent-as-needed")] | [] | [("always" | "as-needed" | "consistent" | "consistent-as-needed")] | [("always" | "as-needed" | "consistent" | "consistent-as-needed"), {
  keywords?: boolean;
  unnecessary?: boolean;
  numbers?: boolean;
}]);
// ----- quotes -----
type Quotes = [] | [("single" | "double" | "backtick")] | [("single" | "double" | "backtick"), ("avoid-escape" | {
  avoidEscape?: boolean;
  allowTemplateLiterals?: boolean;
})];
// ----- radix -----
type Radix = [] | [("always" | "as-needed")];
// ----- require-atomic-updates -----
type RequireAtomicUpdates = [] | [{
  allowProperties?: boolean;
}];
// ----- require-unicode-regexp -----
type RequireUnicodeRegexp = [] | [{
  requireFlag?: ("u" | "v");
}];
// ----- rest-spread-spacing -----
type RestSpreadSpacing = [] | [("always" | "never")];
// ----- semi -----
type Semi = ([] | ["never"] | ["never", {
  beforeStatementContinuationChars?: ("always" | "any" | "never");
}] | [] | ["always"] | ["always", {
  omitLastInOneLineBlock?: boolean;
  omitLastInOneLineClassBody?: boolean;
}]);
// ----- semi-spacing -----
type SemiSpacing = [] | [{
  before?: boolean;
  after?: boolean;
}];
// ----- semi-style -----
type SemiStyle = [] | [("last" | "first")];
// ----- sort-imports -----
type SortImports = [] | [{
  ignoreCase?: boolean;
  memberSyntaxSortOrder?: [("none" | "all" | "multiple" | "single"), ("none" | "all" | "multiple" | "single"), ("none" | "all" | "multiple" | "single"), ("none" | "all" | "multiple" | "single")];
  ignoreDeclarationSort?: boolean;
  ignoreMemberSort?: boolean;
  allowSeparatedGroups?: boolean;
}];
// ----- sort-keys -----
type SortKeys = [] | [("asc" | "desc")] | [("asc" | "desc"), {
  caseSensitive?: boolean;
  natural?: boolean;
  minKeys?: number;
  allowLineSeparatedGroups?: boolean;
  ignoreComputedKeys?: boolean;
}];
// ----- sort-vars -----
type SortVars = [] | [{
  ignoreCase?: boolean;
}];
// ----- space-before-blocks -----
type SpaceBeforeBlocks = [] | [(("always" | "never") | {
  keywords?: ("always" | "never" | "off");
  functions?: ("always" | "never" | "off");
  classes?: ("always" | "never" | "off");
})];
// ----- space-before-function-paren -----
type SpaceBeforeFunctionParen = [] | [(("always" | "never") | {
  anonymous?: ("always" | "never" | "ignore");
  named?: ("always" | "never" | "ignore");
  asyncArrow?: ("always" | "never" | "ignore");
})];
// ----- space-in-parens -----
type SpaceInParens = [] | [("always" | "never")] | [("always" | "never"), {
  exceptions?: ("{}" | "[]" | "()" | "empty")[];
}];
// ----- space-infix-ops -----
type SpaceInfixOps = [] | [{
  int32Hint?: boolean;
}];
// ----- space-unary-ops -----
type SpaceUnaryOps = [] | [{
  words?: boolean;
  nonwords?: boolean;
  overrides?: {
    [k: string]: boolean | undefined;
  };
}];
// ----- spaced-comment -----
type SpacedComment = [] | [("always" | "never")] | [("always" | "never"), {
  exceptions?: string[];
  markers?: string[];
  line?: {
    exceptions?: string[];
    markers?: string[];
  };
  block?: {
    exceptions?: string[];
    markers?: string[];
    balanced?: boolean;
  };
}];
// ----- storybook/meta-inline-properties -----
type StorybookMetaInlineProperties = [] | [{
  csfVersion?: number;
}];
// ----- storybook/no-uninstalled-addons -----
type StorybookNoUninstalledAddons = [] | [{
  packageJsonLocation?: string;
  ignore?: string[];
}];
// ----- strict -----
type Strict = [] | [("never" | "global" | "function" | "safe")];
// ----- switch-colon-spacing -----
type SwitchColonSpacing = [] | [{
  before?: boolean;
  after?: boolean;
}];
// ----- template-curly-spacing -----
type TemplateCurlySpacing = [] | [("always" | "never")];
// ----- template-tag-spacing -----
type TemplateTagSpacing = [] | [("always" | "never")];
// ----- unicode-bom -----
type UnicodeBom = [] | [("always" | "never")];
// ----- unicorn/catch-error-name -----
type UnicornCatchErrorName = [] | [{
  name?: string;
  ignore?: (string | {
    [k: string]: unknown | undefined;
  })[];
}];
// ----- 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 = [] | [{
  checkVariables?: ("always" | "prohibit" | "never");
  checkArguments?: ("always" | "prohibit" | "never");
  checkFunctions?: ("always" | "prohibit" | "never");
  checkMethods?: ("always" | "prohibit" | "never");
  checkFields?: ("always" | "prohibit" | "never");
  prefixes?: {
    [k: string]: boolean | undefined;
  };
  wrappers?: {
    [k: string]: string | undefined;
  };
  ignore?: unknown[];
  [k: string]: 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");
  defaultExport?: ("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?: (string | {
    [k: string]: unknown | undefined;
  })[];
  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?: (string | {
    [k: string]: unknown | undefined;
  })[];
  multipleFileExtensions?: boolean;
  checkDirectories?: boolean;
} | {
  cases?: {
    camelCase?: boolean;
    camelCaseWithAcronyms?: boolean;
    snakeCase?: boolean;
    kebabCase?: boolean;
    pascalCase?: boolean;
  };
  ignore?: (string | {
    [k: string]: unknown | undefined;
  })[];
  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/iteration-fallback-style -----
type UnicornIterationFallbackStyle = [] | [("guard" | "fallback")];
// ----- 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?: (string | {
    [k: string]: unknown | undefined;
  })[];
}];
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?: (string | {
    [k: string]: unknown | undefined;
  })[];
}];
// ----- 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 | string[] | {
    [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?: string[];
}];
// ----- unicorn/prefer-at -----
type UnicornPreferAt = [] | [{
  getLastElementFunctions?: string[];
  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-https -----
type UnicornPreferHttps = [] | [{
  ignore?: (string | {
    [k: string]: unknown | undefined;
  })[];
}];
// ----- 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?: string[];
}];
// ----- 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?: string[];
}];
// ----- unicorn/prefer-string-repeat -----
type UnicornPreferStringRepeat = [] | [{
  minimumRepetitions?: number;
}];
// ----- unicorn/prefer-structured-clone -----
type UnicornPreferStructuredClone = [] | [{
  functions?: string[];
}];
// ----- 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/single-line-block-comment-style -----
type UnicornSingleLineBlockCommentStyle = [] | [("multiline" | "single-line")] | [("multiline" | "single-line"), {
  ignore?: (string | {
    [k: string]: unknown | undefined;
  })[];
}];
// ----- 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;
}];
// ----- use-isnan -----
type UseIsnan = [] | [{
  enforceForSwitchCase?: boolean;
  enforceForIndexOf?: boolean;
}];
// ----- valid-typeof -----
type ValidTypeof = [] | [{
  requireStringLiterals?: boolean;
}];
// ----- 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-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;
  });
}];
// ----- vue/array-bracket-newline -----
type VueArrayBracketNewline = [] | [(("always" | "never" | "consistent") | {
  multiline?: boolean;
  minItems?: (number | null);
})];
// ----- vue/array-bracket-spacing -----
type VueArrayBracketSpacing = [] | [("always" | "never")] | [("always" | "never"), {
  singleValue?: boolean;
  objectsInArrays?: boolean;
  arraysInArrays?: boolean;
}];
// ----- vue/array-element-newline -----
type VueArrayElementNewline = [] | [(_VueArrayElementNewlineBasicConfig | {
  ArrayExpression?: _VueArrayElementNewlineBasicConfig;
  ArrayPattern?: _VueArrayElementNewlineBasicConfig;
})];
type _VueArrayElementNewlineBasicConfig = (("always" | "never" | "consistent") | {
  consistent?: boolean;
  multiline?: boolean;
  minItems?: (number | null);
});
// ----- vue/arrow-spacing -----
type VueArrowSpacing = [] | [{
  before?: boolean;
  after?: boolean;
}];
// ----- vue/attribute-hyphenation -----
type VueAttributeHyphenation = [] | [("always" | "never")] | [("always" | "never"), {
  ignore?: (string & {
    [k: string]: unknown | undefined;
  } & {
    [k: string]: unknown | undefined;
  })[];
  ignoreTags?: string[];
}];
// ----- vue/attributes-order -----
type VueAttributesOrder = [] | [{
  order?: (("DEFINITION" | "LIST_RENDERING" | "CONDITIONALS" | "RENDER_MODIFIERS" | "GLOBAL" | "UNIQUE" | "SLOT" | "TWO_WAY_BINDING" | "OTHER_DIRECTIVES" | "OTHER_ATTR" | "ATTR_STATIC" | "ATTR_DYNAMIC" | "ATTR_SHORTHAND_BOOL" | "EVENTS" | "CONTENT") | ("DEFINITION" | "LIST_RENDERING" | "CONDITIONALS" | "RENDER_MODIFIERS" | "GLOBAL" | "UNIQUE" | "SLOT" | "TWO_WAY_BINDING" | "OTHER_DIRECTIVES" | "OTHER_ATTR" | "ATTR_STATIC" | "ATTR_DYNAMIC" | "ATTR_SHORTHAND_BOOL" | "EVENTS" | "CONTENT")[])[];
  alphabetical?: boolean;
  sortLineLength?: boolean;
  ignoreVBindObject?: boolean;
}];
// ----- vue/block-lang -----
type VueBlockLang = [] | [{
  [k: string]: {
    lang?: (string | string[]);
    allowNoLang?: boolean;
  };
}];
// ----- vue/block-order -----
type VueBlockOrder = [] | [{
  order?: (string | string[])[];
}];
// ----- vue/block-spacing -----
type VueBlockSpacing = [] | [("always" | "never")];
// ----- vue/block-tag-newline -----
type VueBlockTagNewline = [] | [{
  singleline?: ("always" | "never" | "consistent" | "ignore");
  multiline?: ("always" | "never" | "consistent" | "ignore");
  maxEmptyLines?: number;
  blocks?: {
    [k: string]: {
      singleline?: ("always" | "never" | "consistent" | "ignore");
      multiline?: ("always" | "never" | "consistent" | "ignore");
      maxEmptyLines?: number;
    };
  };
}];
// ----- vue/brace-style -----
type VueBraceStyle = [] | [("1tbs" | "stroustrup" | "allman")] | [("1tbs" | "stroustrup" | "allman"), {
  allowSingleLine?: boolean;
}];
// ----- vue/camelcase -----
type VueCamelcase = [] | [{
  ignoreDestructuring?: boolean;
  ignoreImports?: boolean;
  ignoreGlobals?: boolean;
  properties?: ("always" | "never");
  allow?: string[];
}];
// ----- vue/comma-dangle -----
type VueCommaDangle = [] | [(_VueCommaDangleValue | {
  arrays?: _VueCommaDangleValueWithIgnore;
  objects?: _VueCommaDangleValueWithIgnore;
  imports?: _VueCommaDangleValueWithIgnore;
  exports?: _VueCommaDangleValueWithIgnore;
  functions?: _VueCommaDangleValueWithIgnore;
  importAttributes?: _VueCommaDangleValueWithIgnore;
  dynamicImports?: _VueCommaDangleValueWithIgnore;
  enums?: _VueCommaDangleValueWithIgnore;
  generics?: _VueCommaDangleValueWithIgnore;
  tuples?: _VueCommaDangleValueWithIgnore;
})];
type _VueCommaDangleValue = ("always-multiline" | "always" | "never" | "only-multiline");
type _VueCommaDangleValueWithIgnore = ("always-multiline" | "always" | "never" | "only-multiline" | "ignore");
// ----- vue/comma-spacing -----
type VueCommaSpacing = [] | [{
  before?: boolean;
  after?: boolean;
}];
// ----- vue/comma-style -----
type VueCommaStyle = [] | [("first" | "last")] | [("first" | "last"), {
  exceptions?: {
    [k: string]: boolean | undefined;
  };
}];
// ----- vue/comment-directive -----
type VueCommentDirective = [] | [{
  reportUnusedDisableDirectives?: boolean;
}];
// ----- vue/component-api-style -----
type VueComponentApiStyle = [] | [[("script-setup" | "composition" | "composition-vue2" | "options"), ...(("script-setup" | "composition" | "composition-vue2" | "options"))[]]];
// ----- vue/component-definition-name-casing -----
type VueComponentDefinitionNameCasing = [] | [("PascalCase" | "kebab-case")];
// ----- vue/component-name-in-template-casing -----
type VueComponentNameInTemplateCasing = [] | [("PascalCase" | "kebab-case")] | [("PascalCase" | "kebab-case"), {
  globals?: string[];
  ignores?: string[];
  registeredComponentsOnly?: boolean;
}];
// ----- vue/component-options-name-casing -----
type VueComponentOptionsNameCasing = [] | [("camelCase" | "kebab-case" | "PascalCase")];
// ----- vue/custom-event-name-casing -----
type VueCustomEventNameCasing = [] | [("kebab-case" | "camelCase")] | [("kebab-case" | "camelCase"), {
  ignores?: string[];
}];
// ----- vue/define-emits-declaration -----
type VueDefineEmitsDeclaration = [] | [("type-based" | "type-literal" | "runtime")];
// ----- vue/define-macros-order -----
type VueDefineMacrosOrder = [] | [{
  order?: string[];
  defineExposeLast?: boolean;
}];
// ----- vue/define-props-declaration -----
type VueDefinePropsDeclaration = [] | [("type-based" | "runtime")];
// ----- vue/define-props-destructuring -----
type VueDefinePropsDestructuring = [] | [{
  destructure?: ("only-when-assigned" | "always" | "never");
}];
// ----- vue/dot-location -----
type VueDotLocation = [] | [("object" | "property")];
// ----- vue/dot-notation -----
type VueDotNotation = [] | [{
  allowKeywords?: boolean;
  allowPattern?: string;
}];
// ----- vue/enforce-style-attribute -----
type VueEnforceStyleAttribute = [] | [{
  allow?: [("plain" | "scoped" | "module"), ...(("plain" | "scoped" | "module"))[]];
}];
// ----- vue/eqeqeq -----
type VueEqeqeq = ([] | ["always"] | ["always", {
  null?: ("always" | "never" | "ignore");
}] | [] | [("smart" | "allow-null")]);
// ----- vue/first-attribute-linebreak -----
type VueFirstAttributeLinebreak = [] | [{
  multiline?: ("below" | "beside" | "ignore");
  singleline?: ("below" | "beside" | "ignore");
}];
// ----- vue/func-call-spacing -----
type VueFuncCallSpacing = ([] | ["never"] | [] | ["always"] | ["always", {
  allowNewlines?: boolean;
  optionalChain?: {
    before?: boolean;
    after?: boolean;
  };
}]);
// ----- vue/html-button-has-type -----
type VueHtmlButtonHasType = [] | [{
  button?: boolean;
  submit?: boolean;
  reset?: boolean;
}];
// ----- vue/html-closing-bracket-newline -----
type VueHtmlClosingBracketNewline = [] | [{
  singleline?: ("always" | "never");
  multiline?: ("always" | "never");
  selfClosingTag?: {
    singleline?: ("always" | "never");
    multiline?: ("always" | "never");
  };
}];
// ----- vue/html-closing-bracket-spacing -----
type VueHtmlClosingBracketSpacing = [] | [{
  startTag?: ("always" | "never");
  endTag?: ("always" | "never");
  selfClosingTag?: ("always" | "never");
}];
// ----- vue/html-comment-content-newline -----
type VueHtmlCommentContentNewline = [] | [(("always" | "never") | {
  singleline?: ("always" | "never" | "ignore");
  multiline?: ("always" | "never" | "ignore");
})] | [(("always" | "never") | {
  singleline?: ("always" | "never" | "ignore");
  multiline?: ("always" | "never" | "ignore");
}), {
  exceptions?: string[];
}];
// ----- vue/html-comment-content-spacing -----
type VueHtmlCommentContentSpacing = [] | [("always" | "never")] | [("always" | "never"), {
  exceptions?: string[];
}];
// ----- vue/html-comment-indent -----
type VueHtmlCommentIndent = [] | [(number | "tab")];
// ----- vue/html-indent -----
type VueHtmlIndent = [] | [(number | "tab")] | [(number | "tab"), {
  attribute?: number;
  baseIndent?: number;
  closeBracket?: (number | {
    startTag?: number;
    endTag?: number;
    selfClosingTag?: number;
  });
  switchCase?: number;
  alignAttributesVertically?: boolean;
  ignores?: (string & {
    [k: string]: unknown | undefined;
  } & {
    [k: string]: unknown | undefined;
  })[];
}];
// ----- vue/html-quotes -----
type VueHtmlQuotes = [] | [("double" | "single")] | [("double" | "single"), {
  avoidEscape?: boolean;
}];
// ----- vue/html-self-closing -----
type VueHtmlSelfClosing = [] | [{
  html?: {
    normal?: _VueHtmlSelfClosingOptionValue;
    void?: _VueHtmlSelfClosingOptionValue;
    component?: _VueHtmlSelfClosingOptionValue;
  };
  svg?: _VueHtmlSelfClosingOptionValue;
  math?: _VueHtmlSelfClosingOptionValue;
}];
type _VueHtmlSelfClosingOptionValue = ("always" | "never" | "any");
// ----- vue/key-spacing -----
type VueKeySpacing = [] | [({
  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;
  };
})];
// ----- vue/keyword-spacing -----
type VueKeywordSpacing = [] | [{
  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;
    };
  };
}];
// ----- vue/match-component-file-name -----
type VueMatchComponentFileName = [] | [{
  extensions?: string[];
  shouldMatchCase?: boolean;
}];
// ----- vue/max-attributes-per-line -----
type VueMaxAttributesPerLine = [] | [{
  singleline?: (number | {
    max?: number;
  });
  multiline?: (number | {
    max?: number;
  });
}];
// ----- vue/max-len -----
type VueMaxLen = [] | [({
  code?: number;
  template?: number;
  comments?: number;
  tabWidth?: number;
  ignorePattern?: string;
  ignoreComments?: boolean;
  ignoreTrailingComments?: boolean;
  ignoreUrls?: boolean;
  ignoreStrings?: boolean;
  ignoreTemplateLiterals?: boolean;
  ignoreRegExpLiterals?: boolean;
  ignoreHTMLAttributeValues?: boolean;
  ignoreHTMLTextContents?: boolean;
} | number)] | [({
  code?: number;
  template?: number;
  comments?: number;
  tabWidth?: number;
  ignorePattern?: string;
  ignoreComments?: boolean;
  ignoreTrailingComments?: boolean;
  ignoreUrls?: boolean;
  ignoreStrings?: boolean;
  ignoreTemplateLiterals?: boolean;
  ignoreRegExpLiterals?: boolean;
  ignoreHTMLAttributeValues?: boolean;
  ignoreHTMLTextContents?: boolean;
} | number), ({
  code?: number;
  template?: number;
  comments?: number;
  tabWidth?: number;
  ignorePattern?: string;
  ignoreComments?: boolean;
  ignoreTrailingComments?: boolean;
  ignoreUrls?: boolean;
  ignoreStrings?: boolean;
  ignoreTemplateLiterals?: boolean;
  ignoreRegExpLiterals?: boolean;
  ignoreHTMLAttributeValues?: boolean;
  ignoreHTMLTextContents?: boolean;
} | number)] | [({
  code?: number;
  template?: number;
  comments?: number;
  tabWidth?: number;
  ignorePattern?: string;
  ignoreComments?: boolean;
  ignoreTrailingComments?: boolean;
  ignoreUrls?: boolean;
  ignoreStrings?: boolean;
  ignoreTemplateLiterals?: boolean;
  ignoreRegExpLiterals?: boolean;
  ignoreHTMLAttributeValues?: boolean;
  ignoreHTMLTextContents?: boolean;
} | number), ({
  code?: number;
  template?: number;
  comments?: number;
  tabWidth?: number;
  ignorePattern?: string;
  ignoreComments?: boolean;
  ignoreTrailingComments?: boolean;
  ignoreUrls?: boolean;
  ignoreStrings?: boolean;
  ignoreTemplateLiterals?: boolean;
  ignoreRegExpLiterals?: boolean;
  ignoreHTMLAttributeValues?: boolean;
  ignoreHTMLTextContents?: boolean;
} | number), {
  code?: number;
  template?: number;
  comments?: number;
  tabWidth?: number;
  ignorePattern?: string;
  ignoreComments?: boolean;
  ignoreTrailingComments?: boolean;
  ignoreUrls?: boolean;
  ignoreStrings?: boolean;
  ignoreTemplateLiterals?: boolean;
  ignoreRegExpLiterals?: boolean;
  ignoreHTMLAttributeValues?: boolean;
  ignoreHTMLTextContents?: boolean;
}];
// ----- vue/max-lines-per-block -----
type VueMaxLinesPerBlock = [] | [{
  style?: number;
  template?: number;
  script?: number;
  skipBlankLines?: boolean;
}];
// ----- vue/max-props -----
type VueMaxProps = [] | [{
  maxProps?: number;
}];
// ----- vue/max-template-depth -----
type VueMaxTemplateDepth = [] | [{
  maxDepth?: number;
}];
// ----- vue/multi-word-component-names -----
type VueMultiWordComponentNames = [] | [{
  ignores?: string[];
}];
// ----- vue/multiline-html-element-content-newline -----
type VueMultilineHtmlElementContentNewline = [] | [{
  ignoreWhenEmpty?: boolean;
  ignores?: string[];
  allowEmptyLines?: boolean;
}];
// ----- vue/multiline-ternary -----
type VueMultilineTernary = [] | [("always" | "always-multiline" | "never")] | [("always" | "always-multiline" | "never"), {
  ignoreJSX?: boolean;
}];
// ----- vue/mustache-interpolation-spacing -----
type VueMustacheInterpolationSpacing = [] | [("always" | "never")];
// ----- vue/new-line-between-multi-line-property -----
type VueNewLineBetweenMultiLineProperty = [] | [{
  minLineOfMultilineProperty?: number;
}];
// ----- vue/next-tick-style -----
type VueNextTickStyle = [] | [("promise" | "callback")];
// ----- vue/no-async-in-computed-properties -----
type VueNoAsyncInComputedProperties = [] | [{
  ignoredObjectNames?: string[];
}];
// ----- vue/no-bare-strings-in-template -----
type VueNoBareStringsInTemplate = [] | [{
  allowlist?: string[];
  attributes?: {
    [k: string]: string[];
  };
  directives?: string[];
}];
// ----- vue/no-boolean-default -----
type VueNoBooleanDefault = [] | [("default-false" | "no-default")];
// ----- vue/no-child-content -----
type VueNoChildContent = [] | [{
  additionalDirectives: [string, ...(string)[]];
}];
// ----- vue/no-console -----
type VueNoConsole = [] | [{
  allow?: [string, ...(string)[]];
}];
// ----- vue/no-constant-condition -----
type VueNoConstantCondition = [] | [{
  checkLoops?: ("all" | "allExceptWhileTrue" | "none" | true | false);
}];
// ----- vue/no-deprecated-model-definition -----
type VueNoDeprecatedModelDefinition = [] | [{
  allowVue3Compat?: boolean;
}];
// ----- vue/no-deprecated-router-link-tag-prop -----
type VueNoDeprecatedRouterLinkTagProp = [] | [{
  components?: [string, ...(string)[]];
}];
// ----- vue/no-deprecated-slot-attribute -----
type VueNoDeprecatedSlotAttribute = [] | [{
  ignore?: string[];
  ignoreParents?: string[];
}];
// ----- vue/no-dupe-keys -----
type VueNoDupeKeys = [] | [{
  groups?: unknown[];
}];
// ----- vue/no-duplicate-attr-inheritance -----
type VueNoDuplicateAttrInheritance = [] | [{
  checkMultiRootNodes?: boolean;
}];
// ----- vue/no-duplicate-attributes -----
type VueNoDuplicateAttributes = [] | [{
  allowCoexistClass?: boolean;
  allowCoexistStyle?: boolean;
}];
// ----- vue/no-empty-pattern -----
type VueNoEmptyPattern = [] | [{
  allowObjectPatternsAsParameters?: boolean;
}];
// ----- vue/no-extra-parens -----
type VueNoExtraParens = ([] | ["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[];
}]);
// ----- vue/no-implicit-coercion -----
type VueNoImplicitCoercion = [] | [{
  boolean?: boolean;
  number?: boolean;
  string?: boolean;
  disallowTemplateShorthand?: boolean;
  allow?: ("~" | "!!" | "+" | "- -" | "-" | "*")[];
}];
// ----- vue/no-irregular-whitespace -----
type VueNoIrregularWhitespace = [] | [{
  skipComments?: boolean;
  skipStrings?: boolean;
  skipTemplates?: boolean;
  skipRegExps?: boolean;
  skipHTMLAttributeValues?: boolean;
  skipHTMLTextContents?: boolean;
}];
// ----- vue/no-literals-in-template -----
type VueNoLiteralsInTemplate = [] | [{
  ignores?: string[];
}];
// ----- vue/no-lone-template -----
type VueNoLoneTemplate = [] | [{
  ignoreAccessible?: boolean;
}];
// ----- vue/no-multi-spaces -----
type VueNoMultiSpaces = [] | [{
  ignoreProperties?: boolean;
  ignoreEOLComments?: boolean;
}];
// ----- vue/no-multiple-template-root -----
type VueNoMultipleTemplateRoot = [] | [{
  disallowComments?: boolean;
}];
// ----- vue/no-mutating-props -----
type VueNoMutatingProps = [] | [{
  shallowOnly?: boolean;
}];
// ----- vue/no-parsing-error -----
type VueNoParsingError = [] | [{
  "abrupt-closing-of-empty-comment"?: boolean;
  "absence-of-digits-in-numeric-character-reference"?: boolean;
  "cdata-in-html-content"?: boolean;
  "character-reference-outside-unicode-range"?: boolean;
  "control-character-in-input-stream"?: boolean;
  "control-character-reference"?: boolean;
  "eof-before-tag-name"?: boolean;
  "eof-in-cdata"?: boolean;
  "eof-in-comment"?: boolean;
  "eof-in-tag"?: boolean;
  "incorrectly-closed-comment"?: boolean;
  "incorrectly-opened-comment"?: boolean;
  "invalid-first-character-of-tag-name"?: boolean;
  "missing-attribute-value"?: boolean;
  "missing-end-tag-name"?: boolean;
  "missing-semicolon-after-character-reference"?: boolean;
  "missing-whitespace-between-attributes"?: boolean;
  "nested-comment"?: boolean;
  "noncharacter-character-reference"?: boolean;
  "noncharacter-in-input-stream"?: boolean;
  "null-character-reference"?: boolean;
  "surrogate-character-reference"?: boolean;
  "surrogate-in-input-stream"?: boolean;
  "unexpected-character-in-attribute-name"?: boolean;
  "unexpected-character-in-unquoted-attribute-value"?: boolean;
  "unexpected-equals-sign-before-attribute-name"?: boolean;
  "unexpected-null-character"?: boolean;
  "unexpected-question-mark-instead-of-tag-name"?: boolean;
  "unexpected-solidus-in-tag"?: boolean;
  "unknown-named-character-reference"?: boolean;
  "end-tag-with-attributes"?: boolean;
  "duplicate-attribute"?: boolean;
  "end-tag-with-trailing-solidus"?: boolean;
  "non-void-html-element-start-tag-with-trailing-solidus"?: boolean;
  "x-invalid-end-tag"?: boolean;
  "x-invalid-namespace"?: boolean;
}];
// ----- vue/no-potential-component-option-typo -----
type VueNoPotentialComponentOptionTypo = [] | [{
  presets?: ("all" | "vue" | "vue-router" | "nuxt")[];
  custom?: string[];
  threshold?: number;
}];
// ----- vue/no-required-prop-with-default -----
type VueNoRequiredPropWithDefault = [] | [{
  autofix?: boolean;
}];
// ----- vue/no-reserved-component-names -----
type VueNoReservedComponentNames = [] | [{
  disallowVueBuiltInComponents?: boolean;
  disallowVue3BuiltInComponents?: boolean;
  htmlElementCaseSensitive?: boolean;
}];
// ----- vue/no-reserved-keys -----
type VueNoReservedKeys = [] | [{
  reserved?: unknown[];
  groups?: unknown[];
}];
// ----- vue/no-reserved-props -----
type VueNoReservedProps = [] | [{
  vueVersion?: (2 | 3);
}];
// ----- vue/no-restricted-block -----
type VueNoRestrictedBlock = (string | {
  element: string;
  message?: string;
})[];
// ----- vue/no-restricted-call-after-await -----
type VueNoRestrictedCallAfterAwait = {
  module: string;
  path?: (string | string[]);
  message?: string;
}[];
// ----- vue/no-restricted-class -----
type VueNoRestrictedClass = string[];
// ----- vue/no-restricted-component-names -----
type VueNoRestrictedComponentNames = (string | {
  name: string;
  message?: string;
  suggest?: string;
})[];
// ----- vue/no-restricted-component-options -----
type VueNoRestrictedComponentOptions = (string | string[] | {
  name: (string | string[]);
  message?: string;
})[];
// ----- vue/no-restricted-custom-event -----
type VueNoRestrictedCustomEvent = (string | {
  event: string;
  message?: string;
  suggest?: string;
})[];
// ----- vue/no-restricted-html-elements -----
type VueNoRestrictedHtmlElements = (string | {
  element: (string | string[]);
  message?: string;
})[];
// ----- vue/no-restricted-props -----
type VueNoRestrictedProps = (string | {
  name: string;
  message?: string;
  suggest?: string;
})[];
// ----- vue/no-restricted-static-attribute -----
type VueNoRestrictedStaticAttribute = (string | {
  key: string;
  value?: (string | true);
  element?: string;
  message?: string;
})[];
// ----- vue/no-restricted-syntax -----
type VueNoRestrictedSyntax = (string | {
  selector: string;
  message?: string;
})[];
// ----- vue/no-restricted-v-bind -----
type VueNoRestrictedVBind = ((string | null) | {
  argument: (string | null);
  modifiers?: ("prop" | "camel" | "sync" | "attr")[];
  element?: string;
  message?: string;
})[];
// ----- vue/no-restricted-v-on -----
type VueNoRestrictedVOn = ((string | null) | {
  argument: (string | null);
  element?: string;
  message?: string;
  modifiers?: [("prevent" | "stop" | "capture" | "self" | "once" | "passive"), ...(("prevent" | "stop" | "capture" | "self" | "once" | "passive"))[]];
})[];
// ----- vue/no-static-inline-styles -----
type VueNoStaticInlineStyles = [] | [{
  allowBinding?: boolean;
}];
// ----- vue/no-template-shadow -----
type VueNoTemplateShadow = [] | [{
  allow?: string[];
}];
// ----- vue/no-template-target-blank -----
type VueNoTemplateTargetBlank = [] | [{
  allowReferrer?: boolean;
  enforceDynamicLinks?: ("always" | "never");
}];
// ----- vue/no-undef-components -----
type VueNoUndefComponents = [] | [{
  ignorePatterns?: unknown[];
}];
// ----- vue/no-undef-directives -----
type VueNoUndefDirectives = [] | [{
  ignore?: string[];
}];
// ----- vue/no-undef-properties -----
type VueNoUndefProperties = [] | [{
  ignores?: string[];
}];
// ----- vue/no-unsupported-features -----
type VueNoUnsupportedFeatures = [] | [{
  version?: string;
  ignores?: ("slot-scope-attribute" | "dynamic-directive-arguments" | "v-slot" | "script-setup" | "style-css-vars-injection" | "v-model-argument" | "v-model-custom-modifiers" | "v-is" | "is-attribute-with-vue-prefix" | "v-memo" | "v-bind-prop-modifier-shorthand" | "v-bind-attr-modifier" | "define-options" | "define-slots" | "define-model" | "v-bind-same-name-shorthand")[];
}];
// ----- vue/no-unused-components -----
type VueNoUnusedComponents = [] | [{
  ignoreWhenBindingPresent?: boolean;
}];
// ----- vue/no-unused-properties -----
type VueNoUnusedProperties = [] | [{
  groups?: ("props" | "data" | "asyncData" | "computed" | "methods" | "setup" | "inject")[];
  deepData?: boolean;
  ignorePublicMembers?: boolean;
  unreferencedOptions?: ("unknownMemberAsUnreferenced" | "returnAsUnreferenced")[];
}];
// ----- vue/no-unused-vars -----
type VueNoUnusedVars = [] | [{
  ignorePattern?: string;
}];
// ----- vue/no-use-v-if-with-v-for -----
type VueNoUseVIfWithVFor = [] | [{
  allowUsingIterationVar?: boolean;
}];
// ----- vue/no-useless-mustaches -----
type VueNoUselessMustaches = [] | [{
  ignoreIncludesComment?: boolean;
  ignoreStringEscape?: boolean;
}];
// ----- vue/no-useless-v-bind -----
type VueNoUselessVBind = [] | [{
  ignoreIncludesComment?: boolean;
  ignoreStringEscape?: boolean;
}];
// ----- vue/no-v-html -----
type VueNoVHtml = [] | [{
  ignorePattern?: string;
}];
// ----- vue/no-v-text-v-html-on-component -----
type VueNoVTextVHtmlOnComponent = [] | [{
  allow?: string[];
  ignoreElementNamespaces?: boolean;
}];
// ----- vue/object-curly-newline -----
type VueObjectCurlyNewline = [] | [((("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;
  });
})];
// ----- vue/object-curly-spacing -----
type VueObjectCurlySpacing = [] | [("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");
}];
// ----- vue/object-property-newline -----
type VueObjectPropertyNewline = [] | [{
  allowAllPropertiesOnSameLine?: boolean;
}];
// ----- vue/object-shorthand -----
type VueObjectShorthand = ([] | [("always" | "methods" | "properties" | "never" | "consistent" | "consistent-as-needed")] | [] | [("always" | "methods" | "properties")] | [("always" | "methods" | "properties"), {
  avoidQuotes?: boolean;
}] | [] | [("always" | "methods")] | [("always" | "methods"), {
  ignoreConstructors?: boolean;
  methodsIgnorePattern?: string;
  avoidQuotes?: boolean;
  avoidExplicitReturnArrows?: boolean;
}]);
// ----- vue/operator-linebreak -----
type VueOperatorLinebreak = [] | [(("after" | "before" | "none") | null)] | [(("after" | "before" | "none") | null), {
  overrides?: {
    [k: string]: ("after" | "before" | "none" | "ignore") | undefined;
  };
}];
// ----- vue/order-in-components -----
type VueOrderInComponents = [] | [{
  order?: unknown[];
}];
// ----- vue/padding-line-between-blocks -----
type VuePaddingLineBetweenBlocks = [] | [("never" | "always")];
// ----- vue/padding-line-between-tags -----
type VuePaddingLineBetweenTags = [] | [{
  blankLine: ("always" | "never" | "consistent");
  prev: string;
  next: string;
}[]];
// ----- vue/padding-lines-in-component-definition -----
type VuePaddingLinesInComponentDefinition = [] | [(("always" | "never") | {
  betweenOptions?: ("never" | "always" | "ignore");
  withinOption?: (("never" | "always" | "ignore") | {
    [k: string]: (("never" | "always" | "ignore") | {
      betweenItems?: ("never" | "always" | "ignore");
      withinEach?: ("never" | "always" | "ignore");
    });
  });
  groupSingleLineProperties?: boolean;
})];
// ----- vue/prefer-true-attribute-shorthand -----
type VuePreferTrueAttributeShorthand = [] | [("always" | "never")] | [("always" | "never"), {
  except?: string[];
}];
// ----- vue/prop-name-casing -----
type VuePropNameCasing = [] | [("camelCase" | "snake_case")] | [("camelCase" | "snake_case"), {
  ignoreProps?: string[];
}];
// ----- vue/quote-props -----
type VueQuoteProps = ([] | [("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;
}]);
// ----- vue/require-direct-export -----
type VueRequireDirectExport = [] | [{
  disallowFunctionalComponentFunction?: boolean;
}];
// ----- vue/require-explicit-emits -----
type VueRequireExplicitEmits = [] | [{
  allowProps?: boolean;
}];
// ----- vue/require-macro-variable-name -----
type VueRequireMacroVariableName = [] | [{
  defineProps?: string;
  defineEmits?: string;
  defineSlots?: string;
  useSlots?: string;
  useAttrs?: string;
}];
// ----- vue/require-prop-comment -----
type VueRequirePropComment = [] | [{
  type?: ("JSDoc" | "line" | "block" | "any");
}];
// ----- vue/require-toggle-inside-transition -----
type VueRequireToggleInsideTransition = [] | [{
  additionalDirectives?: string[];
}];
// ----- vue/restricted-component-names -----
type VueRestrictedComponentNames = [] | [{
  allow?: string[];
}];
// ----- vue/return-in-computed-property -----
type VueReturnInComputedProperty = [] | [{
  treatUndefinedAsUnspecified?: boolean;
}];
// ----- vue/script-indent -----
type VueScriptIndent = [] | [(number | "tab")] | [(number | "tab"), {
  baseIndent?: number;
  switchCase?: number;
  ignores?: (string & {
    [k: string]: unknown | undefined;
  } & {
    [k: string]: unknown | undefined;
  })[];
}];
// ----- vue/singleline-html-element-content-newline -----
type VueSinglelineHtmlElementContentNewline = [] | [{
  ignoreWhenNoAttributes?: boolean;
  ignoreWhenEmpty?: boolean;
  ignores?: string[];
  externalIgnores?: string[];
}];
// ----- vue/slot-name-casing -----
type VueSlotNameCasing = [] | [("camelCase" | "kebab-case" | "singleword")];
// ----- vue/sort-keys -----
type VueSortKeys = [] | [("asc" | "desc")] | [("asc" | "desc"), {
  caseSensitive?: boolean;
  ignoreChildrenOf?: unknown[];
  ignoreGrandchildrenOf?: unknown[];
  minKeys?: number;
  natural?: boolean;
  allowLineSeparatedGroups?: boolean;
}];
// ----- vue/space-in-parens -----
type VueSpaceInParens = [] | [("always" | "never")] | [("always" | "never"), {
  exceptions?: ("{}" | "[]" | "()" | "empty")[];
}];
// ----- vue/space-infix-ops -----
type VueSpaceInfixOps = [] | [{
  int32Hint?: boolean;
  ignoreTypes?: boolean;
}];
// ----- vue/space-unary-ops -----
type VueSpaceUnaryOps = [] | [{
  words?: boolean;
  nonwords?: boolean;
  overrides?: {
    [k: string]: boolean | undefined;
  };
}];
// ----- vue/template-curly-spacing -----
type VueTemplateCurlySpacing = [] | [("always" | "never")];
// ----- vue/this-in-template -----
type VueThisInTemplate = [] | [("always" | "never")];
// ----- vue/v-bind-style -----
type VueVBindStyle = [] | [("shorthand" | "longform")] | [("shorthand" | "longform"), {
  sameNameShorthand?: ("always" | "never" | "ignore");
}];
// ----- vue/v-for-delimiter-style -----
type VueVForDelimiterStyle = [] | [("in" | "of")];
// ----- vue/v-on-event-hyphenation -----
type VueVOnEventHyphenation = [] | [("always" | "never")] | [("always" | "never"), {
  autofix?: boolean;
  ignore?: (string & {
    [k: string]: unknown | undefined;
  } & {
    [k: string]: unknown | undefined;
  })[];
  ignoreTags?: string[];
}];
// ----- vue/v-on-handler-style -----
type VueVOnHandlerStyle = [] | [(("inline" | "inline-function") | ["method", ("inline" | "inline-function")])] | [(("inline" | "inline-function") | ["method", ("inline" | "inline-function")]), {
  ignoreIncludesComment?: boolean;
}];
// ----- vue/v-on-style -----
type VueVOnStyle = [] | [("shorthand" | "longform")];
// ----- vue/v-slot-style -----
type VueVSlotStyle = [] | [(("shorthand" | "longform") | {
  atComponent?: ("shorthand" | "longform" | "v-slot");
  default?: ("shorthand" | "longform" | "v-slot");
  named?: ("shorthand" | "longform");
})];
// ----- vue/valid-v-for -----
type VueValidVFor = [] | [{
  allowEmptyAlias?: boolean;
}];
// ----- vue/valid-v-on -----
type VueValidVOn = [] | [{
  modifiers?: unknown[];
}];
// ----- vue/valid-v-slot -----
type VueValidVSlot = [] | [{
  allowModifiers?: boolean;
}];
// ----- vuejs-accessibility/alt-text -----
type VuejsAccessibilityAltText = [] | [{
  elements?: string[];
  img?: string[];
  object?: string[];
  area?: string[];
  "input[type=\"image\"]"?: string[];
  [k: string]: unknown | undefined;
}];
// ----- vuejs-accessibility/anchor-has-content -----
type VuejsAccessibilityAnchorHasContent = [] | [{
  components?: string[];
  accessibleChildren?: string[];
  accessibleDirectives?: string[];
  [k: string]: unknown | undefined;
}];
// ----- vuejs-accessibility/aria-role -----
type VuejsAccessibilityAriaRole = [] | [{
  ignoreNonDOM?: boolean;
}];
// ----- vuejs-accessibility/form-control-has-label -----
type VuejsAccessibilityFormControlHasLabel = [] | [{
  labelComponents?: string[];
  controlComponents?: string[];
  [k: string]: unknown | undefined;
}];
// ----- vuejs-accessibility/heading-has-content -----
type VuejsAccessibilityHeadingHasContent = [] | [{
  components?: string[];
  accessibleChildren?: string[];
  accessibleDirectives?: string[];
  [k: string]: unknown | undefined;
}];
// ----- vuejs-accessibility/interactive-supports-focus -----
type VuejsAccessibilityInteractiveSupportsFocus = [] | [{
  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;
}];
// ----- vuejs-accessibility/label-has-for -----
type VuejsAccessibilityLabelHasFor = [] | [{
  components?: string[];
  controlComponents?: string[];
  required?: (("nesting" | "id") | {
    some: ("nesting" | "id")[];
    [k: string]: unknown | undefined;
  } | {
    every: ("nesting" | "id")[];
    [k: string]: unknown | undefined;
  });
  allowChildren?: boolean;
  [k: string]: unknown | undefined;
}];
// ----- vuejs-accessibility/media-has-caption -----
type VuejsAccessibilityMediaHasCaption = [] | [{
  audio?: string[];
  track?: string[];
  video?: string[];
  [k: string]: unknown | undefined;
}];
// ----- vuejs-accessibility/no-autofocus -----
type VuejsAccessibilityNoAutofocus = [] | [{
  ignoreNonDOM?: boolean;
}];
// ----- vuejs-accessibility/no-distracting-elements -----
type VuejsAccessibilityNoDistractingElements = [] | [{
  [k: string]: unknown | undefined;
}];
// ----- vuejs-accessibility/no-redundant-roles -----
type VuejsAccessibilityNoRedundantRoles = [] | [{
  [k: string]: string[] | undefined;
}];
// ----- wrap-iife -----
type WrapIife = [] | [("outside" | "inside" | "any")] | [("outside" | "inside" | "any"), {
  functionPrototypeMethods?: boolean;
}];
// ----- yield-star-spacing -----
type YieldStarSpacing = [] | [(("before" | "after" | "both" | "neither") | {
  before?: boolean;
  after?: boolean;
})];
// ----- yoda -----
type Yoda = [] | [("always" | "never")] | [("always" | "never"), {
  exceptRange?: boolean;
  onlyEquality?: boolean;
}];
// ----- zod-mini/consistent-import -----
type ZodMiniConsistentImport = [] | [{
  syntax?: ("namespace" | "named");
}];
// ----- zod-mini/consistent-import-source -----
type ZodMiniConsistentImportSource = [] | [{
  sources?: [("zod/mini" | "zod/v4-mini"), ...(("zod/mini" | "zod/v4-mini"))[]];
}];
// ----- zod-mini/consistent-object-schema-type -----
type ZodMiniConsistentObjectSchemaType = [] | [{
  allow?: [("object" | "looseObject" | "strictObject"), ...(("object" | "looseObject" | "strictObject"))[]];
}];
// ----- zod-mini/consistent-schema-output-type-style -----
type ZodMiniConsistentSchemaOutputTypeStyle = [] | [{
  style?: ("infer" | "output");
}];
// ----- zod-mini/consistent-schema-var-name -----
type ZodMiniConsistentSchemaVarName = [] | [{
  before?: string;
  after?: string;
}];
// ----- zod-mini/no-conflicting-checks -----
type ZodMiniNoConflictingChecks = [] | [{
  checkImpossibleCases?: boolean;
  checkConfusingCases?: boolean;
  checkInapplicableChecks?: boolean;
}];
// ----- zod-mini/schema-error-property-style -----
type ZodMiniSchemaErrorPropertyStyle = [] | [{
  selector?: string;
  example?: 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;
}];
//#endregion
export { ESLintSchema };