UNPKG

@yunarch/config-web

Version:

Shared configurations for web projects.

1,139 lines (1,138 loc) 472 kB
import { ConfigWithExtends, FlatConfigComposer } from "eslint-flat-config-utils"; import { ParserOptions } from "@typescript-eslint/parser"; import { Linter } from "eslint"; import { FlatGitignoreOptions } from "eslint-config-flat-gitignore"; //#region src/linters/eslint/typegen.d.ts interface RuleOptions { /** * Exhaustive deps rule for useQuery * @see https://tanstack.com/query/latest/docs/eslint/exhaustive-deps */ '@tanstack/query/exhaustive-deps'?: Linter.RuleEntry<TanstackQueryExhaustiveDeps>; /** * Ensure correct order of inference sensitive properties for infinite queries * @see https://tanstack.com/query/latest/docs/eslint/infinite-query-property-order */ '@tanstack/query/infinite-query-property-order'?: Linter.RuleEntry<[]>; /** * Ensure correct order of inference-sensitive properties in useMutation() * @see https://tanstack.com/query/latest/docs/eslint/mutation-property-order */ '@tanstack/query/mutation-property-order'?: Linter.RuleEntry<[]>; /** * Disallows rest destructuring in queries * @see https://tanstack.com/query/latest/docs/eslint/no-rest-destructuring */ '@tanstack/query/no-rest-destructuring'?: Linter.RuleEntry<[]>; /** * Disallow putting the result of query hooks directly in a React hook dependency array * @see https://tanstack.com/query/latest/docs/eslint/no-unstable-deps */ '@tanstack/query/no-unstable-deps'?: Linter.RuleEntry<[]>; /** * Ensures queryFn returns a non-undefined value * @see https://tanstack.com/query/latest/docs/eslint/no-void-query-fn */ '@tanstack/query/no-void-query-fn'?: Linter.RuleEntry<[]>; /** * Prefer using queryOptions() to co-locate queryKey and queryFn * @see https://tanstack.com/query/latest/docs/eslint/prefer-query-options */ '@tanstack/query/prefer-query-options'?: Linter.RuleEntry<[]>; /** * Makes sure that QueryClient is stable * @see https://tanstack.com/query/latest/docs/eslint/stable-query-client */ '@tanstack/query/stable-query-client'?: Linter.RuleEntry<[]>; /** * Ensure correct order of inference sensitive properties for createRoute functions * @see https://tanstack.com/router/latest/docs/eslint/create-route-property-order */ '@tanstack/router/create-route-property-order'?: Linter.RuleEntry<[]>; /** * Ensure route param names are valid JavaScript identifiers * @see https://tanstack.com/router/latest/docs/eslint/route-param-names */ '@tanstack/router/route-param-names'?: Linter.RuleEntry<[]>; /** * Require that function overload signatures be consecutive * @see https://typescript-eslint.io/rules/adjacent-overload-signatures */ '@typescript-eslint/adjacent-overload-signatures'?: Linter.RuleEntry<[]>; /** * Require consistently using either `T[]` or `Array<T>` for arrays * @see https://typescript-eslint.io/rules/array-type */ '@typescript-eslint/array-type'?: Linter.RuleEntry<TypescriptEslintArrayType>; /** * Disallow awaiting a value that is not a Thenable * @see https://typescript-eslint.io/rules/await-thenable */ '@typescript-eslint/await-thenable'?: Linter.RuleEntry<[]>; /** * Disallow `@ts-<directive>` comments or require descriptions after directives * @see https://typescript-eslint.io/rules/ban-ts-comment */ '@typescript-eslint/ban-ts-comment'?: Linter.RuleEntry<TypescriptEslintBanTsComment>; /** * Disallow `// tslint:<rule-flag>` comments * @see https://typescript-eslint.io/rules/ban-tslint-comment */ '@typescript-eslint/ban-tslint-comment'?: Linter.RuleEntry<[]>; /** * Enforce that literals on classes are exposed in a consistent style * @see https://typescript-eslint.io/rules/class-literal-property-style */ '@typescript-eslint/class-literal-property-style'?: Linter.RuleEntry<TypescriptEslintClassLiteralPropertyStyle>; /** * Enforce that class methods utilize `this` * @see https://typescript-eslint.io/rules/class-methods-use-this */ '@typescript-eslint/class-methods-use-this'?: Linter.RuleEntry<TypescriptEslintClassMethodsUseThis>; /** * Enforce specifying generic type arguments on type annotation or constructor name of a constructor call * @see https://typescript-eslint.io/rules/consistent-generic-constructors */ '@typescript-eslint/consistent-generic-constructors'?: Linter.RuleEntry<TypescriptEslintConsistentGenericConstructors>; /** * Require or disallow the `Record` type * @see https://typescript-eslint.io/rules/consistent-indexed-object-style */ '@typescript-eslint/consistent-indexed-object-style'?: Linter.RuleEntry<TypescriptEslintConsistentIndexedObjectStyle>; /** * Require `return` statements to either always or never specify values * @see https://typescript-eslint.io/rules/consistent-return */ '@typescript-eslint/consistent-return'?: Linter.RuleEntry<TypescriptEslintConsistentReturn>; /** * Enforce consistent usage of type assertions * @see https://typescript-eslint.io/rules/consistent-type-assertions */ '@typescript-eslint/consistent-type-assertions'?: Linter.RuleEntry<TypescriptEslintConsistentTypeAssertions>; /** * Enforce type definitions to consistently use either `interface` or `type` * @see https://typescript-eslint.io/rules/consistent-type-definitions */ '@typescript-eslint/consistent-type-definitions'?: Linter.RuleEntry<TypescriptEslintConsistentTypeDefinitions>; /** * Enforce consistent usage of type exports * @see https://typescript-eslint.io/rules/consistent-type-exports */ '@typescript-eslint/consistent-type-exports'?: Linter.RuleEntry<TypescriptEslintConsistentTypeExports>; /** * Enforce consistent usage of type imports * @see https://typescript-eslint.io/rules/consistent-type-imports */ '@typescript-eslint/consistent-type-imports'?: Linter.RuleEntry<TypescriptEslintConsistentTypeImports>; /** * Enforce default parameters to be last * @see https://typescript-eslint.io/rules/default-param-last */ '@typescript-eslint/default-param-last'?: Linter.RuleEntry<[]>; /** * Enforce dot notation whenever possible * @see https://typescript-eslint.io/rules/dot-notation */ '@typescript-eslint/dot-notation'?: Linter.RuleEntry<TypescriptEslintDotNotation>; /** * Require explicit return types on functions and class methods * @see https://typescript-eslint.io/rules/explicit-function-return-type */ '@typescript-eslint/explicit-function-return-type'?: Linter.RuleEntry<TypescriptEslintExplicitFunctionReturnType>; /** * Require explicit accessibility modifiers on class properties and methods * @see https://typescript-eslint.io/rules/explicit-member-accessibility */ '@typescript-eslint/explicit-member-accessibility'?: Linter.RuleEntry<TypescriptEslintExplicitMemberAccessibility>; /** * Require explicit return and argument types on exported functions' and classes' public class methods * @see https://typescript-eslint.io/rules/explicit-module-boundary-types */ '@typescript-eslint/explicit-module-boundary-types'?: Linter.RuleEntry<TypescriptEslintExplicitModuleBoundaryTypes>; /** * Require or disallow initialization in variable declarations * @see https://typescript-eslint.io/rules/init-declarations */ '@typescript-eslint/init-declarations'?: Linter.RuleEntry<TypescriptEslintInitDeclarations>; /** * Enforce a maximum number of parameters in function definitions * @see https://typescript-eslint.io/rules/max-params */ '@typescript-eslint/max-params'?: Linter.RuleEntry<TypescriptEslintMaxParams>; /** * Require a consistent member declaration order * @see https://typescript-eslint.io/rules/member-ordering */ '@typescript-eslint/member-ordering'?: Linter.RuleEntry<TypescriptEslintMemberOrdering>; /** * Enforce using a particular method signature syntax * @see https://typescript-eslint.io/rules/method-signature-style */ '@typescript-eslint/method-signature-style'?: Linter.RuleEntry<TypescriptEslintMethodSignatureStyle>; /** * Enforce naming conventions for everything across a codebase * @see https://typescript-eslint.io/rules/naming-convention */ '@typescript-eslint/naming-convention'?: Linter.RuleEntry<TypescriptEslintNamingConvention>; /** * Disallow generic `Array` constructors * @see https://typescript-eslint.io/rules/no-array-constructor */ '@typescript-eslint/no-array-constructor'?: Linter.RuleEntry<[]>; /** * Disallow using the `delete` operator on array values * @see https://typescript-eslint.io/rules/no-array-delete */ '@typescript-eslint/no-array-delete'?: Linter.RuleEntry<[]>; /** * Require `.toString()` and `.toLocaleString()` to only be called on objects which provide useful information when stringified * @see https://typescript-eslint.io/rules/no-base-to-string */ '@typescript-eslint/no-base-to-string'?: Linter.RuleEntry<TypescriptEslintNoBaseToString>; /** * Disallow non-null assertion in locations that may be confusing * @see https://typescript-eslint.io/rules/no-confusing-non-null-assertion */ '@typescript-eslint/no-confusing-non-null-assertion'?: Linter.RuleEntry<[]>; /** * Require expressions of type void to appear in statement position * @see https://typescript-eslint.io/rules/no-confusing-void-expression */ '@typescript-eslint/no-confusing-void-expression'?: Linter.RuleEntry<TypescriptEslintNoConfusingVoidExpression>; /** * Disallow using code marked as `@deprecated` * @see https://typescript-eslint.io/rules/no-deprecated */ '@typescript-eslint/no-deprecated'?: Linter.RuleEntry<TypescriptEslintNoDeprecated>; /** * Disallow duplicate class members * @see https://typescript-eslint.io/rules/no-dupe-class-members */ '@typescript-eslint/no-dupe-class-members'?: Linter.RuleEntry<[]>; /** * Disallow duplicate enum member values * @see https://typescript-eslint.io/rules/no-duplicate-enum-values */ '@typescript-eslint/no-duplicate-enum-values'?: Linter.RuleEntry<[]>; /** * Disallow duplicate constituents of union or intersection types * @see https://typescript-eslint.io/rules/no-duplicate-type-constituents */ '@typescript-eslint/no-duplicate-type-constituents'?: Linter.RuleEntry<TypescriptEslintNoDuplicateTypeConstituents>; /** * Disallow using the `delete` operator on computed key expressions * @see https://typescript-eslint.io/rules/no-dynamic-delete */ '@typescript-eslint/no-dynamic-delete'?: Linter.RuleEntry<[]>; /** * Disallow empty functions * @see https://typescript-eslint.io/rules/no-empty-function */ '@typescript-eslint/no-empty-function'?: Linter.RuleEntry<TypescriptEslintNoEmptyFunction>; /** * Disallow the declaration of empty interfaces * @see https://typescript-eslint.io/rules/no-empty-interface * @deprecated */ '@typescript-eslint/no-empty-interface'?: Linter.RuleEntry<TypescriptEslintNoEmptyInterface>; /** * Disallow accidentally using the "empty object" type * @see https://typescript-eslint.io/rules/no-empty-object-type */ '@typescript-eslint/no-empty-object-type'?: Linter.RuleEntry<TypescriptEslintNoEmptyObjectType>; /** * Disallow the `any` type * @see https://typescript-eslint.io/rules/no-explicit-any */ '@typescript-eslint/no-explicit-any'?: Linter.RuleEntry<TypescriptEslintNoExplicitAny>; /** * Disallow extra non-null assertions * @see https://typescript-eslint.io/rules/no-extra-non-null-assertion */ '@typescript-eslint/no-extra-non-null-assertion'?: Linter.RuleEntry<[]>; /** * Disallow classes used as namespaces * @see https://typescript-eslint.io/rules/no-extraneous-class */ '@typescript-eslint/no-extraneous-class'?: Linter.RuleEntry<TypescriptEslintNoExtraneousClass>; /** * Require Promise-like statements to be handled appropriately * @see https://typescript-eslint.io/rules/no-floating-promises */ '@typescript-eslint/no-floating-promises'?: Linter.RuleEntry<TypescriptEslintNoFloatingPromises>; /** * Disallow iterating over an array with a for-in loop * @see https://typescript-eslint.io/rules/no-for-in-array */ '@typescript-eslint/no-for-in-array'?: Linter.RuleEntry<[]>; /** * Disallow the use of `eval()`-like functions * @see https://typescript-eslint.io/rules/no-implied-eval */ '@typescript-eslint/no-implied-eval'?: Linter.RuleEntry<[]>; /** * Enforce the use of top-level import type qualifier when an import only has specifiers with inline type qualifiers * @see https://typescript-eslint.io/rules/no-import-type-side-effects */ '@typescript-eslint/no-import-type-side-effects'?: Linter.RuleEntry<[]>; /** * Disallow explicit type declarations for variables or parameters initialized to a number, string, or boolean * @see https://typescript-eslint.io/rules/no-inferrable-types */ '@typescript-eslint/no-inferrable-types'?: Linter.RuleEntry<TypescriptEslintNoInferrableTypes>; /** * Disallow `this` keywords outside of classes or class-like objects * @see https://typescript-eslint.io/rules/no-invalid-this */ '@typescript-eslint/no-invalid-this'?: Linter.RuleEntry<TypescriptEslintNoInvalidThis>; /** * Disallow `void` type outside of generic or return types * @see https://typescript-eslint.io/rules/no-invalid-void-type */ '@typescript-eslint/no-invalid-void-type'?: Linter.RuleEntry<TypescriptEslintNoInvalidVoidType>; /** * Disallow function declarations that contain unsafe references inside loop statements * @see https://typescript-eslint.io/rules/no-loop-func */ '@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<TypescriptEslintNoUnsafeMemberAccess>; /** * Disallow returning a value with type `any` from a function * @see https://typescript-eslint.io/rules/no-unsafe-return */ '@typescript-eslint/no-unsafe-return'?: Linter.RuleEntry<[]>; /** * Disallow type assertions that narrow a type * @see https://typescript-eslint.io/rules/no-unsafe-type-assertion */ '@typescript-eslint/no-unsafe-type-assertion'?: Linter.RuleEntry<[]>; /** * Require unary negation to take a number * @see https://typescript-eslint.io/rules/no-unsafe-unary-minus */ '@typescript-eslint/no-unsafe-unary-minus'?: Linter.RuleEntry<[]>; /** * Disallow unused expressions * @see https://typescript-eslint.io/rules/no-unused-expressions */ '@typescript-eslint/no-unused-expressions'?: Linter.RuleEntry<TypescriptEslintNoUnusedExpressions>; /** * Disallow unused private class members * @see https://typescript-eslint.io/rules/no-unused-private-class-members */ '@typescript-eslint/no-unused-private-class-members'?: Linter.RuleEntry<[]>; /** * Disallow unused variables * @see https://typescript-eslint.io/rules/no-unused-vars */ '@typescript-eslint/no-unused-vars'?: Linter.RuleEntry<TypescriptEslintNoUnusedVars>; /** * Disallow the use of variables before they are defined * @see https://typescript-eslint.io/rules/no-use-before-define */ '@typescript-eslint/no-use-before-define'?: Linter.RuleEntry<TypescriptEslintNoUseBeforeDefine>; /** * Disallow unnecessary constructors * @see https://typescript-eslint.io/rules/no-useless-constructor */ '@typescript-eslint/no-useless-constructor'?: Linter.RuleEntry<[]>; /** * Disallow default values that will never be used * @see https://typescript-eslint.io/rules/no-useless-default-assignment */ '@typescript-eslint/no-useless-default-assignment'?: Linter.RuleEntry<TypescriptEslintNoUselessDefaultAssignment>; /** * Disallow empty exports that don't change anything in a module file * @see https://typescript-eslint.io/rules/no-useless-empty-export */ '@typescript-eslint/no-useless-empty-export'?: Linter.RuleEntry<[]>; /** * Disallow `require` statements except in import statements * @see https://typescript-eslint.io/rules/no-var-requires * @deprecated */ '@typescript-eslint/no-var-requires'?: Linter.RuleEntry<TypescriptEslintNoVarRequires>; /** * Disallow using confusing built-in primitive class wrappers * @see https://typescript-eslint.io/rules/no-wrapper-object-types */ '@typescript-eslint/no-wrapper-object-types'?: Linter.RuleEntry<[]>; /** * Enforce non-null assertions over explicit type assertions * @see https://typescript-eslint.io/rules/non-nullable-type-assertion-style */ '@typescript-eslint/non-nullable-type-assertion-style'?: Linter.RuleEntry<[]>; /** * Disallow throwing non-`Error` values as exceptions * @see https://typescript-eslint.io/rules/only-throw-error */ '@typescript-eslint/only-throw-error'?: Linter.RuleEntry<TypescriptEslintOnlyThrowError>; /** * Require or disallow parameter properties in class constructors * @see https://typescript-eslint.io/rules/parameter-properties */ '@typescript-eslint/parameter-properties'?: Linter.RuleEntry<TypescriptEslintParameterProperties>; /** * Enforce the use of `as const` over literal type * @see https://typescript-eslint.io/rules/prefer-as-const */ '@typescript-eslint/prefer-as-const'?: Linter.RuleEntry<[]>; /** * Require destructuring from arrays and/or objects * @see https://typescript-eslint.io/rules/prefer-destructuring */ '@typescript-eslint/prefer-destructuring'?: Linter.RuleEntry<TypescriptEslintPreferDestructuring>; /** * Require each enum member value to be explicitly initialized * @see https://typescript-eslint.io/rules/prefer-enum-initializers */ '@typescript-eslint/prefer-enum-initializers'?: Linter.RuleEntry<[]>; /** * Enforce the use of Array.prototype.find() over Array.prototype.filter() followed by [0] when looking for a single result * @see https://typescript-eslint.io/rules/prefer-find */ '@typescript-eslint/prefer-find'?: Linter.RuleEntry<[]>; /** * Enforce the use of `for-of` loop over the standard `for` loop where possible * @see https://typescript-eslint.io/rules/prefer-for-of */ '@typescript-eslint/prefer-for-of'?: Linter.RuleEntry<[]>; /** * Enforce using function types instead of interfaces with call signatures * @see https://typescript-eslint.io/rules/prefer-function-type */ '@typescript-eslint/prefer-function-type'?: Linter.RuleEntry<[]>; /** * Enforce `includes` method over `indexOf` method * @see https://typescript-eslint.io/rules/prefer-includes */ '@typescript-eslint/prefer-includes'?: Linter.RuleEntry<[]>; /** * Require all enum members to be literal values * @see https://typescript-eslint.io/rules/prefer-literal-enum-member */ '@typescript-eslint/prefer-literal-enum-member'?: Linter.RuleEntry<TypescriptEslintPreferLiteralEnumMember>; /** * Require using `namespace` keyword over `module` keyword to declare custom TypeScript modules * @see https://typescript-eslint.io/rules/prefer-namespace-keyword */ '@typescript-eslint/prefer-namespace-keyword'?: Linter.RuleEntry<[]>; /** * Enforce using the nullish coalescing operator instead of logical assignments or chaining * @see https://typescript-eslint.io/rules/prefer-nullish-coalescing */ '@typescript-eslint/prefer-nullish-coalescing'?: Linter.RuleEntry<TypescriptEslintPreferNullishCoalescing>; /** * Enforce using concise optional chain expressions instead of chained logical ands, negated logical ors, or empty objects * @see https://typescript-eslint.io/rules/prefer-optional-chain */ '@typescript-eslint/prefer-optional-chain'?: Linter.RuleEntry<TypescriptEslintPreferOptionalChain>; /** * Require using Error objects as Promise rejection reasons * @see https://typescript-eslint.io/rules/prefer-promise-reject-errors */ '@typescript-eslint/prefer-promise-reject-errors'?: Linter.RuleEntry<TypescriptEslintPreferPromiseRejectErrors>; /** * Require private members to be marked as `readonly` if they're never modified outside of the constructor * @see https://typescript-eslint.io/rules/prefer-readonly */ '@typescript-eslint/prefer-readonly'?: Linter.RuleEntry<TypescriptEslintPreferReadonly>; /** * Require function parameters to be typed as `readonly` to prevent accidental mutation of inputs * @see https://typescript-eslint.io/rules/prefer-readonly-parameter-types */ '@typescript-eslint/prefer-readonly-parameter-types'?: Linter.RuleEntry<TypescriptEslintPreferReadonlyParameterTypes>; /** * Enforce using type parameter when calling `Array#reduce` instead of using a type assertion * @see https://typescript-eslint.io/rules/prefer-reduce-type-parameter */ '@typescript-eslint/prefer-reduce-type-parameter'?: Linter.RuleEntry<[]>; /** * Enforce `RegExp#exec` over `String#match` if no global flag is provided * @see https://typescript-eslint.io/rules/prefer-regexp-exec */ '@typescript-eslint/prefer-regexp-exec'?: Linter.RuleEntry<[]>; /** * Enforce that `this` is used when only `this` type is returned * @see https://typescript-eslint.io/rules/prefer-return-this-type */ '@typescript-eslint/prefer-return-this-type'?: Linter.RuleEntry<[]>; /** * Enforce using `String#startsWith` and `String#endsWith` over other equivalent methods of checking substrings * @see https://typescript-eslint.io/rules/prefer-string-starts-ends-with */ '@typescript-eslint/prefer-string-starts-ends-with'?: Linter.RuleEntry<TypescriptEslintPreferStringStartsEndsWith>; /** * Enforce using `@ts-expect-error` over `@ts-ignore` * @see https://typescript-eslint.io/rules/prefer-ts-expect-error * @deprecated */ '@typescript-eslint/prefer-ts-expect-error'?: Linter.RuleEntry<[]>; /** * Require any function or method that returns a Promise to be marked async * @see https://typescript-eslint.io/rules/promise-function-async */ '@typescript-eslint/promise-function-async'?: Linter.RuleEntry<TypescriptEslintPromiseFunctionAsync>; /** * Enforce that `get()` types should be assignable to their equivalent `set()` type * @see https://typescript-eslint.io/rules/related-getter-setter-pairs */ '@typescript-eslint/related-getter-setter-pairs'?: Linter.RuleEntry<[]>; /** * Require `Array#sort` and `Array#toSorted` calls to always provide a `compareFunction` * @see https://typescript-eslint.io/rules/require-array-sort-compare */ '@typescript-eslint/require-array-sort-compare'?: Linter.RuleEntry<TypescriptEslintRequireArraySortCompare>; /** * Disallow async functions which do not return promises and have no `await` expression * @see https://typescript-eslint.io/rules/require-await */ '@typescript-eslint/require-await'?: Linter.RuleEntry<[]>; /** * Require both operands of addition to be the same type and be `bigint`, `number`, or `string` * @see https://typescript-eslint.io/rules/restrict-plus-operands */ '@typescript-eslint/restrict-plus-operands'?: Linter.RuleEntry<TypescriptEslintRestrictPlusOperands>; /** * Enforce template literal expressions to be of `string` type * @see https://typescript-eslint.io/rules/restrict-template-expressions */ '@typescript-eslint/restrict-template-expressions'?: Linter.RuleEntry<TypescriptEslintRestrictTemplateExpressions>; /** * Enforce consistent awaiting of returned promises * @see https://typescript-eslint.io/rules/return-await */ '@typescript-eslint/return-await'?: Linter.RuleEntry<TypescriptEslintReturnAwait>; /** * Enforce constituents of a type union/intersection to be sorted alphabetically * @see https://typescript-eslint.io/rules/sort-type-constituents * @deprecated */ '@typescript-eslint/sort-type-constituents'?: Linter.RuleEntry<TypescriptEslintSortTypeConstituents>; /** * Disallow certain types in boolean expressions * @see https://typescript-eslint.io/rules/strict-boolean-expressions */ '@typescript-eslint/strict-boolean-expressions'?: Linter.RuleEntry<TypescriptEslintStrictBooleanExpressions>; /** * Disallow passing a value-returning function in a position accepting a void function * @see https://typescript-eslint.io/rules/strict-void-return */ '@typescript-eslint/strict-void-return'?: Linter.RuleEntry<TypescriptEslintStrictVoidReturn>; /** * Require switch-case statements to be exhaustive * @see https://typescript-eslint.io/rules/switch-exhaustiveness-check */ '@typescript-eslint/switch-exhaustiveness-check'?: Linter.RuleEntry<TypescriptEslintSwitchExhaustivenessCheck>; /** * Disallow certain triple slash directives in favor of ES6-style import declarations * @see https://typescript-eslint.io/rules/triple-slash-reference */ '@typescript-eslint/triple-slash-reference'?: Linter.RuleEntry<TypescriptEslintTripleSlashReference>; /** * Require type annotations in certain places * @see https://typescript-eslint.io/rules/typedef * @deprecated */ '@typescript-eslint/typedef'?: Linter.RuleEntry<TypescriptEslintTypedef>; /** * Enforce unbound methods are called with their expected scope * @see https://typescript-eslint.io/rules/unbound-method */ '@typescript-eslint/unbound-method'?: Linter.RuleEntry<TypescriptEslintUnboundMethod>; /** * Disallow two overloads that could be unified into one with a union or an optional/rest parameter * @see https://typescript-eslint.io/rules/unified-signatures */ '@typescript-eslint/unified-signatures'?: Linter.RuleEntry<TypescriptEslintUnifiedSignatures>; /** * Enforce typing arguments in Promise rejection callbacks as `unknown` * @see https://typescript-eslint.io/rules/use-unknown-in-catch-callback-variable */ '@typescript-eslint/use-unknown-in-catch-callback-variable'?: Linter.RuleEntry<[]>; /** * Enforce getter and setter pairs in objects and classes * @see https://eslint.org/docs/latest/rules/accessor-pairs */ 'accessor-pairs'?: Linter.RuleEntry<AccessorPairs>; /** * Enforce linebreaks after opening and before closing array brackets * @see https://eslint.org/docs/latest/rules/array-bracket-newline * @deprecated */ 'array-bracket-newline'?: Linter.RuleEntry<ArrayBracketNewline>; /** * Enforce consistent spacing inside array brackets * @see https://eslint.org/docs/latest/rules/array-bracket-spacing * @deprecated */ 'array-bracket-spacing'?: Linter.RuleEntry<ArrayBracketSpacing>; /** * Enforce `return` statements in callbacks of array methods * @see https://eslint.org/docs/latest/rules/array-callback-return */ 'array-callback-return'?: Linter.RuleEntry<ArrayCallbackReturn>; /** * Enforce line breaks after each array element * @see https://eslint.org/docs/latest/rules/array-element-newline * @deprecated */ 'array-element-newline'?: Linter.RuleEntry<ArrayElementNewline>; /** * Require braces around arrow function bodies * @see https://eslint.org/docs/latest/rules/arrow-body-style */ 'arrow-body-style'?: Linter.RuleEntry<ArrowBodyStyle>; /** * Require parentheses around arrow function arguments * @see https://eslint.org/docs/latest/rules/arrow-parens * @deprecated */ 'arrow-parens'?: Linter.RuleEntry<ArrowParens>; /** * Enforce consistent spacing before and after the arrow in arrow functions * @see https://eslint.org/docs/latest/rules/arrow-spacing * @deprecated */ 'arrow-spacing'?: Linter.RuleEntry<ArrowSpacing>; /** * 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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/docs/rules/no-mutable-exports.md */ 'import/no-mutable-exports'?: Linter.RuleEntry<[]>; /** * Forbid use of exported name as identifier