@yunarch/config-web
Version:
Shared configurations for web projects.
11,240 lines • 414 kB
TypeScript
import { FlatConfigComposer } from 'eslint-flat-config-utils';
import { ParserOptions } from '@typescript-eslint/parser';
import { Linter } from 'eslint';
import { FlatGitignoreOptions } from 'eslint-config-flat-gitignore';
/* eslint-disable */
/* prettier-ignore */
interface RuleOptions {
/**
* Enforces explicit boolean values for boolean attributes.
* @see https://eslint-react.xyz/docs/rules/avoid-shorthand-boolean
*/
'@eslint-react/avoid-shorthand-boolean'?: Linter.RuleEntry<[]>
/**
* Enforces explicit `<Fragment>` components instead of the shorthand `<>` or `</>` syntax.
* @see https://eslint-react.xyz/docs/rules/avoid-shorthand-fragment
*/
'@eslint-react/avoid-shorthand-fragment'?: Linter.RuleEntry<[]>
/**
* Disallow `children` in void DOM elements.
* @see https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
*/
'@eslint-react/dom/no-children-in-void-dom-elements'?: Linter.RuleEntry<[]>
/**
* Disallow `dangerouslySetInnerHTML`.
* @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml
*/
'@eslint-react/dom/no-dangerously-set-innerhtml'?: Linter.RuleEntry<[]>
/**
* Disallow `dangerouslySetInnerHTML` and `children` at the same time.
* @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml-with-children
*/
'@eslint-react/dom/no-dangerously-set-innerhtml-with-children'?: Linter.RuleEntry<[]>
/**
* Disallow `findDOMNode`.
* @see https://eslint-react.xyz/docs/rules/dom-no-find-dom-node
*/
'@eslint-react/dom/no-find-dom-node'?: Linter.RuleEntry<[]>
/**
* Disallow `flushSync`.
* @see https://eslint-react.xyz/docs/rules/dom-no-flush-sync
*/
'@eslint-react/dom/no-flush-sync'?: Linter.RuleEntry<[]>
/**
* Replaces usages of `ReactDom.hydrate()` with `hydrateRoot()`.
* @see https://eslint-react.xyz/docs/rules/dom-no-hydrate
*/
'@eslint-react/dom/no-hydrate'?: Linter.RuleEntry<[]>
/**
* Enforces explicit `type` attribute for `button` elements.
* @see https://eslint-react.xyz/docs/rules/dom-no-missing-button-type
*/
'@eslint-react/dom/no-missing-button-type'?: Linter.RuleEntry<[]>
/**
* Enforces explicit `sandbox` attribute for `iframe` elements.
* @see https://eslint-react.xyz/docs/rules/dom-no-missing-iframe-sandbox
*/
'@eslint-react/dom/no-missing-iframe-sandbox'?: Linter.RuleEntry<[]>
/**
* Enforces the absence of a `namespace` in React elements.
* @see https://eslint-react.xyz/docs/rules/dom-no-namespace
*/
'@eslint-react/dom/no-namespace'?: Linter.RuleEntry<[]>
/**
* Replaces usages of `ReactDom.render()` with `createRoot(node).render()`.
* @see https://eslint-react.xyz/docs/rules/dom-no-render
*/
'@eslint-react/dom/no-render'?: Linter.RuleEntry<[]>
/**
* Disallow the return value of `ReactDOM.render`.
* @see https://eslint-react.xyz/docs/rules/dom-no-render-return-value
*/
'@eslint-react/dom/no-render-return-value'?: Linter.RuleEntry<[]>
/**
* Disallow `javascript:` URLs as attribute values.
* @see https://eslint-react.xyz/docs/rules/dom-no-script-url
*/
'@eslint-react/dom/no-script-url'?: Linter.RuleEntry<[]>
/**
* Disallow unknown `DOM` property.
* @see https://eslint-react.xyz/docs/rules/dom-no-unknown-property
*/
'@eslint-react/dom/no-unknown-property'?: Linter.RuleEntry<EslintReactDomNoUnknownProperty>
/**
* Enforces `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<[]>
/**
* Disallow `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 usages 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<[]>
/**
* Disallow `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<[]>
/**
* Disallow useless `forwardRef` calls on components that don't use `ref`s.
* @see https://eslint-react.xyz/docs/rules/no-useless-forward-ref
*/
'@eslint-react/ensure-forward-ref-using-ref'?: Linter.RuleEntry<[]>
/**
* Enforces that a function with the `use` prefix should use at least one Hook inside of it.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-prefix
*/
'@eslint-react/hooks-extra/ensure-custom-hooks-using-other-hooks'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary usage of `useCallback`.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-callback
*/
'@eslint-react/hooks-extra/ensure-use-callback-has-non-empty-deps'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary usage of `useMemo`.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-memo
*/
'@eslint-react/hooks-extra/ensure-use-memo-has-non-empty-deps'?: Linter.RuleEntry<[]>
/**
* Disallow direct calls to the `set` function of `useState` in `useEffect`.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-direct-set-state-in-use-effect
*/
'@eslint-react/hooks-extra/no-direct-set-state-in-use-effect'?: Linter.RuleEntry<[]>
/**
* Disallow direct calls to the `set` function of `useState` in `useLayoutEffect`.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-direct-set-state-in-use-layout-effect
*/
'@eslint-react/hooks-extra/no-direct-set-state-in-use-layout-effect'?: Linter.RuleEntry<[]>
/**
* Enforces that a function with the `use` prefix should use at least one Hook inside of it.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-prefix
*/
'@eslint-react/hooks-extra/no-redundant-custom-hook'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary usage of `useCallback`.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-callback
*/
'@eslint-react/hooks-extra/no-unnecessary-use-callback'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary usage of `useMemo`.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-memo
*/
'@eslint-react/hooks-extra/no-unnecessary-use-memo'?: Linter.RuleEntry<[]>
/**
* Enforces that a function with the `use` prefix should use at least one Hook inside of it.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-prefix
*/
'@eslint-react/hooks-extra/no-unnecessary-use-prefix'?: Linter.RuleEntry<[]>
/**
* Enforces that a function with the `use` prefix should use at least one Hook inside of it.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-prefix
*/
'@eslint-react/hooks-extra/no-useless-custom-hooks'?: Linter.RuleEntry<[]>
/**
* Enforces function calls made inside `useState` to be wrapped in an `initializer function`.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-prefer-use-state-lazy-initialization
*/
'@eslint-react/hooks-extra/prefer-use-state-lazy-initialization'?: Linter.RuleEntry<[]>
/**
* Enforces that the 'key' attribute is placed before the spread attribute in JSX elements.
* @see https://eslint-react.xyz/docs/rules/jsx-key-before-spread
*/
'@eslint-react/jsx-key-before-spread'?: Linter.RuleEntry<[]>
/**
* Disallow duplicate props in JSX elements.
* @see https://eslint-react.xyz/docs/rules/jsx-no-duplicate-props
*/
'@eslint-react/jsx-no-duplicate-props'?: Linter.RuleEntry<[]>
/**
* Disallows 'IIFE' in JSX elements.
* @see https://eslint-react.xyz/docs/rules/jsx-no-iife
*/
'@eslint-react/jsx-no-iife'?: Linter.RuleEntry<[]>
/**
* Disallow undefined variables in JSX.
* @see https://eslint-react.xyz/docs/rules/jsx-no-undef
*/
'@eslint-react/jsx-no-undef'?: Linter.RuleEntry<[]>
/**
* Marks React variables as used when JSX is used.
* @see https://eslint-react.xyz/docs/rules/jsx-uses-react
*/
'@eslint-react/jsx-uses-react'?: Linter.RuleEntry<[]>
/**
* Marks variables used in JSX elements as used.
* @see https://eslint-react.xyz/docs/rules/jsx-uses-vars
*/
'@eslint-react/jsx-uses-vars'?: Linter.RuleEntry<[]>
/**
* Enforces naming conventions for components.
* @see https://eslint-react.xyz/docs/rules/naming-convention-component-name
*/
'@eslint-react/naming-convention/component-name'?: Linter.RuleEntry<EslintReactNamingConventionComponentName>
/**
* Enforces context name 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 consistent file naming conventions.
* @see https://eslint-react.xyz/docs/rules/naming-convention-filename
*/
'@eslint-react/naming-convention/filename'?: Linter.RuleEntry<EslintReactNamingConventionFilename>
/**
* Enforces consistent file naming conventions.
* @see https://eslint-react.xyz/docs/rules/naming-convention-filename-extension
*/
'@eslint-react/naming-convention/filename-extension'?: Linter.RuleEntry<EslintReactNamingConventionFilenameExtension>
/**
* Enforces destructuring and symmetric naming of `useState` hook value and setter.
* @see https://eslint-react.xyz/docs/rules/naming-convention-use-state
*/
'@eslint-react/naming-convention/use-state'?: Linter.RuleEntry<[]>
/**
* Disallow 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<[]>
/**
* Disallow 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<[]>
/**
* Disallow `Children.count`.
* @see https://eslint-react.xyz/docs/rules/no-children-count
*/
'@eslint-react/no-children-count'?: Linter.RuleEntry<[]>
/**
* Disallow 'Children.forEach'.
* @see https://eslint-react.xyz/docs/rules/no-children-for-each
*/
'@eslint-react/no-children-for-each'?: Linter.RuleEntry<[]>
/**
* Disallow `Children.map`.
* @see https://eslint-react.xyz/docs/rules/no-children-map
*/
'@eslint-react/no-children-map'?: Linter.RuleEntry<[]>
/**
* Disallow `Children.only`.
* @see https://eslint-react.xyz/docs/rules/no-children-only
*/
'@eslint-react/no-children-only'?: Linter.RuleEntry<[]>
/**
* Disallow passing `children` as a prop.
* @see https://eslint-react.xyz/docs/rules/no-children-prop
*/
'@eslint-react/no-children-prop'?: Linter.RuleEntry<[]>
/**
* Disallow `Children.toArray`.
* @see https://eslint-react.xyz/docs/rules/no-children-to-array
*/
'@eslint-react/no-children-to-array'?: Linter.RuleEntry<[]>
/**
* Disallow class components except for error boundaries.
* @see https://eslint-react.xyz/docs/rules/no-class-component
*/
'@eslint-react/no-class-component'?: Linter.RuleEntry<[]>
/**
* Disallow `cloneElement`.
* @see https://eslint-react.xyz/docs/rules/no-clone-element
*/
'@eslint-react/no-clone-element'?: Linter.RuleEntry<[]>
/**
* Prevents comments from being inserted as text nodes.
* @see https://eslint-react.xyz/docs/rules/no-comment-textnodes
*/
'@eslint-react/no-comment-textnodes'?: Linter.RuleEntry<[]>
/**
* Disallow complex conditional rendering in JSX expressions.
* @see https://eslint-react.xyz/docs/rules/no-complex-conditional-rendering
*/
'@eslint-react/no-complex-conditional-rendering'?: Linter.RuleEntry<[]>
/**
* Disallow complex conditional rendering in JSX expressions.
* @see https://eslint-react.xyz/docs/rules/no-complex-conditional-rendering
*/
'@eslint-react/no-complicated-conditional-rendering'?: Linter.RuleEntry<[]>
/**
* Replace usages of `componentWillMount` with `UNSAFE_componentWillMount`.
* @see https://eslint-react.xyz/docs/rules/no-component-will-mount
*/
'@eslint-react/no-component-will-mount'?: Linter.RuleEntry<[]>
/**
* Replace usages of `componentWillReceiveProps` with `UNSAFE_componentWillReceiveProps`.
* @see https://eslint-react.xyz/docs/rules/no-component-will-receive-props
*/
'@eslint-react/no-component-will-receive-props'?: Linter.RuleEntry<[]>
/**
* Replace usages of `componentWillUpdate` with `UNSAFE_componentWillUpdate`.
* @see https://eslint-react.xyz/docs/rules/no-component-will-update
*/
'@eslint-react/no-component-will-update'?: Linter.RuleEntry<[]>
/**
* Replace usages of `<Context.Provider>` with `<Context>`.
* @see https://eslint-react.xyz/docs/rules/no-context-provider
*/
'@eslint-react/no-context-provider'?: Linter.RuleEntry<[]>
/**
* Disallow `createRef` in function components.
* @see https://eslint-react.xyz/docs/rules/no-create-ref
*/
'@eslint-react/no-create-ref'?: Linter.RuleEntry<[]>
/**
* Disallow `defaultProps` property in favor of ES6 default parameters.
* @see https://eslint-react.xyz/docs/rules/no-default-props
*/
'@eslint-react/no-default-props'?: Linter.RuleEntry<[]>
/**
* Disallow direct mutation of `this.state`.
* @see https://eslint-react.xyz/docs/rules/no-direct-mutation-state
*/
'@eslint-react/no-direct-mutation-state'?: Linter.RuleEntry<[]>
/**
* Disallow duplicate props in JSX elements.
* @see https://eslint-react.xyz/docs/rules/jsx-no-duplicate-props
*/
'@eslint-react/no-duplicate-jsx-props'?: Linter.RuleEntry<[]>
/**
* Disallow duplicate `key` on elements in the same array or a list of `children`.
* @see https://eslint-react.xyz/docs/rules/no-duplicate-key
*/
'@eslint-react/no-duplicate-key'?: Linter.RuleEntry<[]>
/**
* Replaces usages of `forwardRef` with passing `ref` as a prop.
* @see https://eslint-react.xyz/docs/rules/no-forward-ref
*/
'@eslint-react/no-forward-ref'?: Linter.RuleEntry<[]>
/**
* Prevents `key` from not being explicitly specified (e.g. spreading `key` from objects).
* @see https://eslint-react.xyz/docs/rules/no-implicit-key
*/
'@eslint-react/no-implicit-key'?: 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` which 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` which 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<[]>
/**
* Disallow 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<[]>
/**
* Disallow 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<[]>
/**
* Disallow nesting component definitions inside other components.
* @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
*/
'@eslint-react/no-nested-components'?: Linter.RuleEntry<[]>
/**
* Disallow nesting lazy component declarations inside other components.
* @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
*/
'@eslint-react/no-nested-lazy-component-declarations'?: Linter.RuleEntry<[]>
/**
* Disallow `propTypes` in favor of TypeScript or another type-checking solution.
* @see https://eslint-react.xyz/docs/rules/no-prop-types
*/
'@eslint-react/no-prop-types'?: Linter.RuleEntry<[]>
/**
* Disallow `shouldComponentUpdate` when extending `React.PureComponent`.
* @see https://eslint-react.xyz/docs/rules/no-redundant-should-component-update
*/
'@eslint-react/no-redundant-should-component-update'?: Linter.RuleEntry<[]>
/**
* Disallow calling `this.setState` in `componentDidMount` outside of functions, such as callbacks.
* @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-mount
*/
'@eslint-react/no-set-state-in-component-did-mount'?: Linter.RuleEntry<[]>
/**
* Disallow calling `this.setState` in `componentDidUpdate` outside of functions, such as callbacks.
* @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-update
*/
'@eslint-react/no-set-state-in-component-did-update'?: Linter.RuleEntry<[]>
/**
* Disallows calling `this.setState` in `componentWillUpdate` outside of functions, such as callbacks.
* @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-will-update
*/
'@eslint-react/no-set-state-in-component-will-update'?: Linter.RuleEntry<[]>
/**
* Replaces string refs with callback refs.
* @see https://eslint-react.xyz/docs/rules/no-string-refs
*/
'@eslint-react/no-string-refs'?: Linter.RuleEntry<[]>
/**
* Warns the usage of `UNSAFE_componentWillMount` in class components.
* @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-mount
*/
'@eslint-react/no-unsafe-component-will-mount'?: Linter.RuleEntry<[]>
/**
* Warns the usage of `UNSAFE_componentWillReceiveProps` in class components.
* @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-receive-props
*/
'@eslint-react/no-unsafe-component-will-receive-props'?: Linter.RuleEntry<[]>
/**
* Warns the usage of `UNSAFE_componentWillUpdate` in class components.
* @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-update
*/
'@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<[]>
/**
* Warns 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 unused class component state.
* @see https://eslint-react.xyz/docs/rules/no-unused-state
*/
'@eslint-react/no-unused-state'?: Linter.RuleEntry<[]>
/**
* Replaces usages of `useContext` with `use`.
* @see https://eslint-react.xyz/docs/rules/no-use-context
*/
'@eslint-react/no-use-context'?: Linter.RuleEntry<[]>
/**
* Disallow useless `forwardRef` calls on components that don't use `ref`s.
* @see https://eslint-react.xyz/docs/rules/no-useless-forward-ref
*/
'@eslint-react/no-useless-forward-ref'?: Linter.RuleEntry<[]>
/**
* Disallow useless fragment elements.
* @see https://eslint-react.xyz/docs/rules/no-useless-fragment
*/
'@eslint-react/no-useless-fragment'?: Linter.RuleEntry<EslintReactNoUselessFragment>
/**
* Enforces destructuring assignment for component props and context.
* @see https://eslint-react.xyz/docs/rules/prefer-destructuring-assignment
*/
'@eslint-react/prefer-destructuring-assignment'?: Linter.RuleEntry<[]>
/**
* Enforces React is imported via a namespace import.
* @see https://eslint-react.xyz/docs/rules/prefer-react-namespace-import
*/
'@eslint-react/prefer-react-namespace-import'?: Linter.RuleEntry<[]>
/**
* Enforces read-only props in components.
* @see https://eslint-react.xyz/docs/rules/prefer-read-only-props
*/
'@eslint-react/prefer-read-only-props'?: Linter.RuleEntry<[]>
/**
* Enforces shorthand syntax for boolean attributes.
* @see https://eslint-react.xyz/docs/rules/prefer-shorthand-boolean
*/
'@eslint-react/prefer-shorthand-boolean'?: Linter.RuleEntry<[]>
/**
* Enforces shorthand syntax for fragments.
* @see https://eslint-react.xyz/docs/rules/prefer-shorthand-fragment
*/
'@eslint-react/prefer-shorthand-fragment'?: Linter.RuleEntry<[]>
/**
* Marks variables used in JSX elements as used.
* @see https://eslint-react.xyz/docs/rules/jsx-uses-vars
*/
'@eslint-react/use-jsx-vars'?: Linter.RuleEntry<[]>
/**
* Prevents leaked `addEventListener` in a component or custom Hook.
* @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-event-listener
*/
'@eslint-react/web-api/no-leaked-event-listener'?: Linter.RuleEntry<[]>
/**
* Prevents leaked `setInterval` in a component or custom Hook.
* @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-interval
*/
'@eslint-react/web-api/no-leaked-interval'?: Linter.RuleEntry<[]>
/**
* Prevents leaked `ResizeObserver` in a component or custom Hook.
* @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-resize-observer
*/
'@eslint-react/web-api/no-leaked-resize-observer'?: Linter.RuleEntry<[]>
/**
* Prevents leaked `setTimeout` in a component or custom Hook.
* @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-timeout
*/
'@eslint-react/web-api/no-leaked-timeout'?: Linter.RuleEntry<[]>
/**
* Exhaustive deps rule for useQuery
* @see https://tanstack.com/query/latest/docs/eslint/exhaustive-deps
*/
'@tanstack/query/exhaustive-deps'?: Linter.RuleEntry<[]>
/**
* Ensure correct order of inference sensitive properties for infinite queries
* @see https://tanstack.com/query/latest/docs/eslint/infinite-query-property-order
*/
'@tanstack/query/infinite-query-property-order'?: Linter.RuleEntry<[]>
/**
* Ensure correct order of inference-sensitive properties in useMutation()
* @see https://tanstack.com/query/latest/docs/eslint/mutation-property-order
*/
'@tanstack/query/mutation-property-order'?: Linter.RuleEntry<[]>
/**
* Disallows rest destructuring in queries
* @see https://tanstack.com/query/latest/docs/eslint/no-rest-destructuring
*/
'@tanstack/query/no-rest-destructuring'?: Linter.RuleEntry<[]>
/**
* Disallow putting the result of query hooks directly in a React hook dependency array
* @see https://tanstack.com/query/latest/docs/eslint/no-unstable-deps
*/
'@tanstack/query/no-unstable-deps'?: Linter.RuleEntry<[]>
/**
* Ensures queryFn returns a non-undefined value
* @see https://tanstack.com/query/latest/docs/eslint/no-void-query-fn
*/
'@tanstack/query/no-void-query-fn'?: Linter.RuleEntry<[]>
/**
* Makes sure that QueryClient is stable
* @see https://tanstack.com/query/latest/docs/eslint/stable-query-client
*/
'@tanstack/query/stable-query-client'?: Linter.RuleEntry<[]>
/**
* Ensure correct order of inference sensitive properties for createRoute functions
* @see https://tanstack.com/router/latest/docs/eslint/create-route-property-order
*/
'@tanstack/router/create-route-property-order'?: Linter.RuleEntry<[]>
/**
* 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
*/
'@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
*/
'@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<[]>
/**
* 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 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 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>
/**
* 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>
/**
* Enforce the use of variables within the scope they are defined
* @see https://eslint.org/docs/latest/rules/block-scoped-var
*/
'block-scoped-var'?: Linter.RuleEntry<[]>
/**
* Disallow or enforce spaces inside of blocks after opening block and before closing block
* @see https://eslint.org/docs/latest/rules/block-spacing
* @deprecated
*/
'block-spacing'?: Linter.RuleEntry<BlockSpacing>
/**
* Enforce consistent brace style for blocks
* @see https://eslint.org/docs/latest/rules/brace-style
* @deprecated
*/
'brace-style'?: Linter.RuleEntry<BraceStyle>
/**
* Require `return` statements after callbacks
* @see https://eslint.org/docs/latest/rules/callback-return
* @deprecated
*/
'callback-return'?: Linter.RuleEntry<CallbackReturn>
/**
* Enforce camelcase naming convention
* @see https://eslint.org/docs/latest/rules/camelcase
*/
'camelcase'?: Linter.RuleEntry<Camelcase>
/**
* Enforce or disallow capitalization of the first letter of a comment
* @see https://eslint.org/docs/latest/rules/capitalized-comments
*/
'capitalized-comments'?: Linter.RuleEntry<CapitalizedComments>
/**
* Enforce that class methods utilize `this`
* @see https://eslint.org/docs/latest/rules/class-methods-use-this
*/
'class-methods-use-this'?: Linter.RuleEntry<ClassMethodsUseThis>
/**
* Require or disallow trailing commas
* @see https://eslint.org/docs/latest/rules/comma-dangle
* @deprecated
*/
'comma-dangle'?: Linter.RuleEntry<CommaDangle>
/**
* Enforce consistent spacing before and after commas
* @see https://eslint.org/docs/latest/rules/comma-spacing
* @deprecated
*/
'comma-spacing'?: Linter.RuleEntry<CommaSpacing>
/**
* Enforce consistent comma style
* @see https://eslint.org/docs/latest/rules/comma-style
* @deprecated
*/
'comma-style'?: Linter.RuleEntry<CommaStyle>
/**
* Enforce a maximum cyclomatic complexity allowed in a program
* @see https://eslint.org/docs/latest/rules/complexity
*/
'complexity'?: Linter.RuleEntry<Complexity>
/**
* Enforce consistent spacing inside computed property brackets
* @see https://eslint.org/docs/latest/rules/computed-property-spacing
* @deprecated
*/
'computed-property-spacing'?: Linter.RuleEntry<ComputedPropertySpacing>
/**
* Require `return` statements to either always or never specify values
* @see https://eslint.org/docs/latest/rules/consistent-return
*/
'consistent-return'?: Linter.RuleEntry<ConsistentReturn>
/**
* Enforce consistent naming when capturing the current execution context
* @see https://eslint.org/docs/latest/rules/consistent-this
*/
'consistent-this'?: Linter.RuleEntry<ConsistentThis>
/**
* Require `super()` calls in constructors
* @see https://eslint.org/docs/latest/rules/constructor-super
*/
'constructor-super'?: Linter.RuleEntry<[]>
/**
* Enforce consistent brace style for all control statements
* @see https://eslint.org/docs/latest/rules/curly
*/
'curly'?: Linter.RuleEntry<Curly>
/**
* Require `default` cases in `switch` statements
* @see https://eslint.org/docs/latest/rules/default-case
*/
'default-case'?: Linter.RuleEntry<DefaultCase>
/**
* Enforce `default` clauses in `switch` statements to be last
* @see https://eslint.org/docs/latest/rules/default-case-last
*/
'default-case-last'?: Linter.RuleEntry<[]>
/**
* Enforce default parameters to be last
* @see https://eslint.org/docs/latest/rules/default-param-last
*/
'default-param-last'?: Linter.RuleEntry<[]>
/**
* 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.16.1/docs/rules/consistent-type-specifier-style.md
*/
'import/consistent-type-specifier-style'?: Linter.RuleEntry<ImportConsistentTypeSpecifierStyle>
/**
* Ensure a default export is present, given a default import.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/default.md
*/
'import/default'?: Linter.RuleEntry<[]>
/**
* Enforce a leading comment with the webpackChunkName for dynamic imports.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/dynamic-import-chunkname.md
*/
'import/dynamic-import-chunkname'?: Linter.RuleEntry<ImportDynamicImportChunkname>
/**
* Forbid any invalid exports, i.e. re-export of the same name.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/export.md
*/
'import/export'?: Linter.RuleEntry<[]>
/**
* Ensure all exports appear after other statements.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/exports-last.md
*/
'import/exports-last'?: Linter.RuleEntry<[]>
/**
* Ensure consistent use of file extension within the import path.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/extensions.md
*/
'import/extensions'?: Linter.RuleEntry<ImportExtensions>
/**
* Ensure all imports appear before other statements.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/first.md
*/
'import/first'?: Linter.RuleEntry<ImportFirst>
/**
* Prefer named exports to be grouped together in a single export declaration.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/group-exports.md
*/
'import/group-exports'?: Linter.RuleEntry<[]>
/**
* Replaced by `import-x/first`.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/imports-first.md
* @deprecated
*/
'import/imports-first'?: Linter.RuleEntry<ImportImportsFirst>
/**
* Enforce the maximum number of dependencies a module can have.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/max-dependencies.md
*/
'import/max-dependencies'?: Linter.RuleEntry<ImportMaxDependencies>
/**
* Ensure named imports correspond to a named export in the remote file.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/named.md
*/
'import/named'?: Linter.RuleEntry<ImportNamed>
/**
* Ensure imported namespaces contain dereferenced properties as they are dereferenced.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/namespace.md
*/
'import/namespace'?: Linter.RuleEntry<ImportNamespace>
/**
* Enforce a newline after import statements.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/newline-after-import.md
*/
'import/newline-after-import'?: Linter.RuleEntry<ImportNewlineAfterImport>
/**
* Forbid import of modules using absolute paths.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-absolute-path.md
*/
'import/no-absolute-path'?: Linter.RuleEntry<ImportNoAbsolutePath>
/**
* Forbid AMD `require` and `define` calls.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-amd.md
*/
'import/no-amd'?: Linter.RuleEntry<[]>
/**
* Forbid anonymous values as default exports.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-anonymous-default-export.md
*/
'import/no-anonymous-default-export'?: Linter.RuleEntry<ImportNoAnonymousDefaultExport>
/**
* Forbid CommonJS `require` calls and `module.exports` or `exports.*`.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-commonjs.md
*/
'import/no-commonjs'?: Linter.RuleEntry<ImportNoCommonjs>
/**
* Forbid a module from importing a module with a dependency path back to itself.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-cycle.md
*/
'import/no-cycle'?: Linter.RuleEntry<ImportNoCycle>
/**
* Forbid default exports.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-default-export.md
*/
'import/no-default-export'?: Linter.RuleEntry<[]>
/**
* Forbid imported names marked with `@deprecated` documentation tag.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-deprecated.md
*/
'import/no-deprecated'?: Linter.RuleEntry<[]>
/**
* Forbid repeated import of the same module in multiple places.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-duplicates.md
*/
'import/no-duplicates'?: Linter.RuleEntry<ImportNoDuplicates>
/**
* Forbid `require()` calls with expressions.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-dynamic-require.md
*/
'import/no-dynamic-require'?: Linter.RuleEntry<ImportNoDynamicRequire>
/**
* Forbid empty named import blocks.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-empty-named-blocks.md
*/
'import/no-empty-named-blocks'?: Linter.RuleEntry<[]>
/**
* Forbid the use of extraneous packages.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-extraneous-dependencies.md
*/
'import/no-extraneous-dependencies'?: Linter.RuleEntry<ImportNoExtraneousDependencies>
/**
* Forbid import statements with CommonJS module.exports.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-import-module-exports.md
*/
'import/no-import-module-exports'?: Linter.RuleEntry<ImportNoImportModuleExports>
/**
* Forbid importing the submodules of other modules.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-internal-modules.md
*/
'import/no-internal-modules'?: Linter.RuleEntry<ImportNoInternalModules>
/**
* Forbid the use of mutable exports with `var` or `let`.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-mutable-exports.md
*/
'import/no-mutable-exports'?: Linter.RuleEntry<[]>
/**
* Forbid use of exported name as identifier of default export.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-named-as-default.md
*/
'import/no-named-as-default'?: Linter.RuleEntry<[]>
/**
* Forbid use of exported name as property of default export.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-named-as-default-member.md
*/
'import/no-named-as-default-member'?: Linter.RuleEntry<[]>
/**
* Forbid named default exports.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-named-default.md
*/
'import/no-named-default'?: Linter.RuleEntry<[]>
/**
* Forbid named exports.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-named-export.md
*/
'import/no-named-export'?: Linter.RuleEntry<[]>
/**
* Forbid namespace (a.k.a. "wildcard" `*`) imports.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-namespace.md
*/
'import/no-namespace'?: Linter.RuleEntry<ImportNoNamespace>
/**
* Forbid Node.js builtin modules.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-nodejs-modules.md
*/
'import/no-nodejs-modules'?: Linter.RuleEntry<ImportNoNodejsModules>
/**
* Forbid importing packages through relative paths.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-relative-packages.md
*/
'import/no-relative-packages'?: Linter.RuleEntry<ImportNoRelativePackages>
/**
* Forbid importing modules from parent directories.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-relative-parent-imports.md
*/
'import/no-relative-parent-imports'?: Linter.RuleEntry<ImportNoRelativeParentImports>
/**
* Forbid importing a default export by a different name.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-rename-default.md
*/
'import/no-rename-default'?: Linter.RuleEntry<ImportNoRenameDefault>
/**
* Enforce which files can be imported in a given folder.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-restricted-paths.md
*/
'import/no-restricted-paths'?: Linter.RuleEntry<ImportNoRestrictedPaths>
/**
* Forbid a module from importing itself.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-self-import.md
*/
'import/no-self-import'?: Linter.RuleEntry<[]>
/**
* Forbid unassigned imports.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-unassigned-import.md
*/
'import/no-unassigned-import'?: Linter.RuleEntry<ImportNoUnassignedImport>
/**
* Ensure imports point to a file/module that can be resolved.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-unresolved.md
*/
'import/no-unresolved'?: Linter.RuleEntry<ImportNoUnresolved>
/**
* Forbid modules without exports, or exports without matching import in another module.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-unused-modules.md
*/
'import/no-unused-modules'?: Linter.RuleEntry<ImportNoUnusedModules>
/**
* Forbid unnecessary path segments in import and require statements.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-useless-path-segments.md
*/
'import/no-useless-path-segments'?: Linter.RuleEntry<ImportNoUselessPathSegments>
/**
* Forbid webpack loader syntax in imports.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-webpack-loader-syntax.md
*/
'import/no-webpack-loader-syntax'?: Linter.RuleEntry<[]>
/**
* Enforce a convention in module import order.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/order.md
*/
'import/order'?: Linter.RuleEntry<ImportOrder>
/**
* Prefer a default export if module exports a single name or multiple names.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/prefer-default-export.md
*/
'import/prefer-default-export'?: Linter.RuleEntry<ImportPreferDefaultExport>
/**
* Enforce using namespace imports for specific modules, like `react`/`react-dom`, etc.
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/prefer-namespace-import.md
*/
'import/prefer-namespace-import'?: Linter.RuleEntry<ImportPreferNamespaceImport>
/**
* Forbid potentially ambiguous parse goal (`script` vs. `module`).
* @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/unambiguous.md
*/
'import/unambiguous'?: Linter.RuleEntry<[]>
/**
* Enforce consistent indentation
* @see https://eslint.org/docs/latest/rules/indent
* @deprecated
*/
'indent'?: Linter.RuleEntry<Indent>
/**
* Enforce consistent indentation
* @see https://eslint.org/docs/latest/rules/indent-legacy
* @deprecated
*/
'indent-legacy'?: Linter.RuleEntry<IndentLegacy>
/**
* Require or disallow initialization in variable declarations
* @see https://eslint.org/docs/latest/rules/init-declarations
*/
'init-declarations'?: Linter.RuleEntry<InitDeclarations>
/**
* Checks that `@access` tags have a valid value.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-access.md#repos-sticky-header
*/
'jsdoc/check-access'?: Linter.RuleEntry<[]>
/**
* Reports invalid alignment of JSDoc block asterisks.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-alignment.md#repos-sticky-header
*/
'jsdoc/check-alignment'?: Linter.RuleEntry<[]>
/**
* Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-examples.md#repos-sticky-header
*/
'jsdoc/check-examples'?: Linter.RuleEntry<JsdocCheckExamples>
/**
* Reports invalid padding inside JSDoc blocks.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-indentation.md#repos-sticky-header
*/
'jsdoc/check-indentation'?: Linter.RuleEntry<JsdocCheckIndentation>
/**
* Reports invalid alignment of JSDoc block lines.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-line-alignment.md#repos-sticky-header
*/
'jsdoc/check-line-alignment'?: Linter.RuleEntry<JsdocCheckLineAlignment>
/**
* Ensures that parameter names in JSDoc match those in the function declaration.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-param-names.md#repos-sticky-header
*/
'jsdoc/check-param-names'?: Linter.RuleEntry<JsdocCheckParamNames>
/**
* Ensures that property names in JSDoc are not duplicated on the same block and that nested properties have defined roots.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-property-names.md#repos-sticky-header
*/
'jsdoc/check-property-names'?: Linter.RuleEntry<JsdocCheckPropertyNames>
/**
* Reports against syntax not valid for the mode (e.g., Google Closure Compiler in non-Closure mode).
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-syntax.md#repos-sticky-header
*/
'jsdoc/check-syntax'?: Linter.RuleEntry<[]>
/**
* Reports invalid block tag names.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-tag-names.md#repos-sticky-header
*/
'jsdoc/check-tag-names'?: Linter.RuleEntry<JsdocCheckTagNames>
/**
* Checks that any `@template` names are actually used in the connected `@typedef` or type alias.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-template-names.md#repos-sticky-header
*/
'jsdoc/check-template-names'?: Linter.RuleEntry<[]>
/**
* Reports invalid types.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-types.md#repos-sticky-header
*/
'jsdoc/check-types'?: Linter.RuleEntry<JsdocCheckTypes>
/**
* This rule checks the values for a handful of tags: `@version`, `@since`, `@license` and `@author`.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-values.md#repos-sticky-header
*/
'jsdoc/check-values'?: Linter.RuleEntry<JsdocCheckValues>
/**
* Converts non-JSDoc comments preceding or following nodes into JSDoc ones
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/convert-to-jsdoc-comments.md#repos-sticky-header
*/
'jsdoc/convert-to-jsdoc-comments'?: Linter.RuleEntry<JsdocConvertToJsdocComments>
/**
* Expects specific tags to be empty of any content.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/empty-tags.md#repos-sticky-header
*/
'jsdoc/empty-tags'?: Linter.RuleEntry<JsdocEmptyTags>
/**
* Reports an issue with any non-constructor function using `@implements`.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/implements-on-classes.md#repos-sticky-header
*/
'jsdoc/implements-on-classes'?: Linter.RuleEntry<JsdocImplementsOnClasses>
/**
* Reports if JSDoc `import()` statements point to a package which is not listed in `dependencies` or `devDependencies`
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/imports-as-dependencies.md#repos-sticky-header
*/
'jsdoc/imports-as-dependencies'?: Linter.RuleEntry<[]>
/**
* This rule reports doc comments that only restate their attached name.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/informative-docs.md#repos-sticky-header
*/
'jsdoc/informative-docs'?: Linter.RuleEntry<JsdocInformativeDocs>
/**
* Enforces minimum number of newlines before JSDoc comment blocks
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/lines-before-block.md#repos-sticky-header
*/
'jsdoc/lines-before-block'?: Linter.RuleEntry<JsdocLinesBeforeBlock>
/**
* Enforces a regular expression pattern on descriptions.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-description.md#repos-sticky-header
*/
'jsdoc/match-description'?: Linter.RuleEntry<JsdocMatchDescription>
/**
* Reports the name portion of a JSDoc tag if matching or not matching a given regular expression.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-name.md#repos-sticky-header
*/
'jsdoc/match-name'?: Linter.RuleEntry<JsdocMatchName>
/**
* Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/multiline-blocks.md#repos-sticky-header
*/
'jsdoc/multiline-blocks'?: Linter.RuleEntry<JsdocMultilineBlocks>
/**
* This rule checks for multi-line-style comments which fail to meet the criteria of a jsdoc block.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-bad-blocks.md#repos-sticky-header
*/
'jsdoc/no-bad-blocks'?: Linter.RuleEntry<JsdocNoBadBlocks>
/**
* Detects and removes extra lines of a blank block description
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-block-descriptions.md#repos-sticky-header
*/
'jsdoc/no-blank-block-descriptions'?: Linter.RuleEntry<[]>
/**
* Removes empty blocks with nothing but possibly line breaks
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-blocks.md#repos-sticky-header
*/
'jsdoc/no-blank-blocks'?: Linter.RuleEntry<JsdocNoBlankBlocks>
/**
* This rule reports defaults being used on the relevant portion of `@param` or `@default`.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-defaults.md#repos-sticky-header
*/
'jsdoc/no-defaults'?: Linter.RuleEntry<JsdocNoDefaults>
/**
* Reports when certain comment structures are always expected.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-missing-syntax.md#repos-sticky-header
*/
'jsdoc/no-missing-syntax'?: Linter.RuleEntry<JsdocNoMissingSyntax>
/**
* Prevents use of multiple asterisks at the beginning of lines.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-multi-asterisks.md#repos-sticky-header
*/
'jsdoc/no-multi-asterisks'?: Linter.RuleEntry<JsdocNoMultiAsterisks>
/**
* Reports when certain comment structures are present.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-restricted-syntax.md#repos-sticky-header
*/
'jsdoc/no-restricted-syntax'?: Linter.RuleEntry<JsdocNoRestrictedSyntax>
/**
* This rule reports types being used on `@param` or `@returns`.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-types.md#repos-sticky-header
*/
'jsdoc/no-types'?: Linter.RuleEntry<JsdocNoTypes>
/**
* Checks that types in jsdoc comments are defined.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-undefined-types.md#repos-sticky-header
*/
'jsdoc/no-undefined-types'?: Linter.RuleEntry<JsdocNoUndefinedTypes>
/**
* Requires that each JSDoc line starts with an `*`.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-asterisk-prefix.md#repos-sticky-header
*/
'jsdoc/require-asterisk-prefix'?: Linter.RuleEntry<JsdocRequireAsteriskPrefix>
/**
* Requires that all functions have a description.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description.md#repos-sticky-header
*/
'jsdoc/require-description'?: Linter.RuleEntry<JsdocRequireDescription>
/**
* Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description-complete-sentence.md#repos-sticky-header
*/
'jsdoc/require-description-complete-sentence'?: Linter.RuleEntry<JsdocRequireDescriptionCompleteSentence>
/**
* Requires that all functions have examples.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-example.md#repos-sticky-header
*/
'jsdoc/require-example'?: Linter.RuleEntry<JsdocRequireExample>
/**
* Checks that all files have one `@file`, `@fileoverview`, or `@overview` tag at the beginning of the file.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-file-overview.md#repos-sticky-header
*/
'jsdoc/require-file-overview'?: Linter.RuleEntry<JsdocRequireFileOverview>
/**
* Requires a hyphen before the `@param` description.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-hyphen-before-param-description.md#repos-sticky-header
*/
'jsdoc/require-hyphen-before-param-description'?: Linter.RuleEntry<JsdocRequireHyphenBeforeParamDescription>
/**
* Require JSDoc comments
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-jsdoc.md#repos-sticky-header
*/
'jsdoc/require-jsdoc'?: Linter.RuleEntry<JsdocRequireJsdoc>
/**
* Requires that all function parameters are documented.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param.md#repos-sticky-header
*/
'jsdoc/require-param'?: Linter.RuleEntry<JsdocRequireParam>
/**
* Requires that each `@param` tag has a `description` value.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-description.md#repos-sticky-header
*/
'jsdoc/require-param-description'?: Linter.RuleEntry<JsdocRequireParamDescription>
/**
* Requires that all function parameters have names.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-name.md#repos-sticky-header
*/
'jsdoc/require-param-name'?: Linter.RuleEntry<JsdocRequireParamName>
/**
* Requires that each `@param` tag has a `type` value.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-type.md#repos-sticky-header
*/
'jsdoc/require-param-type'?: Linter.RuleEntry<JsdocRequireParamType>
/**
* Requires that all `@typedef` and `@namespace` tags have `@property` when their type is a plain `object`, `Object`, or `PlainObject`.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property.md#repos-sticky-header
*/
'jsdoc/require-property'?: Linter.RuleEntry<[]>
/**
* Requires that each `@property` tag has a `description` value.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-description.md#repos-sticky-header
*/
'jsdoc/require-property-description'?: Linter.RuleEntry<[]>
/**
* Requires that all function `@property` tags have names.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-name.md#repos-sticky-header
*/
'jsdoc/require-property-name'?: Linter.RuleEntry<[]>
/**
* Requires that each `@property` tag has a `type` value.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-type.md#repos-sticky-header
*/
'jsdoc/require-property-type'?: Linter.RuleEntry<[]>
/**
* Requires that returns are documented.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns.md#repos-sticky-header
*/
'jsdoc/require-returns'?: Linter.RuleEntry<JsdocRequireReturns>
/**
* Requires a return statement in function body if a `@returns` tag is specified in jsdoc comment.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-check.md#repos-sticky-header
*/
'jsdoc/require-returns-check'?: Linter.RuleEntry<JsdocRequireReturnsCheck>
/**
* Requires that the `@returns` tag has a `description` value.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-description.md#repos-sticky-header
*/
'jsdoc/require-returns-description'?: Linter.RuleEntry<JsdocRequireReturnsDescription>
/**
* Requires that `@returns` tag has `type` value.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-type.md#repos-sticky-header
*/
'jsdoc/require-returns-type'?: Linter.RuleEntry<JsdocRequireReturnsType>
/**
* Requires template tags for each generic type parameter
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template.md#repos-sticky-header
*/
'jsdoc/require-template'?: Linter.RuleEntry<JsdocRequireTemplate>
/**
* Requires that throw statements are documented.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws.md#repos-sticky-header
*/
'jsdoc/require-throws'?: Linter.RuleEntry<JsdocRequireThrows>
/**
* Requires yields are documented.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields.md#repos-sticky-header
*/
'jsdoc/require-yields'?: Linter.RuleEntry<JsdocRequireYields>
/**
* Requires a yield statement in function body if a `@yields` tag is specified in jsdoc comment.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-check.md#repos-sticky-header
*/
'jsdoc/require-yields-check'?: Linter.RuleEntry<JsdocRequireYieldsCheck>
/**
* Sorts tags by a specified sequence according to tag name.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/sort-tags.md#repos-sticky-header
*/
'jsdoc/sort-tags'?: Linter.RuleEntry<JsdocSortTags>
/**
* Enforces lines (or no lines) between tags.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/tag-lines.md#repos-sticky-header
*/
'jsdoc/tag-lines'?: Linter.RuleEntry<JsdocTagLines>
/**
* Auto-escape certain characters that are input within block and tag descriptions.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/text-escaping.md#repos-sticky-header
*/
'jsdoc/text-escaping'?: Linter.RuleEntry<JsdocTextEscaping>
/**
* Requires all types to be valid JSDoc or Closure compiler types without syntax errors.
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/valid-types.md#repos-sticky-header
*/
'jsdoc/valid-types'?: Linter.RuleEntry<JsdocValidTypes>
/**
* Enforce the consistent use of either double or single quotes in JSX attributes
* @see https://eslint.org/docs/latest/rules/jsx-quotes
* @deprecated
*/
'jsx-quotes'?: Linter.RuleEntry<JsxQuotes>
/**
* Enforce consistent spacing between keys and values in object literal properties
* @see https://eslint.org/docs/latest/rules/key-spacing
* @deprecated
*/
'key-spacing'?: Linter.RuleEntry<KeySpacing>
/**
* Enforce consistent spacing before and after keywords
* @see https://eslint.org/docs/latest/rules/keyword-spacing
* @deprecated
*/
'keyword-spacing'?: Linter.RuleEntry<KeywordSpacing>
/**
* Enforce position of line comments
* @see https://eslint.org/docs/latest/rules/line-comment-position
* @deprecated
*/
'line-comment-position'?: Linter.RuleEntry<LineCommentPosition>
/**
* Enforce consistent linebreak style
* @see https://eslint.org/docs/latest/rules/linebreak-style
* @deprecated
*/
'linebreak-style'?: Linter.RuleEntry<LinebreakStyle>
/**
* Require empty lines around comments
* @see https://eslint.org/docs/latest/rules/lines-around-comment
* @deprecated
*/
'lines-around-comment'?: Linter.RuleEntry<LinesAroundComment>
/**
* Require or disallow newlines around directives
* @see https://eslint.org/docs/latest/rules/lines-around-directive
* @deprecated
*/
'lines-around-directive'?: Linter.RuleEntry<LinesAroundDirective>
/**
* Require or disallow an empty line between class members
* @see https://eslint.org/docs/latest/rules/lines-between-class-members
* @deprecated
*/
'lines-between-class-members'?: Linter.RuleEntry<LinesBetweenClassMembers>
/**
* Require or disallow logical assignment operator shorthand
* @see https://eslint.org/docs/latest/rules/logical-assignment-operators
*/
'logical-assignment-operators'?: Linter.RuleEntry<LogicalAssignmentOperators>
/**
* Enforce a maximum number of classes per file
* @see https://eslint.org/docs/latest/rules/max-classes-per-file
*/
'max-classes-per-file'?: Linter.RuleEntry<MaxClassesPerFile>
/**
* Enforce a maximum depth that blocks can be nested
* @see https://eslint.org/docs/latest/rules/max-depth
*/
'max-depth'?: Linter.RuleEntry<MaxDepth>
/**
* Enforce a maximum line length
* @see https://eslint.org/docs/latest/rules/max-len
* @deprecated
*/
'max-len'?: Linter.RuleEntry<MaxLen>
/**
* Enforce a maximum number of lines per file
* @see https://eslint.org/docs/latest/rules/max-lines
*/
'max-lines'?: Linter.RuleEntry<MaxLines>
/**
* Enforce a maximum number of lines of code in a function
* @see https://eslint.org/docs/latest/rules/max-lines-per-function
*/
'max-lines-per-function'?: Linter.RuleEntry<MaxLinesPerFunction>
/**
* Enforce a maximum depth that callbacks can be nested
* @see https://eslint.org/docs/latest/rules/max-nested-callbacks
*/
'max-nested-callbacks'?: Linter.RuleEntry<MaxNestedCallbacks>
/**
* Enforce a maximum number of parameters in function definitions
* @see https://eslint.org/docs/latest/rules/max-params
*/
'max-params'?: Linter.RuleEntry<MaxParams>
/**
* Enforce a maximum number of statements allowed in function blocks
* @see https://eslint.org/docs/latest/rules/max-statements
*/
'max-statements'?: Linter.RuleEntry<MaxStatements>
/**
* Enforce a maximum number of statements allowed per line
* @see https://eslint.org/docs/latest/rules/max-statements-per-line
* @deprecated
*/
'max-statements-per-line'?: Linter.RuleEntry<MaxStatementsPerLine>
/**
* Enforce a particular style for multiline comments
* @see https://eslint.org/docs/latest/rules/multiline-comment-style
* @deprecated
*/
'multiline-comment-style'?: Linter.RuleEntry<MultilineCommentStyle>
/**
* Enforce newlines between operands of ternary expressions
* @see https://eslint.org/docs/latest/rules/multiline-ternary
* @deprecated
*/
'multiline-ternary'?: Linter.RuleEntry<MultilineTernary>
/**
* Require constructor names to begin with a capital letter
* @see https://eslint.org/docs/latest/rules/new-cap
*/
'new-cap'?: Linter.RuleEntry<NewCap>
/**
* Enforce or disallow parentheses when invoking a constructor with no arguments
* @see https://eslint.org/docs/latest/rules/new-parens
* @deprecated
*/
'new-parens'?: Linter.RuleEntry<NewParens>
/**
* Require or disallow an empty line after variable declarations
* @see https://eslint.org/docs/latest/rules/newline-after-var
* @deprecated
*/
'newline-after-var'?: Linter.RuleEntry<NewlineAfterVar>
/**
* Require an empty line before `return` statements
* @see https://eslint.org/docs/latest/rules/newline-before-return
* @deprecated
*/
'newline-before-return'?: Linter.RuleEntry<[]>
/**
* Require a newline after each call in a method chain
* @see https://eslint.org/docs/latest/rules/newline-per-chained-call
* @deprecated
*/
'newline-per-chained-call'?: Linter.RuleEntry<NewlinePerChainedCall>
/**
* Disallow the use of `alert`, `confirm`, and `prompt`
* @see https://eslint.org/docs/latest/rules/no-alert
*/
'no-alert'?: Linter.RuleEntry<[]>
/**
* Disallow `Array` constructors
* @see https://eslint.org/docs/latest/rules/no-array-constructor
*/
'no-array-constructor'?: Linter.RuleEntry<[]>
/**
* Disallow using an async function as a Promise executor
* @see https://eslint.org/docs/latest/rules/no-async-promise-executor
*/
'no-async-promise-executor'?: Linter.RuleEntry<[]>
/**
* Disallow `await` inside of loops
* @see https://eslint.org/docs/latest/rules/no-await-in-loop
*/
'no-await-in-loop'?: Linter.RuleEntry<[]>
/**
* Disallow bitwise operators
* @see https://eslint.org/docs/latest/rules/no-bitwise
*/
'no-bitwise'?: Linter.RuleEntry<NoBitwise>
/**
* Disallow use of the `Buffer()` constructor
* @see https://eslint.org/docs/latest/rules/no-buffer-constructor
* @deprecated
*/
'no-buffer-constructor'?: Linter.RuleEntry<[]>
/**
* Disallow the use of `arguments.caller` or `arguments.callee`
* @see https://eslint.org/docs/latest/rules/no-caller
*/
'no-caller'?: Linter.RuleEntry<[]>
/**
* Disallow lexical declarations in case clauses
* @see https://eslint.org/docs/latest/rules/no-case-declarations
*/
'no-case-declarations'?: Linter.RuleEntry<[]>
/**
* Disallow `catch` clause parameters from shadowing variables in the outer scope
* @see https://eslint.org/docs/latest/rules/no-catch-shadow
* @deprecated
*/
'no-catch-shadow'?: Linter.RuleEntry<[]>
/**
* Disallow reassigning class members
* @see https://eslint.org/docs/latest/rules/no-class-assign
*/
'no-class-assign'?: Linter.RuleEntry<[]>
/**
* Disallow comparing against `-0`
* @see https://eslint.org/docs/latest/rules/no-compare-neg-zero
*/
'no-compare-neg-zero'?: Linter.RuleEntry<[]>
/**
* Disallow assignment operators in conditional expressions
* @see https://eslint.org/docs/latest/rules/no-cond-assign
*/
'no-cond-assign'?: Linter.RuleEntry<NoCondAssign>
/**
* Disallow arrow functions where they could be confused with comparisons
* @see https://eslint.org/docs/latest/rules/no-confusing-arrow
* @deprecated
*/
'no-confusing-arrow'?: Linter.RuleEntry<NoConfusingArrow>
/**
* Disallow the use of `console`
* @see https://eslint.org/docs/latest/rules/no-console
*/
'no-console'?: Linter.RuleEntry<NoConsole>
/**
* Disallow reassigning `const`, `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<[]>
/**
* Disallow constant expressions in conditions
* @see https://eslint.org/docs/latest/rules/no-constant-condition
*/
'no-constant-condition'?: Linter.RuleEntry<NoConstantCondition>
/**
* Disallow returning value from constructor
* @see https://eslint.org/docs/latest/rules/no-constructor-return
*/
'no-constructor-return'?: Linter.RuleEntry<[]>
/**
* Disallow `continue` statements
* @see https://eslint.org/docs/latest/rules/no-continue
*/
'no-continue'?: Linter.RuleEntry<[]>
/**
* Disallow control characters in regular expressions
* @see https://eslint.org/docs/latest/rules/no-control-regex
*/
'no-control-regex'?: Linter.RuleEntry<[]>
/**
* Disallow the use of `debugger`
* @see https://eslint.org/docs/latest/rules/no-debugger
*/
'no-debugger'?: Linter.RuleEntry<[]>
/**
* Disallow deleting variables
* @see https://eslint.org/docs/latest/rules/no-delete-var
*/
'no-delete-var'?: Linter.RuleEntry<[]>
/**
* Disallow equal signs explicitly at the beginning of regular expressions
* @see https://eslint.org/docs/latest/rules/no-div-regex
*/
'no-div-regex'?: Linter.RuleEntry<[]>
/**
* Disallow duplicate arguments in `function` definitions
* @see https://eslint.org/docs/latest/rules/no-dupe-args
*/
'no-dupe-args'?: Linter.RuleEntry<[]>
/**
* Disallow duplicate class members
* @see https://eslint.org/docs/latest/rules/no-dupe-class-members
*/
'no-dupe-class-members'?: Linter.RuleEntry<[]>
/**
* Disallow duplicate conditions in if-else-if chains
* @see https://eslint.org/docs/latest/rules/no-dupe-else-if
*/
'no-dupe-else-if'?: Linter.RuleEntry<[]>
/**
* Disallow duplicate keys in object literals
* @see https://eslint.org/docs/latest/rules/no-dupe-keys
*/
'no-dupe-keys'?: Linter.RuleEntry<[]>
/**
* Disallow duplicate case labels
* @see https://eslint.org/docs/latest/rules/no-duplicate-case
*/
'no-duplicate-case'?: Linter.RuleEntry<[]>
/**
* Disallow duplicate module imports
* @see https://eslint.org/docs/latest/rules/no-duplicate-imports
*/
'no-duplicate-imports'?: Linter.RuleEntry<NoDuplicateImports>
/**
* Disallow `else` blocks after `return` statements in `if` statements
* @see https://eslint.org/docs/latest/rules/no-else-return
*/
'no-else-return'?: Linter.RuleEntry<NoElseReturn>
/**
* Disallow empty block statements
* @see https://eslint.org/docs/latest/rules/no-empty
*/
'no-empty'?: Linter.RuleEntry<NoEmpty>
/**
* Disallow empty character classes in regular expressions
* @see https://eslint.org/docs/latest/rules/no-empty-character-class
*/
'no-empty-character-class'?: Linter.RuleEntry<[]>
/**
* Disallow empty functions
* @see https://eslint.org/docs/latest/rules/no-empty-function
*/
'no-empty-function'?: Linter.RuleEntry<NoEmptyFunction>
/**
* Disallow empty destructuring patterns
* @see https://eslint.org/docs/latest/rules/no-empty-pattern
*/
'no-empty-pattern'?: Linter.RuleEntry<NoEmptyPattern>
/**
* Disallow empty static blocks
* @see https://eslint.org/docs/latest/rules/no-empty-static-block
*/
'no-empty-static-block'?: Linter.RuleEntry<[]>
/**
* Disallow `null` comparisons without type-checking operators
* @see https://eslint.org/docs/latest/rules/no-eq-null
*/
'no-eq-null'?: Linter.RuleEntry<[]>
/**
* Disallow the use of `eval()`
* @see https://eslint.org/docs/latest/rules/no-eval
*/
'no-eval'?: Linter.RuleEntry<NoEval>
/**
* Disallow reassigning exceptions in `catch` clauses
* @see https://eslint.org/docs/latest/rules/no-ex-assign
*/
'no-ex-assign'?: Linter.RuleEntry<[]>
/**
* Disallow extending native types
* @see https://eslint.org/docs/latest/rules/no-extend-native
*/
'no-extend-native'?: Linter.RuleEntry<NoExtendNative>
/**
* Disallow unnecessary calls to `.bind()`
* @see https://eslint.org/docs/latest/rules/no-extra-bind
*/
'no-extra-bind'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary boolean casts
* @see https://eslint.org/docs/latest/rules/no-extra-boolean-cast
*/
'no-extra-boolean-cast'?: Linter.RuleEntry<NoExtraBooleanCast>
/**
* Disallow unnecessary labels
* @see https://eslint.org/docs/latest/rules/no-extra-label
*/
'no-extra-label'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary parentheses
* @see https://eslint.org/docs/latest/rules/no-extra-parens
* @deprecated
*/
'no-extra-parens'?: Linter.RuleEntry<NoExtraParens>
/**
* Disallow unnecessary semicolons
* @see https://eslint.org/docs/latest/rules/no-extra-semi
* @deprecated
*/
'no-extra-semi'?: Linter.RuleEntry<[]>
/**
* Disallow fallthrough of `case` statements
* @see https://eslint.org/docs/latest/rules/no-fallthrough
*/
'no-fallthrough'?: Linter.RuleEntry<NoFallthrough>
/**
* Disallow leading or trailing decimal points in numeric literals
* @see https://eslint.org/docs/latest/rules/no-floating-decimal
* @deprecated
*/
'no-floating-decimal'?: Linter.RuleEntry<[]>
/**
* Disallow reassigning `function` declarations
* @see https://eslint.org/docs/latest/rules/no-func-assign
*/
'no-func-assign'?: Linter.RuleEntry<[]>
/**
* Disallow assignments to native objects or read-only global variables
* @see https://eslint.org/docs/latest/rules/no-global-assign
*/
'no-global-assign'?: Linter.RuleEntry<NoGlobalAssign>
/**
* Disallow shorthand type conversions
* @see https://eslint.org/docs/latest/rules/no-implicit-coercion
*/
'no-implicit-coercion'?: Linter.RuleEntry<NoImplicitCoercion>
/**
* Disallow declarations in the global scope
* @see https://eslint.org/docs/latest/rules/no-implicit-globals
*/
'no-implicit-globals'?: Linter.RuleEntry<NoImplicitGlobals>
/**
* Disallow the use of `eval()`-like methods
* @see https://eslint.org/docs/latest/rules/no-implied-eval
*/
'no-implied-eval'?: Linter.RuleEntry<[]>
/**
* Disallow assigning to imported bindings
* @see https://eslint.org/docs/latest/rules/no-import-assign
*/
'no-import-assign'?: Linter.RuleEntry<[]>
/**
* Disallow inline comments after code
* @see https://eslint.org/docs/latest/rules/no-inline-comments
*/
'no-inline-comments'?: Linter.RuleEntry<NoInlineComments>
/**
* Disallow variable or `function` declarations in nested blocks
* @see https://eslint.org/docs/latest/rules/no-inner-declarations
*/
'no-inner-declarations'?: Linter.RuleEntry<NoInnerDeclarations>
/**
* Disallow invalid regular expression strings in `RegExp` constructors
* @see https://eslint.org/docs/latest/rules/no-invalid-regexp
*/
'no-invalid-regexp'?: Linter.RuleEntry<NoInvalidRegexp>
/**
* Disallow use of `this` in contexts where the value of `this` is `undefined`
* @see https://eslint.org/docs/latest/rules/no-invalid-this
*/
'no-invalid-this'?: Linter.RuleEntry<NoInvalidThis>
/**
* Disallow irregular whitespace
* @see https://eslint.org/docs/latest/rules/no-irregular-whitespace
*/
'no-irregular-whitespace'?: Linter.RuleEntry<NoIrregularWhitespace>
/**
* Disallow the use of the `__iterator__` property
* @see https://eslint.org/docs/latest/rules/no-iterator
*/
'no-iterator'?: Linter.RuleEntry<[]>
/**
* Disallow labels that share a name with a variable
* @see https://eslint.org/docs/latest/rules/no-label-var
*/
'no-label-var'?: Linter.RuleEntry<[]>
/**
* Disallow labeled statements
* @see https://eslint.org/docs/latest/rules/no-labels
*/
'no-labels'?: Linter.RuleEntry<NoLabels>
/**
* Disallow unnecessary nested blocks
* @see https://eslint.org/docs/latest/rules/no-lone-blocks
*/
'no-lone-blocks'?: Linter.RuleEntry<[]>
/**
* Disallow `if` statements as the only statement in `else` blocks
* @see https://eslint.org/docs/latest/rules/no-lonely-if
*/
'no-lonely-if'?: Linter.RuleEntry<[]>
/**
* Disallow function declarations that contain unsafe references inside loop statements
* @see https://eslint.org/docs/latest/rules/no-loop-func
*/
'no-loop-func'?: Linter.RuleEntry<[]>
/**
* Disallow literal numbers that lose precision
* @see https://eslint.org/docs/latest/rules/no-loss-of-precision
*/
'no-loss-of-precision'?: Linter.RuleEntry<[]>
/**
* Disallow magic numbers
* @see https://eslint.org/docs/latest/rules/no-magic-numbers
*/
'no-magic-numbers'?: Linter.RuleEntry<NoMagicNumbers>
/**
* Disallow characters which are made with multiple code points in character class syntax
* @see https://eslint.org/docs/latest/rules/no-misleading-character-class
*/
'no-misleading-character-class'?: Linter.RuleEntry<NoMisleadingCharacterClass>
/**
* Disallow mixed binary operators
* @see https://eslint.org/docs/latest/rules/no-mixed-operators
* @deprecated
*/
'no-mixed-operators'?: Linter.RuleEntry<NoMixedOperators>
/**
* Disallow `require` calls to be mixed with regular variable declarations
* @see https://eslint.org/docs/latest/rules/no-mixed-requires
* @deprecated
*/
'no-mixed-requires'?: Linter.RuleEntry<NoMixedRequires>
/**
* Disallow mixed spaces and tabs for indentation
* @see https://eslint.org/docs/latest/rules/no-mixed-spaces-and-tabs
* @deprecated
*/
'no-mixed-spaces-and-tabs'?: Linter.RuleEntry<NoMixedSpacesAndTabs>
/**
* Disallow use of chained assignment expressions
* @see https://eslint.org/docs/latest/rules/no-multi-assign
*/
'no-multi-assign'?: Linter.RuleEntry<NoMultiAssign>
/**
* Disallow multiple spaces
* @see https://eslint.org/docs/latest/rules/no-multi-spaces
* @deprecated
*/
'no-multi-spaces'?: Linter.RuleEntry<NoMultiSpaces>
/**
* Disallow multiline strings
* @see https://eslint.org/docs/latest/rules/no-multi-str
*/
'no-multi-str'?: Linter.RuleEntry<[]>
/**
* Disallow multiple empty lines
* @see https://eslint.org/docs/latest/rules/no-multiple-empty-lines
* @deprecated
*/
'no-multiple-empty-lines'?: Linter.RuleEntry<NoMultipleEmptyLines>
/**
* Disallow assignments to native objects or read-only global variables
* @see https://eslint.org/docs/latest/rules/no-native-reassign
* @deprecated
*/
'no-native-reassign'?: Linter.RuleEntry<NoNativeReassign>
/**
* Disallow negated conditions
* @see https://eslint.org/docs/latest/rules/no-negated-condition
*/
'no-negated-condition'?: Linter.RuleEntry<[]>
/**
* Disallow negating the left operand in `in` expressions
* @see https://eslint.org/docs/latest/rules/no-negated-in-lhs
* @deprecated
*/
'no-negated-in-lhs'?: Linter.RuleEntry<[]>
/**
* Disallow nested ternary expressions
* @see https://eslint.org/docs/latest/rules/no-nested-ternary
*/
'no-nested-ternary'?: Linter.RuleEntry<[]>
/**
* Disallow `new` operators outside of assignments or comparisons
* @see https://eslint.org/docs/latest/rules/no-new
*/
'no-new'?: Linter.RuleEntry<[]>
/**
* Disallow `new` operators with the `Function` object
* @see https://eslint.org/docs/latest/rules/no-new-func
*/
'no-new-func'?: Linter.RuleEntry<[]>
/**
* Disallow `new` operators with global non-constructor functions
* @see https://eslint.org/docs/latest/rules/no-new-native-nonconstructor
*/
'no-new-native-nonconstructor'?: Linter.RuleEntry<[]>
/**
* Disallow `Object` constructors
* @see https://eslint.org/docs/latest/rules/no-new-object
* @deprecated
*/
'no-new-object'?: Linter.RuleEntry<[]>
/**
* Disallow `new` operators with calls to `require`
* @see https://eslint.org/docs/latest/rules/no-new-require
* @deprecated
*/
'no-new-require'?: Linter.RuleEntry<[]>
/**
* Disallow `new` operators with the `Symbol` object
* @see https://eslint.org/docs/latest/rules/no-new-symbol
* @deprecated
*/
'no-new-symbol'?: Linter.RuleEntry<[]>
/**
* Disallow `new` operators with the `String`, `Number`, and `Boolean` objects
* @see https://eslint.org/docs/latest/rules/no-new-wrappers
*/
'no-new-wrappers'?: Linter.RuleEntry<[]>
/**
* Disallow `\8` and `\9` escape sequences in string literals
* @see https://eslint.org/docs/latest/rules/no-nonoctal-decimal-escape
*/
'no-nonoctal-decimal-escape'?: Linter.RuleEntry<[]>
/**
* Disallow calling global object properties as functions
* @see https://eslint.org/docs/latest/rules/no-obj-calls
*/
'no-obj-calls'?: Linter.RuleEntry<[]>
/**
* Disallow calls to the `Object` constructor without an argument
* @see https://eslint.org/docs/latest/rules/no-object-constructor
*/
'no-object-constructor'?: Linter.RuleEntry<[]>
/**
* Disallow octal literals
* @see https://eslint.org/docs/latest/rules/no-octal
*/
'no-octal'?: Linter.RuleEntry<[]>
/**
* Disallow octal escape sequences in string literals
* @see https://eslint.org/docs/latest/rules/no-octal-escape
*/
'no-octal-escape'?: Linter.RuleEntry<[]>
/**
* Disallow reassigning function parameters
* @see https://eslint.org/docs/latest/rules/no-param-reassign
*/
'no-param-reassign'?: Linter.RuleEntry<NoParamReassign>
/**
* Disallow string concatenation with `__dirname` and `__filename`
* @see https://eslint.org/docs/latest/rules/no-path-concat
* @deprecated
*/
'no-path-concat'?: Linter.RuleEntry<[]>
/**
* Disallow the unary operators `++` and `--`
* @see https://eslint.org/docs/latest/rules/no-plusplus
*/
'no-plusplus'?: Linter.RuleEntry<NoPlusplus>
/**
* Disallow the use of `process.env`
* @see https://eslint.org/docs/latest/rules/no-process-env
* @deprecated
*/
'no-process-env'?: Linter.RuleEntry<[]>
/**
* Disallow the use of `process.exit()`
* @see https://eslint.org/docs/latest/rules/no-process-exit
* @deprecated
*/
'no-process-exit'?: Linter.RuleEntry<[]>
/**
* Disallow returning values from Promise executor functions
* @see https://eslint.org/docs/latest/rules/no-promise-executor-return
*/
'no-promise-executor-return'?: Linter.RuleEntry<NoPromiseExecutorReturn>
/**
* Disallow the use of the `__proto__` property
* @see https://eslint.org/docs/latest/rules/no-proto
*/
'no-proto'?: Linter.RuleEntry<[]>
/**
* Disallow calling some `Object.prototype` methods directly on objects
* @see https://eslint.org/docs/latest/rules/no-prototype-builtins
*/
'no-prototype-builtins'?: Linter.RuleEntry<[]>
/**
* Disallow variable redeclaration
* @see https://eslint.org/docs/latest/rules/no-redeclare
*/
'no-redeclare'?: Linter.RuleEntry<NoRedeclare>
/**
* Disallow multiple spaces in regular expressions
* @see https://eslint.org/docs/latest/rules/no-regex-spaces
*/
'no-regex-spaces'?: Linter.RuleEntry<[]>
/**
* Disallow specified names in exports
* @see https://eslint.org/docs/latest/rules/no-restricted-exports
*/
'no-restricted-exports'?: Linter.RuleEntry<NoRestrictedExports>
/**
* Disallow specified global variables
* @see https://eslint.org/docs/latest/rules/no-restricted-globals
*/
'no-restricted-globals'?: Linter.RuleEntry<NoRestrictedGlobals>
/**
* Disallow specified modules when loaded by `import`
* @see https://eslint.org/docs/latest/rules/no-restricted-imports
*/
'no-restricted-imports'?: Linter.RuleEntry<NoRestrictedImports>
/**
* Disallow specified modules when loaded by `require`
* @see https://eslint.org/docs/latest/rules/no-restricted-modules
* @deprecated
*/
'no-restricted-modules'?: Linter.RuleEntry<NoRestrictedModules>
/**
* Disallow certain properties on certain objects
* @see https://eslint.org/docs/latest/rules/no-restricted-properties
*/
'no-restricted-properties'?: Linter.RuleEntry<NoRestrictedProperties>
/**
* Disallow specified syntax
* @see https://eslint.org/docs/latest/rules/no-restricted-syntax
*/
'no-restricted-syntax'?: Linter.RuleEntry<NoRestrictedSyntax>
/**
* Disallow assignment operators in `return` statements
* @see https://eslint.org/docs/latest/rules/no-return-assign
*/
'no-return-assign'?: Linter.RuleEntry<NoReturnAssign>
/**
* Disallow unnecessary `return await`
* @see https://eslint.org/docs/latest/rules/no-return-await
* @deprecated
*/
'no-return-await'?: Linter.RuleEntry<[]>
/**
* Disallow `javascript:` URLs
* @see https://eslint.org/docs/latest/rules/no-script-url
*/
'no-script-url'?: Linter.RuleEntry<[]>
/**
* Disallow assignments where both sides are exactly the same
* @see https://eslint.org/docs/latest/rules/no-self-assign
*/
'no-self-assign'?: Linter.RuleEntry<NoSelfAssign>
/**
* Disallow comparisons where both sides are exactly the same
* @see https://eslint.org/docs/latest/rules/no-self-compare
*/
'no-self-compare'?: Linter.RuleEntry<[]>
/**
* Disallow comma operators
* @see https://eslint.org/docs/latest/rules/no-sequences
*/
'no-sequences'?: Linter.RuleEntry<NoSequences>
/**
* Disallow returning values from setters
* @see https://eslint.org/docs/latest/rules/no-setter-return
*/
'no-setter-return'?: Linter.RuleEntry<[]>
/**
* Disallow variable declarations from shadowing variables declared in the outer scope
* @see https://eslint.org/docs/latest/rules/no-shadow
*/
'no-shadow'?: Linter.RuleEntry<NoShadow>
/**
* Disallow identifiers from shadowing restricted names
* @see https://eslint.org/docs/latest/rules/no-shadow-restricted-names
*/
'no-shadow-restricted-names'?: Linter.RuleEntry<NoShadowRestrictedNames>
/**
* Disallow spacing between function identifiers and their applications (deprecated)
* @see https://eslint.org/docs/latest/rules/no-spaced-func
* @deprecated
*/
'no-spaced-func'?: Linter.RuleEntry<[]>
/**
* Disallow sparse arrays
* @see https://eslint.org/docs/latest/rules/no-sparse-arrays
*/
'no-sparse-arrays'?: Linter.RuleEntry<[]>
/**
* Disallow synchronous methods
* @see https://eslint.org/docs/latest/rules/no-sync
* @deprecated
*/
'no-sync'?: Linter.RuleEntry<NoSync>
/**
* Disallow all tabs
* @see https://eslint.org/docs/latest/rules/no-tabs
* @deprecated
*/
'no-tabs'?: Linter.RuleEntry<NoTabs>
/**
* Disallow template literal placeholder syntax in regular strings
* @see https://eslint.org/docs/latest/rules/no-template-curly-in-string
*/
'no-template-curly-in-string'?: Linter.RuleEntry<[]>
/**
* Disallow ternary operators
* @see https://eslint.org/docs/latest/rules/no-ternary
*/
'no-ternary'?: Linter.RuleEntry<[]>
/**
* Disallow `this`/`super` before calling `super()` in constructors
* @see https://eslint.org/docs/latest/rules/no-this-before-super
*/
'no-this-before-super'?: Linter.RuleEntry<[]>
/**
* Disallow throwing literals as exceptions
* @see https://eslint.org/docs/latest/rules/no-throw-literal
*/
'no-throw-literal'?: Linter.RuleEntry<[]>
/**
* Disallow trailing whitespace at the end of lines
* @see https://eslint.org/docs/latest/rules/no-trailing-spaces
* @deprecated
*/
'no-trailing-spaces'?: Linter.RuleEntry<NoTrailingSpaces>
/**
* Disallow `let` or `var` variables that are read but never assigned
* @see https://eslint.org/docs/latest/rules/no-unassigned-vars
*/
'no-unassigned-vars'?: Linter.RuleEntry<[]>
/**
* Disallow the use of undeclared variables unless mentioned in `/*global *\/` comments
* @see https://eslint.org/docs/latest/rules/no-undef
*/
'no-undef'?: Linter.RuleEntry<NoUndef>
/**
* Disallow initializing variables to `undefined`
* @see https://eslint.org/docs/latest/rules/no-undef-init
*/
'no-undef-init'?: Linter.RuleEntry<[]>
/**
* Disallow the use of `undefined` as an identifier
* @see https://eslint.org/docs/latest/rules/no-undefined
*/
'no-undefined'?: Linter.RuleEntry<[]>
/**
* Disallow dangling underscores in identifiers
* @see https://eslint.org/docs/latest/rules/no-underscore-dangle
*/
'no-underscore-dangle'?: Linter.RuleEntry<NoUnderscoreDangle>
/**
* Disallow confusing multiline expressions
* @see https://eslint.org/docs/latest/rules/no-unexpected-multiline
*/
'no-unexpected-multiline'?: Linter.RuleEntry<[]>
/**
* Disallow unmodified loop conditions
* @see https://eslint.org/docs/latest/rules/no-unmodified-loop-condition
*/
'no-unmodified-loop-condition'?: Linter.RuleEntry<[]>
/**
* Disallow ternary operators when simpler alternatives exist
* @see https://eslint.org/docs/latest/rules/no-unneeded-ternary
*/
'no-unneeded-ternary'?: Linter.RuleEntry<NoUnneededTernary>
/**
* Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements
* @see https://eslint.org/docs/latest/rules/no-unreachable
*/
'no-unreachable'?: Linter.RuleEntry<[]>
/**
* Disallow loops with a body that allows only one iteration
* @see https://eslint.org/docs/latest/rules/no-unreachable-loop
*/
'no-unreachable-loop'?: Linter.RuleEntry<NoUnreachableLoop>
/**
* Disallow control flow statements in `finally` blocks
* @see https://eslint.org/docs/latest/rules/no-unsafe-finally
*/
'no-unsafe-finally'?: Linter.RuleEntry<[]>
/**
* Disallow negating the left operand of relational operators
* @see https://eslint.org/docs/latest/rules/no-unsafe-negation
*/
'no-unsafe-negation'?: Linter.RuleEntry<NoUnsafeNegation>
/**
* Disallow use of optional chaining in contexts where the `undefined` value is not allowed
* @see https://eslint.org/docs/latest/rules/no-unsafe-optional-chaining
*/
'no-unsafe-optional-chaining'?: Linter.RuleEntry<NoUnsafeOptionalChaining>
/**
* Disallow unused expressions
* @see https://eslint.org/docs/latest/rules/no-unused-expressions
*/
'no-unused-expressions'?: Linter.RuleEntry<NoUnusedExpressions>
/**
* Disallow unused labels
* @see https://eslint.org/docs/latest/rules/no-unused-labels
*/
'no-unused-labels'?: Linter.RuleEntry<[]>
/**
* Disallow unused private class members
* @see https://eslint.org/docs/latest/rules/no-unused-private-class-members
*/
'no-unused-private-class-members'?: Linter.RuleEntry<[]>
/**
* Disallow unused variables
* @see https://eslint.org/docs/latest/rules/no-unused-vars
*/
'no-unused-vars'?: Linter.RuleEntry<NoUnusedVars>
/**
* Disallow the use of variables before they are defined
* @see https://eslint.org/docs/latest/rules/no-use-before-define
*/
'no-use-before-define'?: Linter.RuleEntry<NoUseBeforeDefine>
/**
* Disallow variable assignments when the value is not used
* @see https://eslint.org/docs/latest/rules/no-useless-assignment
*/
'no-useless-assignment'?: Linter.RuleEntry<[]>
/**
* Disallow useless backreferences in regular expressions
* @see https://eslint.org/docs/latest/rules/no-useless-backreference
*/
'no-useless-backreference'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary calls to `.call()` and `.apply()`
* @see https://eslint.org/docs/latest/rules/no-useless-call
*/
'no-useless-call'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary `catch` clauses
* @see https://eslint.org/docs/latest/rules/no-useless-catch
*/
'no-useless-catch'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary computed property keys in objects and classes
* @see https://eslint.org/docs/latest/rules/no-useless-computed-key
*/
'no-useless-computed-key'?: Linter.RuleEntry<NoUselessComputedKey>
/**
* Disallow unnecessary concatenation of literals or template literals
* @see https://eslint.org/docs/latest/rules/no-useless-concat
*/
'no-useless-concat'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary constructors
* @see https://eslint.org/docs/latest/rules/no-useless-constructor
*/
'no-useless-constructor'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary escape characters
* @see https://eslint.org/docs/latest/rules/no-useless-escape
*/
'no-useless-escape'?: Linter.RuleEntry<NoUselessEscape>
/**
* Disallow renaming import, export, and destructured assignments to the same name
* @see https://eslint.org/docs/latest/rules/no-useless-rename
*/
'no-useless-rename'?: Linter.RuleEntry<NoUselessRename>
/**
* Disallow redundant return statements
* @see https://eslint.org/docs/latest/rules/no-useless-return
*/
'no-useless-return'?: Linter.RuleEntry<[]>
/**
* Require `let` or `const` instead of `var`
* @see https://eslint.org/docs/latest/rules/no-var
*/
'no-var'?: Linter.RuleEntry<[]>
/**
* Disallow `void` operators
* @see https://eslint.org/docs/latest/rules/no-void
*/
'no-void'?: Linter.RuleEntry<NoVoid>
/**
* Disallow specified warning terms in comments
* @see https://eslint.org/docs/latest/rules/no-warning-comments
*/
'no-warning-comments'?: Linter.RuleEntry<NoWarningComments>
/**
* Disallow whitespace before properties
* @see https://eslint.org/docs/latest/rules/no-whitespace-before-property
* @deprecated
*/
'no-whitespace-before-property'?: Linter.RuleEntry<[]>
/**
* Disallow `with` statements
* @see https://eslint.org/docs/latest/rules/no-with
*/
'no-with'?: Linter.RuleEntry<[]>
/**
* Enforce the location of single-line statements
* @see https://eslint.org/docs/latest/rules/nonblock-statement-body-position
* @deprecated
*/
'nonblock-statement-body-position'?: Linter.RuleEntry<NonblockStatementBodyPosition>
/**
* Enforce consistent line breaks after opening and before closing braces
* @see https://eslint.org/docs/latest/rules/object-curly-newline
* @deprecated
*/
'object-curly-newline'?: Linter.RuleEntry<ObjectCurlyNewline>
/**
* Enforce consistent spacing inside braces
* @see https://eslint.org/docs/latest/rules/object-curly-spacing
* @deprecated
*/
'object-curly-spacing'?: Linter.RuleEntry<ObjectCurlySpacing>
/**
* Enforce placing object properties on separate lines
* @see https://eslint.org/docs/latest/rules/object-property-newline
* @deprecated
*/
'object-property-newline'?: Linter.RuleEntry<ObjectPropertyNewline>
/**
* Require or disallow method and property shorthand syntax for object literals
* @see https://eslint.org/docs/latest/rules/object-shorthand
*/
'object-shorthand'?: Linter.RuleEntry<ObjectShorthand>
/**
* Enforce variables to be declared either together or separately in functions
* @see https://eslint.org/docs/latest/rules/one-var
*/
'one-var'?: Linter.RuleEntry<OneVar>
/**
* Require or disallow newlines around variable declarations
* @see https://eslint.org/docs/latest/rules/one-var-declaration-per-line
* @deprecated
*/
'one-var-declaration-per-line'?: Linter.RuleEntry<OneVarDeclarationPerLine>
/**
* Require or disallow assignment operator shorthand where possible
* @see https://eslint.org/docs/latest/rules/operator-assignment
*/
'operator-assignment'?: Linter.RuleEntry<OperatorAssignment>
/**
* Enforce consistent linebreak style for operators
* @see https://eslint.org/docs/latest/rules/operator-linebreak
* @deprecated
*/
'operator-linebreak'?: Linter.RuleEntry<OperatorLinebreak>
/**
* Require or disallow padding within blocks
* @see https://eslint.org/docs/latest/rules/padded-blocks
* @deprecated
*/
'padded-blocks'?: Linter.RuleEntry<PaddedBlocks>
/**
* Require or disallow padding lines between statements
* @see https://eslint.org/docs/latest/rules/padding-line-between-statements
* @deprecated
*/
'padding-line-between-statements'?: Linter.RuleEntry<PaddingLineBetweenStatements>
/**
* Enforce sorted arrays before include method.
* @see https://perfectionist.dev/rules/sort-array-includes
*/
'perfectionist/sort-array-includes'?: Linter.RuleEntry<PerfectionistSortArrayIncludes>
/**
* Enforce sorted classes.
* @see https://perfectionist.dev/rules/sort-classes
*/
'perfectionist/sort-classes'?: Linter.RuleEntry<PerfectionistSortClasses>
/**
* Enforce sorted decorators.
* @see https://perfectionist.dev/rules/sort-decorators
*/
'perfectionist/sort-decorators'?: Linter.RuleEntry<PerfectionistSortDecorators>
/**
* Enforce sorted TypeScript enums.
* @see https://perfectionist.dev/rules/sort-enums
*/
'perfectionist/sort-enums'?: Linter.RuleEntry<PerfectionistSortEnums>
/**
* Enforce sorted exports.
* @see https://perfectionist.dev/rules/sort-exports
*/
'perfectionist/sort-exports'?: Linter.RuleEntry<PerfectionistSortExports>
/**
* Enforce sorted heritage clauses.
* @see https://perfectionist.dev/rules/sort-heritage-clauses
*/
'perfectionist/sort-heritage-clauses'?: Linter.RuleEntry<PerfectionistSortHeritageClauses>
/**
* Enforce sorted imports.
* @see https://perfectionist.dev/rules/sort-imports
*/
'perfectionist/sort-imports'?: Linter.RuleEntry<PerfectionistSortImports>
/**
* Enforce sorted interface properties.
* @see https://perfectionist.dev/rules/sort-interfaces
*/
'perfectionist/sort-interfaces'?: Linter.RuleEntry<PerfectionistSortInterfaces>
/**
* Enforce sorted intersection types.
* @see https://perfectionist.dev/rules/sort-intersection-types
*/
'perfectionist/sort-intersection-types'?: Linter.RuleEntry<PerfectionistSortIntersectionTypes>
/**
* Enforce sorted JSX props.
* @see https://perfectionist.dev/rules/sort-jsx-props
*/
'perfectionist/sort-jsx-props'?: Linter.RuleEntry<PerfectionistSortJsxProps>
/**
* Enforce sorted Map elements.
* @see https://perfectionist.dev/rules/sort-maps
*/
'perfectionist/sort-maps'?: Linter.RuleEntry<PerfectionistSortMaps>
/**
* Enforce sorted modules.
* @see https://perfectionist.dev/rules/sort-modules
*/
'perfectionist/sort-modules'?: Linter.RuleEntry<PerfectionistSortModules>
/**
* Enforce sorted named exports.
* @see https://perfectionist.dev/rules/sort-named-exports
*/
'perfectionist/sort-named-exports'?: Linter.RuleEntry<PerfectionistSortNamedExports>
/**
* Enforce sorted named imports.
* @see https://perfectionist.dev/rules/sort-named-imports
*/
'perfectionist/sort-named-imports'?: Linter.RuleEntry<PerfectionistSortNamedImports>
/**
* Enforce sorted object types.
* @see https://perfectionist.dev/rules/sort-object-types
*/
'perfectionist/sort-object-types'?: Linter.RuleEntry<PerfectionistSortObjectTypes>
/**
* Enforce sorted objects.
* @see https://perfectionist.dev/rules/sort-objects
*/
'perfectionist/sort-objects'?: Linter.RuleEntry<PerfectionistSortObjects>
/**
* Enforce sorted sets.
* @see https://perfectionist.dev/rules/sort-sets
*/
'perfectionist/sort-sets'?: Linter.RuleEntry<PerfectionistSortSets>
/**
* Enforce sorted switch cases.
* @see https://perfectionist.dev/rules/sort-switch-case
*/
'perfectionist/sort-switch-case'?: Linter.RuleEntry<PerfectionistSortSwitchCase>
/**
* Enforce sorted union types.
* @see https://perfectionist.dev/rules/sort-union-types
*/
'perfectionist/sort-union-types'?: Linter.RuleEntry<PerfectionistSortUnionTypes>
/**
* Enforce sorted variable declarations.
* @see https://perfectionist.dev/rules/sort-variable-declarations
*/
'perfectionist/sort-variable-declarations'?: Linter.RuleEntry<PerfectionistSortVariableDeclarations>
/**
* Require using arrow functions for callbacks
* @see https://eslint.org/docs/latest/rules/prefer-arrow-callback
*/
'prefer-arrow-callback'?: Linter.RuleEntry<PreferArrowCallback>
/**
* Require `const` declarations for variables that are never reassigned after declared
* @see https://eslint.org/docs/latest/rules/prefer-const
*/
'prefer-const'?: Linter.RuleEntry<PreferConst>
/**
* Require destructuring from arrays and/or objects
* @see https://eslint.org/docs/latest/rules/prefer-destructuring
*/
'prefer-destructuring'?: Linter.RuleEntry<PreferDestructuring>
/**
* Disallow the use of `Math.pow` in favor of the `**` operator
* @see https://eslint.org/docs/latest/rules/prefer-exponentiation-operator
*/
'prefer-exponentiation-operator'?: Linter.RuleEntry<[]>
/**
* Enforce using named capture group in regular expression
* @see https://eslint.org/docs/latest/rules/prefer-named-capture-group
*/
'prefer-named-capture-group'?: Linter.RuleEntry<[]>
/**
* Disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals
* @see https://eslint.org/docs/latest/rules/prefer-numeric-literals
*/
'prefer-numeric-literals'?: Linter.RuleEntry<[]>
/**
* Disallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()`
* @see https://eslint.org/docs/latest/rules/prefer-object-has-own
*/
'prefer-object-has-own'?: Linter.RuleEntry<[]>
/**
* Disallow using `Object.assign` with an object literal as the first argument and prefer the use of object spread instead
* @see https://eslint.org/docs/latest/rules/prefer-object-spread
*/
'prefer-object-spread'?: Linter.RuleEntry<[]>
/**
* Require using Error objects as Promise rejection reasons
* @see https://eslint.org/docs/latest/rules/prefer-promise-reject-errors
*/
'prefer-promise-reject-errors'?: Linter.RuleEntry<PreferPromiseRejectErrors>
/**
* Require `Reflect` methods where applicable
* @see https://eslint.org/docs/latest/rules/prefer-reflect
* @deprecated
*/
'prefer-reflect'?: Linter.RuleEntry<PreferReflect>
/**
* Disallow use of the `RegExp` constructor in favor of regular expression literals
* @see https://eslint.org/docs/latest/rules/prefer-regex-literals
*/
'prefer-regex-literals'?: Linter.RuleEntry<PreferRegexLiterals>
/**
* Require rest parameters instead of `arguments`
* @see https://eslint.org/docs/latest/rules/prefer-rest-params
*/
'prefer-rest-params'?: Linter.RuleEntry<[]>
/**
* Require spread operators instead of `.apply()`
* @see https://eslint.org/docs/latest/rules/prefer-spread
*/
'prefer-spread'?: Linter.RuleEntry<[]>
/**
* Require template literals instead of string concatenation
* @see https://eslint.org/docs/latest/rules/prefer-template
*/
'prefer-template'?: Linter.RuleEntry<[]>
/**
* Require quotes around object literal property names
* @see https://eslint.org/docs/latest/rules/quote-props
* @deprecated
*/
'quote-props'?: Linter.RuleEntry<QuoteProps>
/**
* Enforce the consistent use of either backticks, double, or single quotes
* @see https://eslint.org/docs/latest/rules/quotes
* @deprecated
*/
'quotes'?: Linter.RuleEntry<Quotes>
/**
* Enforce the consistent use of the radix argument when using `parseInt()`
* @see https://eslint.org/docs/latest/rules/radix
*/
'radix'?: Linter.RuleEntry<Radix>
/**
* verifies the list of dependencies for Hooks like useEffect and similar
* @see https://github.com/facebook/react/issues/14920
*/
'react-hooks/exhaustive-deps'?: Linter.RuleEntry<ReactHooksExhaustiveDeps>
/**
* enforces the Rules of Hooks
* @see https://reactjs.org/docs/hooks-rules.html
*/
'react-hooks/rules-of-hooks'?: Linter.RuleEntry<[]>
'react-refresh/only-export-components'?: Linter.RuleEntry<ReactRefreshOnlyExportComponents>
/**
* Disallow assignments that can lead to race conditions due to usage of `await` or `yield`
* @see https://eslint.org/docs/latest/rules/require-atomic-updates
*/
'require-atomic-updates'?: Linter.RuleEntry<RequireAtomicUpdates>
/**
* Disallow async functions which have no `await` expression
* @see https://eslint.org/docs/latest/rules/require-await
*/
'require-await'?: Linter.RuleEntry<[]>
/**
* Enforce the use of `u` or `v` flag on regular expressions
* @see https://eslint.org/docs/latest/rules/require-unicode-regexp
*/
'require-unicode-regexp'?: Linter.RuleEntry<RequireUnicodeRegexp>
/**
* Require generator functions to contain `yield`
* @see https://eslint.org/docs/latest/rules/require-yield
*/
'require-yield'?: Linter.RuleEntry<[]>
/**
* Enforce spacing between rest and spread operators and their expressions
* @see https://eslint.org/docs/latest/rules/rest-spread-spacing
* @deprecated
*/
'rest-spread-spacing'?: Linter.RuleEntry<RestSpreadSpacing>
/**
* Require or disallow semicolons instead of ASI
* @see https://eslint.org/docs/latest/rules/semi
* @deprecated
*/
'semi'?: Linter.RuleEntry<Semi>
/**
* Enforce consistent spacing before and after semicolons
* @see https://eslint.org/docs/latest/rules/semi-spacing
* @deprecated
*/
'semi-spacing'?: Linter.RuleEntry<SemiSpacing>
/**
* Enforce location of semicolons
* @see https://eslint.org/docs/latest/rules/semi-style
* @deprecated
*/
'semi-style'?: Linter.RuleEntry<SemiStyle>
/**
* Enforce sorted `import` declarations within modules
* @see https://eslint.org/docs/latest/rules/sort-imports
*/
'sort-imports'?: Linter.RuleEntry<SortImports>
/**
* Require object keys to be sorted
* @see https://eslint.org/docs/latest/rules/sort-keys
*/
'sort-keys'?: Linter.RuleEntry<SortKeys>
/**
* Require variables within the same declaration block to be sorted
* @see https://eslint.org/docs/latest/rules/sort-vars
*/
'sort-vars'?: Linter.RuleEntry<SortVars>
/**
* Enforce consistent spacing before blocks
* @see https://eslint.org/docs/latest/rules/space-before-blocks
* @deprecated
*/
'space-before-blocks'?: Linter.RuleEntry<SpaceBeforeBlocks>
/**
* Enforce consistent spacing before `function` definition opening parenthesis
* @see https://eslint.org/docs/latest/rules/space-before-function-paren
* @deprecated
*/
'space-before-function-paren'?: Linter.RuleEntry<SpaceBeforeFunctionParen>
/**
* Enforce consistent spacing inside parentheses
* @see https://eslint.org/docs/latest/rules/space-in-parens
* @deprecated
*/
'space-in-parens'?: Linter.RuleEntry<SpaceInParens>
/**
* Require spacing around infix operators
* @see https://eslint.org/docs/latest/rules/space-infix-ops
* @deprecated
*/
'space-infix-ops'?: Linter.RuleEntry<SpaceInfixOps>
/**
* Enforce consistent spacing before or after unary operators
* @see https://eslint.org/docs/latest/rules/space-unary-ops
* @deprecated
*/
'space-unary-ops'?: Linter.RuleEntry<SpaceUnaryOps>
/**
* Enforce consistent spacing after the `//` or `/*` in a comment
* @see https://eslint.org/docs/latest/rules/spaced-comment
* @deprecated
*/
'spaced-comment'?: Linter.RuleEntry<SpacedComment>
/**
* Require or disallow strict mode directives
* @see https://eslint.org/docs/latest/rules/strict
*/
'strict'?: Linter.RuleEntry<Strict>
/**
* 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>
/**
* Improve regexes by making them shorter, consistent, and safer.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/better-regex.md
*/
'unicorn/better-regex'?: Linter.RuleEntry<UnicornBetterRegex>
/**
* Enforce a specific parameter name in catch clauses.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/catch-error-name.md
*/
'unicorn/catch-error-name'?: Linter.RuleEntry<UnicornCatchErrorName>
/**
* Enforce consistent assertion style with `node:assert`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/consistent-assert.md
*/
'unicorn/consistent-assert'?: Linter.RuleEntry<[]>
/**
* Prefer passing `Date` directly to the constructor when cloning.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.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/v60.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/v60.0.0/docs/rules/consistent-existence-index-check.md
*/
'unicorn/consistent-existence-index-check'?: Linter.RuleEntry<[]>
/**
* Move function definitions to the highest possible scope.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/consistent-function-scoping.md
*/
'unicorn/consistent-function-scoping'?: Linter.RuleEntry<UnicornConsistentFunctionScoping>
/**
* Enforce correct `Error` subclassing.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/custom-error-definition.md
*/
'unicorn/custom-error-definition'?: Linter.RuleEntry<[]>
/**
* Enforce no spaces between braces.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.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/v60.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/v60.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/v60.0.0/docs/rules/explicit-length-check.md
*/
'unicorn/explicit-length-check'?: Linter.RuleEntry<UnicornExplicitLengthCheck>
/**
* Enforce a case style for filenames.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/filename-case.md
*/
'unicorn/filename-case'?: Linter.RuleEntry<UnicornFilenameCase>
/**
* Enforce specific import styles per module.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/import-style.md
*/
'unicorn/import-style'?: Linter.RuleEntry<UnicornImportStyle>
/**
* Enforce the use of `new` for all builtins, except `String`, `Number`, `Boolean`, `Symbol` and `BigInt`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.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/v60.0.0/docs/rules/no-accessor-recursion.md
*/
'unicorn/no-accessor-recursion'?: Linter.RuleEntry<[]>
/**
* Disallow anonymous functions and classes as the default export.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/no-array-callback-reference.md
*/
'unicorn/no-array-callback-reference'?: Linter.RuleEntry<[]>
/**
* Prefer `for…of` over the `forEach` method.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-array-for-each.md
*/
'unicorn/no-array-for-each'?: Linter.RuleEntry<[]>
/**
* Disallow using the `this` argument in array methods.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/deprecated-rules.md#no-array-push-push
* @deprecated
*/
'unicorn/no-array-push-push'?: Linter.RuleEntry<[]>
/**
* Disallow `Array#reduce()` and `Array#reduceRight()`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/no-array-reverse.md
*/
'unicorn/no-array-reverse'?: Linter.RuleEntry<UnicornNoArrayReverse>
/**
* Disallow member access from await expression.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/no-await-in-promise-methods.md
*/
'unicorn/no-await-in-promise-methods'?: Linter.RuleEntry<[]>
/**
* Do not use leading/trailing space between `console.log` parameters.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-console-spaces.md
*/
'unicorn/no-console-spaces'?: Linter.RuleEntry<[]>
/**
* Do not use `document.cookie` directly.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-document-cookie.md
*/
'unicorn/no-document-cookie'?: Linter.RuleEntry<[]>
/**
* Disallow empty files.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-empty-file.md
*/
'unicorn/no-empty-file'?: Linter.RuleEntry<[]>
/**
* Do not use a `for` loop that can be replaced with a `for-of` loop.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-for-loop.md
*/
'unicorn/no-for-loop'?: Linter.RuleEntry<[]>
/**
* Enforce the use of Unicode escapes instead of hexadecimal escapes.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-hex-escape.md
*/
'unicorn/no-hex-escape'?: Linter.RuleEntry<[]>
/**
* Replaced by `unicorn/no-instanceof-builtins` which covers more cases.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/deprecated-rules.md#no-instanceof-array
* @deprecated
*/
'unicorn/no-instanceof-array'?: Linter.RuleEntry<[]>
/**
* Disallow `instanceof` with built-in objects
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-instanceof-builtins.md
*/
'unicorn/no-instanceof-builtins'?: Linter.RuleEntry<UnicornNoInstanceofBuiltins>
/**
* Disallow invalid options in `fetch()` and `new Request()`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-invalid-fetch-options.md
*/
'unicorn/no-invalid-fetch-options'?: Linter.RuleEntry<[]>
/**
* Prevent calling `EventTarget#removeEventListener()` with the result of an expression.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-invalid-remove-event-listener.md
*/
'unicorn/no-invalid-remove-event-listener'?: Linter.RuleEntry<[]>
/**
* Disallow identifiers starting with `new` or `class`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-keyword-prefix.md
*/
'unicorn/no-keyword-prefix'?: Linter.RuleEntry<UnicornNoKeywordPrefix>
/**
* Replaced by `unicorn/no-unnecessary-slice-end` which covers more cases.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/deprecated-rules.md#no-length-as-slice-end
* @deprecated
*/
'unicorn/no-length-as-slice-end'?: Linter.RuleEntry<[]>
/**
* Disallow `if` statements as the only statement in `if` blocks without `else`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-lonely-if.md
*/
'unicorn/no-lonely-if'?: Linter.RuleEntry<[]>
/**
* Disallow a magic number as the `depth` argument in `Array#flat(…).`
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-magic-array-flat-depth.md
*/
'unicorn/no-magic-array-flat-depth'?: Linter.RuleEntry<[]>
/**
* Disallow named usage of default import and export.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-named-default.md
*/
'unicorn/no-named-default'?: Linter.RuleEntry<[]>
/**
* Disallow negated conditions.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.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/v60.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/v60.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/v60.0.0/docs/rules/no-new-buffer.md
*/
'unicorn/no-new-buffer'?: Linter.RuleEntry<[]>
/**
* Disallow the use of the `null` literal.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/no-object-as-default-parameter.md
*/
'unicorn/no-object-as-default-parameter'?: Linter.RuleEntry<[]>
/**
* Disallow `process.exit()`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-process-exit.md
*/
'unicorn/no-process-exit'?: Linter.RuleEntry<[]>
/**
* Disallow passing single-element arrays to `Promise` methods.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/no-static-only-class.md
*/
'unicorn/no-static-only-class'?: Linter.RuleEntry<[]>
/**
* Disallow `then` property.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/no-this-assignment.md
*/
'unicorn/no-this-assignment'?: Linter.RuleEntry<[]>
/**
* Disallow comparing `undefined` using `typeof`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-typeof-undefined.md
*/
'unicorn/no-typeof-undefined'?: Linter.RuleEntry<UnicornNoTypeofUndefined>
/**
* Disallow using `1` as the `depth` argument of `Array#flat()`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-unnecessary-array-flat-depth.md
*/
'unicorn/no-unnecessary-array-flat-depth'?: Linter.RuleEntry<[]>
/**
* Disallow using `.length` or `Infinity` as the `deleteCount` or `skipCount` argument of `Array#{splice,toSpliced}()`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/no-unnecessary-await.md
*/
'unicorn/no-unnecessary-await'?: Linter.RuleEntry<[]>
/**
* Enforce the use of built-in methods instead of unnecessary polyfills.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/no-unnecessary-slice-end.md
*/
'unicorn/no-unnecessary-slice-end'?: Linter.RuleEntry<[]>
/**
* Disallow unreadable array destructuring.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-unreadable-array-destructuring.md
*/
'unicorn/no-unreadable-array-destructuring'?: Linter.RuleEntry<[]>
/**
* Disallow unreadable IIFEs.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-unreadable-iife.md
*/
'unicorn/no-unreadable-iife'?: Linter.RuleEntry<[]>
/**
* Disallow unused object properties.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-unused-properties.md
*/
'unicorn/no-unused-properties'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary `Error.captureStackTrace(…)`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/no-useless-fallback-in-spread.md
*/
'unicorn/no-useless-fallback-in-spread'?: Linter.RuleEntry<[]>
/**
* Disallow useless array length check.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-useless-length-check.md
*/
'unicorn/no-useless-length-check'?: Linter.RuleEntry<[]>
/**
* Disallow returning/yielding `Promise.resolve/reject()` in async functions or promise callbacks
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-useless-promise-resolve-reject.md
*/
'unicorn/no-useless-promise-resolve-reject'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary spread.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/no-useless-switch-case.md
*/
'unicorn/no-useless-switch-case'?: Linter.RuleEntry<[]>
/**
* Disallow useless `undefined`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/no-useless-undefined.md
*/
'unicorn/no-useless-undefined'?: Linter.RuleEntry<UnicornNoUselessUndefined>
/**
* Disallow number literals with zero fractions or dangling dots.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.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/v60.0.0/docs/rules/numeric-separators-style.md
*/
'unicorn/numeric-separators-style'?: Linter.RuleEntry<UnicornNumericSeparatorsStyle>
/**
* Prefer `.addEventListener()` and `.removeEventListener()` over `on`-functions.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-add-event-listener.md
*/
'unicorn/prefer-add-event-listener'?: Linter.RuleEntry<UnicornPreferAddEventListener>
/**
* Prefer `.find(…)` and `.findLast(…)` over the first or last element from `.filter(…)`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/prefer-array-flat.md
*/
'unicorn/prefer-array-flat'?: Linter.RuleEntry<UnicornPreferArrayFlat>
/**
* Prefer `.flatMap(…)` over `.map(…).flat()`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-array-flat-map.md
*/
'unicorn/prefer-array-flat-map'?: Linter.RuleEntry<[]>
/**
* Prefer `Array#{indexOf,lastIndexOf}()` over `Array#{findIndex,findLastIndex}()` when looking for the index of an item.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-array-index-of.md
*/
'unicorn/prefer-array-index-of'?: Linter.RuleEntry<[]>
/**
* Prefer `.some(…)` over `.filter(…).length` check and `.{find,findLast,findIndex,findLastIndex}(…)`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/prefer-at.md
*/
'unicorn/prefer-at'?: Linter.RuleEntry<UnicornPreferAt>
/**
* Prefer `Blob#arrayBuffer()` over `FileReader#readAsArrayBuffer(…)` and `Blob#text()` over `FileReader#readAsText(…)`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-blob-reading-methods.md
*/
'unicorn/prefer-blob-reading-methods'?: Linter.RuleEntry<[]>
/**
* Prefer class field declarations over `this` assignments in constructors.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-class-fields.md
*/
'unicorn/prefer-class-fields'?: Linter.RuleEntry<[]>
/**
* Prefer `String#codePointAt(…)` over `String#charCodeAt(…)` and `String.fromCodePoint(…)` over `String.fromCharCode(…)`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-code-point.md
*/
'unicorn/prefer-code-point'?: Linter.RuleEntry<[]>
/**
* Prefer `Date.now()` to get the number of milliseconds since the Unix Epoch.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/prefer-default-parameters.md
*/
'unicorn/prefer-default-parameters'?: Linter.RuleEntry<[]>
/**
* Prefer `Node#append()` over `Node#appendChild()`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-dom-node-append.md
*/
'unicorn/prefer-dom-node-append'?: Linter.RuleEntry<[]>
/**
* Prefer using `.dataset` on DOM elements over calling attribute methods.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-dom-node-dataset.md
*/
'unicorn/prefer-dom-node-dataset'?: Linter.RuleEntry<[]>
/**
* Prefer `childNode.remove()` over `parentNode.removeChild(childNode)`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-dom-node-remove.md
*/
'unicorn/prefer-dom-node-remove'?: Linter.RuleEntry<[]>
/**
* Prefer `.textContent` over `.innerText`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-dom-node-text-content.md
*/
'unicorn/prefer-dom-node-text-content'?: Linter.RuleEntry<[]>
/**
* Prefer `EventTarget` over `EventEmitter`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-event-target.md
*/
'unicorn/prefer-event-target'?: Linter.RuleEntry<[]>
/**
* Prefer `export…from` when re-exporting.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-export-from.md
*/
'unicorn/prefer-export-from'?: Linter.RuleEntry<UnicornPreferExportFrom>
/**
* Prefer `globalThis` over `window`, `self`, and `global`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-global-this.md
*/
'unicorn/prefer-global-this'?: Linter.RuleEntry<[]>
/**
* Prefer `import.meta.{dirname,filename}` over legacy techniques for getting file paths.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/prefer-includes.md
*/
'unicorn/prefer-includes'?: Linter.RuleEntry<[]>
/**
* Prefer reading a JSON file as a buffer.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-json-parse-buffer.md
*/
'unicorn/prefer-json-parse-buffer'?: Linter.RuleEntry<[]>
/**
* Prefer `KeyboardEvent#key` over `KeyboardEvent#keyCode`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-keyboard-event-key.md
*/
'unicorn/prefer-keyboard-event-key'?: Linter.RuleEntry<[]>
/**
* Prefer using a logical operator over a ternary.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-logical-operator-over-ternary.md
*/
'unicorn/prefer-logical-operator-over-ternary'?: Linter.RuleEntry<[]>
/**
* Prefer `Math.min()` and `Math.max()` over ternaries for simple comparisons.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-math-min-max.md
*/
'unicorn/prefer-math-min-max'?: Linter.RuleEntry<[]>
/**
* Enforce the use of `Math.trunc` instead of bitwise operators.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-math-trunc.md
*/
'unicorn/prefer-math-trunc'?: Linter.RuleEntry<[]>
/**
* Prefer `.before()` over `.insertBefore()`, `.replaceWith()` over `.replaceChild()`, prefer one of `.before()`, `.after()`, `.append()` or `.prepend()` over `insertAdjacentText()` and `insertAdjacentElement()`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.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/v60.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/v60.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/v60.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/v60.0.0/docs/rules/prefer-node-protocol.md
*/
'unicorn/prefer-node-protocol'?: Linter.RuleEntry<[]>
/**
* Prefer `Number` static properties over global ones.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-number-properties.md
*/
'unicorn/prefer-number-properties'?: Linter.RuleEntry<UnicornPreferNumberProperties>
/**
* Prefer using `Object.fromEntries(…)` to transform a list of key-value pairs into an object.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-object-from-entries.md
*/
'unicorn/prefer-object-from-entries'?: Linter.RuleEntry<UnicornPreferObjectFromEntries>
/**
* Prefer omitting the `catch` binding parameter.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-optional-catch-binding.md
*/
'unicorn/prefer-optional-catch-binding'?: Linter.RuleEntry<[]>
/**
* Prefer borrowing methods from the prototype instead of the instance.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-prototype-methods.md
*/
'unicorn/prefer-prototype-methods'?: Linter.RuleEntry<[]>
/**
* Prefer `.querySelector()` over `.getElementById()`, `.querySelectorAll()` over `.getElementsByClassName()` and `.getElementsByTagName()` and `.getElementsByName()`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-query-selector.md
*/
'unicorn/prefer-query-selector'?: Linter.RuleEntry<[]>
/**
* Prefer `Reflect.apply()` over `Function#apply()`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-reflect-apply.md
*/
'unicorn/prefer-reflect-apply'?: Linter.RuleEntry<[]>
/**
* Prefer `RegExp#test()` over `String#match()` and `RegExp#exec()`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-regexp-test.md
*/
'unicorn/prefer-regexp-test'?: Linter.RuleEntry<[]>
/**
* Prefer `Set#has()` over `Array#includes()` when checking for existence or non-existence.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-set-has.md
*/
'unicorn/prefer-set-has'?: Linter.RuleEntry<[]>
/**
* Prefer using `Set#size` instead of `Array#length`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-set-size.md
*/
'unicorn/prefer-set-size'?: Linter.RuleEntry<[]>
/**
* Enforce combining multiple `Array#push()`, `Element#classList.{add,remove}()`, and `importScripts()` into one call.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-single-call.md
*/
'unicorn/prefer-single-call'?: Linter.RuleEntry<UnicornPreferSingleCall>
/**
* Prefer the spread operator over `Array.from(…)`, `Array#concat(…)`, `Array#{slice,toSpliced}()` and `String#split('')`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-spread.md
*/
'unicorn/prefer-spread'?: Linter.RuleEntry<[]>
/**
* Prefer using the `String.raw` tag to avoid escaping `\`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-string-raw.md
*/
'unicorn/prefer-string-raw'?: Linter.RuleEntry<[]>
/**
* Prefer `String#replaceAll()` over regex searches with the global flag.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/prefer-string-slice.md
*/
'unicorn/prefer-string-slice'?: Linter.RuleEntry<[]>
/**
* Prefer `String#startsWith()` & `String#endsWith()` over `RegExp#test()`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.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/v60.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/v60.0.0/docs/rules/prefer-switch.md
*/
'unicorn/prefer-switch'?: Linter.RuleEntry<UnicornPreferSwitch>
/**
* Prefer ternary expressions over simple `if-else` statements.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prefer-ternary.md
*/
'unicorn/prefer-ternary'?: Linter.RuleEntry<UnicornPreferTernary>
/**
* Prefer top-level await over top-level promises and async function calls.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/prefer-type-error.md
*/
'unicorn/prefer-type-error'?: Linter.RuleEntry<[]>
/**
* Prevent abbreviations.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/prevent-abbreviations.md
*/
'unicorn/prevent-abbreviations'?: Linter.RuleEntry<UnicornPreventAbbreviations>
/**
* Enforce consistent relative URL style.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/require-array-join-separator.md
*/
'unicorn/require-array-join-separator'?: Linter.RuleEntry<[]>
/**
* Require non-empty specifier list in import and export statements.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/require-number-to-fixed-digits-argument.md
*/
'unicorn/require-number-to-fixed-digits-argument'?: Linter.RuleEntry<[]>
/**
* Enforce using the `targetOrigin` argument with `window.postMessage()`.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/require-post-message-target-origin.md
*/
'unicorn/require-post-message-target-origin'?: Linter.RuleEntry<[]>
/**
* Enforce better string content.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/switch-case-braces.md
*/
'unicorn/switch-case-braces'?: Linter.RuleEntry<UnicornSwitchCaseBraces>
/**
* Fix whitespace-insensitive template indentation.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.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/v60.0.0/docs/rules/text-encoding-identifier-case.md
*/
'unicorn/text-encoding-identifier-case'?: Linter.RuleEntry<[]>
/**
* Require `new` when creating an error.
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/throw-new-error.md
*/
'unicorn/throw-new-error'?: Linter.RuleEntry<[]>
/**
* Disallow unused variables
* @see https://github.com/sweepline/eslint-plugin-unused-imports/blob/master/docs/rules/no-unused-imports.md
*/
'unused-imports/no-unused-imports'?: Linter.RuleEntry<UnusedImportsNoUnusedImports>
/**
* Disallow unused variables
* @see https://github.com/sweepline/eslint-plugin-unused-imports/blob/master/docs/rules/no-unused-vars.md
*/
'unused-imports/no-unused-vars'?: Linter.RuleEntry<UnusedImportsNoUnusedVars>
/**
* Require calls to `isNaN()` when checking for `NaN`
* @see https://eslint.org/docs/latest/rules/use-isnan
*/
'use-isnan'?: Linter.RuleEntry<UseIsnan>
/**
* Enforce comparing `typeof` expressions against valid strings
* @see https://eslint.org/docs/latest/rules/valid-typeof
*/
'valid-typeof'?: Linter.RuleEntry<ValidTypeof>
/**
* Require `var` declarations be placed at the top of their containing scope
* @see https://eslint.org/docs/latest/rules/vars-on-top
*/
'vars-on-top'?: Linter.RuleEntry<[]>
/**
* require .spec 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 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<[]>
/**
* 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<[]>
/**
* 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<[]>
/**
* 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 quality 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 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<[]>
/**
* 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<[]>
/**
* 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<[]>
/**
* 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<[]>
/**
* 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 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 valid describe callback
* @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-describe-callback.md
*/
'vitest/valid-describe-callback'?: Linter.RuleEntry<[]>
/**
* enforce valid `expect()` usage
* @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-expect.md
*/
'vitest/valid-expect'?: Linter.RuleEntry<VitestValidExpect>
/**
* require promises that have expectations in their chain to be valid
* @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-expect-in-promise.md
*/
'vitest/valid-expect-in-promise'?: Linter.RuleEntry<[]>
/**
* enforce valid titles
* @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-title.md
*/
'vitest/valid-title'?: Linter.RuleEntry<VitestValidTitle>
/**
* disallow `.todo` usage
* @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/warn-todo.md
*/
'vitest/warn-todo'?: Linter.RuleEntry<[]>
/**
* Require 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>
}
/* ======= Declarations ======= */
// ----- @eslint-react/dom/no-unknown-property -----
type EslintReactDomNoUnknownProperty = []|[{
ignore?: string[]
requireDataLowercase?: boolean
}]
// ----- @eslint-react/naming-convention/component-name -----
type EslintReactNamingConventionComponentName = []|[(("PascalCase" | "CONSTANT_CASE") | {
allowAllCaps?: boolean
allowLeadingUnderscore?: boolean
allowNamespace?: boolean
excepts?: string[]
rule?: ("PascalCase" | "CONSTANT_CASE")
})]
// ----- @eslint-react/naming-convention/filename -----
type EslintReactNamingConventionFilename = []|[(("PascalCase" | "camelCase" | "kebab-case" | "snake_case") | {
excepts?: string[]
extensions?: string[]
rule?: ("PascalCase" | "camelCase" | "kebab-case" | "snake_case")
})]
// ----- @eslint-react/naming-convention/filename-extension -----
type EslintReactNamingConventionFilenameExtension = []|[(("always" | "as-needed") | {
allow?: ("always" | "as-needed")
extensions?: string[]
ignoreFilesWithoutCode?: boolean
})]
// ----- @eslint-react/no-useless-fragment -----
type EslintReactNoUselessFragment = []|[{
allowExpressions?: 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-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
ignoreClassWithStaticInitBlock?: boolean
ignoreRestSiblings?: 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-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 = []|[{
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/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
}]
// ----- block-spacing -----
type BlockSpacing = []|[("always" | "never")]
// ----- brace-style -----
type BraceStyle = []|[("1tbs" | "stroustrup" | "allman")]|[("1tbs" | "stroustrup" | "allman"), {
allowSingleLine?: boolean
}]
// ----- callback-return -----
type CallbackReturn = []|[string[]]
// ----- camelcase -----
type Camelcase = []|[{
ignoreDestructuring?: boolean
ignoreImports?: boolean
ignoreGlobals?: boolean
properties?: ("always" | "never")
allow?: string[]
}]
// ----- capitalized-comments -----
type CapitalizedComments = []|[("always" | "never")]|[("always" | "never"), ({
ignorePattern?: string
ignoreInlineComments?: boolean
ignoreConsecutiveComments?: boolean
} | {
line?: {
ignorePattern?: string
ignoreInlineComments?: boolean
ignoreConsecutiveComments?: boolean
}
block?: {
ignorePattern?: string
ignoreInlineComments?: boolean
ignoreConsecutiveComments?: boolean
}
})]
// ----- class-methods-use-this -----
type ClassMethodsUseThis = []|[{
exceptMethods?: string[]
enforceForClassFields?: boolean
ignoreOverrideMethods?: boolean
ignoreClassesWithImplements?: ("all" | "public-fields")
}]
// ----- comma-dangle -----
type CommaDangle = []|[(_CommaDangleValue | {
arrays?: _CommaDangleValueWithIgnore
objects?: _CommaDangleValueWithIgnore
imports?: _CommaDangleValueWithIgnore
exports?: _CommaDangleValueWithIgnore
functions?: _CommaDangleValueWithIgnore
})]
type _CommaDangleValue = ("always-multiline" | "always" | "never" | "only-multiline")
type _CommaDangleValueWithIgnore = ("always-multiline" | "always" | "ignore" | "never" | "only-multiline")
// ----- comma-spacing -----
type CommaSpacing = []|[{
before?: boolean
after?: boolean
}]
// ----- comma-style -----
type CommaStyle = []|[("first" | "last")]|[("first" | "last"), {
exceptions?: {
[k: string]: boolean | undefined
}
}]
// ----- complexity -----
type Complexity = []|[(number | {
maximum?: number
max?: number
variant?: ("classic" | "modified")
})]
// ----- computed-property-spacing -----
type ComputedPropertySpacing = []|[("always" | "never")]|[("always" | "never"), {
enforceForClassMembers?: boolean
}]
// ----- consistent-return -----
type ConsistentReturn = []|[{
treatUndefinedAsUnspecified?: boolean
}]
// ----- consistent-this -----
type ConsistentThis = string[]
// ----- curly -----
type Curly = ([]|["all"] | []|[("multi" | "multi-line" | "multi-or-nest")]|[("multi" | "multi-line" | "multi-or-nest"), "consistent"])
// ----- default-case -----
type DefaultCase = []|[{
commentPattern?: string
}]
// ----- 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/consistent-type-specifier-style -----
type ImportConsistentTypeSpecifierStyle = []|[("prefer-top-level" | "prefer-inline")]
// ----- import/dynamic-import-chunkname -----
type ImportDynamicImportChunkname = []|[{
importFunctions?: string[]
allowEmpty?: boolean
webpackChunknameFormat?: string
[k: string]: unknown | undefined
}]
// ----- import/extensions -----
type ImportExtensions = ([]|[("always" | "ignorePackages" | "never")] | []|[("always" | "ignorePackages" | "never")]|[("always" | "ignorePackages" | "never"), {
pattern?: {
[k: string]: ("always" | "ignorePackages" | "never")
}
ignorePackages?: boolean
checkTypeImports?: boolean
pathGroupOverrides?: {
pattern: string
patternOptions?: {
[k: string]: unknown | undefined
}
action: ("enforce" | "ignore")
}[]
fix?: boolean
[k: string]: unknown | undefined
}] | []|[{
pattern?: {
[k: string]: ("always" | "ignorePackages" | "never")
}
ignorePackages?: boolean
checkTypeImports?: boolean
pathGroupOverrides?: {
pattern: string
patternOptions?: {
[k: string]: unknown | undefined
}
action: ("enforce" | "ignore")
}[]
fix?: boolean
[k: string]: unknown | undefined
}] | []|[("always" | "ignorePackages" | "never")]|[("always" | "ignorePackages" | "never"), {
[k: string]: ("always" | "ignorePackages" | "never")
}] | []|[{
[k: string]: ("always" | "ignorePackages" | "never")
}])
// ----- import/first -----
type ImportFirst = []|[("absolute-first" | "disable-absolute-first")]
// ----- import/imports-first -----
type ImportImportsFirst = []|[("absolute-first" | "disable-absolute-first")]
// ----- import/max-dependencies -----
type ImportMaxDependencies = []|[{
max?: number
ignoreTypeImports?: boolean
}]
// ----- import/named -----
type ImportNamed = []|[{
commonjs?: boolean
}]
// ----- import/namespace -----
type ImportNamespace = []|[{
allowComputed?: boolean
}]
// ----- import/newline-after-import -----
type ImportNewlineAfterImport = []|[{
count?: number
exactCount?: boolean
considerComments?: boolean
}]
// ----- import/no-absolute-path -----
type ImportNoAbsolutePath = []|[{
commonjs?: boolean
amd?: boolean
esmodule?: boolean
ignore?: [string, ...(string)[]]
}]
// ----- import/no-anonymous-default-export -----
type ImportNoAnonymousDefaultExport = []|[{
allowArray?: boolean
allowArrowFunction?: boolean
allowCallExpression?: boolean
allowAnonymousClass?: boolean
allowAnonymousFunction?: boolean
allowLiteral?: boolean
allowObject?: boolean
allowNew?: boolean
}]
// ----- import/no-commonjs -----
type ImportNoCommonjs = ([]|["allow-primitive-modules"] | []|[{
allowPrimitiveModules?: boolean
allowRequire?: boolean
allowConditionalRequire?: boolean
}])
// ----- import/no-cycle -----
type ImportNoCycle = []|[{
commonjs?: boolean
amd?: boolean
esmodule?: boolean
ignore?: [string, ...(string)[]]
maxDepth?: (number | "∞")
ignoreExternal?: boolean
allowUnsafeDynamicCyclicDependency?: boolean
}]
// ----- import/no-duplicates -----
type ImportNoDuplicates = []|[{
considerQueryString?: boolean
"prefer-inline"?: boolean
}]
// ----- import/no-dynamic-require -----
type ImportNoDynamicRequire = []|[{
esmodule?: boolean
}]
// ----- import/no-extraneous-dependencies -----
type ImportNoExtraneousDependencies = []|[{
devDependencies?: (boolean | unknown[])
optionalDependencies?: (boolean | unknown[])
peerDependencies?: (boolean | unknown[])
bundledDependencies?: (boolean | unknown[])
packageDir?: (string | unknown[])
includeInternal?: boolean
includeTypes?: boolean
whitelist?: unknown[]
}]
// ----- import/no-import-module-exports -----
type ImportNoImportModuleExports = []|[{
exceptions?: unknown[]
}]
// ----- import/no-internal-modules -----
type ImportNoInternalModules = []|[({
allow?: string[]
} | {
forbid?: string[]
})]
// ----- import/no-namespace -----
type ImportNoNamespace = []|[{
ignore?: string[]
[k: string]: unknown | undefined
}]
// ----- import/no-nodejs-modules -----
type ImportNoNodejsModules = []|[{
allow?: string[]
}]
// ----- import/no-relative-packages -----
type ImportNoRelativePackages = []|[{
commonjs?: boolean
amd?: boolean
esmodule?: boolean
ignore?: [string, ...(string)[]]
}]
// ----- import/no-relative-parent-imports -----
type ImportNoRelativeParentImports = []|[{
commonjs?: boolean
amd?: boolean
esmodule?: boolean
ignore?: [string, ...(string)[]]
}]
// ----- import/no-rename-default -----
type ImportNoRenameDefault = []|[{
commonjs?: boolean
preventRenamingBindings?: boolean
}]
// ----- import/no-restricted-paths -----
type ImportNoRestrictedPaths = []|[{
zones?: [{
target?: (string | [string, ...(string)[]])
from?: (string | [string, ...(string)[]])
except?: string[]
message?: string
}, ...({
target?: (string | [string, ...(string)[]])
from?: (string | [string, ...(string)[]])
except?: string[]
message?: string
})[]]
basePath?: string
}]
// ----- import/no-unassigned-import -----
type ImportNoUnassignedImport = []|[{
devDependencies?: (boolean | unknown[])
optionalDependencies?: (boolean | unknown[])
peerDependencies?: (boolean | unknown[])
allow?: string[]
}]
// ----- import/no-unresolved -----
type ImportNoUnresolved = []|[{
commonjs?: boolean
amd?: boolean
esmodule?: boolean
ignore?: [string, ...(string)[]]
caseSensitive?: boolean
caseSensitiveStrict?: boolean
}]
// ----- import/no-unused-modules -----
type ImportNoUnusedModules = []|[({
unusedExports: true
src?: [unknown, ...(unknown)[]]
[k: string]: unknown | undefined
} | {
missingExports: true
[k: string]: unknown | undefined
})]
// ----- import/no-useless-path-segments -----
type ImportNoUselessPathSegments = []|[{
commonjs?: boolean
noUselessIndex?: boolean
}]
// ----- import/order -----
type ImportOrder = []|[{
groups?: unknown[]
pathGroupsExcludedImportTypes?: unknown[]
distinctGroup?: boolean
pathGroups?: {
pattern: string
patternOptions?: {
[k: string]: unknown | undefined
}
group: ("builtin" | "external" | "internal" | "unknown" | "parent" | "sibling" | "index" | "object" | "type")
position?: ("after" | "before")
}[]
"newlines-between"?: ("ignore" | "always" | "always-and-inside-groups" | "never")
"newlines-between-types"?: ("ignore" | "always" | "always-and-inside-groups" | "never")
consolidateIslands?: ("inside-groups" | "never")
sortTypesGroup?: boolean
named?: (boolean | {
enabled?: boolean
import?: boolean
export?: boolean
require?: boolean
cjsExports?: boolean
types?: ("mixed" | "types-first" | "types-last")
})
alphabetize?: {
caseInsensitive?: boolean
order?: ("ignore" | "asc" | "desc")
orderImportKind?: ("ignore" | "asc" | "desc")
}
warnOnUnassignedImports?: boolean
}]
// ----- import/prefer-default-export -----
type ImportPreferDefaultExport = []|[{
target?: ("single" | "any")
}]
// ----- import/prefer-namespace-import -----
type ImportPreferNamespaceImport = []|[{
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
}])
// ----- jsdoc/check-examples -----
type JsdocCheckExamples = []|[{
allowInlineConfig?: boolean
baseConfig?: {
[k: string]: unknown | undefined
}
captionRequired?: boolean
checkDefaults?: boolean
checkEslintrc?: boolean
checkParams?: boolean
checkProperties?: boolean
configFile?: string
exampleCodeRegex?: string
matchingFileName?: string
matchingFileNameDefaults?: string
matchingFileNameParams?: string
matchingFileNameProperties?: string
noDefaultExampleRules?: boolean
paddedIndent?: number
rejectExampleCodeRegex?: string
reportUnusedDisableDirectives?: boolean
}]
// ----- jsdoc/check-indentation -----
type JsdocCheckIndentation = []|[{
excludeTags?: string[]
}]
// ----- jsdoc/check-line-alignment -----
type JsdocCheckLineAlignment = []|[("always" | "never" | "any")]|[("always" | "never" | "any"), {
customSpacings?: {
postDelimiter?: number
postHyphen?: number
postName?: number
postTag?: number
postType?: number
}
disableWrapIndent?: boolean
preserveMainDescriptionPostDelimiter?: boolean
tags?: string[]
wrapIndent?: string
}]
// ----- jsdoc/check-param-names -----
type JsdocCheckParamNames = []|[{
allowExtraTrailingParamDocs?: boolean
checkDestructured?: boolean
checkRestProperty?: boolean
checkTypesPattern?: string
disableExtraPropertyReporting?: boolean
disableMissingParamChecks?: boolean
enableFixer?: boolean
useDefaultObjectProperties?: boolean
}]
// ----- jsdoc/check-property-names -----
type JsdocCheckPropertyNames = []|[{
enableFixer?: boolean
}]
// ----- jsdoc/check-tag-names -----
type JsdocCheckTagNames = []|[{
definedTags?: string[]
enableFixer?: boolean
jsxTags?: boolean
typed?: boolean
}]
// ----- jsdoc/check-types -----
type JsdocCheckTypes = []|[{
exemptTagContexts?: {
tag?: string
types?: (boolean | string[])
}[]
noDefaults?: boolean
unifyParentAndChildTypeChecks?: boolean
}]
// ----- jsdoc/check-values -----
type JsdocCheckValues = []|[{
allowedAuthors?: string[]
allowedLicenses?: (string[] | boolean)
licensePattern?: string
numericOnlyVariation?: boolean
}]
// ----- jsdoc/convert-to-jsdoc-comments -----
type JsdocConvertToJsdocComments = []|[{
allowedPrefixes?: string[]
contexts?: (string | {
context?: string
inlineCommentBlock?: boolean
})[]
contextsAfter?: (string | {
context?: string
inlineCommentBlock?: boolean
})[]
contextsBeforeAndAfter?: (string | {
context?: string
inlineCommentBlock?: boolean
})[]
enableFixer?: boolean
enforceJsdocLineStyle?: ("multi" | "single")
lineOrBlockStyle?: ("block" | "line" | "both")
}]
// ----- jsdoc/empty-tags -----
type JsdocEmptyTags = []|[{
tags?: string[]
}]
// ----- jsdoc/implements-on-classes -----
type JsdocImplementsOnClasses = []|[{
contexts?: (string | {
comment?: string
context?: string
})[]
}]
// ----- jsdoc/informative-docs -----
type JsdocInformativeDocs = []|[{
aliases?: {
[k: string]: string[]
}
excludedTags?: string[]
uselessWords?: string[]
}]
// ----- jsdoc/lines-before-block -----
type JsdocLinesBeforeBlock = []|[{
checkBlockStarts?: boolean
excludedTags?: string[]
ignoreSameLine?: boolean
ignoreSingleLines?: boolean
lines?: number
}]
// ----- jsdoc/match-description -----
type JsdocMatchDescription = []|[{
contexts?: (string | {
comment?: string
context?: string
})[]
mainDescription?: (string | boolean | {
match?: (string | boolean)
message?: string
})
matchDescription?: string
message?: string
nonemptyTags?: boolean
tags?: {
[k: string]: (string | true | {
match?: (string | true)
message?: string
})
}
}]
// ----- jsdoc/match-name -----
type JsdocMatchName = []|[{
match: {
allowName?: string
comment?: string
context?: string
disallowName?: string
message?: string
replacement?: string
tags?: string[]
}[]
}]
// ----- jsdoc/multiline-blocks -----
type JsdocMultilineBlocks = []|[{
allowMultipleTags?: boolean
minimumLengthForMultiline?: number
multilineTags?: ("*" | string[])
noFinalLineText?: boolean
noMultilineBlocks?: boolean
noSingleLineBlocks?: boolean
noZeroLineText?: boolean
requireSingleLineUnderCount?: number
singleLineTags?: string[]
}]
// ----- jsdoc/no-bad-blocks -----
type JsdocNoBadBlocks = []|[{
ignore?: string[]
preventAllMultiAsteriskBlocks?: boolean
}]
// ----- jsdoc/no-blank-blocks -----
type JsdocNoBlankBlocks = []|[{
enableFixer?: boolean
}]
// ----- jsdoc/no-defaults -----
type JsdocNoDefaults = []|[{
contexts?: (string | {
comment?: string
context?: string
})[]
noOptionalParamNames?: boolean
}]
// ----- jsdoc/no-missing-syntax -----
type JsdocNoMissingSyntax = []|[{
contexts?: (string | {
comment?: string
context?: string
message?: string
minimum?: number
})[]
}]
// ----- jsdoc/no-multi-asterisks -----
type JsdocNoMultiAsterisks = []|[{
allowWhitespace?: boolean
preventAtEnd?: boolean
preventAtMiddleLines?: boolean
}]
// ----- jsdoc/no-restricted-syntax -----
type JsdocNoRestrictedSyntax = []|[{
contexts: (string | {
comment?: string
context?: string
message?: string
})[]
}]
// ----- jsdoc/no-types -----
type JsdocNoTypes = []|[{
contexts?: (string | {
comment?: string
context?: string
})[]
}]
// ----- jsdoc/no-undefined-types -----
type JsdocNoUndefinedTypes = []|[{
definedTypes?: string[]
disableReporting?: boolean
markVariablesAsUsed?: boolean
}]
// ----- jsdoc/require-asterisk-prefix -----
type JsdocRequireAsteriskPrefix = []|[("always" | "never" | "any")]|[("always" | "never" | "any"), {
tags?: {
always?: string[]
any?: string[]
never?: string[]
}
}]
// ----- jsdoc/require-description -----
type JsdocRequireDescription = []|[{
checkConstructors?: boolean
checkGetters?: boolean
checkSetters?: boolean
contexts?: (string | {
comment?: string
context?: string
})[]
descriptionStyle?: ("body" | "tag" | "any")
exemptedBy?: string[]
}]
// ----- jsdoc/require-description-complete-sentence -----
type JsdocRequireDescriptionCompleteSentence = []|[{
abbreviations?: string[]
newlineBeforeCapsAssumesBadSentenceEnd?: boolean
tags?: string[]
}]
// ----- jsdoc/require-example -----
type JsdocRequireExample = []|[{
checkConstructors?: boolean
checkGetters?: boolean
checkSetters?: boolean
contexts?: (string | {
comment?: string
context?: string
})[]
enableFixer?: boolean
exemptedBy?: string[]
exemptNoArguments?: boolean
}]
// ----- jsdoc/require-file-overview -----
type JsdocRequireFileOverview = []|[{
tags?: {
[k: string]: {
initialCommentsOnly?: boolean
mustExist?: boolean
preventDuplicates?: boolean
}
}
}]
// ----- jsdoc/require-hyphen-before-param-description -----
type JsdocRequireHyphenBeforeParamDescription = []|[("always" | "never")]|[("always" | "never"), {
tags?: ({
[k: string]: ("always" | "never")
} | "any")
}]
// ----- jsdoc/require-jsdoc -----
type JsdocRequireJsdoc = []|[{
checkConstructors?: boolean
checkGetters?: (boolean | "no-setter")
checkSetters?: (boolean | "no-getter")
contexts?: (string | {
context?: string
inlineCommentBlock?: boolean
minLineCount?: number
})[]
enableFixer?: boolean
exemptEmptyConstructors?: boolean
exemptEmptyFunctions?: boolean
fixerMessage?: string
minLineCount?: number
publicOnly?: (boolean | {
ancestorsOnly?: boolean
cjs?: boolean
esm?: boolean
window?: boolean
})
require?: {
ArrowFunctionExpression?: boolean
ClassDeclaration?: boolean
ClassExpression?: boolean
FunctionDeclaration?: boolean
FunctionExpression?: boolean
MethodDefinition?: boolean
}
}]
// ----- jsdoc/require-param -----
type JsdocRequireParam = []|[{
autoIncrementBase?: number
checkConstructors?: boolean
checkDestructured?: boolean
checkDestructuredRoots?: boolean
checkGetters?: boolean
checkRestProperty?: boolean
checkSetters?: boolean
checkTypesPattern?: string
contexts?: (string | {
comment?: string
context?: string
})[]
enableFixer?: boolean
enableRestElementFixer?: boolean
enableRootFixer?: boolean
exemptedBy?: string[]
ignoreWhenAllParamsMissing?: boolean
unnamedRootBase?: string[]
useDefaultObjectProperties?: boolean
}]
// ----- jsdoc/require-param-description -----
type JsdocRequireParamDescription = []|[{
contexts?: (string | {
comment?: string
context?: string
})[]
defaultDestructuredRootDescription?: string
setDefaultDestructuredRootDescription?: boolean
}]
// ----- jsdoc/require-param-name -----
type JsdocRequireParamName = []|[{
contexts?: (string | {
comment?: string
context?: string
})[]
}]
// ----- jsdoc/require-param-type -----
type JsdocRequireParamType = []|[{
contexts?: (string | {
comment?: string
context?: string
})[]
defaultDestructuredRootType?: string
setDefaultDestructuredRootType?: boolean
}]
// ----- jsdoc/require-returns -----
type JsdocRequireReturns = []|[{
checkConstructors?: boolean
checkGetters?: boolean
contexts?: (string | {
comment?: string
context?: string
forceRequireReturn?: boolean
})[]
enableFixer?: boolean
exemptedBy?: string[]
forceRequireReturn?: boolean
forceReturnsWithAsync?: boolean
publicOnly?: (boolean | {
ancestorsOnly?: boolean
cjs?: boolean
esm?: boolean
window?: boolean
})
}]
// ----- jsdoc/require-returns-check -----
type JsdocRequireReturnsCheck = []|[{
exemptAsync?: boolean
exemptGenerators?: boolean
reportMissingReturnForUndefinedTypes?: boolean
}]
// ----- jsdoc/require-returns-description -----
type JsdocRequireReturnsDescription = []|[{
contexts?: (string | {
comment?: string
context?: string
})[]
}]
// ----- jsdoc/require-returns-type -----
type JsdocRequireReturnsType = []|[{
contexts?: (string | {
comment?: string
context?: string
})[]
}]
// ----- jsdoc/require-template -----
type JsdocRequireTemplate = []|[{
requireSeparateTemplates?: boolean
}]
// ----- jsdoc/require-throws -----
type JsdocRequireThrows = []|[{
contexts?: (string | {
comment?: string
context?: string
})[]
exemptedBy?: string[]
}]
// ----- jsdoc/require-yields -----
type JsdocRequireYields = []|[{
contexts?: (string | {
comment?: string
context?: string
})[]
exemptedBy?: string[]
forceRequireNext?: boolean
forceRequireYields?: boolean
next?: boolean
nextWithGeneratorTag?: boolean
withGeneratorTag?: boolean
}]
// ----- jsdoc/require-yields-check -----
type JsdocRequireYieldsCheck = []|[{
checkGeneratorsOnly?: boolean
contexts?: (string | {
comment?: string
context?: string
})[]
exemptedBy?: string[]
next?: boolean
}]
// ----- jsdoc/sort-tags -----
type JsdocSortTags = []|[{
alphabetizeExtras?: boolean
linesBetween?: number
reportIntraTagGroupSpacing?: boolean
reportTagGroupSpacing?: boolean
tagSequence?: {
tags?: string[]
}[]
}]
// ----- jsdoc/tag-lines -----
type JsdocTagLines = []|[("always" | "any" | "never")]|[("always" | "any" | "never"), {
applyToEndTag?: boolean
count?: number
endLines?: (number | null)
startLines?: (number | null)
tags?: {
[k: string]: {
count?: number
lines?: ("always" | "never" | "any")
}
}
}]
// ----- jsdoc/text-escaping -----
type JsdocTextEscaping = []|[{
escapeHTML?: boolean
escapeMarkdown?: boolean
}]
// ----- jsdoc/valid-types -----
type JsdocValidTypes = []|[{
allowEmptyNamepaths?: boolean
}]
// ----- jsx-quotes -----
type JsxQuotes = []|[("prefer-single" | "prefer-double")]
// ----- key-spacing -----
type KeySpacing = []|[({
align?: (("colon" | "value") | {
mode?: ("strict" | "minimum")
on?: ("colon" | "value")
beforeColon?: boolean
afterColon?: boolean
})
mode?: ("strict" | "minimum")
beforeColon?: boolean
afterColon?: boolean
} | {
singleLine?: {
mode?: ("strict" | "minimum")
beforeColon?: boolean
afterColon?: boolean
}
multiLine?: {
align?: (("colon" | "value") | {
mode?: ("strict" | "minimum")
on?: ("colon" | "value")
beforeColon?: boolean
afterColon?: boolean
})
mode?: ("strict" | "minimum")
beforeColon?: boolean
afterColon?: boolean
}
} | {
singleLine?: {
mode?: ("strict" | "minimum")
beforeColon?: boolean
afterColon?: boolean
}
multiLine?: {
mode?: ("strict" | "minimum")
beforeColon?: boolean
afterColon?: boolean
}
align?: {
mode?: ("strict" | "minimum")
on?: ("colon" | "value")
beforeColon?: boolean
afterColon?: boolean
}
})]
// ----- keyword-spacing -----
type KeywordSpacing = []|[{
before?: boolean
after?: boolean
overrides?: {
abstract?: {
before?: boolean
after?: boolean
}
as?: {
before?: boolean
after?: boolean
}
async?: {
before?: boolean
after?: boolean
}
await?: {
before?: boolean
after?: boolean
}
boolean?: {
before?: boolean
after?: boolean
}
break?: {
before?: boolean
after?: boolean
}
byte?: {
before?: boolean
after?: boolean
}
case?: {
before?: boolean
after?: boolean
}
catch?: {
before?: boolean
after?: boolean
}
char?: {
before?: boolean
after?: boolean
}
class?: {
before?: boolean
after?: boolean
}
const?: {
before?: boolean
after?: boolean
}
continue?: {
before?: boolean
after?: boolean
}
debugger?: {
before?: boolean
after?: boolean
}
default?: {
before?: boolean
after?: boolean
}
delete?: {
before?: boolean
after?: boolean
}
do?: {
before?: boolean
after?: boolean
}
double?: {
before?: boolean
after?: boolean
}
else?: {
before?: boolean
after?: boolean
}
enum?: {
before?: boolean
after?: boolean
}
export?: {
before?: boolean
after?: boolean
}
extends?: {
before?: boolean
after?: boolean
}
false?: {
before?: boolean
after?: boolean
}
final?: {
before?: boolean
after?: boolean
}
finally?: {
before?: boolean
after?: boolean
}
float?: {
before?: boolean
after?: boolean
}
for?: {
before?: boolean
after?: boolean
}
from?: {
before?: boolean
after?: boolean
}
function?: {
before?: boolean
after?: boolean
}
get?: {
before?: boolean
after?: boolean
}
goto?: {
before?: boolean
after?: boolean
}
if?: {
before?: boolean
after?: boolean
}
implements?: {
before?: boolean
after?: boolean
}
import?: {
before?: boolean
after?: boolean
}
in?: {
before?: boolean
after?: boolean
}
instanceof?: {
before?: boolean
after?: boolean
}
int?: {
before?: boolean
after?: boolean
}
interface?: {
before?: boolean
after?: boolean
}
let?: {
before?: boolean
after?: boolean
}
long?: {
before?: boolean
after?: boolean
}
native?: {
before?: boolean
after?: boolean
}
new?: {
before?: boolean
after?: boolean
}
null?: {
before?: boolean
after?: boolean
}
of?: {
before?: boolean
after?: boolean
}
package?: {
before?: boolean
after?: boolean
}
private?: {
before?: boolean
after?: boolean
}
protected?: {
before?: boolean
after?: boolean
}
public?: {
before?: boolean
after?: boolean
}
return?: {
before?: boolean
after?: boolean
}
set?: {
before?: boolean
after?: boolean
}
short?: {
before?: boolean
after?: boolean
}
static?: {
before?: boolean
after?: boolean
}
super?: {
before?: boolean
after?: boolean
}
switch?: {
before?: boolean
after?: boolean
}
synchronized?: {
before?: boolean
after?: boolean
}
this?: {
before?: boolean
after?: boolean
}
throw?: {
before?: boolean
after?: boolean
}
throws?: {
before?: boolean
after?: boolean
}
transient?: {
before?: boolean
after?: boolean
}
true?: {
before?: boolean
after?: boolean
}
try?: {
before?: boolean
after?: boolean
}
typeof?: {
before?: boolean
after?: boolean
}
var?: {
before?: boolean
after?: boolean
}
void?: {
before?: boolean
after?: boolean
}
volatile?: {
before?: boolean
after?: boolean
}
while?: {
before?: boolean
after?: boolean
}
with?: {
before?: boolean
after?: boolean
}
yield?: {
before?: boolean
after?: boolean
}
}
}]
// ----- line-comment-position -----
type LineCommentPosition = []|[(("above" | "beside") | {
position?: ("above" | "beside")
ignorePattern?: string
applyDefaultPatterns?: boolean
applyDefaultIgnorePatterns?: boolean
})]
// ----- linebreak-style -----
type LinebreakStyle = []|[("unix" | "windows")]
// ----- lines-around-comment -----
type LinesAroundComment = []|[{
beforeBlockComment?: boolean
afterBlockComment?: boolean
beforeLineComment?: boolean
afterLineComment?: boolean
allowBlockStart?: boolean
allowBlockEnd?: boolean
allowClassStart?: boolean
allowClassEnd?: boolean
allowObjectStart?: boolean
allowObjectEnd?: boolean
allowArrayStart?: boolean
allowArrayEnd?: boolean
ignorePattern?: string
applyDefaultIgnorePatterns?: boolean
afterHashbangComment?: boolean
}]
// ----- lines-around-directive -----
type LinesAroundDirective = []|[(("always" | "never") | {
before?: ("always" | "never")
after?: ("always" | "never")
})]
// ----- lines-between-class-members -----
type LinesBetweenClassMembers = []|[({
enforce: [{
blankLine: ("always" | "never")
prev: ("method" | "field" | "*")
next: ("method" | "field" | "*")
}, ...({
blankLine: ("always" | "never")
prev: ("method" | "field" | "*")
next: ("method" | "field" | "*")
})[]]
} | ("always" | "never"))]|[({
enforce: [{
blankLine: ("always" | "never")
prev: ("method" | "field" | "*")
next: ("method" | "field" | "*")
}, ...({
blankLine: ("always" | "never")
prev: ("method" | "field" | "*")
next: ("method" | "field" | "*")
})[]]
} | ("always" | "never")), {
exceptAfterSingleLine?: boolean
}]
// ----- logical-assignment-operators -----
type LogicalAssignmentOperators = (([]|["always"]|["always", {
enforceForIfStatements?: boolean
}] | ["never"]) & unknown[])
// ----- max-classes-per-file -----
type MaxClassesPerFile = []|[(number | {
ignoreExpressions?: boolean
max?: number
})]
// ----- max-depth -----
type MaxDepth = []|[(number | {
maximum?: number
max?: number
})]
// ----- max-len -----
type MaxLen = []|[({
code?: number
comments?: number
tabWidth?: number
ignorePattern?: string
ignoreComments?: boolean
ignoreStrings?: boolean
ignoreUrls?: boolean
ignoreTemplateLiterals?: boolean
ignoreRegExpLiterals?: boolean
ignoreTrailingComments?: boolean
} | number)]|[({
code?: number
comments?: number
tabWidth?: number
ignorePattern?: string
ignoreComments?: boolean
ignoreStrings?: boolean
ignoreUrls?: boolean
ignoreTemplateLiterals?: boolean
ignoreRegExpLiterals?: boolean
ignoreTrailingComments?: boolean
} | number), ({
code?: number
comments?: number
tabWidth?: number
ignorePattern?: string
ignoreComments?: boolean
ignoreStrings?: boolean
ignoreUrls?: boolean
ignoreTemplateLiterals?: boolean
ignoreRegExpLiterals?: boolean
ignoreTrailingComments?: boolean
} | number)]|[({
code?: number
comments?: number
tabWidth?: number
ignorePattern?: string
ignoreComments?: boolean
ignoreStrings?: boolean
ignoreUrls?: boolean
ignoreTemplateLiterals?: boolean
ignoreRegExpLiterals?: boolean
ignoreTrailingComments?: boolean
} | number), ({
code?: number
comments?: number
tabWidth?: number
ignorePattern?: string
ignoreComments?: boolean
ignoreStrings?: boolean
ignoreUrls?: boolean
ignoreTemplateLiterals?: boolean
ignoreRegExpLiterals?: boolean
ignoreTrailingComments?: boolean
} | number), {
code?: number
comments?: number
tabWidth?: number
ignorePattern?: string
ignoreComments?: boolean
ignoreStrings?: boolean
ignoreUrls?: boolean
ignoreTemplateLiterals?: boolean
ignoreRegExpLiterals?: boolean
ignoreTrailingComments?: boolean
}]
// ----- max-lines -----
type MaxLines = []|[(number | {
max?: number
skipComments?: boolean
skipBlankLines?: boolean
})]
// ----- max-lines-per-function -----
type MaxLinesPerFunction = []|[({
max?: number
skipComments?: boolean
skipBlankLines?: boolean
IIFEs?: boolean
} | number)]
// ----- max-nested-callbacks -----
type MaxNestedCallbacks = []|[(number | {
maximum?: number
max?: number
})]
// ----- max-params -----
type MaxParams = []|[(number | {
maximum?: number
max?: number
countVoidThis?: boolean
})]
// ----- max-statements -----
type MaxStatements = []|[(number | {
maximum?: number
max?: number
})]|[(number | {
maximum?: number
max?: number
}), {
ignoreTopLevelFunctions?: boolean
}]
// ----- max-statements-per-line -----
type MaxStatementsPerLine = []|[{
max?: number
}]
// ----- multiline-comment-style -----
type MultilineCommentStyle = ([]|[("starred-block" | "bare-block")] | []|["separate-lines"]|["separate-lines", {
checkJSDoc?: boolean
}])
// ----- multiline-ternary -----
type MultilineTernary = []|[("always" | "always-multiline" | "never")]
// ----- new-cap -----
type NewCap = []|[{
newIsCap?: boolean
capIsNew?: boolean
newIsCapExceptions?: string[]
newIsCapExceptionPattern?: string
capIsNewExceptions?: string[]
capIsNewExceptionPattern?: string
properties?: boolean
}]
// ----- new-parens -----
type NewParens = []|[("always" | "never")]
// ----- newline-after-var -----
type NewlineAfterVar = []|[("never" | "always")]
// ----- newline-per-chained-call -----
type NewlinePerChainedCall = []|[{
ignoreChainWithDepth?: number
}]
// ----- no-bitwise -----
type NoBitwise = []|[{
allow?: ("^" | "|" | "&" | "<<" | ">>" | ">>>" | "^=" | "|=" | "&=" | "<<=" | ">>=" | ">>>=" | "~")[]
int32Hint?: boolean
}]
// ----- no-cond-assign -----
type NoCondAssign = []|[("except-parens" | "always")]
// ----- no-confusing-arrow -----
type NoConfusingArrow = []|[{
allowParens?: boolean
onlyOneSimpleParam?: boolean
}]
// ----- no-console -----
type NoConsole = []|[{
allow?: [string, ...(string)[]]
}]
// ----- no-constant-condition -----
type NoConstantCondition = []|[{
checkLoops?: ("all" | "allExceptWhileTrue" | "none" | true | false)
}]
// ----- no-duplicate-imports -----
type NoDuplicateImports = []|[{
includeExports?: boolean
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[]
})[] | []|[{
paths?: (string | {
name: string
message?: string
importNames?: string[]
allowImportNames?: string[]
})[]
patterns?: (string[] | ({
[k: string]: unknown | undefined
} | {
[k: string]: unknown | undefined
})[])
}])
// ----- no-restricted-modules -----
type NoRestrictedModules = ((string | {
name: string
message?: string
})[] | {
paths?: (string | {
name: string
message?: string
})[]
patterns?: string[]
}[])
// ----- no-restricted-properties -----
type NoRestrictedProperties = ({
[k: string]: unknown | undefined
} | {
[k: string]: unknown | undefined
})[]
// ----- no-restricted-syntax -----
type NoRestrictedSyntax = (string | {
selector: string
message?: string
})[]
// ----- no-return-assign -----
type NoReturnAssign = []|[("except-parens" | "always")]
// ----- no-self-assign -----
type NoSelfAssign = []|[{
props?: boolean
}]
// ----- no-sequences -----
type NoSequences = []|[{
allowInParentheses?: boolean
}]
// ----- no-shadow -----
type NoShadow = []|[{
builtinGlobals?: boolean
hoist?: ("all" | "functions" | "never" | "types" | "functions-and-types")
allow?: string[]
ignoreOnInitialization?: boolean
ignoreTypeValueShadow?: boolean
ignoreFunctionTypeParameterNameValueShadow?: boolean
}]
// ----- no-shadow-restricted-names -----
type NoShadowRestrictedNames = []|[{
reportGlobalThis?: boolean
}]
// ----- no-sync -----
type NoSync = []|[{
allowAtRootLevel?: boolean
}]
// ----- no-tabs -----
type NoTabs = []|[{
allowIndentationTabs?: boolean
}]
// ----- no-trailing-spaces -----
type NoTrailingSpaces = []|[{
skipBlankLines?: boolean
ignoreComments?: boolean
}]
// ----- no-undef -----
type NoUndef = []|[{
typeof?: boolean
}]
// ----- no-underscore-dangle -----
type NoUnderscoreDangle = []|[{
allow?: string[]
allowAfterThis?: boolean
allowAfterSuper?: boolean
allowAfterThisConstructor?: boolean
enforceInMethodNames?: boolean
allowFunctionParams?: boolean
enforceInClassFields?: boolean
allowInArrayDestructuring?: boolean
allowInObjectDestructuring?: boolean
}]
// ----- no-unneeded-ternary -----
type NoUnneededTernary = []|[{
defaultAssignment?: boolean
}]
// ----- no-unreachable-loop -----
type NoUnreachableLoop = []|[{
ignore?: ("WhileStatement" | "DoWhileStatement" | "ForStatement" | "ForInStatement" | "ForOfStatement")[]
}]
// ----- no-unsafe-negation -----
type NoUnsafeNegation = []|[{
enforceForOrderingRelations?: boolean
}]
// ----- no-unsafe-optional-chaining -----
type NoUnsafeOptionalChaining = []|[{
disallowArithmeticOperators?: boolean
}]
// ----- no-unused-expressions -----
type NoUnusedExpressions = []|[{
allowShortCircuit?: boolean
allowTernary?: boolean
allowTaggedTemplates?: boolean
enforceForJSX?: boolean
ignoreDirectives?: boolean
}]
// ----- no-unused-vars -----
type NoUnusedVars = []|[(("all" | "local") | {
vars?: ("all" | "local")
varsIgnorePattern?: string
args?: ("all" | "after-used" | "none")
ignoreRestSiblings?: boolean
argsIgnorePattern?: string
caughtErrors?: ("all" | "none")
caughtErrorsIgnorePattern?: string
destructuredArrayIgnorePattern?: string
ignoreClassWithStaticInitBlock?: boolean
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
}
}]
// ----- padded-blocks -----
type PaddedBlocks = []|[(("always" | "never") | {
blocks?: ("always" | "never")
switches?: ("always" | "never")
classes?: ("always" | "never")
})]|[(("always" | "never") | {
blocks?: ("always" | "never")
switches?: ("always" | "never")
classes?: ("always" | "never")
}), {
allowSingleLineBlocks?: boolean
}]
// ----- padding-line-between-statements -----
type _PaddingLineBetweenStatementsPaddingType = ("any" | "never" | "always")
type _PaddingLineBetweenStatementsStatementType = (("*" | "block-like" | "cjs-export" | "cjs-import" | "directive" | "expression" | "iife" | "multiline-block-like" | "multiline-expression" | "multiline-const" | "multiline-let" | "multiline-var" | "singleline-const" | "singleline-let" | "singleline-var" | "block" | "empty" | "function" | "break" | "case" | "class" | "const" | "continue" | "debugger" | "default" | "do" | "export" | "for" | "if" | "import" | "let" | "return" | "switch" | "throw" | "try" | "var" | "while" | "with") | [("*" | "block-like" | "cjs-export" | "cjs-import" | "directive" | "expression" | "iife" | "multiline-block-like" | "multiline-expression" | "multiline-const" | "multiline-let" | "multiline-var" | "singleline-const" | "singleline-let" | "singleline-var" | "block" | "empty" | "function" | "break" | "case" | "class" | "const" | "continue" | "debugger" | "default" | "do" | "export" | "for" | "if" | "import" | "let" | "return" | "switch" | "throw" | "try" | "var" | "while" | "with"), ...(("*" | "block-like" | "cjs-export" | "cjs-import" | "directive" | "expression" | "iife" | "multiline-block-like" | "multiline-expression" | "multiline-const" | "multiline-let" | "multiline-var" | "singleline-const" | "singleline-let" | "singleline-var" | "block" | "empty" | "function" | "break" | "case" | "class" | "const" | "continue" | "debugger" | "default" | "do" | "export" | "for" | "if" | "import" | "let" | "return" | "switch" | "throw" | "try" | "var" | "while" | "with"))[]])
type PaddingLineBetweenStatements = {
blankLine: _PaddingLineBetweenStatementsPaddingType
prev: _PaddingLineBetweenStatementsStatementType
next: _PaddingLineBetweenStatementsStatementType
}[]
// ----- perfectionist/sort-array-includes -----
type PerfectionistSortArrayIncludes = {
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
groupKind?: ("mixed" | "literals-first" | "spreads-first")
customGroups?: ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
selector?: ("literal" | "spread")
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
selector?: ("literal" | "spread")
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
})[]
useConfigurationIf?: {
allNamesMatchPattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}[]
// ----- perfectionist/sort-classes -----
type PerfectionistSortClasses = []|[{
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
customGroups?: ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
modifiers?: ("async" | "protected" | "private" | "public" | "static" | "abstract" | "override" | "readonly" | "decorated" | "declare" | "optional")[]
selector?: ("accessor-property" | "index-signature" | "constructor" | "static-block" | "get-method" | "set-method" | "function-property" | "property" | "method")
decoratorNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementValuePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
modifiers?: ("async" | "protected" | "private" | "public" | "static" | "abstract" | "override" | "readonly" | "decorated" | "declare" | "optional")[]
selector?: ("accessor-property" | "index-signature" | "constructor" | "static-block" | "get-method" | "set-method" | "function-property" | "property" | "method")
decoratorNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementValuePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
})[]
ignoreCallbackDependenciesPatterns?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}]
// ----- perfectionist/sort-decorators -----
type PerfectionistSortDecorators = []|[{
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
sortOnParameters?: boolean
sortOnProperties?: boolean
sortOnAccessors?: boolean
sortOnMethods?: boolean
sortOnClasses?: boolean
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
customGroups?: {
[k: string]: (string | string[]) | undefined
}
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}]
// ----- perfectionist/sort-enums -----
type PerfectionistSortEnums = []|[{
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
customGroups?: ({
[k: string]: (string | string[]) | undefined
} | ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
elementValuePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
elementValuePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
})[])
forceNumericSort?: boolean
sortByValue?: boolean
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}]
// ----- perfectionist/sort-exports -----
type PerfectionistSortExports = {
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
groupKind?: ("mixed" | "values-first" | "types-first")
customGroups?: ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
modifiers?: ("value" | "type")[]
selector?: "export"
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
modifiers?: ("value" | "type")[]
selector?: "export"
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
})[]
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}[]
// ----- perfectionist/sort-heritage-clauses -----
type PerfectionistSortHeritageClauses = []|[{
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
customGroups?: {
[k: string]: (string | string[]) | undefined
}
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}]
// ----- perfectionist/sort-imports -----
type PerfectionistSortImports = {
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
customGroups?: ({
value?: {
[k: string]: (string | string[]) | undefined
}
type?: {
[k: string]: (string | string[]) | undefined
}
} | ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
modifiers?: ("default" | "named" | "require" | "side-effect" | "ts-equals" | "type" | "value" | "wildcard")[]
selector?: ("side-effect-style" | "tsconfig-path" | "side-effect" | "external" | "internal" | "builtin" | "sibling" | "subpath" | "import" | "parent" | "index" | "style" | "type")
elementValuePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
modifiers?: ("default" | "named" | "require" | "side-effect" | "ts-equals" | "type" | "value" | "wildcard")[]
selector?: ("side-effect-style" | "tsconfig-path" | "side-effect" | "external" | "internal" | "builtin" | "sibling" | "subpath" | "import" | "parent" | "index" | "style" | "type")
elementValuePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
})[])
tsconfig?: {
rootDir: string
filename?: string
}
maxLineLength?: number
sortSideEffects?: boolean
environment?: ("node" | "bun")
tsconfigRootDir?: string
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
internalPattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}[]
// ----- perfectionist/sort-interfaces -----
type PerfectionistSortInterfaces = {
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
sortBy?: ("name" | "value")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
customGroups?: ({
[k: string]: (string | string[]) | undefined
} | ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
sortBy?: ("name" | "value")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
modifiers?: ("optional" | "required" | "multiline")[]
selector?: ("index-signature" | "member" | "method" | "multiline" | "property")
elementValuePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
sortBy?: ("name" | "value")
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
sortBy?: ("name" | "value")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
modifiers?: ("optional" | "required" | "multiline")[]
selector?: ("index-signature" | "member" | "method" | "multiline" | "property")
elementValuePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
sortBy?: ("name" | "value")
})[])
groupKind?: ("mixed" | "required-first" | "optional-first")
useConfigurationIf?: {
allNamesMatchPattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
declarationMatchesPattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
ignorePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
sortBy?: ("name" | "value")
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}[]
// ----- perfectionist/sort-intersection-types -----
type PerfectionistSortIntersectionTypes = {
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
customGroups?: ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
selector?: ("intersection" | "conditional" | "function" | "operator" | "keyword" | "literal" | "nullish" | "import" | "object" | "named" | "tuple" | "union")
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
selector?: ("intersection" | "conditional" | "function" | "operator" | "keyword" | "literal" | "nullish" | "import" | "object" | "named" | "tuple" | "union")
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
})[]
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}[]
// ----- perfectionist/sort-jsx-props -----
type PerfectionistSortJsxProps = {
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
customGroups?: ({
[k: string]: (string | string[]) | undefined
} | ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
modifiers?: ("shorthand" | "multiline")[]
selector?: ("multiline" | "prop" | "shorthand")
elementValuePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
modifiers?: ("shorthand" | "multiline")[]
selector?: ("multiline" | "prop" | "shorthand")
elementValuePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
})[])
useConfigurationIf?: {
allNamesMatchPattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
tagMatchesPattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
ignorePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}[]
// ----- perfectionist/sort-maps -----
type PerfectionistSortMaps = {
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
customGroups?: ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
})[]
useConfigurationIf?: {
allNamesMatchPattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}[]
// ----- perfectionist/sort-modules -----
type PerfectionistSortModules = []|[{
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
customGroups?: ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
modifiers?: ("async" | "declare" | "decorated" | "default" | "export")[]
selector?: ("enum" | "function" | "interface" | "type" | "class")
decoratorNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
modifiers?: ("async" | "declare" | "decorated" | "default" | "export")[]
selector?: ("enum" | "function" | "interface" | "type" | "class")
decoratorNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
})[]
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}]
// ----- perfectionist/sort-named-exports -----
type PerfectionistSortNamedExports = {
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
groupKind?: ("mixed" | "values-first" | "types-first")
ignoreAlias?: boolean
customGroups?: ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
modifiers?: ("value" | "type")[]
selector?: "export"
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
modifiers?: ("value" | "type")[]
selector?: "export"
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
})[]
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}[]
// ----- perfectionist/sort-named-imports -----
type PerfectionistSortNamedImports = {
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
groupKind?: ("mixed" | "values-first" | "types-first")
ignoreAlias?: boolean
customGroups?: ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
modifiers?: ("value" | "type")[]
selector?: "import"
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
modifiers?: ("value" | "type")[]
selector?: "import"
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
})[]
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}[]
// ----- perfectionist/sort-object-types -----
type PerfectionistSortObjectTypes = {
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
sortBy?: ("name" | "value")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
customGroups?: ({
[k: string]: (string | string[]) | undefined
} | ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
sortBy?: ("name" | "value")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
modifiers?: ("optional" | "required" | "multiline")[]
selector?: ("index-signature" | "member" | "method" | "multiline" | "property")
elementValuePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
sortBy?: ("name" | "value")
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
sortBy?: ("name" | "value")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
modifiers?: ("optional" | "required" | "multiline")[]
selector?: ("index-signature" | "member" | "method" | "multiline" | "property")
elementValuePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
sortBy?: ("name" | "value")
})[])
groupKind?: ("mixed" | "required-first" | "optional-first")
useConfigurationIf?: {
allNamesMatchPattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
declarationMatchesPattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
ignorePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
sortBy?: ("name" | "value")
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}[]
// ----- perfectionist/sort-objects -----
type PerfectionistSortObjects = {
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
destructuredObjects?: (boolean | {
groups?: boolean
})
customGroups?: ({
[k: string]: (string | string[]) | undefined
} | ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
modifiers?: ("optional" | "required" | "multiline")[]
selector?: ("member" | "method" | "multiline" | "property")
elementValuePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
modifiers?: ("optional" | "required" | "multiline")[]
selector?: ("member" | "method" | "multiline" | "property")
elementValuePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
})[])
useConfigurationIf?: {
allNamesMatchPattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
callingFunctionNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}
destructureOnly?: boolean
objectDeclarations?: boolean
styledComponents?: boolean
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
ignorePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}[]
// ----- perfectionist/sort-sets -----
type PerfectionistSortSets = {
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
groupKind?: ("mixed" | "literals-first" | "spreads-first")
customGroups?: ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
selector?: ("literal" | "spread")
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
selector?: ("literal" | "spread")
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
})[]
useConfigurationIf?: {
allNamesMatchPattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}[]
// ----- perfectionist/sort-switch-case -----
type PerfectionistSortSwitchCase = []|[{
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}]
// ----- perfectionist/sort-union-types -----
type PerfectionistSortUnionTypes = {
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
customGroups?: ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
selector?: ("intersection" | "conditional" | "function" | "operator" | "keyword" | "literal" | "nullish" | "import" | "object" | "named" | "tuple" | "union")
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
selector?: ("intersection" | "conditional" | "function" | "operator" | "keyword" | "literal" | "nullish" | "import" | "object" | "named" | "tuple" | "union")
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
})[]
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}[]
// ----- perfectionist/sort-variable-declarations -----
type PerfectionistSortVariableDeclarations = []|[{
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
specialCharacters?: ("remove" | "trim" | "keep")
ignoreCase?: boolean
alphabet?: string
locales?: (string | string[])
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
customGroups?: ({
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
anyOf?: {
selector?: ("initialized" | "uninitialized")
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
}[]
} | {
newlinesInside?: (("always" | "never") | number)
fallbackSort?: {
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
}
groupName: string
order?: ("asc" | "desc")
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
selector?: ("initialized" | "uninitialized")
elementNamePattern?: (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string))
})[]
partitionByComment?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)) | {
block?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
line?: (boolean | (({
pattern: string
flags?: string
} | string)[] | ({
pattern: string
flags?: string
} | string)))
})
partitionByNewLine?: boolean
newlinesBetween?: (("ignore" | "always" | "never") | number)
groups?: (string | string[] | {
newlinesBetween?: (("ignore" | "always" | "never") | number)
commentAbove?: string
})[]
}]
// ----- prefer-arrow-callback -----
type PreferArrowCallback = []|[{
allowNamedFunctions?: boolean
allowUnboundThis?: boolean
}]
// ----- prefer-const -----
type PreferConst = []|[{
destructuring?: ("any" | "all")
ignoreReadBeforeAssign?: boolean
}]
// ----- prefer-destructuring -----
type PreferDestructuring = []|[({
VariableDeclarator?: {
array?: boolean
object?: boolean
}
AssignmentExpression?: {
array?: boolean
object?: boolean
}
} | {
array?: boolean
object?: boolean
})]|[({
VariableDeclarator?: {
array?: boolean
object?: boolean
}
AssignmentExpression?: {
array?: boolean
object?: boolean
}
} | {
array?: boolean
object?: boolean
}), {
enforceForRenamedProperties?: boolean
}]
// ----- prefer-promise-reject-errors -----
type PreferPromiseRejectErrors = []|[{
allowEmptyReject?: boolean
}]
// ----- prefer-reflect -----
type PreferReflect = []|[{
exceptions?: ("apply" | "call" | "delete" | "defineProperty" | "getOwnPropertyDescriptor" | "getPrototypeOf" | "setPrototypeOf" | "isExtensible" | "getOwnPropertyNames" | "preventExtensions")[]
}]
// ----- prefer-regex-literals -----
type PreferRegexLiterals = []|[{
disallowRedundantWrapping?: boolean
}]
// ----- quote-props -----
type QuoteProps = ([]|[("always" | "as-needed" | "consistent" | "consistent-as-needed")] | []|[("always" | "as-needed" | "consistent" | "consistent-as-needed")]|[("always" | "as-needed" | "consistent" | "consistent-as-needed"), {
keywords?: boolean
unnecessary?: boolean
numbers?: boolean
}])
// ----- quotes -----
type Quotes = []|[("single" | "double" | "backtick")]|[("single" | "double" | "backtick"), ("avoid-escape" | {
avoidEscape?: boolean
allowTemplateLiterals?: boolean
})]
// ----- radix -----
type Radix = []|[("always" | "as-needed")]
// ----- react-hooks/exhaustive-deps -----
type ReactHooksExhaustiveDeps = []|[{
additionalHooks?: string
enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean
}]
// ----- react-refresh/only-export-components -----
type ReactRefreshOnlyExportComponents = []|[{
allowExportNames?: string[]
allowConstantExport?: boolean
customHOCs?: string[]
checkJS?: boolean
}]
// ----- require-atomic-updates -----
type RequireAtomicUpdates = []|[{
allowProperties?: boolean
}]
// ----- require-unicode-regexp -----
type RequireUnicodeRegexp = []|[{
requireFlag?: ("u" | "v")
}]
// ----- rest-spread-spacing -----
type RestSpreadSpacing = []|[("always" | "never")]
// ----- semi -----
type Semi = ([]|["never"]|["never", {
beforeStatementContinuationChars?: ("always" | "any" | "never")
}] | []|["always"]|["always", {
omitLastInOneLineBlock?: boolean
omitLastInOneLineClassBody?: boolean
}])
// ----- semi-spacing -----
type SemiSpacing = []|[{
before?: boolean
after?: boolean
}]
// ----- semi-style -----
type SemiStyle = []|[("last" | "first")]
// ----- sort-imports -----
type SortImports = []|[{
ignoreCase?: boolean
memberSyntaxSortOrder?: [("none" | "all" | "multiple" | "single"), ("none" | "all" | "multiple" | "single"), ("none" | "all" | "multiple" | "single"), ("none" | "all" | "multiple" | "single")]
ignoreDeclarationSort?: boolean
ignoreMemberSort?: boolean
allowSeparatedGroups?: boolean
}]
// ----- sort-keys -----
type SortKeys = []|[("asc" | "desc")]|[("asc" | "desc"), {
caseSensitive?: boolean
natural?: boolean
minKeys?: number
allowLineSeparatedGroups?: boolean
ignoreComputedKeys?: boolean
}]
// ----- sort-vars -----
type SortVars = []|[{
ignoreCase?: boolean
}]
// ----- space-before-blocks -----
type SpaceBeforeBlocks = []|[(("always" | "never") | {
keywords?: ("always" | "never" | "off")
functions?: ("always" | "never" | "off")
classes?: ("always" | "never" | "off")
})]
// ----- space-before-function-paren -----
type SpaceBeforeFunctionParen = []|[(("always" | "never") | {
anonymous?: ("always" | "never" | "ignore")
named?: ("always" | "never" | "ignore")
asyncArrow?: ("always" | "never" | "ignore")
})]
// ----- space-in-parens -----
type SpaceInParens = []|[("always" | "never")]|[("always" | "never"), {
exceptions?: ("{}" | "[]" | "()" | "empty")[]
}]
// ----- space-infix-ops -----
type SpaceInfixOps = []|[{
int32Hint?: boolean
}]
// ----- space-unary-ops -----
type SpaceUnaryOps = []|[{
words?: boolean
nonwords?: boolean
overrides?: {
[k: string]: boolean | undefined
}
}]
// ----- spaced-comment -----
type SpacedComment = []|[("always" | "never")]|[("always" | "never"), {
exceptions?: string[]
markers?: string[]
line?: {
exceptions?: string[]
markers?: string[]
}
block?: {
exceptions?: string[]
markers?: string[]
balanced?: boolean
}
}]
// ----- strict -----
type Strict = []|[("never" | "global" | "function" | "safe")]
// ----- 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/better-regex -----
type UnicornBetterRegex = []|[{
sortCharacterClasses?: boolean
}]
// ----- unicorn/catch-error-name -----
type UnicornCatchErrorName = []|[{
name?: string
ignore?: unknown[]
}]
// ----- unicorn/consistent-function-scoping -----
type UnicornConsistentFunctionScoping = []|[{
checkArrowFunctions?: boolean
}]
// ----- unicorn/escape-case -----
type UnicornEscapeCase = []|[("uppercase" | "lowercase")]
// ----- unicorn/expiring-todo-comments -----
type UnicornExpiringTodoComments = []|[{
terms?: string[]
ignore?: unknown[]
ignoreDatesOnPullRequests?: boolean
allowWarningComments?: boolean
date?: string
}]
// ----- unicorn/explicit-length-check -----
type UnicornExplicitLengthCheck = []|[{
"non-zero"?: ("greater-than" | "not-equal")
}]
// ----- unicorn/filename-case -----
type UnicornFilenameCase = []|[({
case?: ("camelCase" | "snakeCase" | "kebabCase" | "pascalCase")
ignore?: unknown[]
multipleFileExtensions?: boolean
} | {
cases?: {
camelCase?: boolean
snakeCase?: boolean
kebabCase?: boolean
pascalCase?: boolean
}
ignore?: unknown[]
multipleFileExtensions?: boolean
})]
// ----- unicorn/import-style -----
type UnicornImportStyle = []|[{
checkImport?: boolean
checkDynamicImport?: boolean
checkExportFrom?: boolean
checkRequire?: boolean
extendDefaultStyles?: boolean
styles?: _UnicornImportStyle_ModuleStyles
}]
type _UnicornImportStyleStyles = (false | _UnicornImportStyle_BooleanObject) | undefined
interface _UnicornImportStyle_ModuleStyles {
[k: string]: _UnicornImportStyleStyles | undefined
}
interface _UnicornImportStyle_BooleanObject {
[k: string]: boolean | undefined
}
// ----- unicorn/no-array-reduce -----
type UnicornNoArrayReduce = []|[{
allowSimpleOperations?: boolean
}]
// ----- unicorn/no-array-reverse -----
type UnicornNoArrayReverse = []|[{
allowExpressionStatement?: boolean
}]
// ----- unicorn/no-instanceof-builtins -----
type UnicornNoInstanceofBuiltins = []|[{
useErrorIsError?: boolean
strategy?: ("loose" | "strict")
include?: string[]
exclude?: string[]
}]
// ----- unicorn/no-keyword-prefix -----
type UnicornNoKeywordPrefix = []|[{
disallowedPrefixes?: []|[string]
checkProperties?: boolean
onlyCamelCase?: boolean
}]
// ----- unicorn/no-null -----
type UnicornNoNull = []|[{
checkStrictEquality?: boolean
}]
// ----- unicorn/no-typeof-undefined -----
type UnicornNoTypeofUndefined = []|[{
checkGlobalVariables?: boolean
}]
// ----- unicorn/no-unnecessary-polyfills -----
type UnicornNoUnnecessaryPolyfills = []|[{
targets: (string | unknown[] | {
[k: string]: unknown | undefined
})
}]
// ----- unicorn/no-useless-undefined -----
type UnicornNoUselessUndefined = []|[{
checkArguments?: boolean
checkArrowFunctionBody?: boolean
}]
// ----- unicorn/number-literal-case -----
type UnicornNumberLiteralCase = []|[{
hexadecimalValue?: ("uppercase" | "lowercase")
}]
// ----- unicorn/numeric-separators-style -----
type UnicornNumericSeparatorsStyle = []|[{
binary?: {
onlyIfContainsSeparator?: boolean
minimumDigits?: number
groupLength?: number
}
octal?: {
onlyIfContainsSeparator?: boolean
minimumDigits?: number
groupLength?: number
}
hexadecimal?: {
onlyIfContainsSeparator?: boolean
minimumDigits?: number
groupLength?: number
}
number?: {
onlyIfContainsSeparator?: boolean
minimumDigits?: number
groupLength?: number
}
onlyIfContainsSeparator?: boolean
}]
// ----- unicorn/prefer-add-event-listener -----
type UnicornPreferAddEventListener = []|[{
excludedPackages?: string[]
}]
// ----- unicorn/prefer-array-find -----
type UnicornPreferArrayFind = []|[{
checkFromLast?: boolean
}]
// ----- unicorn/prefer-array-flat -----
type UnicornPreferArrayFlat = []|[{
functions?: unknown[]
}]
// ----- unicorn/prefer-at -----
type UnicornPreferAt = []|[{
getLastElementFunctions?: unknown[]
checkAllIndexAccess?: boolean
}]
// ----- unicorn/prefer-export-from -----
type UnicornPreferExportFrom = []|[{
ignoreUsedVariables?: boolean
}]
// ----- unicorn/prefer-number-properties -----
type UnicornPreferNumberProperties = []|[{
checkInfinity?: boolean
checkNaN?: boolean
}]
// ----- unicorn/prefer-object-from-entries -----
type UnicornPreferObjectFromEntries = []|[{
functions?: unknown[]
}]
// ----- unicorn/prefer-single-call -----
type UnicornPreferSingleCall = []|[{
ignore?: unknown[]
}]
// ----- unicorn/prefer-structured-clone -----
type UnicornPreferStructuredClone = []|[{
functions?: unknown[]
}]
// ----- unicorn/prefer-switch -----
type UnicornPreferSwitch = []|[{
minimumCases?: number
emptyDefaultCase?: ("no-default-comment" | "do-nothing-comment" | "no-default-case")
}]
// ----- unicorn/prefer-ternary -----
type UnicornPreferTernary = []|[("always" | "only-single-line")]
// ----- unicorn/prevent-abbreviations -----
type UnicornPreventAbbreviations = []|[{
checkProperties?: boolean
checkVariables?: boolean
checkDefaultAndNamespaceImports?: (boolean | string)
checkShorthandImports?: (boolean | string)
checkShorthandProperties?: boolean
checkFilenames?: boolean
extendDefaultReplacements?: boolean
replacements?: _UnicornPreventAbbreviations_Abbreviations
extendDefaultAllowList?: boolean
allowList?: _UnicornPreventAbbreviations_BooleanObject
ignore?: unknown[]
}]
type _UnicornPreventAbbreviationsReplacements = (false | _UnicornPreventAbbreviations_BooleanObject) | undefined
interface _UnicornPreventAbbreviations_Abbreviations {
[k: string]: _UnicornPreventAbbreviationsReplacements | undefined
}
interface _UnicornPreventAbbreviations_BooleanObject {
[k: string]: boolean | undefined
}
// ----- unicorn/relative-url-style -----
type UnicornRelativeUrlStyle = []|[("never" | "always")]
// ----- unicorn/string-content -----
type UnicornStringContent = []|[{
patterns?: {
[k: string]: (string | {
suggest: string
fix?: boolean
message?: string
}) | undefined
}
}]
// ----- unicorn/switch-case-braces -----
type UnicornSwitchCaseBraces = []|[("always" | "avoid")]
// ----- unicorn/template-indent -----
type UnicornTemplateIndent = []|[{
indent?: (string | number)
tags?: string[]
functions?: string[]
selectors?: string[]
comments?: string[]
}]
// ----- unused-imports/no-unused-imports -----
type UnusedImportsNoUnusedImports = []|[(("all" | "local") | {
args?: ("all" | "after-used" | "none")
argsIgnorePattern?: string
caughtErrors?: ("all" | "none")
caughtErrorsIgnorePattern?: string
destructuredArrayIgnorePattern?: string
ignoreClassWithStaticInitBlock?: boolean
ignoreRestSiblings?: boolean
reportUsedIgnorePattern?: boolean
vars?: ("all" | "local")
varsIgnorePattern?: string
})]
// ----- unused-imports/no-unused-vars -----
type UnusedImportsNoUnusedVars = []|[(("all" | "local") | {
args?: ("all" | "after-used" | "none")
argsIgnorePattern?: string
caughtErrors?: ("all" | "none")
caughtErrorsIgnorePattern?: string
destructuredArrayIgnorePattern?: string
ignoreClassWithStaticInitBlock?: boolean
ignoreRestSiblings?: boolean
reportUsedIgnorePattern?: boolean
vars?: ("all" | "local")
varsIgnorePattern?: string
})]
// ----- use-isnan -----
type UseIsnan = []|[{
enforceForSwitchCase?: boolean
enforceForIndexOf?: boolean
}]
// ----- valid-typeof -----
type ValidTypeof = []|[{
requireStringLiterals?: boolean
}]
// ----- 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-focused-tests -----
type VitestNoFocusedTests = []|[{
fixable?: boolean
}]
// ----- vitest/no-hooks -----
type VitestNoHooks = []|[{
allow?: unknown[]
}]
// ----- 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
}]
// ----- 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/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
})
}]
// ----- 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
}]
// Names of all the configs
type ConfigNames = 'yunarch/base/ignores' | 'yunarch/base/setup' | 'yunarch/base/rules' | 'yunarch/typescript/setup' | 'yunarch/typescript/parser' | 'yunarch/typescript/parser/type-aware' | 'yunarch/typescript/rules' | 'yunarch/typescript/rules/type-aware' | 'yunarch/import/rules' | 'yunarch/import/typescript/rules' | 'yunarch/jsdoc/rules' | 'yunarch/jsdoc/typescript/rules' | 'yunarch/unicorn/rules' | 'yunarch/test/setup' | 'yunarch/test/rules' | 'yunarch/tanstack/query/rules' | 'yunarch/tanstack/router/rules' | 'yunarch/react/setup' | 'yunarch/react/rules' | 'yunarch/react/typescript/rules' | 'yunarch/perfectionist/rules' | 'yunarch/disables/cli' | 'yunarch/disables/dts' | 'yunarch/disables/config-files' | 'yunarch/disables/prettier';
type Awaitable<T> = T | Promise<T>;
interface Rules extends RuleOptions {
}
type TypedFlatConfigItem = Omit<Linter.Config<Linter.RulesRecord & Rules>, 'plugins'> & {
/**
* An object containing a name-value mapping of plugin names to plugin objects.
* When `files` is specified, these plugins are only available to the matching files.
*
* @see https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new#using-plugins-in-your-configuration
*/
plugins?: Record<string, any>;
};
interface OptionsConfig {
/**
* Automatic configures ignores based on `.gitignore`.
*
* @see https://github.com/antfu/eslint-config-flat-gitignore
* @default true
*/
gitignore?: boolean | FlatGitignoreOptions;
/**
* Custom ignores. It extends the default ignores.
*/
ignores?: Linter.Config['ignores'];
/**
* Additional extensions for components.
*
* @example ['vue']
*/
extraFileExtensions?: string[];
/**
* Base configuration options.
*/
base?: {
/**
* Extends the default base linter options.
*/
linterOptions?: Linter.LinterOptions;
};
/**
* Enable TypeScript support.
*
* @default false
*/
typescript?: boolean | {
/**
* Path to the `tsconfig.json` file/s.
* It will enable type-aware linting unless `disableTypeAware` is `true`.
*/
tsconfigPath?: string | string[];
/**
* Additional parser options for TypeScript.
*/
parserOptions?: Partial<ParserOptions>;
/**
* Whether to disable type-aware rules.
*/
disableTypeAware?: boolean;
/**
* Glob patterns for files that should be type aware.
* By default it includes any typescript file.
*
* Only used when `typeAware` is `true`.
*/
filesTypeAware?: string[];
/**
* Glob patterns for files that should not be type aware.
* By default it includes any markdown and astro typescript files.
*/
ignoresTypeAware?: string[];
};
/**
* Enable `eslint-plugin-import` rules.
*
* @default true
*/
import?: boolean;
/**
* Enable `eslint-plugin-jsdoc` rules.
*
* @default true
*/
jsdoc?: boolean;
/**
* Enable `eslint-plugin-unicorn` rules.
*
* @default true
*/
unicorn?: boolean;
/**
* Enable react rules.
*
* @default false
*/
react?: boolean;
/**
* Enable vitest (`@vitest/eslint-plugin`) support rules.
*
* @default false
*/
test?: boolean | {
/**
* Enables vitest type testing feature.
*
* @see https://vitest.dev/guide/testing-types
* @default false
*/
enableTypeTesting?: boolean;
};
/**
* Enable tanstack plugins rules.
* If `true`, it will enable all tanstack eslint plugins, otherwise you can specify which ones to enable.
*
* @default false
*/
tanstack?: boolean | {
/**
* Enable `@tanstack/eslint-plugin-query` plugin and its recommended rules.
*
* @default false
*/
enableQuery?: boolean;
/**
* Enable `@tanstack/eslint-plugin-router` plugin and its recommended rules.
*
* @default false
*/
enableRouter?: boolean;
};
/**
* Whether oxlint is enabled and therefore eslint rules that are covered by oxlint should be disabled.
*
* @default undefined
*/
oxlint?: {
/**
* The path to the oxlint configuration file (e.g. `./.oxlintrc.json`) to read and disable the rules that covers.
*/
oxlintConfigPath: string;
};
}
type UserConfig = Awaitable<TypedFlatConfigItem | TypedFlatConfigItem[] | Linter.Config[]>;
/**
* ESlint configuration factory.
*
* @param options - Configuration options.
* @param userConfigs - User configurations.
* @returns A composer of ESLint configurations.
*/
declare function config(options?: OptionsConfig, ...userConfigs: UserConfig[]): FlatConfigComposer<TypedFlatConfigItem, ConfigNames>;
export { config };