import { ESLintMdxSettings } from 'eslint-plugin-mdx'; import { Linter, ESLint } from 'eslint'; /** * A literal type that supports custom further strings but preserves autocompletion in IDEs. * * @see [copied from issue](https://github.com/microsoft/TypeScript/issues/29729#issuecomment-471566609) */ type LiteralUnion = | Union | (Base & { zz_IGNORE_ME?: never }); // Some types copied from `@types/eslint` `Linter.ParserOptions` /** * Any valid ECMAScript version number or 'latest': * * - A version: es3, es5, es6, es7, es8, es9, es10, es11, es12, es13, es14, ... * - A year: es2015, es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, ... * - 'latest' * * @see https://typescript-eslint.io/architecture/parser/#ecmaversion */ type EcmaVersion = | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 'latest'; /** * Set to "script" (default) or "module" if your code is in ECMAScript modules. */ type SourceType = 'script' | 'module'; /** * An object indicating which additional language features you'd like to use. * * @see https://eslint.org/docs/latest/user-guide/configuring/language-options#specifying-parser-options * @see https://typescript-eslint.io/architecture/parser#ecmafeatures */ interface EcmaFeatures extends Partial> { /** * Allow `return` statements in the global scope. */ globalReturn?: boolean; /** * Enable global [strict mode](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode) (if `ecmaVersion` is 5 or greater). */ impliedStrict?: boolean; /** * Enable [JSX](https://facebook.github.io/jsx). */ jsx?: boolean; } /** Lib. */ type Lib = LiteralUnion< | 'es5' | 'es6' | 'es2015' | 'es7' | 'es2016' | 'es2017' | 'es2018' | 'es2019' | 'es2020' | 'esnext' | 'dom' | 'dom.iterable' | 'webworker' | 'webworker.importscripts' | 'webworker.iterable' | 'scripthost' | 'es2015.core' | 'es2015.collection' | 'es2015.generator' | 'es2015.iterable' | 'es2015.promise' | 'es2015.proxy' | 'es2015.reflect' | 'es2015.symbol' | 'es2015.symbol.wellknown' | 'es2016.array.include' | 'es2017.object' | 'es2017.sharedmemory' | 'es2017.string' | 'es2017.intl' | 'es2017.typedarrays' | 'es2018.asyncgenerator' | 'es2018.asynciterable' | 'es2018.intl' | 'es2018.promise' | 'es2018.regexp' | 'es2019.array' | 'es2019.object' | 'es2019.string' | 'es2019.symbol' | 'es2020.bigint' | 'es2020.promise' | 'es2020.sharedmemory' | 'es2020.string' | 'es2020.symbol.wellknown' | 'es2020.intl' | 'esnext.array' | 'esnext.symbol' | 'esnext.asynciterable' | 'esnext.intl' | 'esnext.bigint' | 'esnext.string' | 'esnext.promise' | 'esnext.weakref' | 'es2016.full' | 'es2017.full' | 'es2018.full' | 'es2019.full' | 'es2020.full' | 'esnext.full' | 'lib' >; /** DebugLevel. */ type DebugLevel = | boolean | Array<'eslint' | 'typescript' | 'typescript-eslint'>; /** Parser. */ type Parser = LiteralUnion< | 'babel-eslint' | '@typescript-eslint/parser' | 'jsonc-eslint-parser' | 'vue-eslint-parser' >; /** * Parser options. * * @see [Specifying Parser Options](https://eslint.org/docs/user-guide/configuring/language-options#specifying-parser-options) */ interface ParserOptions extends Partial> { /** * Accepts any valid ECMAScript version number or `'latest'`: * * - A version: es3, es5, es6, es7, es8, es9, es10, es11, es12, es13, es14, ..., or * - A year: es2015, es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, ..., or * - `'latest'` * * When it's a version or a year, the value must be a number - so do not include the `es` prefix. * * Specifies the version of ECMAScript syntax you want to use. This is used by the parser to determine how to perform scope analysis, and it affects the default * * @default 2018 * * @see https://typescript-eslint.io/architecture/parser/#ecmaversion */ ecmaVersion?: EcmaVersion; /** * Set to "script" (default) or "module" if your code is in ECMAScript modules. * * @default 'script' * * @see https://eslint.org/docs/latest/user-guide/configuring/language-options#specifying-parser-options */ sourceType?: SourceType; /** * An object indicating which additional language features you'd like to use. * * @see https://eslint.org/docs/latest/user-guide/configuring/language-options#specifying-parser-options * @see https://typescript-eslint.io/architecture/parser#ecmafeatures */ ecmaFeatures?: EcmaFeatures; /** * The identifier that's used for JSX Elements creation (after transpilation). * If you're using a library other than React (like `preact`), then you should change this value. * If you are using the [new JSX transform](https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html) you can set this to `null`. * * This should not be a member expression - just the root identifier (i.e. use `"React"` instead of `"React.createElement"`). * * If you provide `parserOptions.project`, you do not need to set this, as it will automatically detected from the compiler. * * @default 'React' * * @see [jsxPragma](https://typescript-eslint.io/architecture/parser#jsxpragma) */ jsxPragma?: string; /** * The identifier that's used for JSX fragment elements (after transpilation). * If `null`, assumes transpilation will always use a member of the configured `jsxPragma`. * This should not be a member expression - just the root identifier (i.e. use `"h"` instead of `"h.Fragment"`). * * If you provide `parserOptions.project`, you do not need to set this, as it will automatically detected from the compiler. * * @default null * * @see [jsxFragmentName](https://typescript-eslint.io/architecture/parser#jsxfragmentname) */ jsxFragmentName?: string | null; /** * For valid options, see the [TypeScript compiler options](https://www.typescriptlang.org/tsconfig#lib). * * Specifies the TypeScript `libs` that are available. * This is used by the scope analyser to ensure there are global variables declared for the types exposed by TypeScript. * * If you provide `parserOptions.project`, you do not need to set this, as it will automatically detected from the compiler. * * @default ['es2018'] * * @see [lib](https://typescript-eslint.io/architecture/parser/#lib) */ lib?: Lib[]; comment?: boolean; debugLevel?: DebugLevel; errorOnTypeScriptSyntacticAndSemanticIssues?: boolean; errorOnUnknownASTType?: boolean; /** * This option allows you to provide one or more additional file extensions which should be considered in the TypeScript Program compilation. * * The default extensions are `.ts`, `.tsx`, `.js`, and `.jsx`. Add extensions starting with `.`, followed by the file extension. * E.g. for a `.vue` file use `"extraFileExtensions: [".vue"]`. * * @see [extraFileExtensions](https://typescript-eslint.io/architecture/parser/#extrafileextensions) */ extraFileExtensions?: string[]; filePath?: string; loc?: boolean; /** * Parser. * * @see [Working with Custom Parsers](https://eslint.org/docs/developer-guide/working-with-custom-parsers) * @see [Specifying Parser](https://eslint.org/docs/user-guide/configuring/plugins#specifying-parser) */ parser?: Parser | Record; /** * This option allows you to provide a path to your project's `tsconfig.json`. * **This setting is required if you want to use rules which require type information.** * Relative paths are interpreted relative to the current working directory if `tsconfigRootDir` is not set. * If you intend on running ESLint from directories other than the project root, you should consider using `tsconfigRootDir`. * * @default undefined * * @see [project](https://typescript-eslint.io/architecture/parser/#project) */ project?: string | string[] | true | null; /** * This option allows you to ignore folders from being included in your provided list of `project`s. * This is useful if you have configured glob patterns, but want to make sure you ignore certain folders. * * It accepts an array of globs to exclude from the `project` globs. * * For example, by default it will ensure that a glob like `./**‎/tsconfig.json` will not match any `tsconfigs` within your `node_modules` folder (some npm packages do not exclude their source files from their published packages). * * @default ['**‎/node_modules/**'] * * @see [projectFolderIgnoreList](https://typescript-eslint.io/architecture/parser/#projectfolderignorelist) */ projectFolderIgnoreList?: Array; range?: boolean; tokens?: boolean; /** * This option allows you to provide the root directory for relative tsconfig paths specified in the `project` option above. * * @see [tsconfigRootDir](https://typescript-eslint.io/architecture/parser/#tsconfigrootdir) */ tsconfigRootDir?: string; useJSXTextNode?: boolean; /** * This option allows you to toggle the warning that the parser will give you if you use a version of TypeScript which is not explicitly supported. * * @default true * * @see [warnOnUnsupportedTypeScriptVersion](https://typescript-eslint.io/architecture/parser/#warnonunsupportedtypescriptversion) */ warnOnUnsupportedTypeScriptVersion?: boolean; /** * This option allow you to tell parser to act as if `emitDecoratorMetadata: true` is set in `tsconfig.json`, but without [type-aware linting](https://typescript-eslint.io/linting/typed-linting). * In other words, you don't have to specify `parserOptions.project` in this case, making the linting process faster. * * @default undefined * * @see [emitDecoratorMetadata](https://typescript-eslint.io/architecture/parser/#emitdecoratormetadata) */ emitDecoratorMetadata?: boolean; /** * @see [vueFeatures](https://github.com/vuejs/vue-eslint-parser#parseroptionsvuefeatures) */ vueFeatures?: { /** * You can use `parserOptions.vueFeatures.filter` property to specify whether to parse the Vue2 filter. * * If you specify `false`, the parser does not parse `|` as a filter. * * @see [filter](https://github.com/vuejs/vue-eslint-parser#parseroptionsvuefeaturesfilter) */ filter?: boolean; /** * You can use `parserOptions.vueFeatures.interpolationAsNonHTML` property to specify whether to parse the interpolation as HTML. * * If you specify `true`, the parser handles the interpolation as non-HTML (However, you can use HTML escaping in the interpolation). * * @see [interpolationAsNonHTML](https://github.com/vuejs/vue-eslint-parser#parseroptionsvuefeaturesinterpolationasnonhtml) */ interpolationAsNonHTML?: boolean; }; /** * @see [templateTokenizer](https://github.com/rashfael/eslint-plugin-vue-pug#usage) */ templateTokenizer?: { pug?: LiteralUnion<'vue-eslint-parser-template-tokenizer-pug'>; }; } type Unprefix, Pre extends string> = { [K in keyof T as K extends `${Pre}${infer U}` ? U : never]: T[K]; }; type Prefix, Pre extends string> = { [K in keyof T as `${Pre}${K}`]: T[K]; }; type RenamePrefix, Old extends string, New extends string> = Prefix, New>; type MergeIntersection> = { [K in keyof T]: T[K]; }; // Synced to https://github.com/DefinitelyTyped/DefinitelyTyped/blob/042141ce5f77f36df01c344ad09f32feda26c4fd/types/eslint/index.d.ts#L714-L716 /** * Rule ordinal severity. */ type Severity = 0 | 1 | 2; /** * Rule severity. */ type RuleLevel = Severity | 'off' | 'warn' | 'error'; /** * Rule severity. * * @alias RuleLevel */ type RuleSeverity = RuleLevel; // Synced to https://github.com/DefinitelyTyped/DefinitelyTyped/blob/042141ce5f77f36df01c344ad09f32feda26c4fd/types/eslint/helpers.d.ts#L1-L3 type Prepend = (( _: Addend, ..._1: Tuple ) => any) extends (..._: infer Result) => any ? Result : never; // Synced to https://github.com/DefinitelyTyped/DefinitelyTyped/blob/042141ce5f77f36df01c344ad09f32feda26c4fd/types/eslint/index.d.ts#L717-L719 /** * Rule configuration. */ type RuleLevelAndOptions = Prepend< Partial, RuleLevel >; type RuleEntry = | RuleLevel | RuleLevelAndOptions; /** * Rule configuration. * * @alias RuleEntry */ type RuleConfig = RuleEntry; /** * Do not use deprecated APIs. * * @see [deprecation](https://github.com/gund/eslint-plugin-deprecation) */ type DeprecationRuleConfig = RuleConfig<[]>; /** * Do not use deprecated APIs. * * @see [deprecation](https://github.com/gund/eslint-plugin-deprecation) */ interface DeprecationRule { /** * Do not use deprecated APIs. * * @see [deprecation](https://github.com/gund/eslint-plugin-deprecation) */ 'deprecation/deprecation': DeprecationRuleConfig; } /** * All Deprecation rules. */ type DeprecationRules = DeprecationRule; /** * Option. */ interface AccessorPairsOption { getWithoutSet?: boolean; setWithoutGet?: boolean; enforceForClassMembers?: boolean; } /** * Options. */ type AccessorPairsOptions = [AccessorPairsOption?]; /** * Enforce getter and setter pairs in objects and classes. * * @see [accessor-pairs](https://eslint.org/docs/latest/rules/accessor-pairs) */ type AccessorPairsRuleConfig = RuleConfig; /** * Enforce getter and setter pairs in objects and classes. * * @see [accessor-pairs](https://eslint.org/docs/latest/rules/accessor-pairs) */ interface AccessorPairsRule { /** * Enforce getter and setter pairs in objects and classes. * * @see [accessor-pairs](https://eslint.org/docs/latest/rules/accessor-pairs) */ 'accessor-pairs': AccessorPairsRuleConfig; } /** * Option. */ type ArrayBracketNewlineOption$2 = | ('always' | 'never' | 'consistent') | { multiline?: boolean; minItems?: number | null; }; /** * Options. */ type ArrayBracketNewlineOptions$2 = [ArrayBracketNewlineOption$2?]; /** * Enforce linebreaks after opening and before closing array brackets. * * @see [array-bracket-newline](https://eslint.org/docs/latest/rules/array-bracket-newline) */ type ArrayBracketNewlineRuleConfig$2 = RuleConfig; /** * Enforce linebreaks after opening and before closing array brackets. * * @see [array-bracket-newline](https://eslint.org/docs/latest/rules/array-bracket-newline) */ interface ArrayBracketNewlineRule$2 { /** * Enforce linebreaks after opening and before closing array brackets. * * @see [array-bracket-newline](https://eslint.org/docs/latest/rules/array-bracket-newline) */ 'array-bracket-newline': ArrayBracketNewlineRuleConfig$2; } /** * Config. */ interface ArrayBracketSpacingConfig$2 { singleValue?: boolean; objectsInArrays?: boolean; arraysInArrays?: boolean; } /** * Option. */ type ArrayBracketSpacingOption$2 = 'always' | 'never'; /** * Options. */ type ArrayBracketSpacingOptions$2 = [ ArrayBracketSpacingOption$2?, ArrayBracketSpacingConfig$2?, ]; /** * Enforce consistent spacing inside array brackets. * * @see [array-bracket-spacing](https://eslint.org/docs/latest/rules/array-bracket-spacing) */ type ArrayBracketSpacingRuleConfig$2 = RuleConfig; /** * Enforce consistent spacing inside array brackets. * * @see [array-bracket-spacing](https://eslint.org/docs/latest/rules/array-bracket-spacing) */ interface ArrayBracketSpacingRule$2 { /** * Enforce consistent spacing inside array brackets. * * @see [array-bracket-spacing](https://eslint.org/docs/latest/rules/array-bracket-spacing) */ 'array-bracket-spacing': ArrayBracketSpacingRuleConfig$2; } /** * Option. */ interface ArrayCallbackReturnOption { allowImplicit?: boolean; checkForEach?: boolean; allowVoid?: boolean; } /** * Options. */ type ArrayCallbackReturnOptions = [ArrayCallbackReturnOption?]; /** * Enforce `return` statements in callbacks of array methods. * * @see [array-callback-return](https://eslint.org/docs/latest/rules/array-callback-return) */ type ArrayCallbackReturnRuleConfig = RuleConfig; /** * Enforce `return` statements in callbacks of array methods. * * @see [array-callback-return](https://eslint.org/docs/latest/rules/array-callback-return) */ interface ArrayCallbackReturnRule { /** * Enforce `return` statements in callbacks of array methods. * * @see [array-callback-return](https://eslint.org/docs/latest/rules/array-callback-return) */ 'array-callback-return': ArrayCallbackReturnRuleConfig; } /** * Option. */ type ArrayElementNewlineOption$2 = | [] | [ | BasicConfig$3 | { ArrayExpression?: BasicConfig$3; ArrayPattern?: BasicConfig$3; }, ]; type BasicConfig$3 = | ('always' | 'never' | 'consistent') | { multiline?: boolean; minItems?: number | null; }; /** * Options. */ type ArrayElementNewlineOptions$2 = ArrayElementNewlineOption$2; /** * Enforce line breaks after each array element. * * @see [array-element-newline](https://eslint.org/docs/latest/rules/array-element-newline) */ type ArrayElementNewlineRuleConfig$2 = RuleConfig; /** * Enforce line breaks after each array element. * * @see [array-element-newline](https://eslint.org/docs/latest/rules/array-element-newline) */ interface ArrayElementNewlineRule$2 { /** * Enforce line breaks after each array element. * * @see [array-element-newline](https://eslint.org/docs/latest/rules/array-element-newline) */ 'array-element-newline': ArrayElementNewlineRuleConfig$2; } /** * Option. */ type ArrowBodyStyleOption = | [] | ['always' | 'never'] | [] | ['as-needed'] | [ 'as-needed', { requireReturnForObjectLiteral?: boolean; }, ]; /** * Options. */ type ArrowBodyStyleOptions = ArrowBodyStyleOption; /** * Require braces around arrow function bodies. * * @see [arrow-body-style](https://eslint.org/docs/latest/rules/arrow-body-style) */ type ArrowBodyStyleRuleConfig = RuleConfig; /** * Require braces around arrow function bodies. * * @see [arrow-body-style](https://eslint.org/docs/latest/rules/arrow-body-style) */ interface ArrowBodyStyleRule { /** * Require braces around arrow function bodies. * * @see [arrow-body-style](https://eslint.org/docs/latest/rules/arrow-body-style) */ 'arrow-body-style': ArrowBodyStyleRuleConfig; } /** * Config. */ interface ArrowParensConfig { requireForBlockBody?: boolean; } /** * Option. */ type ArrowParensOption = 'always' | 'as-needed'; /** * Options. */ type ArrowParensOptions = [ArrowParensOption?, ArrowParensConfig?]; /** * Require parentheses around arrow function arguments. * * @see [arrow-parens](https://eslint.org/docs/latest/rules/arrow-parens) */ type ArrowParensRuleConfig = RuleConfig; /** * Require parentheses around arrow function arguments. * * @see [arrow-parens](https://eslint.org/docs/latest/rules/arrow-parens) */ interface ArrowParensRule { /** * Require parentheses around arrow function arguments. * * @see [arrow-parens](https://eslint.org/docs/latest/rules/arrow-parens) */ 'arrow-parens': ArrowParensRuleConfig; } /** * Option. */ interface ArrowSpacingOption$1 { before?: boolean; after?: boolean; } /** * Options. */ type ArrowSpacingOptions$1 = [ArrowSpacingOption$1?]; /** * Enforce consistent spacing before and after the arrow in arrow functions. * * @see [arrow-spacing](https://eslint.org/docs/latest/rules/arrow-spacing) */ type ArrowSpacingRuleConfig$1 = RuleConfig; /** * Enforce consistent spacing before and after the arrow in arrow functions. * * @see [arrow-spacing](https://eslint.org/docs/latest/rules/arrow-spacing) */ interface ArrowSpacingRule$1 { /** * Enforce consistent spacing before and after the arrow in arrow functions. * * @see [arrow-spacing](https://eslint.org/docs/latest/rules/arrow-spacing) */ 'arrow-spacing': ArrowSpacingRuleConfig$1; } /** * Enforce the use of variables within the scope they are defined. * * @see [block-scoped-var](https://eslint.org/docs/latest/rules/block-scoped-var) */ type BlockScopedVarRuleConfig = RuleConfig<[]>; /** * Enforce the use of variables within the scope they are defined. * * @see [block-scoped-var](https://eslint.org/docs/latest/rules/block-scoped-var) */ interface BlockScopedVarRule { /** * Enforce the use of variables within the scope they are defined. * * @see [block-scoped-var](https://eslint.org/docs/latest/rules/block-scoped-var) */ 'block-scoped-var': BlockScopedVarRuleConfig; } /** * Option. */ type BlockSpacingOption$2 = 'always' | 'never'; /** * Options. */ type BlockSpacingOptions$2 = [BlockSpacingOption$2?]; /** * Disallow or enforce spaces inside of blocks after opening block and before closing block. * * @see [block-spacing](https://eslint.org/docs/latest/rules/block-spacing) */ type BlockSpacingRuleConfig$2 = RuleConfig; /** * Disallow or enforce spaces inside of blocks after opening block and before closing block. * * @see [block-spacing](https://eslint.org/docs/latest/rules/block-spacing) */ interface BlockSpacingRule$2 { /** * Disallow or enforce spaces inside of blocks after opening block and before closing block. * * @see [block-spacing](https://eslint.org/docs/latest/rules/block-spacing) */ 'block-spacing': BlockSpacingRuleConfig$2; } /** * Config. */ interface BraceStyleConfig$2 { allowSingleLine?: boolean; } /** * Option. */ type BraceStyleOption$2 = '1tbs' | 'stroustrup' | 'allman'; /** * Options. */ type BraceStyleOptions$2 = [BraceStyleOption$2?, BraceStyleConfig$2?]; /** * Enforce consistent brace style for blocks. * * @see [brace-style](https://eslint.org/docs/latest/rules/brace-style) */ type BraceStyleRuleConfig$2 = RuleConfig; /** * Enforce consistent brace style for blocks. * * @see [brace-style](https://eslint.org/docs/latest/rules/brace-style) */ interface BraceStyleRule$2 { /** * Enforce consistent brace style for blocks. * * @see [brace-style](https://eslint.org/docs/latest/rules/brace-style) */ 'brace-style': BraceStyleRuleConfig$2; } /** * Option. */ type CallbackReturnOption$2 = string[]; /** * Options. */ type CallbackReturnOptions$2 = [CallbackReturnOption$2?]; /** * Require `return` statements after callbacks. * * @deprecated * * @see [callback-return](https://eslint.org/docs/latest/rules/callback-return) */ type CallbackReturnRuleConfig$2 = RuleConfig; /** * Require `return` statements after callbacks. * * @deprecated * * @see [callback-return](https://eslint.org/docs/latest/rules/callback-return) */ interface CallbackReturnRule$2 { /** * Require `return` statements after callbacks. * * @deprecated * * @see [callback-return](https://eslint.org/docs/latest/rules/callback-return) */ 'callback-return': CallbackReturnRuleConfig$2; } /** * Option. */ interface CamelcaseOption$1 { ignoreDestructuring?: boolean; ignoreImports?: boolean; ignoreGlobals?: boolean; properties?: 'always' | 'never'; /** * @minItems 0 */ allow?: [] | [string]; } /** * Options. */ type CamelcaseOptions$1 = [CamelcaseOption$1?]; /** * Enforce camelcase naming convention. * * @see [camelcase](https://eslint.org/docs/latest/rules/camelcase) */ type CamelcaseRuleConfig$1 = RuleConfig; /** * Enforce camelcase naming convention. * * @see [camelcase](https://eslint.org/docs/latest/rules/camelcase) */ interface CamelcaseRule$1 { /** * Enforce camelcase naming convention. * * @see [camelcase](https://eslint.org/docs/latest/rules/camelcase) */ camelcase: CamelcaseRuleConfig$1; } /** * Config. */ type CapitalizedCommentsConfig = | { ignorePattern?: string; ignoreInlineComments?: boolean; ignoreConsecutiveComments?: boolean; } | { line?: { ignorePattern?: string; ignoreInlineComments?: boolean; ignoreConsecutiveComments?: boolean; }; block?: { ignorePattern?: string; ignoreInlineComments?: boolean; ignoreConsecutiveComments?: boolean; }; }; /** * Option. */ type CapitalizedCommentsOption = 'always' | 'never'; /** * Options. */ type CapitalizedCommentsOptions = [ CapitalizedCommentsOption?, CapitalizedCommentsConfig?, ]; /** * Enforce or disallow capitalization of the first letter of a comment. * * @see [capitalized-comments](https://eslint.org/docs/latest/rules/capitalized-comments) */ type CapitalizedCommentsRuleConfig = RuleConfig; /** * Enforce or disallow capitalization of the first letter of a comment. * * @see [capitalized-comments](https://eslint.org/docs/latest/rules/capitalized-comments) */ interface CapitalizedCommentsRule { /** * Enforce or disallow capitalization of the first letter of a comment. * * @see [capitalized-comments](https://eslint.org/docs/latest/rules/capitalized-comments) */ 'capitalized-comments': CapitalizedCommentsRuleConfig; } /** * Option. */ interface ClassMethodsUseThisOption$1 { exceptMethods?: string[]; enforceForClassFields?: boolean; } /** * Options. */ type ClassMethodsUseThisOptions$1 = [ClassMethodsUseThisOption$1?]; /** * Enforce that class methods utilize `this`. * * @see [class-methods-use-this](https://eslint.org/docs/latest/rules/class-methods-use-this) */ type ClassMethodsUseThisRuleConfig$1 = RuleConfig; /** * Enforce that class methods utilize `this`. * * @see [class-methods-use-this](https://eslint.org/docs/latest/rules/class-methods-use-this) */ interface ClassMethodsUseThisRule$1 { /** * Enforce that class methods utilize `this`. * * @see [class-methods-use-this](https://eslint.org/docs/latest/rules/class-methods-use-this) */ 'class-methods-use-this': ClassMethodsUseThisRuleConfig$1; } /** * Option. */ type CommaDangleOption$3 = | [] | [ | Value$4 | { arrays?: ValueWithIgnore$3; objects?: ValueWithIgnore$3; imports?: ValueWithIgnore$3; exports?: ValueWithIgnore$3; functions?: ValueWithIgnore$3; }, ]; type Value$4 = 'always-multiline' | 'always' | 'never' | 'only-multiline'; type ValueWithIgnore$3 = | 'always-multiline' | 'always' | 'ignore' | 'never' | 'only-multiline'; /** * Options. */ type CommaDangleOptions$3 = CommaDangleOption$3; /** * Require or disallow trailing commas. * * @see [comma-dangle](https://eslint.org/docs/latest/rules/comma-dangle) */ type CommaDangleRuleConfig$3 = RuleConfig; /** * Require or disallow trailing commas. * * @see [comma-dangle](https://eslint.org/docs/latest/rules/comma-dangle) */ interface CommaDangleRule$3 { /** * Require or disallow trailing commas. * * @see [comma-dangle](https://eslint.org/docs/latest/rules/comma-dangle) */ 'comma-dangle': CommaDangleRuleConfig$3; } /** * Option. */ interface CommaSpacingOption$2 { before?: boolean; after?: boolean; } /** * Options. */ type CommaSpacingOptions$2 = [CommaSpacingOption$2?]; /** * Enforce consistent spacing before and after commas. * * @see [comma-spacing](https://eslint.org/docs/latest/rules/comma-spacing) */ type CommaSpacingRuleConfig$2 = RuleConfig; /** * Enforce consistent spacing before and after commas. * * @see [comma-spacing](https://eslint.org/docs/latest/rules/comma-spacing) */ interface CommaSpacingRule$2 { /** * Enforce consistent spacing before and after commas. * * @see [comma-spacing](https://eslint.org/docs/latest/rules/comma-spacing) */ 'comma-spacing': CommaSpacingRuleConfig$2; } /** * Config. */ interface CommaStyleConfig$2 { exceptions?: { [k: string]: boolean; }; } /** * Option. */ type CommaStyleOption$2 = 'first' | 'last'; /** * Options. */ type CommaStyleOptions$2 = [CommaStyleOption$2?, CommaStyleConfig$2?]; /** * Enforce consistent comma style. * * @see [comma-style](https://eslint.org/docs/latest/rules/comma-style) */ type CommaStyleRuleConfig$2 = RuleConfig; /** * Enforce consistent comma style. * * @see [comma-style](https://eslint.org/docs/latest/rules/comma-style) */ interface CommaStyleRule$2 { /** * Enforce consistent comma style. * * @see [comma-style](https://eslint.org/docs/latest/rules/comma-style) */ 'comma-style': CommaStyleRuleConfig$2; } /** * Option. */ type ComplexityOption = | number | { maximum?: number; max?: number; }; /** * Options. */ type ComplexityOptions = [ComplexityOption?]; /** * Enforce a maximum cyclomatic complexity allowed in a program. * * @see [complexity](https://eslint.org/docs/latest/rules/complexity) */ type ComplexityRuleConfig = RuleConfig; /** * Enforce a maximum cyclomatic complexity allowed in a program. * * @see [complexity](https://eslint.org/docs/latest/rules/complexity) */ interface ComplexityRule { /** * Enforce a maximum cyclomatic complexity allowed in a program. * * @see [complexity](https://eslint.org/docs/latest/rules/complexity) */ complexity: ComplexityRuleConfig; } /** * Config. */ interface ComputedPropertySpacingConfig { enforceForClassMembers?: boolean; } /** * Option. */ type ComputedPropertySpacingOption = 'always' | 'never'; /** * Options. */ type ComputedPropertySpacingOptions = [ ComputedPropertySpacingOption?, ComputedPropertySpacingConfig?, ]; /** * Enforce consistent spacing inside computed property brackets. * * @see [computed-property-spacing](https://eslint.org/docs/latest/rules/computed-property-spacing) */ type ComputedPropertySpacingRuleConfig = RuleConfig; /** * Enforce consistent spacing inside computed property brackets. * * @see [computed-property-spacing](https://eslint.org/docs/latest/rules/computed-property-spacing) */ interface ComputedPropertySpacingRule { /** * Enforce consistent spacing inside computed property brackets. * * @see [computed-property-spacing](https://eslint.org/docs/latest/rules/computed-property-spacing) */ 'computed-property-spacing': ComputedPropertySpacingRuleConfig; } /** * Option. */ interface ConsistentReturnOption { treatUndefinedAsUnspecified?: boolean; } /** * Options. */ type ConsistentReturnOptions = [ConsistentReturnOption?]; /** * Require `return` statements to either always or never specify values. * * @see [consistent-return](https://eslint.org/docs/latest/rules/consistent-return) */ type ConsistentReturnRuleConfig = RuleConfig; /** * Require `return` statements to either always or never specify values. * * @see [consistent-return](https://eslint.org/docs/latest/rules/consistent-return) */ interface ConsistentReturnRule { /** * Require `return` statements to either always or never specify values. * * @see [consistent-return](https://eslint.org/docs/latest/rules/consistent-return) */ 'consistent-return': ConsistentReturnRuleConfig; } /** * Option. */ type ConsistentThisOption = string[]; /** * Options. */ type ConsistentThisOptions = ConsistentThisOption; /** * Enforce consistent naming when capturing the current execution context. * * @see [consistent-this](https://eslint.org/docs/latest/rules/consistent-this) */ type ConsistentThisRuleConfig = RuleConfig; /** * Enforce consistent naming when capturing the current execution context. * * @see [consistent-this](https://eslint.org/docs/latest/rules/consistent-this) */ interface ConsistentThisRule { /** * Enforce consistent naming when capturing the current execution context. * * @see [consistent-this](https://eslint.org/docs/latest/rules/consistent-this) */ 'consistent-this': ConsistentThisRuleConfig; } /** * Require `super()` calls in constructors. * * @see [constructor-super](https://eslint.org/docs/latest/rules/constructor-super) */ type ConstructorSuperRuleConfig = RuleConfig<[]>; /** * Require `super()` calls in constructors. * * @see [constructor-super](https://eslint.org/docs/latest/rules/constructor-super) */ interface ConstructorSuperRule { /** * Require `super()` calls in constructors. * * @see [constructor-super](https://eslint.org/docs/latest/rules/constructor-super) */ 'constructor-super': ConstructorSuperRuleConfig; } /** * Option. */ type CurlyOption = | [] | ['all'] | [] | ['multi' | 'multi-line' | 'multi-or-nest'] | ['multi' | 'multi-line' | 'multi-or-nest', 'consistent']; /** * Options. */ type CurlyOptions = CurlyOption; /** * Enforce consistent brace style for all control statements. * * @see [curly](https://eslint.org/docs/latest/rules/curly) */ type CurlyRuleConfig = RuleConfig; /** * Enforce consistent brace style for all control statements. * * @see [curly](https://eslint.org/docs/latest/rules/curly) */ interface CurlyRule { /** * Enforce consistent brace style for all control statements. * * @see [curly](https://eslint.org/docs/latest/rules/curly) */ curly: CurlyRuleConfig; } /** * Option. */ interface DefaultCaseOption { commentPattern?: string; } /** * Options. */ type DefaultCaseOptions = [DefaultCaseOption?]; /** * Require `default` cases in `switch` statements. * * @see [default-case](https://eslint.org/docs/latest/rules/default-case) */ type DefaultCaseRuleConfig = RuleConfig; /** * Require `default` cases in `switch` statements. * * @see [default-case](https://eslint.org/docs/latest/rules/default-case) */ interface DefaultCaseRule { /** * Require `default` cases in `switch` statements. * * @see [default-case](https://eslint.org/docs/latest/rules/default-case) */ 'default-case': DefaultCaseRuleConfig; } /** * Enforce default clauses in switch statements to be last. * * @see [default-case-last](https://eslint.org/docs/latest/rules/default-case-last) */ type DefaultCaseLastRuleConfig = RuleConfig<[]>; /** * Enforce default clauses in switch statements to be last. * * @see [default-case-last](https://eslint.org/docs/latest/rules/default-case-last) */ interface DefaultCaseLastRule { /** * Enforce default clauses in switch statements to be last. * * @see [default-case-last](https://eslint.org/docs/latest/rules/default-case-last) */ 'default-case-last': DefaultCaseLastRuleConfig; } /** * Enforce default parameters to be last. * * @see [default-param-last](https://eslint.org/docs/latest/rules/default-param-last) */ type DefaultParamLastRuleConfig$1 = RuleConfig<[]>; /** * Enforce default parameters to be last. * * @see [default-param-last](https://eslint.org/docs/latest/rules/default-param-last) */ interface DefaultParamLastRule$1 { /** * Enforce default parameters to be last. * * @see [default-param-last](https://eslint.org/docs/latest/rules/default-param-last) */ 'default-param-last': DefaultParamLastRuleConfig$1; } /** * Option. */ type DotLocationOption$1 = 'object' | 'property'; /** * Options. */ type DotLocationOptions$1 = [DotLocationOption$1?]; /** * Enforce consistent newlines before and after dots. * * @see [dot-location](https://eslint.org/docs/latest/rules/dot-location) */ type DotLocationRuleConfig$1 = RuleConfig; /** * Enforce consistent newlines before and after dots. * * @see [dot-location](https://eslint.org/docs/latest/rules/dot-location) */ interface DotLocationRule$1 { /** * Enforce consistent newlines before and after dots. * * @see [dot-location](https://eslint.org/docs/latest/rules/dot-location) */ 'dot-location': DotLocationRuleConfig$1; } /** * Option. */ interface DotNotationOption$2 { allowKeywords?: boolean; allowPattern?: string; } /** * Options. */ type DotNotationOptions$2 = [DotNotationOption$2?]; /** * Enforce dot notation whenever possible. * * @see [dot-notation](https://eslint.org/docs/latest/rules/dot-notation) */ type DotNotationRuleConfig$2 = RuleConfig; /** * Enforce dot notation whenever possible. * * @see [dot-notation](https://eslint.org/docs/latest/rules/dot-notation) */ interface DotNotationRule$2 { /** * Enforce dot notation whenever possible. * * @see [dot-notation](https://eslint.org/docs/latest/rules/dot-notation) */ 'dot-notation': DotNotationRuleConfig$2; } /** * Option. */ type EolLastOption = 'always' | 'never' | 'unix' | 'windows'; /** * Options. */ type EolLastOptions = [EolLastOption?]; /** * Require or disallow newline at the end of files. * * @see [eol-last](https://eslint.org/docs/latest/rules/eol-last) */ type EolLastRuleConfig = RuleConfig; /** * Require or disallow newline at the end of files. * * @see [eol-last](https://eslint.org/docs/latest/rules/eol-last) */ interface EolLastRule { /** * Require or disallow newline at the end of files. * * @see [eol-last](https://eslint.org/docs/latest/rules/eol-last) */ 'eol-last': EolLastRuleConfig; } /** * Option. */ type EqeqeqOption$1 = | [] | ['always'] | [ 'always', { null?: 'always' | 'never' | 'ignore'; }, ] | [] | ['smart' | 'allow-null']; /** * Options. */ type EqeqeqOptions$1 = EqeqeqOption$1; /** * Require the use of `===` and `!==`. * * @see [eqeqeq](https://eslint.org/docs/latest/rules/eqeqeq) */ type EqeqeqRuleConfig$1 = RuleConfig; /** * Require the use of `===` and `!==`. * * @see [eqeqeq](https://eslint.org/docs/latest/rules/eqeqeq) */ interface EqeqeqRule$1 { /** * Require the use of `===` and `!==`. * * @see [eqeqeq](https://eslint.org/docs/latest/rules/eqeqeq) */ eqeqeq: EqeqeqRuleConfig$1; } /** * Enforce "for" loop update clause moving the counter in the right direction. * * @see [for-direction](https://eslint.org/docs/latest/rules/for-direction) */ type ForDirectionRuleConfig = RuleConfig<[]>; /** * Enforce "for" loop update clause moving the counter in the right direction. * * @see [for-direction](https://eslint.org/docs/latest/rules/for-direction) */ interface ForDirectionRule { /** * Enforce "for" loop update clause moving the counter in the right direction. * * @see [for-direction](https://eslint.org/docs/latest/rules/for-direction) */ 'for-direction': ForDirectionRuleConfig; } /** * Option. */ type FuncCallSpacingOption$2 = | [] | ['never'] | [] | ['always'] | [ 'always', { allowNewlines?: boolean; }, ]; /** * Options. */ type FuncCallSpacingOptions$2 = FuncCallSpacingOption$2; /** * Require or disallow spacing between function identifiers and their invocations. * * @see [func-call-spacing](https://eslint.org/docs/latest/rules/func-call-spacing) */ type FuncCallSpacingRuleConfig$2 = RuleConfig; /** * Require or disallow spacing between function identifiers and their invocations. * * @see [func-call-spacing](https://eslint.org/docs/latest/rules/func-call-spacing) */ interface FuncCallSpacingRule$2 { /** * Require or disallow spacing between function identifiers and their invocations. * * @see [func-call-spacing](https://eslint.org/docs/latest/rules/func-call-spacing) */ 'func-call-spacing': FuncCallSpacingRuleConfig$2; } /** * Option. */ type FuncNameMatchingOption = | [] | ['always' | 'never'] | [ 'always' | 'never', { considerPropertyDescriptor?: boolean; includeCommonJSModuleExports?: boolean; }, ] | [] | [ { considerPropertyDescriptor?: boolean; includeCommonJSModuleExports?: boolean; }, ]; /** * Options. */ type FuncNameMatchingOptions = FuncNameMatchingOption; /** * Require function names to match the name of the variable or property to which they are assigned. * * @see [func-name-matching](https://eslint.org/docs/latest/rules/func-name-matching) */ type FuncNameMatchingRuleConfig = RuleConfig; /** * Require function names to match the name of the variable or property to which they are assigned. * * @see [func-name-matching](https://eslint.org/docs/latest/rules/func-name-matching) */ interface FuncNameMatchingRule { /** * Require function names to match the name of the variable or property to which they are assigned. * * @see [func-name-matching](https://eslint.org/docs/latest/rules/func-name-matching) */ 'func-name-matching': FuncNameMatchingRuleConfig; } /** * Option. */ type FuncNamesOption = | [] | [Value$3] | [ Value$3, { generators?: Value$3; }, ]; type Value$3 = 'always' | 'as-needed' | 'never'; /** * Options. */ type FuncNamesOptions = FuncNamesOption; /** * Require or disallow named `function` expressions. * * @see [func-names](https://eslint.org/docs/latest/rules/func-names) */ type FuncNamesRuleConfig = RuleConfig; /** * Require or disallow named `function` expressions. * * @see [func-names](https://eslint.org/docs/latest/rules/func-names) */ interface FuncNamesRule { /** * Require or disallow named `function` expressions. * * @see [func-names](https://eslint.org/docs/latest/rules/func-names) */ 'func-names': FuncNamesRuleConfig; } /** * Config. */ interface FuncStyleConfig { allowArrowFunctions?: boolean; } /** * Option. */ type FuncStyleOption = 'declaration' | 'expression'; /** * Options. */ type FuncStyleOptions = [FuncStyleOption?, FuncStyleConfig?]; /** * Enforce the consistent use of either `function` declarations or expressions. * * @see [func-style](https://eslint.org/docs/latest/rules/func-style) */ type FuncStyleRuleConfig = RuleConfig; /** * Enforce the consistent use of either `function` declarations or expressions. * * @see [func-style](https://eslint.org/docs/latest/rules/func-style) */ interface FuncStyleRule { /** * Enforce the consistent use of either `function` declarations or expressions. * * @see [func-style](https://eslint.org/docs/latest/rules/func-style) */ 'func-style': FuncStyleRuleConfig; } /** * Option. */ type FunctionCallArgumentNewlineOption = | 'always' | 'never' | 'consistent'; /** * Options. */ type FunctionCallArgumentNewlineOptions = [ FunctionCallArgumentNewlineOption?, ]; /** * Enforce line breaks between arguments of a function call. * * @see [function-call-argument-newline](https://eslint.org/docs/latest/rules/function-call-argument-newline) */ type FunctionCallArgumentNewlineRuleConfig = RuleConfig; /** * Enforce line breaks between arguments of a function call. * * @see [function-call-argument-newline](https://eslint.org/docs/latest/rules/function-call-argument-newline) */ interface FunctionCallArgumentNewlineRule { /** * Enforce line breaks between arguments of a function call. * * @see [function-call-argument-newline](https://eslint.org/docs/latest/rules/function-call-argument-newline) */ 'function-call-argument-newline': FunctionCallArgumentNewlineRuleConfig; } /** * Option. */ type FunctionParenNewlineOption = | ('always' | 'never' | 'consistent' | 'multiline' | 'multiline-arguments') | { minItems?: number; }; /** * Options. */ type FunctionParenNewlineOptions = [FunctionParenNewlineOption?]; /** * Enforce consistent line breaks inside function parentheses. * * @see [function-paren-newline](https://eslint.org/docs/latest/rules/function-paren-newline) */ type FunctionParenNewlineRuleConfig = RuleConfig; /** * Enforce consistent line breaks inside function parentheses. * * @see [function-paren-newline](https://eslint.org/docs/latest/rules/function-paren-newline) */ interface FunctionParenNewlineRule { /** * Enforce consistent line breaks inside function parentheses. * * @see [function-paren-newline](https://eslint.org/docs/latest/rules/function-paren-newline) */ 'function-paren-newline': FunctionParenNewlineRuleConfig; } /** * Option. */ type GeneratorStarSpacingOption = | ('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; }; }; /** * Options. */ type GeneratorStarSpacingOptions = [GeneratorStarSpacingOption?]; /** * Enforce consistent spacing around `*` operators in generator functions. * * @see [generator-star-spacing](https://eslint.org/docs/latest/rules/generator-star-spacing) */ type GeneratorStarSpacingRuleConfig = RuleConfig; /** * Enforce consistent spacing around `*` operators in generator functions. * * @see [generator-star-spacing](https://eslint.org/docs/latest/rules/generator-star-spacing) */ interface GeneratorStarSpacingRule { /** * Enforce consistent spacing around `*` operators in generator functions. * * @see [generator-star-spacing](https://eslint.org/docs/latest/rules/generator-star-spacing) */ 'generator-star-spacing': GeneratorStarSpacingRuleConfig; } /** * Option. */ interface GetterReturnOption { allowImplicit?: boolean; } /** * Options. */ type GetterReturnOptions = [GetterReturnOption?]; /** * Enforce `return` statements in getters. * * @see [getter-return](https://eslint.org/docs/latest/rules/getter-return) */ type GetterReturnRuleConfig = RuleConfig; /** * Enforce `return` statements in getters. * * @see [getter-return](https://eslint.org/docs/latest/rules/getter-return) */ interface GetterReturnRule { /** * Enforce `return` statements in getters. * * @see [getter-return](https://eslint.org/docs/latest/rules/getter-return) */ 'getter-return': GetterReturnRuleConfig; } /** * Require `require()` calls to be placed at top-level module scope. * * @deprecated * * @see [global-require](https://eslint.org/docs/latest/rules/global-require) */ type GlobalRequireRuleConfig$2 = RuleConfig<[]>; /** * Require `require()` calls to be placed at top-level module scope. * * @deprecated * * @see [global-require](https://eslint.org/docs/latest/rules/global-require) */ interface GlobalRequireRule$2 { /** * Require `require()` calls to be placed at top-level module scope. * * @deprecated * * @see [global-require](https://eslint.org/docs/latest/rules/global-require) */ 'global-require': GlobalRequireRuleConfig$2; } /** * Option. */ type GroupedAccessorPairsOption = | 'anyOrder' | 'getBeforeSet' | 'setBeforeGet'; /** * Options. */ type GroupedAccessorPairsOptions = [GroupedAccessorPairsOption?]; /** * Require grouped accessor pairs in object literals and classes. * * @see [grouped-accessor-pairs](https://eslint.org/docs/latest/rules/grouped-accessor-pairs) */ type GroupedAccessorPairsRuleConfig = RuleConfig; /** * Require grouped accessor pairs in object literals and classes. * * @see [grouped-accessor-pairs](https://eslint.org/docs/latest/rules/grouped-accessor-pairs) */ interface GroupedAccessorPairsRule { /** * Require grouped accessor pairs in object literals and classes. * * @see [grouped-accessor-pairs](https://eslint.org/docs/latest/rules/grouped-accessor-pairs) */ 'grouped-accessor-pairs': GroupedAccessorPairsRuleConfig; } /** * Require `for-in` loops to include an `if` statement. * * @see [guard-for-in](https://eslint.org/docs/latest/rules/guard-for-in) */ type GuardForInRuleConfig = RuleConfig<[]>; /** * Require `for-in` loops to include an `if` statement. * * @see [guard-for-in](https://eslint.org/docs/latest/rules/guard-for-in) */ interface GuardForInRule { /** * Require `for-in` loops to include an `if` statement. * * @see [guard-for-in](https://eslint.org/docs/latest/rules/guard-for-in) */ 'guard-for-in': GuardForInRuleConfig; } /** * Option. */ type HandleCallbackErrOption$2 = string; /** * Options. */ type HandleCallbackErrOptions$2 = [HandleCallbackErrOption$2?]; /** * Require error handling in callbacks. * * @deprecated * * @see [handle-callback-err](https://eslint.org/docs/latest/rules/handle-callback-err) */ type HandleCallbackErrRuleConfig$2 = RuleConfig; /** * Require error handling in callbacks. * * @deprecated * * @see [handle-callback-err](https://eslint.org/docs/latest/rules/handle-callback-err) */ interface HandleCallbackErrRule$2 { /** * Require error handling in callbacks. * * @deprecated * * @see [handle-callback-err](https://eslint.org/docs/latest/rules/handle-callback-err) */ 'handle-callback-err': HandleCallbackErrRuleConfig$2; } /** * Option. */ type IdBlacklistOption = string[]; /** * Options. */ type IdBlacklistOptions = IdBlacklistOption; /** * Disallow specified identifiers. * * @deprecated * * @see [id-blacklist](https://eslint.org/docs/latest/rules/id-blacklist) */ type IdBlacklistRuleConfig = RuleConfig; /** * Disallow specified identifiers. * * @deprecated * * @see [id-blacklist](https://eslint.org/docs/latest/rules/id-blacklist) */ interface IdBlacklistRule { /** * Disallow specified identifiers. * * @deprecated * * @see [id-blacklist](https://eslint.org/docs/latest/rules/id-blacklist) */ 'id-blacklist': IdBlacklistRuleConfig; } /** * Option. */ type IdDenylistOption = string[]; /** * Options. */ type IdDenylistOptions = IdDenylistOption; /** * Disallow specified identifiers. * * @see [id-denylist](https://eslint.org/docs/latest/rules/id-denylist) */ type IdDenylistRuleConfig = RuleConfig; /** * Disallow specified identifiers. * * @see [id-denylist](https://eslint.org/docs/latest/rules/id-denylist) */ interface IdDenylistRule { /** * Disallow specified identifiers. * * @see [id-denylist](https://eslint.org/docs/latest/rules/id-denylist) */ 'id-denylist': IdDenylistRuleConfig; } /** * Option. */ interface IdLengthOption { min?: number; max?: number; exceptions?: string[]; exceptionPatterns?: string[]; properties?: 'always' | 'never'; } /** * Options. */ type IdLengthOptions = [IdLengthOption?]; /** * Enforce minimum and maximum identifier lengths. * * @see [id-length](https://eslint.org/docs/latest/rules/id-length) */ type IdLengthRuleConfig = RuleConfig; /** * Enforce minimum and maximum identifier lengths. * * @see [id-length](https://eslint.org/docs/latest/rules/id-length) */ interface IdLengthRule { /** * Enforce minimum and maximum identifier lengths. * * @see [id-length](https://eslint.org/docs/latest/rules/id-length) */ 'id-length': IdLengthRuleConfig; } /** * Config. */ interface IdMatchConfig { properties?: boolean; classFields?: boolean; onlyDeclarations?: boolean; ignoreDestructuring?: boolean; } /** * Option. */ type IdMatchOption = string; /** * Options. */ type IdMatchOptions = [IdMatchOption?, IdMatchConfig?]; /** * Require identifiers to match a specified regular expression. * * @see [id-match](https://eslint.org/docs/latest/rules/id-match) */ type IdMatchRuleConfig = RuleConfig; /** * Require identifiers to match a specified regular expression. * * @see [id-match](https://eslint.org/docs/latest/rules/id-match) */ interface IdMatchRule { /** * Require identifiers to match a specified regular expression. * * @see [id-match](https://eslint.org/docs/latest/rules/id-match) */ 'id-match': IdMatchRuleConfig; } /** * Option. */ type ImplicitArrowLinebreakOption = 'beside' | 'below'; /** * Options. */ type ImplicitArrowLinebreakOptions = [ImplicitArrowLinebreakOption?]; /** * Enforce the location of arrow function bodies. * * @see [implicit-arrow-linebreak](https://eslint.org/docs/latest/rules/implicit-arrow-linebreak) */ type ImplicitArrowLinebreakRuleConfig = RuleConfig; /** * Enforce the location of arrow function bodies. * * @see [implicit-arrow-linebreak](https://eslint.org/docs/latest/rules/implicit-arrow-linebreak) */ interface ImplicitArrowLinebreakRule { /** * Enforce the location of arrow function bodies. * * @see [implicit-arrow-linebreak](https://eslint.org/docs/latest/rules/implicit-arrow-linebreak) */ 'implicit-arrow-linebreak': ImplicitArrowLinebreakRuleConfig; } /** * Config. */ interface IndentConfig$3 { 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; } /** * Option. */ type IndentOption$3 = 'tab' | number; /** * Options. */ type IndentOptions$3 = [IndentOption$3?, IndentConfig$3?]; /** * Enforce consistent indentation. * * @see [indent](https://eslint.org/docs/latest/rules/indent) */ type IndentRuleConfig$3 = RuleConfig; /** * Enforce consistent indentation. * * @see [indent](https://eslint.org/docs/latest/rules/indent) */ interface IndentRule$3 { /** * Enforce consistent indentation. * * @see [indent](https://eslint.org/docs/latest/rules/indent) */ indent: IndentRuleConfig$3; } /** * Config. */ interface IndentLegacyConfig { SwitchCase?: number; VariableDeclarator?: | number | { var?: number; let?: number; const?: number; [k: string]: any; }; outerIIFEBody?: number; MemberExpression?: number; FunctionDeclaration?: { parameters?: number | 'first'; body?: number; [k: string]: any; }; FunctionExpression?: { parameters?: number | 'first'; body?: number; [k: string]: any; }; CallExpression?: { parameters?: number | 'first'; [k: string]: any; }; ArrayExpression?: number | 'first'; ObjectExpression?: number | 'first'; } /** * Option. */ type IndentLegacyOption = 'tab' | number; /** * Options. */ type IndentLegacyOptions = [IndentLegacyOption?, IndentLegacyConfig?]; /** * Enforce consistent indentation. * * @deprecated * * @see [indent-legacy](https://eslint.org/docs/latest/rules/indent-legacy) */ type IndentLegacyRuleConfig = RuleConfig; /** * Enforce consistent indentation. * * @deprecated * * @see [indent-legacy](https://eslint.org/docs/latest/rules/indent-legacy) */ interface IndentLegacyRule { /** * Enforce consistent indentation. * * @deprecated * * @see [indent-legacy](https://eslint.org/docs/latest/rules/indent-legacy) */ 'indent-legacy': IndentLegacyRuleConfig; } /** * Option. */ type InitDeclarationsOption$1 = | [] | ['always'] | [] | ['never'] | [ 'never', { ignoreForLoopInit?: boolean; }, ]; /** * Options. */ type InitDeclarationsOptions$1 = InitDeclarationsOption$1; /** * Require or disallow initialization in variable declarations. * * @see [init-declarations](https://eslint.org/docs/latest/rules/init-declarations) */ type InitDeclarationsRuleConfig$1 = RuleConfig; /** * Require or disallow initialization in variable declarations. * * @see [init-declarations](https://eslint.org/docs/latest/rules/init-declarations) */ interface InitDeclarationsRule$1 { /** * Require or disallow initialization in variable declarations. * * @see [init-declarations](https://eslint.org/docs/latest/rules/init-declarations) */ 'init-declarations': InitDeclarationsRuleConfig$1; } /** * Option. */ type JsxQuotesOption = 'prefer-single' | 'prefer-double'; /** * Options. */ type JsxQuotesOptions = [JsxQuotesOption?]; /** * Enforce the consistent use of either double or single quotes in JSX attributes. * * @see [jsx-quotes](https://eslint.org/docs/latest/rules/jsx-quotes) */ type JsxQuotesRuleConfig = RuleConfig; /** * Enforce the consistent use of either double or single quotes in JSX attributes. * * @see [jsx-quotes](https://eslint.org/docs/latest/rules/jsx-quotes) */ interface JsxQuotesRule { /** * Enforce the consistent use of either double or single quotes in JSX attributes. * * @see [jsx-quotes](https://eslint.org/docs/latest/rules/jsx-quotes) */ 'jsx-quotes': JsxQuotesRuleConfig; } /** * Option. */ type KeySpacingOption$4 = | { 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; }; }; /** * Options. */ type KeySpacingOptions$4 = [KeySpacingOption$4?]; /** * Enforce consistent spacing between keys and values in object literal properties. * * @see [key-spacing](https://eslint.org/docs/latest/rules/key-spacing) */ type KeySpacingRuleConfig$4 = RuleConfig; /** * Enforce consistent spacing between keys and values in object literal properties. * * @see [key-spacing](https://eslint.org/docs/latest/rules/key-spacing) */ interface KeySpacingRule$4 { /** * Enforce consistent spacing between keys and values in object literal properties. * * @see [key-spacing](https://eslint.org/docs/latest/rules/key-spacing) */ 'key-spacing': KeySpacingRuleConfig$4; } /** * Option. */ interface KeywordSpacingOption$2 { 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; }; }; } /** * Options. */ type KeywordSpacingOptions$2 = [KeywordSpacingOption$2?]; /** * Enforce consistent spacing before and after keywords. * * @see [keyword-spacing](https://eslint.org/docs/latest/rules/keyword-spacing) */ type KeywordSpacingRuleConfig$2 = RuleConfig; /** * Enforce consistent spacing before and after keywords. * * @see [keyword-spacing](https://eslint.org/docs/latest/rules/keyword-spacing) */ interface KeywordSpacingRule$2 { /** * Enforce consistent spacing before and after keywords. * * @see [keyword-spacing](https://eslint.org/docs/latest/rules/keyword-spacing) */ 'keyword-spacing': KeywordSpacingRuleConfig$2; } /** * Option. */ type LineCommentPositionOption = | ('above' | 'beside') | { position?: 'above' | 'beside'; ignorePattern?: string; applyDefaultPatterns?: boolean; applyDefaultIgnorePatterns?: boolean; }; /** * Options. */ type LineCommentPositionOptions = [LineCommentPositionOption?]; /** * Enforce position of line comments. * * @see [line-comment-position](https://eslint.org/docs/latest/rules/line-comment-position) */ type LineCommentPositionRuleConfig = RuleConfig; /** * Enforce position of line comments. * * @see [line-comment-position](https://eslint.org/docs/latest/rules/line-comment-position) */ interface LineCommentPositionRule { /** * Enforce position of line comments. * * @see [line-comment-position](https://eslint.org/docs/latest/rules/line-comment-position) */ 'line-comment-position': LineCommentPositionRuleConfig; } /** * Option. */ type LinebreakStyleOption = 'unix' | 'windows'; /** * Options. */ type LinebreakStyleOptions = [LinebreakStyleOption?]; /** * Enforce consistent linebreak style. * * @see [linebreak-style](https://eslint.org/docs/latest/rules/linebreak-style) */ type LinebreakStyleRuleConfig = RuleConfig; /** * Enforce consistent linebreak style. * * @see [linebreak-style](https://eslint.org/docs/latest/rules/linebreak-style) */ interface LinebreakStyleRule { /** * Enforce consistent linebreak style. * * @see [linebreak-style](https://eslint.org/docs/latest/rules/linebreak-style) */ 'linebreak-style': LinebreakStyleRuleConfig; } /** * Option. */ interface LinesAroundCommentOption$1 { 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; } /** * Options. */ type LinesAroundCommentOptions$1 = [LinesAroundCommentOption$1?]; /** * Require empty lines around comments. * * @see [lines-around-comment](https://eslint.org/docs/latest/rules/lines-around-comment) */ type LinesAroundCommentRuleConfig$1 = RuleConfig; /** * Require empty lines around comments. * * @see [lines-around-comment](https://eslint.org/docs/latest/rules/lines-around-comment) */ interface LinesAroundCommentRule$1 { /** * Require empty lines around comments. * * @see [lines-around-comment](https://eslint.org/docs/latest/rules/lines-around-comment) */ 'lines-around-comment': LinesAroundCommentRuleConfig$1; } /** * Option. */ type LinesAroundDirectiveOption = | ('always' | 'never') | { before?: 'always' | 'never'; after?: 'always' | 'never'; }; /** * Options. */ type LinesAroundDirectiveOptions = [LinesAroundDirectiveOption?]; /** * Require or disallow newlines around directives. * * @deprecated * * @see [lines-around-directive](https://eslint.org/docs/latest/rules/lines-around-directive) */ type LinesAroundDirectiveRuleConfig = RuleConfig; /** * Require or disallow newlines around directives. * * @deprecated * * @see [lines-around-directive](https://eslint.org/docs/latest/rules/lines-around-directive) */ interface LinesAroundDirectiveRule { /** * Require or disallow newlines around directives. * * @deprecated * * @see [lines-around-directive](https://eslint.org/docs/latest/rules/lines-around-directive) */ 'lines-around-directive': LinesAroundDirectiveRuleConfig; } /** * Config. */ interface LinesBetweenClassMembersConfig$1 { exceptAfterSingleLine?: boolean; } /** * Option. */ type LinesBetweenClassMembersOption$1 = | { /** * @minItems 1 */ enforce: [ { blankLine: 'always' | 'never'; prev: 'method' | 'field' | '*'; next: 'method' | 'field' | '*'; }, ...{ blankLine: 'always' | 'never'; prev: 'method' | 'field' | '*'; next: 'method' | 'field' | '*'; }[], ]; } | ('always' | 'never'); /** * Options. */ type LinesBetweenClassMembersOptions$1 = [ LinesBetweenClassMembersOption$1?, LinesBetweenClassMembersConfig$1?, ]; /** * Require or disallow an empty line between class members. * * @see [lines-between-class-members](https://eslint.org/docs/latest/rules/lines-between-class-members) */ type LinesBetweenClassMembersRuleConfig$1 = RuleConfig; /** * Require or disallow an empty line between class members. * * @see [lines-between-class-members](https://eslint.org/docs/latest/rules/lines-between-class-members) */ interface LinesBetweenClassMembersRule$1 { /** * Require or disallow an empty line between class members. * * @see [lines-between-class-members](https://eslint.org/docs/latest/rules/lines-between-class-members) */ 'lines-between-class-members': LinesBetweenClassMembersRuleConfig$1; } /** * Option. */ type LogicalAssignmentOperatorsOption = ( | [] | ['always'] | [ 'always', { enforceForIfStatements?: boolean; }, ] | ['never'] ) & any[]; /** * Options. */ type LogicalAssignmentOperatorsOptions = LogicalAssignmentOperatorsOption; /** * Require or disallow logical assignment operator shorthand. * * @see [logical-assignment-operators](https://eslint.org/docs/latest/rules/logical-assignment-operators) */ type LogicalAssignmentOperatorsRuleConfig = RuleConfig; /** * Require or disallow logical assignment operator shorthand. * * @see [logical-assignment-operators](https://eslint.org/docs/latest/rules/logical-assignment-operators) */ interface LogicalAssignmentOperatorsRule { /** * Require or disallow logical assignment operator shorthand. * * @see [logical-assignment-operators](https://eslint.org/docs/latest/rules/logical-assignment-operators) */ 'logical-assignment-operators': LogicalAssignmentOperatorsRuleConfig; } /** * Option. */ type MaxClassesPerFileOption = | number | { ignoreExpressions?: boolean; max?: number; }; /** * Options. */ type MaxClassesPerFileOptions = [MaxClassesPerFileOption?]; /** * Enforce a maximum number of classes per file. * * @see [max-classes-per-file](https://eslint.org/docs/latest/rules/max-classes-per-file) */ type MaxClassesPerFileRuleConfig = RuleConfig; /** * Enforce a maximum number of classes per file. * * @see [max-classes-per-file](https://eslint.org/docs/latest/rules/max-classes-per-file) */ interface MaxClassesPerFileRule { /** * Enforce a maximum number of classes per file. * * @see [max-classes-per-file](https://eslint.org/docs/latest/rules/max-classes-per-file) */ 'max-classes-per-file': MaxClassesPerFileRuleConfig; } /** * Option. */ type MaxDepthOption = | number | { maximum?: number; max?: number; }; /** * Options. */ type MaxDepthOptions = [MaxDepthOption?]; /** * Enforce a maximum depth that blocks can be nested. * * @see [max-depth](https://eslint.org/docs/latest/rules/max-depth) */ type MaxDepthRuleConfig = RuleConfig; /** * Enforce a maximum depth that blocks can be nested. * * @see [max-depth](https://eslint.org/docs/latest/rules/max-depth) */ interface MaxDepthRule { /** * Enforce a maximum depth that blocks can be nested. * * @see [max-depth](https://eslint.org/docs/latest/rules/max-depth) */ 'max-depth': MaxDepthRuleConfig; } /** * Setting. */ interface MaxLenSetting$1 { code?: number; comments?: number; tabWidth?: number; ignorePattern?: string; ignoreComments?: boolean; ignoreStrings?: boolean; ignoreUrls?: boolean; ignoreTemplateLiterals?: boolean; ignoreRegExpLiterals?: boolean; ignoreTrailingComments?: boolean; } /** * Config. */ type MaxLenConfig$1 = | { code?: number; comments?: number; tabWidth?: number; ignorePattern?: string; ignoreComments?: boolean; ignoreStrings?: boolean; ignoreUrls?: boolean; ignoreTemplateLiterals?: boolean; ignoreRegExpLiterals?: boolean; ignoreTrailingComments?: boolean; } | number; /** * Option. */ type MaxLenOption$1 = | { code?: number; comments?: number; tabWidth?: number; ignorePattern?: string; ignoreComments?: boolean; ignoreStrings?: boolean; ignoreUrls?: boolean; ignoreTemplateLiterals?: boolean; ignoreRegExpLiterals?: boolean; ignoreTrailingComments?: boolean; } | number; /** * Options. */ type MaxLenOptions$1 = [MaxLenOption$1?, MaxLenConfig$1?, MaxLenSetting$1?]; /** * Enforce a maximum line length. * * @see [max-len](https://eslint.org/docs/latest/rules/max-len) */ type MaxLenRuleConfig$1 = RuleConfig; /** * Enforce a maximum line length. * * @see [max-len](https://eslint.org/docs/latest/rules/max-len) */ interface MaxLenRule$1 { /** * Enforce a maximum line length. * * @see [max-len](https://eslint.org/docs/latest/rules/max-len) */ 'max-len': MaxLenRuleConfig$1; } /** * Option. */ type MaxLinesOption = | number | { max?: number; skipComments?: boolean; skipBlankLines?: boolean; }; /** * Options. */ type MaxLinesOptions = [MaxLinesOption?]; /** * Enforce a maximum number of lines per file. * * @see [max-lines](https://eslint.org/docs/latest/rules/max-lines) */ type MaxLinesRuleConfig = RuleConfig; /** * Enforce a maximum number of lines per file. * * @see [max-lines](https://eslint.org/docs/latest/rules/max-lines) */ interface MaxLinesRule { /** * Enforce a maximum number of lines per file. * * @see [max-lines](https://eslint.org/docs/latest/rules/max-lines) */ 'max-lines': MaxLinesRuleConfig; } /** * Option. */ type MaxLinesPerFunctionOption = | { max?: number; skipComments?: boolean; skipBlankLines?: boolean; IIFEs?: boolean; } | number; /** * Options. */ type MaxLinesPerFunctionOptions = [MaxLinesPerFunctionOption?]; /** * Enforce a maximum number of lines of code in a function. * * @see [max-lines-per-function](https://eslint.org/docs/latest/rules/max-lines-per-function) */ type MaxLinesPerFunctionRuleConfig = RuleConfig; /** * Enforce a maximum number of lines of code in a function. * * @see [max-lines-per-function](https://eslint.org/docs/latest/rules/max-lines-per-function) */ interface MaxLinesPerFunctionRule { /** * Enforce a maximum number of lines of code in a function. * * @see [max-lines-per-function](https://eslint.org/docs/latest/rules/max-lines-per-function) */ 'max-lines-per-function': MaxLinesPerFunctionRuleConfig; } /** * Option. */ type MaxNestedCallbacksOption = | number | { maximum?: number; max?: number; }; /** * Options. */ type MaxNestedCallbacksOptions = [MaxNestedCallbacksOption?]; /** * Enforce a maximum depth that callbacks can be nested. * * @see [max-nested-callbacks](https://eslint.org/docs/latest/rules/max-nested-callbacks) */ type MaxNestedCallbacksRuleConfig = RuleConfig; /** * Enforce a maximum depth that callbacks can be nested. * * @see [max-nested-callbacks](https://eslint.org/docs/latest/rules/max-nested-callbacks) */ interface MaxNestedCallbacksRule { /** * Enforce a maximum depth that callbacks can be nested. * * @see [max-nested-callbacks](https://eslint.org/docs/latest/rules/max-nested-callbacks) */ 'max-nested-callbacks': MaxNestedCallbacksRuleConfig; } /** * Option. */ type MaxParamsOption = | number | { maximum?: number; max?: number; }; /** * Options. */ type MaxParamsOptions = [MaxParamsOption?]; /** * Enforce a maximum number of parameters in function definitions. * * @see [max-params](https://eslint.org/docs/latest/rules/max-params) */ type MaxParamsRuleConfig = RuleConfig; /** * Enforce a maximum number of parameters in function definitions. * * @see [max-params](https://eslint.org/docs/latest/rules/max-params) */ interface MaxParamsRule { /** * Enforce a maximum number of parameters in function definitions. * * @see [max-params](https://eslint.org/docs/latest/rules/max-params) */ 'max-params': MaxParamsRuleConfig; } /** * Config. */ interface MaxStatementsConfig { ignoreTopLevelFunctions?: boolean; } /** * Option. */ type MaxStatementsOption = | number | { maximum?: number; max?: number; }; /** * Options. */ type MaxStatementsOptions = [MaxStatementsOption?, MaxStatementsConfig?]; /** * Enforce a maximum number of statements allowed in function blocks. * * @see [max-statements](https://eslint.org/docs/latest/rules/max-statements) */ type MaxStatementsRuleConfig = RuleConfig; /** * Enforce a maximum number of statements allowed in function blocks. * * @see [max-statements](https://eslint.org/docs/latest/rules/max-statements) */ interface MaxStatementsRule { /** * Enforce a maximum number of statements allowed in function blocks. * * @see [max-statements](https://eslint.org/docs/latest/rules/max-statements) */ 'max-statements': MaxStatementsRuleConfig; } /** * Option. */ interface MaxStatementsPerLineOption { max?: number; } /** * Options. */ type MaxStatementsPerLineOptions = [MaxStatementsPerLineOption?]; /** * Enforce a maximum number of statements allowed per line. * * @see [max-statements-per-line](https://eslint.org/docs/latest/rules/max-statements-per-line) */ type MaxStatementsPerLineRuleConfig = RuleConfig; /** * Enforce a maximum number of statements allowed per line. * * @see [max-statements-per-line](https://eslint.org/docs/latest/rules/max-statements-per-line) */ interface MaxStatementsPerLineRule { /** * Enforce a maximum number of statements allowed per line. * * @see [max-statements-per-line](https://eslint.org/docs/latest/rules/max-statements-per-line) */ 'max-statements-per-line': MaxStatementsPerLineRuleConfig; } /** * Option. */ type MultilineCommentStyleOption = | [] | ['starred-block' | 'bare-block'] | [] | ['separate-lines'] | [ 'separate-lines', { checkJSDoc?: boolean; }, ]; /** * Options. */ type MultilineCommentStyleOptions = MultilineCommentStyleOption; /** * Enforce a particular style for multiline comments. * * @see [multiline-comment-style](https://eslint.org/docs/latest/rules/multiline-comment-style) */ type MultilineCommentStyleRuleConfig = RuleConfig; /** * Enforce a particular style for multiline comments. * * @see [multiline-comment-style](https://eslint.org/docs/latest/rules/multiline-comment-style) */ interface MultilineCommentStyleRule { /** * Enforce a particular style for multiline comments. * * @see [multiline-comment-style](https://eslint.org/docs/latest/rules/multiline-comment-style) */ 'multiline-comment-style': MultilineCommentStyleRuleConfig; } /** * Option. */ type MultilineTernaryOption$1 = 'always' | 'always-multiline' | 'never'; /** * Options. */ type MultilineTernaryOptions$1 = [MultilineTernaryOption$1?]; /** * Enforce newlines between operands of ternary expressions. * * @see [multiline-ternary](https://eslint.org/docs/latest/rules/multiline-ternary) */ type MultilineTernaryRuleConfig$1 = RuleConfig; /** * Enforce newlines between operands of ternary expressions. * * @see [multiline-ternary](https://eslint.org/docs/latest/rules/multiline-ternary) */ interface MultilineTernaryRule$1 { /** * Enforce newlines between operands of ternary expressions. * * @see [multiline-ternary](https://eslint.org/docs/latest/rules/multiline-ternary) */ 'multiline-ternary': MultilineTernaryRuleConfig$1; } /** * Option. */ interface NewCapOption { newIsCap?: boolean; capIsNew?: boolean; newIsCapExceptions?: string[]; newIsCapExceptionPattern?: string; capIsNewExceptions?: string[]; capIsNewExceptionPattern?: string; properties?: boolean; } /** * Options. */ type NewCapOptions = [NewCapOption?]; /** * Require constructor names to begin with a capital letter. * * @see [new-cap](https://eslint.org/docs/latest/rules/new-cap) */ type NewCapRuleConfig = RuleConfig; /** * Require constructor names to begin with a capital letter. * * @see [new-cap](https://eslint.org/docs/latest/rules/new-cap) */ interface NewCapRule { /** * Require constructor names to begin with a capital letter. * * @see [new-cap](https://eslint.org/docs/latest/rules/new-cap) */ 'new-cap': NewCapRuleConfig; } /** * Option. */ type NewParensOption = 'always' | 'never'; /** * Options. */ type NewParensOptions = [NewParensOption?]; /** * Enforce or disallow parentheses when invoking a constructor with no arguments. * * @see [new-parens](https://eslint.org/docs/latest/rules/new-parens) */ type NewParensRuleConfig = RuleConfig; /** * Enforce or disallow parentheses when invoking a constructor with no arguments. * * @see [new-parens](https://eslint.org/docs/latest/rules/new-parens) */ interface NewParensRule { /** * Enforce or disallow parentheses when invoking a constructor with no arguments. * * @see [new-parens](https://eslint.org/docs/latest/rules/new-parens) */ 'new-parens': NewParensRuleConfig; } /** * Option. */ type NewlineAfterVarOption = 'never' | 'always'; /** * Options. */ type NewlineAfterVarOptions = [NewlineAfterVarOption?]; /** * Require or disallow an empty line after variable declarations. * * @deprecated * * @see [newline-after-var](https://eslint.org/docs/latest/rules/newline-after-var) */ type NewlineAfterVarRuleConfig = RuleConfig; /** * Require or disallow an empty line after variable declarations. * * @deprecated * * @see [newline-after-var](https://eslint.org/docs/latest/rules/newline-after-var) */ interface NewlineAfterVarRule { /** * Require or disallow an empty line after variable declarations. * * @deprecated * * @see [newline-after-var](https://eslint.org/docs/latest/rules/newline-after-var) */ 'newline-after-var': NewlineAfterVarRuleConfig; } /** * Require an empty line before `return` statements. * * @deprecated * * @see [newline-before-return](https://eslint.org/docs/latest/rules/newline-before-return) */ type NewlineBeforeReturnRuleConfig = RuleConfig<[]>; /** * Require an empty line before `return` statements. * * @deprecated * * @see [newline-before-return](https://eslint.org/docs/latest/rules/newline-before-return) */ interface NewlineBeforeReturnRule { /** * Require an empty line before `return` statements. * * @deprecated * * @see [newline-before-return](https://eslint.org/docs/latest/rules/newline-before-return) */ 'newline-before-return': NewlineBeforeReturnRuleConfig; } /** * Option. */ interface NewlinePerChainedCallOption { ignoreChainWithDepth?: number; } /** * Options. */ type NewlinePerChainedCallOptions = [NewlinePerChainedCallOption?]; /** * Require a newline after each call in a method chain. * * @see [newline-per-chained-call](https://eslint.org/docs/latest/rules/newline-per-chained-call) */ type NewlinePerChainedCallRuleConfig = RuleConfig; /** * Require a newline after each call in a method chain. * * @see [newline-per-chained-call](https://eslint.org/docs/latest/rules/newline-per-chained-call) */ interface NewlinePerChainedCallRule { /** * Require a newline after each call in a method chain. * * @see [newline-per-chained-call](https://eslint.org/docs/latest/rules/newline-per-chained-call) */ 'newline-per-chained-call': NewlinePerChainedCallRuleConfig; } /** * Disallow the use of `alert`, `confirm`, and `prompt`. * * @see [no-alert](https://eslint.org/docs/latest/rules/no-alert) */ type NoAlertRuleConfig = RuleConfig<[]>; /** * Disallow the use of `alert`, `confirm`, and `prompt`. * * @see [no-alert](https://eslint.org/docs/latest/rules/no-alert) */ interface NoAlertRule { /** * Disallow the use of `alert`, `confirm`, and `prompt`. * * @see [no-alert](https://eslint.org/docs/latest/rules/no-alert) */ 'no-alert': NoAlertRuleConfig; } /** * Disallow `Array` constructors. * * @see [no-array-constructor](https://eslint.org/docs/latest/rules/no-array-constructor) */ type NoArrayConstructorRuleConfig$1 = RuleConfig<[]>; /** * Disallow `Array` constructors. * * @see [no-array-constructor](https://eslint.org/docs/latest/rules/no-array-constructor) */ interface NoArrayConstructorRule$1 { /** * Disallow `Array` constructors. * * @see [no-array-constructor](https://eslint.org/docs/latest/rules/no-array-constructor) */ 'no-array-constructor': NoArrayConstructorRuleConfig$1; } /** * Disallow using an async function as a Promise executor. * * @see [no-async-promise-executor](https://eslint.org/docs/latest/rules/no-async-promise-executor) */ type NoAsyncPromiseExecutorRuleConfig = RuleConfig<[]>; /** * Disallow using an async function as a Promise executor. * * @see [no-async-promise-executor](https://eslint.org/docs/latest/rules/no-async-promise-executor) */ interface NoAsyncPromiseExecutorRule { /** * Disallow using an async function as a Promise executor. * * @see [no-async-promise-executor](https://eslint.org/docs/latest/rules/no-async-promise-executor) */ 'no-async-promise-executor': NoAsyncPromiseExecutorRuleConfig; } /** * Disallow `await` inside of loops. * * @see [no-await-in-loop](https://eslint.org/docs/latest/rules/no-await-in-loop) */ type NoAwaitInLoopRuleConfig = RuleConfig<[]>; /** * Disallow `await` inside of loops. * * @see [no-await-in-loop](https://eslint.org/docs/latest/rules/no-await-in-loop) */ interface NoAwaitInLoopRule { /** * Disallow `await` inside of loops. * * @see [no-await-in-loop](https://eslint.org/docs/latest/rules/no-await-in-loop) */ 'no-await-in-loop': NoAwaitInLoopRuleConfig; } /** * Option. */ interface NoBitwiseOption { allow?: ( | '^' | '|' | '&' | '<<' | '>>' | '>>>' | '^=' | '|=' | '&=' | '<<=' | '>>=' | '>>>=' | '~' )[]; int32Hint?: boolean; } /** * Options. */ type NoBitwiseOptions = [NoBitwiseOption?]; /** * Disallow bitwise operators. * * @see [no-bitwise](https://eslint.org/docs/latest/rules/no-bitwise) */ type NoBitwiseRuleConfig = RuleConfig; /** * Disallow bitwise operators. * * @see [no-bitwise](https://eslint.org/docs/latest/rules/no-bitwise) */ interface NoBitwiseRule { /** * Disallow bitwise operators. * * @see [no-bitwise](https://eslint.org/docs/latest/rules/no-bitwise) */ 'no-bitwise': NoBitwiseRuleConfig; } /** * Disallow use of the `Buffer()` constructor. * * @deprecated * * @see [no-buffer-constructor](https://eslint.org/docs/latest/rules/no-buffer-constructor) */ type NoBufferConstructorRuleConfig = RuleConfig<[]>; /** * Disallow use of the `Buffer()` constructor. * * @deprecated * * @see [no-buffer-constructor](https://eslint.org/docs/latest/rules/no-buffer-constructor) */ interface NoBufferConstructorRule { /** * Disallow use of the `Buffer()` constructor. * * @deprecated * * @see [no-buffer-constructor](https://eslint.org/docs/latest/rules/no-buffer-constructor) */ 'no-buffer-constructor': NoBufferConstructorRuleConfig; } /** * Disallow the use of `arguments.caller` or `arguments.callee`. * * @see [no-caller](https://eslint.org/docs/latest/rules/no-caller) */ type NoCallerRuleConfig = RuleConfig<[]>; /** * Disallow the use of `arguments.caller` or `arguments.callee`. * * @see [no-caller](https://eslint.org/docs/latest/rules/no-caller) */ interface NoCallerRule { /** * Disallow the use of `arguments.caller` or `arguments.callee`. * * @see [no-caller](https://eslint.org/docs/latest/rules/no-caller) */ 'no-caller': NoCallerRuleConfig; } /** * Disallow lexical declarations in case clauses. * * @see [no-case-declarations](https://eslint.org/docs/latest/rules/no-case-declarations) */ type NoCaseDeclarationsRuleConfig = RuleConfig<[]>; /** * Disallow lexical declarations in case clauses. * * @see [no-case-declarations](https://eslint.org/docs/latest/rules/no-case-declarations) */ interface NoCaseDeclarationsRule { /** * Disallow lexical declarations in case clauses. * * @see [no-case-declarations](https://eslint.org/docs/latest/rules/no-case-declarations) */ 'no-case-declarations': NoCaseDeclarationsRuleConfig; } /** * Disallow `catch` clause parameters from shadowing variables in the outer scope. * * @deprecated * * @see [no-catch-shadow](https://eslint.org/docs/latest/rules/no-catch-shadow) */ type NoCatchShadowRuleConfig = RuleConfig<[]>; /** * Disallow `catch` clause parameters from shadowing variables in the outer scope. * * @deprecated * * @see [no-catch-shadow](https://eslint.org/docs/latest/rules/no-catch-shadow) */ interface NoCatchShadowRule { /** * Disallow `catch` clause parameters from shadowing variables in the outer scope. * * @deprecated * * @see [no-catch-shadow](https://eslint.org/docs/latest/rules/no-catch-shadow) */ 'no-catch-shadow': NoCatchShadowRuleConfig; } /** * Disallow reassigning class members. * * @see [no-class-assign](https://eslint.org/docs/latest/rules/no-class-assign) */ type NoClassAssignRuleConfig = RuleConfig<[]>; /** * Disallow reassigning class members. * * @see [no-class-assign](https://eslint.org/docs/latest/rules/no-class-assign) */ interface NoClassAssignRule { /** * Disallow reassigning class members. * * @see [no-class-assign](https://eslint.org/docs/latest/rules/no-class-assign) */ 'no-class-assign': NoClassAssignRuleConfig; } /** * Disallow comparing against -0. * * @see [no-compare-neg-zero](https://eslint.org/docs/latest/rules/no-compare-neg-zero) */ type NoCompareNegZeroRuleConfig = RuleConfig<[]>; /** * Disallow comparing against -0. * * @see [no-compare-neg-zero](https://eslint.org/docs/latest/rules/no-compare-neg-zero) */ interface NoCompareNegZeroRule { /** * Disallow comparing against -0. * * @see [no-compare-neg-zero](https://eslint.org/docs/latest/rules/no-compare-neg-zero) */ 'no-compare-neg-zero': NoCompareNegZeroRuleConfig; } /** * Option. */ type NoCondAssignOption = 'except-parens' | 'always'; /** * Options. */ type NoCondAssignOptions = [NoCondAssignOption?]; /** * Disallow assignment operators in conditional expressions. * * @see [no-cond-assign](https://eslint.org/docs/latest/rules/no-cond-assign) */ type NoCondAssignRuleConfig = RuleConfig; /** * Disallow assignment operators in conditional expressions. * * @see [no-cond-assign](https://eslint.org/docs/latest/rules/no-cond-assign) */ interface NoCondAssignRule { /** * Disallow assignment operators in conditional expressions. * * @see [no-cond-assign](https://eslint.org/docs/latest/rules/no-cond-assign) */ 'no-cond-assign': NoCondAssignRuleConfig; } /** * Option. */ interface NoConfusingArrowOption { allowParens?: boolean; onlyOneSimpleParam?: boolean; } /** * Options. */ type NoConfusingArrowOptions = [NoConfusingArrowOption?]; /** * Disallow arrow functions where they could be confused with comparisons. * * @see [no-confusing-arrow](https://eslint.org/docs/latest/rules/no-confusing-arrow) */ type NoConfusingArrowRuleConfig = RuleConfig; /** * Disallow arrow functions where they could be confused with comparisons. * * @see [no-confusing-arrow](https://eslint.org/docs/latest/rules/no-confusing-arrow) */ interface NoConfusingArrowRule { /** * Disallow arrow functions where they could be confused with comparisons. * * @see [no-confusing-arrow](https://eslint.org/docs/latest/rules/no-confusing-arrow) */ 'no-confusing-arrow': NoConfusingArrowRuleConfig; } /** * Option. */ interface NoConsoleOption$1 { /** * @minItems 1 */ allow?: [string, ...string[]]; } /** * Options. */ type NoConsoleOptions$1 = [NoConsoleOption$1?]; /** * Disallow the use of `console`. * * @see [no-console](https://eslint.org/docs/latest/rules/no-console) */ type NoConsoleRuleConfig$1 = RuleConfig; /** * Disallow the use of `console`. * * @see [no-console](https://eslint.org/docs/latest/rules/no-console) */ interface NoConsoleRule$1 { /** * Disallow the use of `console`. * * @see [no-console](https://eslint.org/docs/latest/rules/no-console) */ 'no-console': NoConsoleRuleConfig$1; } /** * Disallow reassigning `const` variables. * * @see [no-const-assign](https://eslint.org/docs/latest/rules/no-const-assign) */ type NoConstAssignRuleConfig = RuleConfig<[]>; /** * Disallow reassigning `const` variables. * * @see [no-const-assign](https://eslint.org/docs/latest/rules/no-const-assign) */ interface NoConstAssignRule { /** * Disallow reassigning `const` variables. * * @see [no-const-assign](https://eslint.org/docs/latest/rules/no-const-assign) */ 'no-const-assign': NoConstAssignRuleConfig; } /** * Disallow expressions where the operation doesn't affect the value. * * @see [no-constant-binary-expression](https://eslint.org/docs/latest/rules/no-constant-binary-expression) */ type NoConstantBinaryExpressionRuleConfig = RuleConfig<[]>; /** * Disallow expressions where the operation doesn't affect the value. * * @see [no-constant-binary-expression](https://eslint.org/docs/latest/rules/no-constant-binary-expression) */ interface NoConstantBinaryExpressionRule { /** * Disallow expressions where the operation doesn't affect the value. * * @see [no-constant-binary-expression](https://eslint.org/docs/latest/rules/no-constant-binary-expression) */ 'no-constant-binary-expression': NoConstantBinaryExpressionRuleConfig; } /** * Option. */ interface NoConstantConditionOption$1 { checkLoops?: boolean; } /** * Options. */ type NoConstantConditionOptions$1 = [NoConstantConditionOption$1?]; /** * Disallow constant expressions in conditions. * * @see [no-constant-condition](https://eslint.org/docs/latest/rules/no-constant-condition) */ type NoConstantConditionRuleConfig$1 = RuleConfig; /** * Disallow constant expressions in conditions. * * @see [no-constant-condition](https://eslint.org/docs/latest/rules/no-constant-condition) */ interface NoConstantConditionRule$1 { /** * Disallow constant expressions in conditions. * * @see [no-constant-condition](https://eslint.org/docs/latest/rules/no-constant-condition) */ 'no-constant-condition': NoConstantConditionRuleConfig$1; } /** * Options. */ type NoConstructorReturnOptions = []; /** * Disallow returning value from constructor. * * @see [no-constructor-return](https://eslint.org/docs/latest/rules/no-constructor-return) */ type NoConstructorReturnRuleConfig = RuleConfig; /** * Disallow returning value from constructor. * * @see [no-constructor-return](https://eslint.org/docs/latest/rules/no-constructor-return) */ interface NoConstructorReturnRule { /** * Disallow returning value from constructor. * * @see [no-constructor-return](https://eslint.org/docs/latest/rules/no-constructor-return) */ 'no-constructor-return': NoConstructorReturnRuleConfig; } /** * Disallow `continue` statements. * * @see [no-continue](https://eslint.org/docs/latest/rules/no-continue) */ type NoContinueRuleConfig = RuleConfig<[]>; /** * Disallow `continue` statements. * * @see [no-continue](https://eslint.org/docs/latest/rules/no-continue) */ interface NoContinueRule { /** * Disallow `continue` statements. * * @see [no-continue](https://eslint.org/docs/latest/rules/no-continue) */ 'no-continue': NoContinueRuleConfig; } /** * Disallow control characters in regular expressions. * * @see [no-control-regex](https://eslint.org/docs/latest/rules/no-control-regex) */ type NoControlRegexRuleConfig = RuleConfig<[]>; /** * Disallow control characters in regular expressions. * * @see [no-control-regex](https://eslint.org/docs/latest/rules/no-control-regex) */ interface NoControlRegexRule { /** * Disallow control characters in regular expressions. * * @see [no-control-regex](https://eslint.org/docs/latest/rules/no-control-regex) */ 'no-control-regex': NoControlRegexRuleConfig; } /** * Disallow the use of `debugger`. * * @see [no-debugger](https://eslint.org/docs/latest/rules/no-debugger) */ type NoDebuggerRuleConfig = RuleConfig<[]>; /** * Disallow the use of `debugger`. * * @see [no-debugger](https://eslint.org/docs/latest/rules/no-debugger) */ interface NoDebuggerRule { /** * Disallow the use of `debugger`. * * @see [no-debugger](https://eslint.org/docs/latest/rules/no-debugger) */ 'no-debugger': NoDebuggerRuleConfig; } /** * Disallow deleting variables. * * @see [no-delete-var](https://eslint.org/docs/latest/rules/no-delete-var) */ type NoDeleteVarRuleConfig = RuleConfig<[]>; /** * Disallow deleting variables. * * @see [no-delete-var](https://eslint.org/docs/latest/rules/no-delete-var) */ interface NoDeleteVarRule { /** * Disallow deleting variables. * * @see [no-delete-var](https://eslint.org/docs/latest/rules/no-delete-var) */ 'no-delete-var': NoDeleteVarRuleConfig; } /** * Disallow equal signs explicitly at the beginning of regular expressions. * * @see [no-div-regex](https://eslint.org/docs/latest/rules/no-div-regex) */ type NoDivRegexRuleConfig = RuleConfig<[]>; /** * Disallow equal signs explicitly at the beginning of regular expressions. * * @see [no-div-regex](https://eslint.org/docs/latest/rules/no-div-regex) */ interface NoDivRegexRule { /** * Disallow equal signs explicitly at the beginning of regular expressions. * * @see [no-div-regex](https://eslint.org/docs/latest/rules/no-div-regex) */ 'no-div-regex': NoDivRegexRuleConfig; } /** * Disallow duplicate arguments in `function` definitions. * * @see [no-dupe-args](https://eslint.org/docs/latest/rules/no-dupe-args) */ type NoDupeArgsRuleConfig = RuleConfig<[]>; /** * Disallow duplicate arguments in `function` definitions. * * @see [no-dupe-args](https://eslint.org/docs/latest/rules/no-dupe-args) */ interface NoDupeArgsRule { /** * Disallow duplicate arguments in `function` definitions. * * @see [no-dupe-args](https://eslint.org/docs/latest/rules/no-dupe-args) */ 'no-dupe-args': NoDupeArgsRuleConfig; } /** * Disallow duplicate class members. * * @see [no-dupe-class-members](https://eslint.org/docs/latest/rules/no-dupe-class-members) */ type NoDupeClassMembersRuleConfig$1 = RuleConfig<[]>; /** * Disallow duplicate class members. * * @see [no-dupe-class-members](https://eslint.org/docs/latest/rules/no-dupe-class-members) */ interface NoDupeClassMembersRule$1 { /** * Disallow duplicate class members. * * @see [no-dupe-class-members](https://eslint.org/docs/latest/rules/no-dupe-class-members) */ 'no-dupe-class-members': NoDupeClassMembersRuleConfig$1; } /** * Disallow duplicate conditions in if-else-if chains. * * @see [no-dupe-else-if](https://eslint.org/docs/latest/rules/no-dupe-else-if) */ type NoDupeElseIfRuleConfig = RuleConfig<[]>; /** * Disallow duplicate conditions in if-else-if chains. * * @see [no-dupe-else-if](https://eslint.org/docs/latest/rules/no-dupe-else-if) */ interface NoDupeElseIfRule { /** * Disallow duplicate conditions in if-else-if chains. * * @see [no-dupe-else-if](https://eslint.org/docs/latest/rules/no-dupe-else-if) */ 'no-dupe-else-if': NoDupeElseIfRuleConfig; } /** * Disallow duplicate keys in object literals. * * @see [no-dupe-keys](https://eslint.org/docs/latest/rules/no-dupe-keys) */ type NoDupeKeysRuleConfig$2 = RuleConfig<[]>; /** * Disallow duplicate keys in object literals. * * @see [no-dupe-keys](https://eslint.org/docs/latest/rules/no-dupe-keys) */ interface NoDupeKeysRule$2 { /** * Disallow duplicate keys in object literals. * * @see [no-dupe-keys](https://eslint.org/docs/latest/rules/no-dupe-keys) */ 'no-dupe-keys': NoDupeKeysRuleConfig$2; } /** * Disallow duplicate case labels. * * @see [no-duplicate-case](https://eslint.org/docs/latest/rules/no-duplicate-case) */ type NoDuplicateCaseRuleConfig = RuleConfig<[]>; /** * Disallow duplicate case labels. * * @see [no-duplicate-case](https://eslint.org/docs/latest/rules/no-duplicate-case) */ interface NoDuplicateCaseRule { /** * Disallow duplicate case labels. * * @see [no-duplicate-case](https://eslint.org/docs/latest/rules/no-duplicate-case) */ 'no-duplicate-case': NoDuplicateCaseRuleConfig; } /** * Option. */ interface NoDuplicateImportsOption { includeExports?: boolean; } /** * Options. */ type NoDuplicateImportsOptions = [NoDuplicateImportsOption?]; /** * Disallow duplicate module imports. * * @see [no-duplicate-imports](https://eslint.org/docs/latest/rules/no-duplicate-imports) */ type NoDuplicateImportsRuleConfig = RuleConfig; /** * Disallow duplicate module imports. * * @see [no-duplicate-imports](https://eslint.org/docs/latest/rules/no-duplicate-imports) */ interface NoDuplicateImportsRule { /** * Disallow duplicate module imports. * * @see [no-duplicate-imports](https://eslint.org/docs/latest/rules/no-duplicate-imports) */ 'no-duplicate-imports': NoDuplicateImportsRuleConfig; } /** * Option. */ interface NoElseReturnOption { allowElseIf?: boolean; } /** * Options. */ type NoElseReturnOptions = [NoElseReturnOption?]; /** * Disallow `else` blocks after `return` statements in `if` statements. * * @see [no-else-return](https://eslint.org/docs/latest/rules/no-else-return) */ type NoElseReturnRuleConfig = RuleConfig; /** * Disallow `else` blocks after `return` statements in `if` statements. * * @see [no-else-return](https://eslint.org/docs/latest/rules/no-else-return) */ interface NoElseReturnRule { /** * Disallow `else` blocks after `return` statements in `if` statements. * * @see [no-else-return](https://eslint.org/docs/latest/rules/no-else-return) */ 'no-else-return': NoElseReturnRuleConfig; } /** * Option. */ interface NoEmptyOption { allowEmptyCatch?: boolean; } /** * Options. */ type NoEmptyOptions = [NoEmptyOption?]; /** * Disallow empty block statements. * * @see [no-empty](https://eslint.org/docs/latest/rules/no-empty) */ type NoEmptyRuleConfig = RuleConfig; /** * Disallow empty block statements. * * @see [no-empty](https://eslint.org/docs/latest/rules/no-empty) */ interface NoEmptyRule { /** * Disallow empty block statements. * * @see [no-empty](https://eslint.org/docs/latest/rules/no-empty) */ 'no-empty': NoEmptyRuleConfig; } /** * Disallow empty character classes in regular expressions. * * @see [no-empty-character-class](https://eslint.org/docs/latest/rules/no-empty-character-class) */ type NoEmptyCharacterClassRuleConfig = RuleConfig<[]>; /** * Disallow empty character classes in regular expressions. * * @see [no-empty-character-class](https://eslint.org/docs/latest/rules/no-empty-character-class) */ interface NoEmptyCharacterClassRule { /** * Disallow empty character classes in regular expressions. * * @see [no-empty-character-class](https://eslint.org/docs/latest/rules/no-empty-character-class) */ 'no-empty-character-class': NoEmptyCharacterClassRuleConfig; } /** * Option. */ interface NoEmptyFunctionOption$1 { allow?: ( | 'functions' | 'arrowFunctions' | 'generatorFunctions' | 'methods' | 'generatorMethods' | 'getters' | 'setters' | 'constructors' | 'asyncFunctions' | 'asyncMethods' )[]; } /** * Options. */ type NoEmptyFunctionOptions$1 = [NoEmptyFunctionOption$1?]; /** * Disallow empty functions. * * @see [no-empty-function](https://eslint.org/docs/latest/rules/no-empty-function) */ type NoEmptyFunctionRuleConfig$1 = RuleConfig; /** * Disallow empty functions. * * @see [no-empty-function](https://eslint.org/docs/latest/rules/no-empty-function) */ interface NoEmptyFunctionRule$1 { /** * Disallow empty functions. * * @see [no-empty-function](https://eslint.org/docs/latest/rules/no-empty-function) */ 'no-empty-function': NoEmptyFunctionRuleConfig$1; } /** * Option. */ interface NoEmptyPatternOption$1 { allowObjectPatternsAsParameters?: boolean; } /** * Options. */ type NoEmptyPatternOptions$1 = [NoEmptyPatternOption$1?]; /** * Disallow empty destructuring patterns. * * @see [no-empty-pattern](https://eslint.org/docs/latest/rules/no-empty-pattern) */ type NoEmptyPatternRuleConfig$1 = RuleConfig; /** * Disallow empty destructuring patterns. * * @see [no-empty-pattern](https://eslint.org/docs/latest/rules/no-empty-pattern) */ interface NoEmptyPatternRule$1 { /** * Disallow empty destructuring patterns. * * @see [no-empty-pattern](https://eslint.org/docs/latest/rules/no-empty-pattern) */ 'no-empty-pattern': NoEmptyPatternRuleConfig$1; } /** * Disallow empty static blocks. * * @see [no-empty-static-block](https://eslint.org/docs/latest/rules/no-empty-static-block) */ type NoEmptyStaticBlockRuleConfig = RuleConfig<[]>; /** * Disallow empty static blocks. * * @see [no-empty-static-block](https://eslint.org/docs/latest/rules/no-empty-static-block) */ interface NoEmptyStaticBlockRule { /** * Disallow empty static blocks. * * @see [no-empty-static-block](https://eslint.org/docs/latest/rules/no-empty-static-block) */ 'no-empty-static-block': NoEmptyStaticBlockRuleConfig; } /** * Disallow `null` comparisons without type-checking operators. * * @see [no-eq-null](https://eslint.org/docs/latest/rules/no-eq-null) */ type NoEqNullRuleConfig = RuleConfig<[]>; /** * Disallow `null` comparisons without type-checking operators. * * @see [no-eq-null](https://eslint.org/docs/latest/rules/no-eq-null) */ interface NoEqNullRule { /** * Disallow `null` comparisons without type-checking operators. * * @see [no-eq-null](https://eslint.org/docs/latest/rules/no-eq-null) */ 'no-eq-null': NoEqNullRuleConfig; } /** * Option. */ interface NoEvalOption { allowIndirect?: boolean; } /** * Options. */ type NoEvalOptions = [NoEvalOption?]; /** * Disallow the use of `eval()`. * * @see [no-eval](https://eslint.org/docs/latest/rules/no-eval) */ type NoEvalRuleConfig = RuleConfig; /** * Disallow the use of `eval()`. * * @see [no-eval](https://eslint.org/docs/latest/rules/no-eval) */ interface NoEvalRule { /** * Disallow the use of `eval()`. * * @see [no-eval](https://eslint.org/docs/latest/rules/no-eval) */ 'no-eval': NoEvalRuleConfig; } /** * Disallow reassigning exceptions in `catch` clauses. * * @see [no-ex-assign](https://eslint.org/docs/latest/rules/no-ex-assign) */ type NoExAssignRuleConfig = RuleConfig<[]>; /** * Disallow reassigning exceptions in `catch` clauses. * * @see [no-ex-assign](https://eslint.org/docs/latest/rules/no-ex-assign) */ interface NoExAssignRule { /** * Disallow reassigning exceptions in `catch` clauses. * * @see [no-ex-assign](https://eslint.org/docs/latest/rules/no-ex-assign) */ 'no-ex-assign': NoExAssignRuleConfig; } /** * Option. */ interface NoExtendNativeOption { exceptions?: string[]; } /** * Options. */ type NoExtendNativeOptions = [NoExtendNativeOption?]; /** * Disallow extending native types. * * @see [no-extend-native](https://eslint.org/docs/latest/rules/no-extend-native) */ type NoExtendNativeRuleConfig = RuleConfig; /** * Disallow extending native types. * * @see [no-extend-native](https://eslint.org/docs/latest/rules/no-extend-native) */ interface NoExtendNativeRule { /** * Disallow extending native types. * * @see [no-extend-native](https://eslint.org/docs/latest/rules/no-extend-native) */ 'no-extend-native': NoExtendNativeRuleConfig; } /** * Disallow unnecessary calls to `.bind()`. * * @see [no-extra-bind](https://eslint.org/docs/latest/rules/no-extra-bind) */ type NoExtraBindRuleConfig = RuleConfig<[]>; /** * Disallow unnecessary calls to `.bind()`. * * @see [no-extra-bind](https://eslint.org/docs/latest/rules/no-extra-bind) */ interface NoExtraBindRule { /** * Disallow unnecessary calls to `.bind()`. * * @see [no-extra-bind](https://eslint.org/docs/latest/rules/no-extra-bind) */ 'no-extra-bind': NoExtraBindRuleConfig; } /** * Option. */ interface NoExtraBooleanCastOption { enforceForLogicalOperands?: boolean; } /** * Options. */ type NoExtraBooleanCastOptions = [NoExtraBooleanCastOption?]; /** * Disallow unnecessary boolean casts. * * @see [no-extra-boolean-cast](https://eslint.org/docs/latest/rules/no-extra-boolean-cast) */ type NoExtraBooleanCastRuleConfig = RuleConfig; /** * Disallow unnecessary boolean casts. * * @see [no-extra-boolean-cast](https://eslint.org/docs/latest/rules/no-extra-boolean-cast) */ interface NoExtraBooleanCastRule { /** * Disallow unnecessary boolean casts. * * @see [no-extra-boolean-cast](https://eslint.org/docs/latest/rules/no-extra-boolean-cast) */ 'no-extra-boolean-cast': NoExtraBooleanCastRuleConfig; } /** * Disallow unnecessary labels. * * @see [no-extra-label](https://eslint.org/docs/latest/rules/no-extra-label) */ type NoExtraLabelRuleConfig = RuleConfig<[]>; /** * Disallow unnecessary labels. * * @see [no-extra-label](https://eslint.org/docs/latest/rules/no-extra-label) */ interface NoExtraLabelRule { /** * Disallow unnecessary labels. * * @see [no-extra-label](https://eslint.org/docs/latest/rules/no-extra-label) */ 'no-extra-label': NoExtraLabelRuleConfig; } /** * Option. */ type NoExtraParensOption$2 = | [] | ['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; }, ]; /** * Options. */ type NoExtraParensOptions$2 = NoExtraParensOption$2; /** * Disallow unnecessary parentheses. * * @see [no-extra-parens](https://eslint.org/docs/latest/rules/no-extra-parens) */ type NoExtraParensRuleConfig$2 = RuleConfig; /** * Disallow unnecessary parentheses. * * @see [no-extra-parens](https://eslint.org/docs/latest/rules/no-extra-parens) */ interface NoExtraParensRule$2 { /** * Disallow unnecessary parentheses. * * @see [no-extra-parens](https://eslint.org/docs/latest/rules/no-extra-parens) */ 'no-extra-parens': NoExtraParensRuleConfig$2; } /** * Disallow unnecessary semicolons. * * @see [no-extra-semi](https://eslint.org/docs/latest/rules/no-extra-semi) */ type NoExtraSemiRuleConfig$1 = RuleConfig<[]>; /** * Disallow unnecessary semicolons. * * @see [no-extra-semi](https://eslint.org/docs/latest/rules/no-extra-semi) */ interface NoExtraSemiRule$1 { /** * Disallow unnecessary semicolons. * * @see [no-extra-semi](https://eslint.org/docs/latest/rules/no-extra-semi) */ 'no-extra-semi': NoExtraSemiRuleConfig$1; } /** * Option. */ interface NoFallthroughOption { commentPattern?: string; allowEmptyCase?: boolean; } /** * Options. */ type NoFallthroughOptions = [NoFallthroughOption?]; /** * Disallow fallthrough of `case` statements. * * @see [no-fallthrough](https://eslint.org/docs/latest/rules/no-fallthrough) */ type NoFallthroughRuleConfig = RuleConfig; /** * Disallow fallthrough of `case` statements. * * @see [no-fallthrough](https://eslint.org/docs/latest/rules/no-fallthrough) */ interface NoFallthroughRule { /** * Disallow fallthrough of `case` statements. * * @see [no-fallthrough](https://eslint.org/docs/latest/rules/no-fallthrough) */ 'no-fallthrough': NoFallthroughRuleConfig; } /** * Disallow leading or trailing decimal points in numeric literals. * * @see [no-floating-decimal](https://eslint.org/docs/latest/rules/no-floating-decimal) */ type NoFloatingDecimalRuleConfig$1 = RuleConfig<[]>; /** * Disallow leading or trailing decimal points in numeric literals. * * @see [no-floating-decimal](https://eslint.org/docs/latest/rules/no-floating-decimal) */ interface NoFloatingDecimalRule$1 { /** * Disallow leading or trailing decimal points in numeric literals. * * @see [no-floating-decimal](https://eslint.org/docs/latest/rules/no-floating-decimal) */ 'no-floating-decimal': NoFloatingDecimalRuleConfig$1; } /** * Disallow reassigning `function` declarations. * * @see [no-func-assign](https://eslint.org/docs/latest/rules/no-func-assign) */ type NoFuncAssignRuleConfig = RuleConfig<[]>; /** * Disallow reassigning `function` declarations. * * @see [no-func-assign](https://eslint.org/docs/latest/rules/no-func-assign) */ interface NoFuncAssignRule { /** * Disallow reassigning `function` declarations. * * @see [no-func-assign](https://eslint.org/docs/latest/rules/no-func-assign) */ 'no-func-assign': NoFuncAssignRuleConfig; } /** * Option. */ interface NoGlobalAssignOption { exceptions?: string[]; } /** * Options. */ type NoGlobalAssignOptions = [NoGlobalAssignOption?]; /** * Disallow assignments to native objects or read-only global variables. * * @see [no-global-assign](https://eslint.org/docs/latest/rules/no-global-assign) */ type NoGlobalAssignRuleConfig = RuleConfig; /** * Disallow assignments to native objects or read-only global variables. * * @see [no-global-assign](https://eslint.org/docs/latest/rules/no-global-assign) */ interface NoGlobalAssignRule { /** * Disallow assignments to native objects or read-only global variables. * * @see [no-global-assign](https://eslint.org/docs/latest/rules/no-global-assign) */ 'no-global-assign': NoGlobalAssignRuleConfig; } /** * Option. */ interface NoImplicitCoercionOption { boolean?: boolean; number?: boolean; string?: boolean; disallowTemplateShorthand?: boolean; allow?: ('~' | '!!' | '+' | '*')[]; } /** * Options. */ type NoImplicitCoercionOptions = [NoImplicitCoercionOption?]; /** * Disallow shorthand type conversions. * * @see [no-implicit-coercion](https://eslint.org/docs/latest/rules/no-implicit-coercion) */ type NoImplicitCoercionRuleConfig = RuleConfig; /** * Disallow shorthand type conversions. * * @see [no-implicit-coercion](https://eslint.org/docs/latest/rules/no-implicit-coercion) */ interface NoImplicitCoercionRule { /** * Disallow shorthand type conversions. * * @see [no-implicit-coercion](https://eslint.org/docs/latest/rules/no-implicit-coercion) */ 'no-implicit-coercion': NoImplicitCoercionRuleConfig; } /** * Option. */ interface NoImplicitGlobalsOption { lexicalBindings?: boolean; } /** * Options. */ type NoImplicitGlobalsOptions = [NoImplicitGlobalsOption?]; /** * Disallow declarations in the global scope. * * @see [no-implicit-globals](https://eslint.org/docs/latest/rules/no-implicit-globals) */ type NoImplicitGlobalsRuleConfig = RuleConfig; /** * Disallow declarations in the global scope. * * @see [no-implicit-globals](https://eslint.org/docs/latest/rules/no-implicit-globals) */ interface NoImplicitGlobalsRule { /** * Disallow declarations in the global scope. * * @see [no-implicit-globals](https://eslint.org/docs/latest/rules/no-implicit-globals) */ 'no-implicit-globals': NoImplicitGlobalsRuleConfig; } /** * Disallow the use of `eval()`-like methods. * * @see [no-implied-eval](https://eslint.org/docs/latest/rules/no-implied-eval) */ type NoImpliedEvalRuleConfig$1 = RuleConfig<[]>; /** * Disallow the use of `eval()`-like methods. * * @see [no-implied-eval](https://eslint.org/docs/latest/rules/no-implied-eval) */ interface NoImpliedEvalRule$1 { /** * Disallow the use of `eval()`-like methods. * * @see [no-implied-eval](https://eslint.org/docs/latest/rules/no-implied-eval) */ 'no-implied-eval': NoImpliedEvalRuleConfig$1; } /** * Disallow assigning to imported bindings. * * @see [no-import-assign](https://eslint.org/docs/latest/rules/no-import-assign) */ type NoImportAssignRuleConfig = RuleConfig<[]>; /** * Disallow assigning to imported bindings. * * @see [no-import-assign](https://eslint.org/docs/latest/rules/no-import-assign) */ interface NoImportAssignRule { /** * Disallow assigning to imported bindings. * * @see [no-import-assign](https://eslint.org/docs/latest/rules/no-import-assign) */ 'no-import-assign': NoImportAssignRuleConfig; } /** * Option. */ interface NoInlineCommentsOption { ignorePattern?: string; } /** * Options. */ type NoInlineCommentsOptions = [NoInlineCommentsOption?]; /** * Disallow inline comments after code. * * @see [no-inline-comments](https://eslint.org/docs/latest/rules/no-inline-comments) */ type NoInlineCommentsRuleConfig = RuleConfig; /** * Disallow inline comments after code. * * @see [no-inline-comments](https://eslint.org/docs/latest/rules/no-inline-comments) */ interface NoInlineCommentsRule { /** * Disallow inline comments after code. * * @see [no-inline-comments](https://eslint.org/docs/latest/rules/no-inline-comments) */ 'no-inline-comments': NoInlineCommentsRuleConfig; } /** * Option. */ type NoInnerDeclarationsOption = 'functions' | 'both'; /** * Options. */ type NoInnerDeclarationsOptions = [NoInnerDeclarationsOption?]; /** * Disallow variable or `function` declarations in nested blocks. * * @see [no-inner-declarations](https://eslint.org/docs/latest/rules/no-inner-declarations) */ type NoInnerDeclarationsRuleConfig = RuleConfig; /** * Disallow variable or `function` declarations in nested blocks. * * @see [no-inner-declarations](https://eslint.org/docs/latest/rules/no-inner-declarations) */ interface NoInnerDeclarationsRule { /** * Disallow variable or `function` declarations in nested blocks. * * @see [no-inner-declarations](https://eslint.org/docs/latest/rules/no-inner-declarations) */ 'no-inner-declarations': NoInnerDeclarationsRuleConfig; } /** * Option. */ interface NoInvalidRegexpOption { allowConstructorFlags?: string[]; } /** * Options. */ type NoInvalidRegexpOptions = [NoInvalidRegexpOption?]; /** * Disallow invalid regular expression strings in `RegExp` constructors. * * @see [no-invalid-regexp](https://eslint.org/docs/latest/rules/no-invalid-regexp) */ type NoInvalidRegexpRuleConfig = RuleConfig; /** * Disallow invalid regular expression strings in `RegExp` constructors. * * @see [no-invalid-regexp](https://eslint.org/docs/latest/rules/no-invalid-regexp) */ interface NoInvalidRegexpRule { /** * Disallow invalid regular expression strings in `RegExp` constructors. * * @see [no-invalid-regexp](https://eslint.org/docs/latest/rules/no-invalid-regexp) */ 'no-invalid-regexp': NoInvalidRegexpRuleConfig; } /** * Option. */ interface NoInvalidThisOption$1 { capIsConstructor?: boolean; } /** * Options. */ type NoInvalidThisOptions$1 = [NoInvalidThisOption$1?]; /** * Disallow use of `this` in contexts where the value of `this` is `undefined`. * * @see [no-invalid-this](https://eslint.org/docs/latest/rules/no-invalid-this) */ type NoInvalidThisRuleConfig$1 = RuleConfig; /** * Disallow use of `this` in contexts where the value of `this` is `undefined`. * * @see [no-invalid-this](https://eslint.org/docs/latest/rules/no-invalid-this) */ interface NoInvalidThisRule$1 { /** * Disallow use of `this` in contexts where the value of `this` is `undefined`. * * @see [no-invalid-this](https://eslint.org/docs/latest/rules/no-invalid-this) */ 'no-invalid-this': NoInvalidThisRuleConfig$1; } /** * Option. */ interface NoIrregularWhitespaceOption$3 { skipComments?: boolean; skipStrings?: boolean; skipTemplates?: boolean; skipRegExps?: boolean; skipJSXText?: boolean; } /** * Options. */ type NoIrregularWhitespaceOptions$3 = [NoIrregularWhitespaceOption$3?]; /** * Disallow irregular whitespace. * * @see [no-irregular-whitespace](https://eslint.org/docs/latest/rules/no-irregular-whitespace) */ type NoIrregularWhitespaceRuleConfig$3 = RuleConfig; /** * Disallow irregular whitespace. * * @see [no-irregular-whitespace](https://eslint.org/docs/latest/rules/no-irregular-whitespace) */ interface NoIrregularWhitespaceRule$3 { /** * Disallow irregular whitespace. * * @see [no-irregular-whitespace](https://eslint.org/docs/latest/rules/no-irregular-whitespace) */ 'no-irregular-whitespace': NoIrregularWhitespaceRuleConfig$3; } /** * Disallow the use of the `__iterator__` property. * * @see [no-iterator](https://eslint.org/docs/latest/rules/no-iterator) */ type NoIteratorRuleConfig = RuleConfig<[]>; /** * Disallow the use of the `__iterator__` property. * * @see [no-iterator](https://eslint.org/docs/latest/rules/no-iterator) */ interface NoIteratorRule { /** * Disallow the use of the `__iterator__` property. * * @see [no-iterator](https://eslint.org/docs/latest/rules/no-iterator) */ 'no-iterator': NoIteratorRuleConfig; } /** * Disallow labels that share a name with a variable. * * @see [no-label-var](https://eslint.org/docs/latest/rules/no-label-var) */ type NoLabelVarRuleConfig = RuleConfig<[]>; /** * Disallow labels that share a name with a variable. * * @see [no-label-var](https://eslint.org/docs/latest/rules/no-label-var) */ interface NoLabelVarRule { /** * Disallow labels that share a name with a variable. * * @see [no-label-var](https://eslint.org/docs/latest/rules/no-label-var) */ 'no-label-var': NoLabelVarRuleConfig; } /** * Option. */ interface NoLabelsOption { allowLoop?: boolean; allowSwitch?: boolean; } /** * Options. */ type NoLabelsOptions = [NoLabelsOption?]; /** * Disallow labeled statements. * * @see [no-labels](https://eslint.org/docs/latest/rules/no-labels) */ type NoLabelsRuleConfig = RuleConfig; /** * Disallow labeled statements. * * @see [no-labels](https://eslint.org/docs/latest/rules/no-labels) */ interface NoLabelsRule { /** * Disallow labeled statements. * * @see [no-labels](https://eslint.org/docs/latest/rules/no-labels) */ 'no-labels': NoLabelsRuleConfig; } /** * Disallow unnecessary nested blocks. * * @see [no-lone-blocks](https://eslint.org/docs/latest/rules/no-lone-blocks) */ type NoLoneBlocksRuleConfig = RuleConfig<[]>; /** * Disallow unnecessary nested blocks. * * @see [no-lone-blocks](https://eslint.org/docs/latest/rules/no-lone-blocks) */ interface NoLoneBlocksRule { /** * Disallow unnecessary nested blocks. * * @see [no-lone-blocks](https://eslint.org/docs/latest/rules/no-lone-blocks) */ 'no-lone-blocks': NoLoneBlocksRuleConfig; } /** * Disallow `if` statements as the only statement in `else` blocks. * * @see [no-lonely-if](https://eslint.org/docs/latest/rules/no-lonely-if) */ type NoLonelyIfRuleConfig$1 = RuleConfig<[]>; /** * Disallow `if` statements as the only statement in `else` blocks. * * @see [no-lonely-if](https://eslint.org/docs/latest/rules/no-lonely-if) */ interface NoLonelyIfRule$1 { /** * Disallow `if` statements as the only statement in `else` blocks. * * @see [no-lonely-if](https://eslint.org/docs/latest/rules/no-lonely-if) */ 'no-lonely-if': NoLonelyIfRuleConfig$1; } /** * Disallow function declarations that contain unsafe references inside loop statements. * * @see [no-loop-func](https://eslint.org/docs/latest/rules/no-loop-func) */ type NoLoopFuncRuleConfig$1 = RuleConfig<[]>; /** * Disallow function declarations that contain unsafe references inside loop statements. * * @see [no-loop-func](https://eslint.org/docs/latest/rules/no-loop-func) */ interface NoLoopFuncRule$1 { /** * Disallow function declarations that contain unsafe references inside loop statements. * * @see [no-loop-func](https://eslint.org/docs/latest/rules/no-loop-func) */ 'no-loop-func': NoLoopFuncRuleConfig$1; } /** * Disallow literal numbers that lose precision. * * @see [no-loss-of-precision](https://eslint.org/docs/latest/rules/no-loss-of-precision) */ type NoLossOfPrecisionRuleConfig$2 = RuleConfig<[]>; /** * Disallow literal numbers that lose precision. * * @see [no-loss-of-precision](https://eslint.org/docs/latest/rules/no-loss-of-precision) */ interface NoLossOfPrecisionRule$2 { /** * Disallow literal numbers that lose precision. * * @see [no-loss-of-precision](https://eslint.org/docs/latest/rules/no-loss-of-precision) */ 'no-loss-of-precision': NoLossOfPrecisionRuleConfig$2; } /** * Option. */ interface NoMagicNumbersOption$1 { detectObjects?: boolean; enforceConst?: boolean; ignore?: (number | string)[]; ignoreArrayIndexes?: boolean; ignoreDefaultValues?: boolean; ignoreClassFieldInitialValues?: boolean; } /** * Options. */ type NoMagicNumbersOptions$1 = [NoMagicNumbersOption$1?]; /** * Disallow magic numbers. * * @see [no-magic-numbers](https://eslint.org/docs/latest/rules/no-magic-numbers) */ type NoMagicNumbersRuleConfig$1 = RuleConfig; /** * Disallow magic numbers. * * @see [no-magic-numbers](https://eslint.org/docs/latest/rules/no-magic-numbers) */ interface NoMagicNumbersRule$1 { /** * Disallow magic numbers. * * @see [no-magic-numbers](https://eslint.org/docs/latest/rules/no-magic-numbers) */ 'no-magic-numbers': NoMagicNumbersRuleConfig$1; } /** * Disallow characters which are made with multiple code points in character class syntax. * * @see [no-misleading-character-class](https://eslint.org/docs/latest/rules/no-misleading-character-class) */ type NoMisleadingCharacterClassRuleConfig = RuleConfig<[]>; /** * Disallow characters which are made with multiple code points in character class syntax. * * @see [no-misleading-character-class](https://eslint.org/docs/latest/rules/no-misleading-character-class) */ interface NoMisleadingCharacterClassRule { /** * Disallow characters which are made with multiple code points in character class syntax. * * @see [no-misleading-character-class](https://eslint.org/docs/latest/rules/no-misleading-character-class) */ 'no-misleading-character-class': NoMisleadingCharacterClassRuleConfig; } /** * Option. */ interface NoMixedOperatorsOption { groups?: [ ( | '+' | '-' | '*' | '/' | '%' | '**' | '&' | '|' | '^' | '~' | '<<' | '>>' | '>>>' | '==' | '!=' | '===' | '!==' | '>' | '>=' | '<' | '<=' | '&&' | '||' | 'in' | 'instanceof' | '?:' | '??' ), ( | '+' | '-' | '*' | '/' | '%' | '**' | '&' | '|' | '^' | '~' | '<<' | '>>' | '>>>' | '==' | '!=' | '===' | '!==' | '>' | '>=' | '<' | '<=' | '&&' | '||' | 'in' | 'instanceof' | '?:' | '??' ), ...( | '+' | '-' | '*' | '/' | '%' | '**' | '&' | '|' | '^' | '~' | '<<' | '>>' | '>>>' | '==' | '!=' | '===' | '!==' | '>' | '>=' | '<' | '<=' | '&&' | '||' | 'in' | 'instanceof' | '?:' | '??' )[], ][]; allowSamePrecedence?: boolean; } /** * Options. */ type NoMixedOperatorsOptions = [NoMixedOperatorsOption?]; /** * Disallow mixed binary operators. * * @see [no-mixed-operators](https://eslint.org/docs/latest/rules/no-mixed-operators) */ type NoMixedOperatorsRuleConfig = RuleConfig; /** * Disallow mixed binary operators. * * @see [no-mixed-operators](https://eslint.org/docs/latest/rules/no-mixed-operators) */ interface NoMixedOperatorsRule { /** * Disallow mixed binary operators. * * @see [no-mixed-operators](https://eslint.org/docs/latest/rules/no-mixed-operators) */ 'no-mixed-operators': NoMixedOperatorsRuleConfig; } /** * Option. */ type NoMixedRequiresOption$2 = | boolean | { grouping?: boolean; allowCall?: boolean; }; /** * Options. */ type NoMixedRequiresOptions$2 = [NoMixedRequiresOption$2?]; /** * Disallow `require` calls to be mixed with regular variable declarations. * * @deprecated * * @see [no-mixed-requires](https://eslint.org/docs/latest/rules/no-mixed-requires) */ type NoMixedRequiresRuleConfig$2 = RuleConfig; /** * Disallow `require` calls to be mixed with regular variable declarations. * * @deprecated * * @see [no-mixed-requires](https://eslint.org/docs/latest/rules/no-mixed-requires) */ interface NoMixedRequiresRule$2 { /** * Disallow `require` calls to be mixed with regular variable declarations. * * @deprecated * * @see [no-mixed-requires](https://eslint.org/docs/latest/rules/no-mixed-requires) */ 'no-mixed-requires': NoMixedRequiresRuleConfig$2; } /** * Option. */ type NoMixedSpacesAndTabsOption = 'smart-tabs' | true | false; /** * Options. */ type NoMixedSpacesAndTabsOptions = [NoMixedSpacesAndTabsOption?]; /** * Disallow mixed spaces and tabs for indentation. * * @see [no-mixed-spaces-and-tabs](https://eslint.org/docs/latest/rules/no-mixed-spaces-and-tabs) */ type NoMixedSpacesAndTabsRuleConfig = RuleConfig; /** * Disallow mixed spaces and tabs for indentation. * * @see [no-mixed-spaces-and-tabs](https://eslint.org/docs/latest/rules/no-mixed-spaces-and-tabs) */ interface NoMixedSpacesAndTabsRule { /** * Disallow mixed spaces and tabs for indentation. * * @see [no-mixed-spaces-and-tabs](https://eslint.org/docs/latest/rules/no-mixed-spaces-and-tabs) */ 'no-mixed-spaces-and-tabs': NoMixedSpacesAndTabsRuleConfig; } /** * Option. */ interface NoMultiAssignOption { ignoreNonDeclaration?: boolean; } /** * Options. */ type NoMultiAssignOptions = [NoMultiAssignOption?]; /** * Disallow use of chained assignment expressions. * * @see [no-multi-assign](https://eslint.org/docs/latest/rules/no-multi-assign) */ type NoMultiAssignRuleConfig = RuleConfig; /** * Disallow use of chained assignment expressions. * * @see [no-multi-assign](https://eslint.org/docs/latest/rules/no-multi-assign) */ interface NoMultiAssignRule { /** * Disallow use of chained assignment expressions. * * @see [no-multi-assign](https://eslint.org/docs/latest/rules/no-multi-assign) */ 'no-multi-assign': NoMultiAssignRuleConfig; } /** * Option. */ interface NoMultiSpacesOption$1 { exceptions?: { /** */ [k: string]: boolean; }; ignoreEOLComments?: boolean; } /** * Options. */ type NoMultiSpacesOptions$1 = [NoMultiSpacesOption$1?]; /** * Disallow multiple spaces. * * @see [no-multi-spaces](https://eslint.org/docs/latest/rules/no-multi-spaces) */ type NoMultiSpacesRuleConfig$1 = RuleConfig; /** * Disallow multiple spaces. * * @see [no-multi-spaces](https://eslint.org/docs/latest/rules/no-multi-spaces) */ interface NoMultiSpacesRule$1 { /** * Disallow multiple spaces. * * @see [no-multi-spaces](https://eslint.org/docs/latest/rules/no-multi-spaces) */ 'no-multi-spaces': NoMultiSpacesRuleConfig$1; } /** * Disallow multiline strings. * * @see [no-multi-str](https://eslint.org/docs/latest/rules/no-multi-str) */ type NoMultiStrRuleConfig$1 = RuleConfig<[]>; /** * Disallow multiline strings. * * @see [no-multi-str](https://eslint.org/docs/latest/rules/no-multi-str) */ interface NoMultiStrRule$1 { /** * Disallow multiline strings. * * @see [no-multi-str](https://eslint.org/docs/latest/rules/no-multi-str) */ 'no-multi-str': NoMultiStrRuleConfig$1; } /** * Option. */ interface NoMultipleEmptyLinesOption$1 { max: number; maxEOF?: number; maxBOF?: number; } /** * Options. */ type NoMultipleEmptyLinesOptions$1 = [NoMultipleEmptyLinesOption$1?]; /** * Disallow multiple empty lines. * * @see [no-multiple-empty-lines](https://eslint.org/docs/latest/rules/no-multiple-empty-lines) */ type NoMultipleEmptyLinesRuleConfig$1 = RuleConfig; /** * Disallow multiple empty lines. * * @see [no-multiple-empty-lines](https://eslint.org/docs/latest/rules/no-multiple-empty-lines) */ interface NoMultipleEmptyLinesRule$1 { /** * Disallow multiple empty lines. * * @see [no-multiple-empty-lines](https://eslint.org/docs/latest/rules/no-multiple-empty-lines) */ 'no-multiple-empty-lines': NoMultipleEmptyLinesRuleConfig$1; } /** * Option. */ interface NoNativeReassignOption { exceptions?: string[]; } /** * Options. */ type NoNativeReassignOptions = [NoNativeReassignOption?]; /** * Disallow assignments to native objects or read-only global variables. * * @deprecated * * @see [no-native-reassign](https://eslint.org/docs/latest/rules/no-native-reassign) */ type NoNativeReassignRuleConfig = RuleConfig; /** * Disallow assignments to native objects or read-only global variables. * * @deprecated * * @see [no-native-reassign](https://eslint.org/docs/latest/rules/no-native-reassign) */ interface NoNativeReassignRule { /** * Disallow assignments to native objects or read-only global variables. * * @deprecated * * @see [no-native-reassign](https://eslint.org/docs/latest/rules/no-native-reassign) */ 'no-native-reassign': NoNativeReassignRuleConfig; } /** * Disallow negated conditions. * * @see [no-negated-condition](https://eslint.org/docs/latest/rules/no-negated-condition) */ type NoNegatedConditionRuleConfig$1 = RuleConfig<[]>; /** * Disallow negated conditions. * * @see [no-negated-condition](https://eslint.org/docs/latest/rules/no-negated-condition) */ interface NoNegatedConditionRule$1 { /** * Disallow negated conditions. * * @see [no-negated-condition](https://eslint.org/docs/latest/rules/no-negated-condition) */ 'no-negated-condition': NoNegatedConditionRuleConfig$1; } /** * Disallow negating the left operand in `in` expressions. * * @deprecated * * @see [no-negated-in-lhs](https://eslint.org/docs/latest/rules/no-negated-in-lhs) */ type NoNegatedInLhsRuleConfig = RuleConfig<[]>; /** * Disallow negating the left operand in `in` expressions. * * @deprecated * * @see [no-negated-in-lhs](https://eslint.org/docs/latest/rules/no-negated-in-lhs) */ interface NoNegatedInLhsRule { /** * Disallow negating the left operand in `in` expressions. * * @deprecated * * @see [no-negated-in-lhs](https://eslint.org/docs/latest/rules/no-negated-in-lhs) */ 'no-negated-in-lhs': NoNegatedInLhsRuleConfig; } /** * Disallow nested ternary expressions. * * @see [no-nested-ternary](https://eslint.org/docs/latest/rules/no-nested-ternary) */ type NoNestedTernaryRuleConfig$1 = RuleConfig<[]>; /** * Disallow nested ternary expressions. * * @see [no-nested-ternary](https://eslint.org/docs/latest/rules/no-nested-ternary) */ interface NoNestedTernaryRule$1 { /** * Disallow nested ternary expressions. * * @see [no-nested-ternary](https://eslint.org/docs/latest/rules/no-nested-ternary) */ 'no-nested-ternary': NoNestedTernaryRuleConfig$1; } /** * Disallow `new` operators outside of assignments or comparisons. * * @see [no-new](https://eslint.org/docs/latest/rules/no-new) */ type NoNewRuleConfig = RuleConfig<[]>; /** * Disallow `new` operators outside of assignments or comparisons. * * @see [no-new](https://eslint.org/docs/latest/rules/no-new) */ interface NoNewRule { /** * Disallow `new` operators outside of assignments or comparisons. * * @see [no-new](https://eslint.org/docs/latest/rules/no-new) */ 'no-new': NoNewRuleConfig; } /** * Disallow `new` operators with the `Function` object. * * @see [no-new-func](https://eslint.org/docs/latest/rules/no-new-func) */ type NoNewFuncRuleConfig = RuleConfig<[]>; /** * Disallow `new` operators with the `Function` object. * * @see [no-new-func](https://eslint.org/docs/latest/rules/no-new-func) */ interface NoNewFuncRule { /** * Disallow `new` operators with the `Function` object. * * @see [no-new-func](https://eslint.org/docs/latest/rules/no-new-func) */ 'no-new-func': NoNewFuncRuleConfig; } /** * Disallow `new` operators with global non-constructor functions. * * @see [no-new-native-nonconstructor](https://eslint.org/docs/latest/rules/no-new-native-nonconstructor) */ type NoNewNativeNonconstructorRuleConfig = RuleConfig<[]>; /** * Disallow `new` operators with global non-constructor functions. * * @see [no-new-native-nonconstructor](https://eslint.org/docs/latest/rules/no-new-native-nonconstructor) */ interface NoNewNativeNonconstructorRule { /** * Disallow `new` operators with global non-constructor functions. * * @see [no-new-native-nonconstructor](https://eslint.org/docs/latest/rules/no-new-native-nonconstructor) */ 'no-new-native-nonconstructor': NoNewNativeNonconstructorRuleConfig; } /** * Disallow `Object` constructors. * * @deprecated * * @see [no-new-object](https://eslint.org/docs/latest/rules/no-new-object) */ type NoNewObjectRuleConfig = RuleConfig<[]>; /** * Disallow `Object` constructors. * * @deprecated * * @see [no-new-object](https://eslint.org/docs/latest/rules/no-new-object) */ interface NoNewObjectRule { /** * Disallow `Object` constructors. * * @deprecated * * @see [no-new-object](https://eslint.org/docs/latest/rules/no-new-object) */ 'no-new-object': NoNewObjectRuleConfig; } /** * Disallow `new` operators with calls to `require`. * * @deprecated * * @see [no-new-require](https://eslint.org/docs/latest/rules/no-new-require) */ type NoNewRequireRuleConfig$2 = RuleConfig<[]>; /** * Disallow `new` operators with calls to `require`. * * @deprecated * * @see [no-new-require](https://eslint.org/docs/latest/rules/no-new-require) */ interface NoNewRequireRule$2 { /** * Disallow `new` operators with calls to `require`. * * @deprecated * * @see [no-new-require](https://eslint.org/docs/latest/rules/no-new-require) */ 'no-new-require': NoNewRequireRuleConfig$2; } /** * Disallow `new` operators with the `Symbol` object. * * @see [no-new-symbol](https://eslint.org/docs/latest/rules/no-new-symbol) */ type NoNewSymbolRuleConfig = RuleConfig<[]>; /** * Disallow `new` operators with the `Symbol` object. * * @see [no-new-symbol](https://eslint.org/docs/latest/rules/no-new-symbol) */ interface NoNewSymbolRule { /** * Disallow `new` operators with the `Symbol` object. * * @see [no-new-symbol](https://eslint.org/docs/latest/rules/no-new-symbol) */ 'no-new-symbol': NoNewSymbolRuleConfig; } /** * Disallow `new` operators with the `String`, `Number`, and `Boolean` objects. * * @see [no-new-wrappers](https://eslint.org/docs/latest/rules/no-new-wrappers) */ type NoNewWrappersRuleConfig = RuleConfig<[]>; /** * Disallow `new` operators with the `String`, `Number`, and `Boolean` objects. * * @see [no-new-wrappers](https://eslint.org/docs/latest/rules/no-new-wrappers) */ interface NoNewWrappersRule { /** * Disallow `new` operators with the `String`, `Number`, and `Boolean` objects. * * @see [no-new-wrappers](https://eslint.org/docs/latest/rules/no-new-wrappers) */ 'no-new-wrappers': NoNewWrappersRuleConfig; } /** * Disallow `\8` and `\9` escape sequences in string literals. * * @see [no-nonoctal-decimal-escape](https://eslint.org/docs/latest/rules/no-nonoctal-decimal-escape) */ type NoNonoctalDecimalEscapeRuleConfig = RuleConfig<[]>; /** * Disallow `\8` and `\9` escape sequences in string literals. * * @see [no-nonoctal-decimal-escape](https://eslint.org/docs/latest/rules/no-nonoctal-decimal-escape) */ interface NoNonoctalDecimalEscapeRule { /** * Disallow `\8` and `\9` escape sequences in string literals. * * @see [no-nonoctal-decimal-escape](https://eslint.org/docs/latest/rules/no-nonoctal-decimal-escape) */ 'no-nonoctal-decimal-escape': NoNonoctalDecimalEscapeRuleConfig; } /** * Disallow calling global object properties as functions. * * @see [no-obj-calls](https://eslint.org/docs/latest/rules/no-obj-calls) */ type NoObjCallsRuleConfig = RuleConfig<[]>; /** * Disallow calling global object properties as functions. * * @see [no-obj-calls](https://eslint.org/docs/latest/rules/no-obj-calls) */ interface NoObjCallsRule { /** * Disallow calling global object properties as functions. * * @see [no-obj-calls](https://eslint.org/docs/latest/rules/no-obj-calls) */ 'no-obj-calls': NoObjCallsRuleConfig; } /** * Disallow calls to the `Object` constructor without an argument. * * @see [no-object-constructor](https://eslint.org/docs/latest/rules/no-object-constructor) */ type NoObjectConstructorRuleConfig = RuleConfig<[]>; /** * Disallow calls to the `Object` constructor without an argument. * * @see [no-object-constructor](https://eslint.org/docs/latest/rules/no-object-constructor) */ interface NoObjectConstructorRule { /** * Disallow calls to the `Object` constructor without an argument. * * @see [no-object-constructor](https://eslint.org/docs/latest/rules/no-object-constructor) */ 'no-object-constructor': NoObjectConstructorRuleConfig; } /** * Disallow octal literals. * * @see [no-octal](https://eslint.org/docs/latest/rules/no-octal) */ type NoOctalRuleConfig$1 = RuleConfig<[]>; /** * Disallow octal literals. * * @see [no-octal](https://eslint.org/docs/latest/rules/no-octal) */ interface NoOctalRule$1 { /** * Disallow octal literals. * * @see [no-octal](https://eslint.org/docs/latest/rules/no-octal) */ 'no-octal': NoOctalRuleConfig$1; } /** * Disallow octal escape sequences in string literals. * * @see [no-octal-escape](https://eslint.org/docs/latest/rules/no-octal-escape) */ type NoOctalEscapeRuleConfig$1 = RuleConfig<[]>; /** * Disallow octal escape sequences in string literals. * * @see [no-octal-escape](https://eslint.org/docs/latest/rules/no-octal-escape) */ interface NoOctalEscapeRule$1 { /** * Disallow octal escape sequences in string literals. * * @see [no-octal-escape](https://eslint.org/docs/latest/rules/no-octal-escape) */ 'no-octal-escape': NoOctalEscapeRuleConfig$1; } /** * Option. */ type NoParamReassignOption = | { props?: false; } | { props?: true; ignorePropertyModificationsFor?: string[]; ignorePropertyModificationsForRegex?: string[]; }; /** * Options. */ type NoParamReassignOptions = [NoParamReassignOption?]; /** * Disallow reassigning `function` parameters. * * @see [no-param-reassign](https://eslint.org/docs/latest/rules/no-param-reassign) */ type NoParamReassignRuleConfig = RuleConfig; /** * Disallow reassigning `function` parameters. * * @see [no-param-reassign](https://eslint.org/docs/latest/rules/no-param-reassign) */ interface NoParamReassignRule { /** * Disallow reassigning `function` parameters. * * @see [no-param-reassign](https://eslint.org/docs/latest/rules/no-param-reassign) */ 'no-param-reassign': NoParamReassignRuleConfig; } /** * Disallow string concatenation with `__dirname` and `__filename`. * * @deprecated * * @see [no-path-concat](https://eslint.org/docs/latest/rules/no-path-concat) */ type NoPathConcatRuleConfig$2 = RuleConfig<[]>; /** * Disallow string concatenation with `__dirname` and `__filename`. * * @deprecated * * @see [no-path-concat](https://eslint.org/docs/latest/rules/no-path-concat) */ interface NoPathConcatRule$2 { /** * Disallow string concatenation with `__dirname` and `__filename`. * * @deprecated * * @see [no-path-concat](https://eslint.org/docs/latest/rules/no-path-concat) */ 'no-path-concat': NoPathConcatRuleConfig$2; } /** * Option. */ interface NoPlusplusOption { allowForLoopAfterthoughts?: boolean; } /** * Options. */ type NoPlusplusOptions = [NoPlusplusOption?]; /** * Disallow the unary operators `++` and `--`. * * @see [no-plusplus](https://eslint.org/docs/latest/rules/no-plusplus) */ type NoPlusplusRuleConfig = RuleConfig; /** * Disallow the unary operators `++` and `--`. * * @see [no-plusplus](https://eslint.org/docs/latest/rules/no-plusplus) */ interface NoPlusplusRule { /** * Disallow the unary operators `++` and `--`. * * @see [no-plusplus](https://eslint.org/docs/latest/rules/no-plusplus) */ 'no-plusplus': NoPlusplusRuleConfig; } /** * Disallow the use of `process.env`. * * @deprecated * * @see [no-process-env](https://eslint.org/docs/latest/rules/no-process-env) */ type NoProcessEnvRuleConfig$2 = RuleConfig<[]>; /** * Disallow the use of `process.env`. * * @deprecated * * @see [no-process-env](https://eslint.org/docs/latest/rules/no-process-env) */ interface NoProcessEnvRule$2 { /** * Disallow the use of `process.env`. * * @deprecated * * @see [no-process-env](https://eslint.org/docs/latest/rules/no-process-env) */ 'no-process-env': NoProcessEnvRuleConfig$2; } /** * Disallow the use of `process.exit()`. * * @deprecated * * @see [no-process-exit](https://eslint.org/docs/latest/rules/no-process-exit) */ type NoProcessExitRuleConfig$3 = RuleConfig<[]>; /** * Disallow the use of `process.exit()`. * * @deprecated * * @see [no-process-exit](https://eslint.org/docs/latest/rules/no-process-exit) */ interface NoProcessExitRule$3 { /** * Disallow the use of `process.exit()`. * * @deprecated * * @see [no-process-exit](https://eslint.org/docs/latest/rules/no-process-exit) */ 'no-process-exit': NoProcessExitRuleConfig$3; } /** * Option. */ interface NoPromiseExecutorReturnOption { allowVoid?: boolean; } /** * Options. */ type NoPromiseExecutorReturnOptions = [NoPromiseExecutorReturnOption?]; /** * Disallow returning values from Promise executor functions. * * @see [no-promise-executor-return](https://eslint.org/docs/latest/rules/no-promise-executor-return) */ type NoPromiseExecutorReturnRuleConfig = RuleConfig; /** * Disallow returning values from Promise executor functions. * * @see [no-promise-executor-return](https://eslint.org/docs/latest/rules/no-promise-executor-return) */ interface NoPromiseExecutorReturnRule { /** * Disallow returning values from Promise executor functions. * * @see [no-promise-executor-return](https://eslint.org/docs/latest/rules/no-promise-executor-return) */ 'no-promise-executor-return': NoPromiseExecutorReturnRuleConfig; } /** * Disallow the use of the `__proto__` property. * * @see [no-proto](https://eslint.org/docs/latest/rules/no-proto) */ type NoProtoRuleConfig = RuleConfig<[]>; /** * Disallow the use of the `__proto__` property. * * @see [no-proto](https://eslint.org/docs/latest/rules/no-proto) */ interface NoProtoRule { /** * Disallow the use of the `__proto__` property. * * @see [no-proto](https://eslint.org/docs/latest/rules/no-proto) */ 'no-proto': NoProtoRuleConfig; } /** * Disallow calling some `Object.prototype` methods directly on objects. * * @see [no-prototype-builtins](https://eslint.org/docs/latest/rules/no-prototype-builtins) */ type NoPrototypeBuiltinsRuleConfig = RuleConfig<[]>; /** * Disallow calling some `Object.prototype` methods directly on objects. * * @see [no-prototype-builtins](https://eslint.org/docs/latest/rules/no-prototype-builtins) */ interface NoPrototypeBuiltinsRule { /** * Disallow calling some `Object.prototype` methods directly on objects. * * @see [no-prototype-builtins](https://eslint.org/docs/latest/rules/no-prototype-builtins) */ 'no-prototype-builtins': NoPrototypeBuiltinsRuleConfig; } /** * Option. */ interface NoRedeclareOption$1 { builtinGlobals?: boolean; } /** * Options. */ type NoRedeclareOptions$1 = [NoRedeclareOption$1?]; /** * Disallow variable redeclaration. * * @see [no-redeclare](https://eslint.org/docs/latest/rules/no-redeclare) */ type NoRedeclareRuleConfig$1 = RuleConfig; /** * Disallow variable redeclaration. * * @see [no-redeclare](https://eslint.org/docs/latest/rules/no-redeclare) */ interface NoRedeclareRule$1 { /** * Disallow variable redeclaration. * * @see [no-redeclare](https://eslint.org/docs/latest/rules/no-redeclare) */ 'no-redeclare': NoRedeclareRuleConfig$1; } /** * Disallow multiple spaces in regular expressions. * * @see [no-regex-spaces](https://eslint.org/docs/latest/rules/no-regex-spaces) */ type NoRegexSpacesRuleConfig = RuleConfig<[]>; /** * Disallow multiple spaces in regular expressions. * * @see [no-regex-spaces](https://eslint.org/docs/latest/rules/no-regex-spaces) */ interface NoRegexSpacesRule { /** * Disallow multiple spaces in regular expressions. * * @see [no-regex-spaces](https://eslint.org/docs/latest/rules/no-regex-spaces) */ 'no-regex-spaces': NoRegexSpacesRuleConfig; } /** * Option. */ type NoRestrictedExportsOption = | { restrictedNamedExports?: string[]; } | { restrictedNamedExports?: string[]; restrictDefaultExports?: { direct?: boolean; named?: boolean; defaultFrom?: boolean; namedFrom?: boolean; namespaceFrom?: boolean; }; }; /** * Options. */ type NoRestrictedExportsOptions = [NoRestrictedExportsOption?]; /** * Disallow specified names in exports. * * @see [no-restricted-exports](https://eslint.org/docs/latest/rules/no-restricted-exports) */ type NoRestrictedExportsRuleConfig = RuleConfig; /** * Disallow specified names in exports. * * @see [no-restricted-exports](https://eslint.org/docs/latest/rules/no-restricted-exports) */ interface NoRestrictedExportsRule { /** * Disallow specified names in exports. * * @see [no-restricted-exports](https://eslint.org/docs/latest/rules/no-restricted-exports) */ 'no-restricted-exports': NoRestrictedExportsRuleConfig; } /** * Option. */ /** * @minItems 0 */ type NoRestrictedGlobalsOption = ( | string | { name: string; message?: string; } )[]; /** * Options. */ type NoRestrictedGlobalsOptions = NoRestrictedGlobalsOption; /** * Disallow specified global variables. * * @see [no-restricted-globals](https://eslint.org/docs/latest/rules/no-restricted-globals) */ type NoRestrictedGlobalsRuleConfig = RuleConfig; /** * Disallow specified global variables. * * @see [no-restricted-globals](https://eslint.org/docs/latest/rules/no-restricted-globals) */ interface NoRestrictedGlobalsRule { /** * Disallow specified global variables. * * @see [no-restricted-globals](https://eslint.org/docs/latest/rules/no-restricted-globals) */ 'no-restricted-globals': NoRestrictedGlobalsRuleConfig; } /** * Option. */ type NoRestrictedImportsOption$1 = | ( | string | { name: string; message?: string; importNames?: string[]; } )[] | [] | [ { paths?: ( | string | { name: string; message?: string; importNames?: string[]; } )[]; patterns?: | string[] | { /** * @minItems 1 */ importNames?: [string, ...string[]]; /** * @minItems 1 */ group: [string, ...string[]]; message?: string; caseSensitive?: boolean; }[]; }, ]; /** * Options. */ type NoRestrictedImportsOptions$1 = NoRestrictedImportsOption$1; /** * Disallow specified modules when loaded by `import`. * * @see [no-restricted-imports](https://eslint.org/docs/latest/rules/no-restricted-imports) */ type NoRestrictedImportsRuleConfig$1 = RuleConfig; /** * Disallow specified modules when loaded by `import`. * * @see [no-restricted-imports](https://eslint.org/docs/latest/rules/no-restricted-imports) */ interface NoRestrictedImportsRule$1 { /** * Disallow specified modules when loaded by `import`. * * @see [no-restricted-imports](https://eslint.org/docs/latest/rules/no-restricted-imports) */ 'no-restricted-imports': NoRestrictedImportsRuleConfig$1; } /** * Option. */ type NoRestrictedModulesOption = | ( | string | { name: string; message?: string; } )[] | { paths?: ( | string | { name: string; message?: string; } )[]; patterns?: string[]; }[]; /** * Options. */ type NoRestrictedModulesOptions = NoRestrictedModulesOption; /** * Disallow specified modules when loaded by `require`. * * @deprecated * * @see [no-restricted-modules](https://eslint.org/docs/latest/rules/no-restricted-modules) */ type NoRestrictedModulesRuleConfig = RuleConfig; /** * Disallow specified modules when loaded by `require`. * * @deprecated * * @see [no-restricted-modules](https://eslint.org/docs/latest/rules/no-restricted-modules) */ interface NoRestrictedModulesRule { /** * Disallow specified modules when loaded by `require`. * * @deprecated * * @see [no-restricted-modules](https://eslint.org/docs/latest/rules/no-restricted-modules) */ 'no-restricted-modules': NoRestrictedModulesRuleConfig; } /** * Option. */ type NoRestrictedPropertiesOption = ( | { object: string; property?: string; message?: string; } | { object?: string; property: string; message?: string; } )[]; /** * Options. */ type NoRestrictedPropertiesOptions = NoRestrictedPropertiesOption; /** * Disallow certain properties on certain objects. * * @see [no-restricted-properties](https://eslint.org/docs/latest/rules/no-restricted-properties) */ type NoRestrictedPropertiesRuleConfig = RuleConfig; /** * Disallow certain properties on certain objects. * * @see [no-restricted-properties](https://eslint.org/docs/latest/rules/no-restricted-properties) */ interface NoRestrictedPropertiesRule { /** * Disallow certain properties on certain objects. * * @see [no-restricted-properties](https://eslint.org/docs/latest/rules/no-restricted-properties) */ 'no-restricted-properties': NoRestrictedPropertiesRuleConfig; } /** * Option. */ /** * @minItems 0 */ type NoRestrictedSyntaxOption$2 = ( | string | { selector: string; message?: string; } )[]; /** * Options. */ type NoRestrictedSyntaxOptions$2 = NoRestrictedSyntaxOption$2; /** * Disallow specified syntax. * * @see [no-restricted-syntax](https://eslint.org/docs/latest/rules/no-restricted-syntax) */ type NoRestrictedSyntaxRuleConfig$2 = RuleConfig; /** * Disallow specified syntax. * * @see [no-restricted-syntax](https://eslint.org/docs/latest/rules/no-restricted-syntax) */ interface NoRestrictedSyntaxRule$2 { /** * Disallow specified syntax. * * @see [no-restricted-syntax](https://eslint.org/docs/latest/rules/no-restricted-syntax) */ 'no-restricted-syntax': NoRestrictedSyntaxRuleConfig$2; } /** * Option. */ type NoReturnAssignOption = 'except-parens' | 'always'; /** * Options. */ type NoReturnAssignOptions = [NoReturnAssignOption?]; /** * Disallow assignment operators in `return` statements. * * @see [no-return-assign](https://eslint.org/docs/latest/rules/no-return-assign) */ type NoReturnAssignRuleConfig = RuleConfig; /** * Disallow assignment operators in `return` statements. * * @see [no-return-assign](https://eslint.org/docs/latest/rules/no-return-assign) */ interface NoReturnAssignRule { /** * Disallow assignment operators in `return` statements. * * @see [no-return-assign](https://eslint.org/docs/latest/rules/no-return-assign) */ 'no-return-assign': NoReturnAssignRuleConfig; } /** * Disallow unnecessary `return await`. * * @deprecated * * @see [no-return-await](https://eslint.org/docs/latest/rules/no-return-await) */ type NoReturnAwaitRuleConfig = RuleConfig<[]>; /** * Disallow unnecessary `return await`. * * @deprecated * * @see [no-return-await](https://eslint.org/docs/latest/rules/no-return-await) */ interface NoReturnAwaitRule { /** * Disallow unnecessary `return await`. * * @deprecated * * @see [no-return-await](https://eslint.org/docs/latest/rules/no-return-await) */ 'no-return-await': NoReturnAwaitRuleConfig; } /** * Disallow `javascript:` urls. * * @see [no-script-url](https://eslint.org/docs/latest/rules/no-script-url) */ type NoScriptUrlRuleConfig = RuleConfig<[]>; /** * Disallow `javascript:` urls. * * @see [no-script-url](https://eslint.org/docs/latest/rules/no-script-url) */ interface NoScriptUrlRule { /** * Disallow `javascript:` urls. * * @see [no-script-url](https://eslint.org/docs/latest/rules/no-script-url) */ 'no-script-url': NoScriptUrlRuleConfig; } /** * Option. */ interface NoSelfAssignOption { props?: boolean; } /** * Options. */ type NoSelfAssignOptions = [NoSelfAssignOption?]; /** * Disallow assignments where both sides are exactly the same. * * @see [no-self-assign](https://eslint.org/docs/latest/rules/no-self-assign) */ type NoSelfAssignRuleConfig = RuleConfig; /** * Disallow assignments where both sides are exactly the same. * * @see [no-self-assign](https://eslint.org/docs/latest/rules/no-self-assign) */ interface NoSelfAssignRule { /** * Disallow assignments where both sides are exactly the same. * * @see [no-self-assign](https://eslint.org/docs/latest/rules/no-self-assign) */ 'no-self-assign': NoSelfAssignRuleConfig; } /** * Disallow comparisons where both sides are exactly the same. * * @see [no-self-compare](https://eslint.org/docs/latest/rules/no-self-compare) */ type NoSelfCompareRuleConfig = RuleConfig<[]>; /** * Disallow comparisons where both sides are exactly the same. * * @see [no-self-compare](https://eslint.org/docs/latest/rules/no-self-compare) */ interface NoSelfCompareRule { /** * Disallow comparisons where both sides are exactly the same. * * @see [no-self-compare](https://eslint.org/docs/latest/rules/no-self-compare) */ 'no-self-compare': NoSelfCompareRuleConfig; } /** * Option. */ interface NoSequencesOption { allowInParentheses?: boolean; } /** * Options. */ type NoSequencesOptions = [NoSequencesOption?]; /** * Disallow comma operators. * * @see [no-sequences](https://eslint.org/docs/latest/rules/no-sequences) */ type NoSequencesRuleConfig = RuleConfig; /** * Disallow comma operators. * * @see [no-sequences](https://eslint.org/docs/latest/rules/no-sequences) */ interface NoSequencesRule { /** * Disallow comma operators. * * @see [no-sequences](https://eslint.org/docs/latest/rules/no-sequences) */ 'no-sequences': NoSequencesRuleConfig; } /** * Disallow returning values from setters. * * @see [no-setter-return](https://eslint.org/docs/latest/rules/no-setter-return) */ type NoSetterReturnRuleConfig = RuleConfig<[]>; /** * Disallow returning values from setters. * * @see [no-setter-return](https://eslint.org/docs/latest/rules/no-setter-return) */ interface NoSetterReturnRule { /** * Disallow returning values from setters. * * @see [no-setter-return](https://eslint.org/docs/latest/rules/no-setter-return) */ 'no-setter-return': NoSetterReturnRuleConfig; } /** * Option. */ interface NoShadowOption$1 { builtinGlobals?: boolean; hoist?: 'all' | 'functions' | 'never'; allow?: string[]; ignoreOnInitialization?: boolean; } /** * Options. */ type NoShadowOptions$1 = [NoShadowOption$1?]; /** * Disallow variable declarations from shadowing variables declared in the outer scope. * * @see [no-shadow](https://eslint.org/docs/latest/rules/no-shadow) */ type NoShadowRuleConfig$1 = RuleConfig; /** * Disallow variable declarations from shadowing variables declared in the outer scope. * * @see [no-shadow](https://eslint.org/docs/latest/rules/no-shadow) */ interface NoShadowRule$1 { /** * Disallow variable declarations from shadowing variables declared in the outer scope. * * @see [no-shadow](https://eslint.org/docs/latest/rules/no-shadow) */ 'no-shadow': NoShadowRuleConfig$1; } /** * Disallow identifiers from shadowing restricted names. * * @see [no-shadow-restricted-names](https://eslint.org/docs/latest/rules/no-shadow-restricted-names) */ type NoShadowRestrictedNamesRuleConfig = RuleConfig<[]>; /** * Disallow identifiers from shadowing restricted names. * * @see [no-shadow-restricted-names](https://eslint.org/docs/latest/rules/no-shadow-restricted-names) */ interface NoShadowRestrictedNamesRule { /** * Disallow identifiers from shadowing restricted names. * * @see [no-shadow-restricted-names](https://eslint.org/docs/latest/rules/no-shadow-restricted-names) */ 'no-shadow-restricted-names': NoShadowRestrictedNamesRuleConfig; } /** * Disallow spacing between function identifiers and their applications (deprecated). * * @deprecated * * @see [no-spaced-func](https://eslint.org/docs/latest/rules/no-spaced-func) */ type NoSpacedFuncRuleConfig = RuleConfig<[]>; /** * Disallow spacing between function identifiers and their applications (deprecated). * * @deprecated * * @see [no-spaced-func](https://eslint.org/docs/latest/rules/no-spaced-func) */ interface NoSpacedFuncRule { /** * Disallow spacing between function identifiers and their applications (deprecated). * * @deprecated * * @see [no-spaced-func](https://eslint.org/docs/latest/rules/no-spaced-func) */ 'no-spaced-func': NoSpacedFuncRuleConfig; } /** * Disallow sparse arrays. * * @see [no-sparse-arrays](https://eslint.org/docs/latest/rules/no-sparse-arrays) */ type NoSparseArraysRuleConfig$2 = RuleConfig<[]>; /** * Disallow sparse arrays. * * @see [no-sparse-arrays](https://eslint.org/docs/latest/rules/no-sparse-arrays) */ interface NoSparseArraysRule$2 { /** * Disallow sparse arrays. * * @see [no-sparse-arrays](https://eslint.org/docs/latest/rules/no-sparse-arrays) */ 'no-sparse-arrays': NoSparseArraysRuleConfig$2; } /** * Option. */ interface NoSyncOption$2 { allowAtRootLevel?: boolean; } /** * Options. */ type NoSyncOptions$2 = [NoSyncOption$2?]; /** * Disallow synchronous methods. * * @deprecated * * @see [no-sync](https://eslint.org/docs/latest/rules/no-sync) */ type NoSyncRuleConfig$2 = RuleConfig; /** * Disallow synchronous methods. * * @deprecated * * @see [no-sync](https://eslint.org/docs/latest/rules/no-sync) */ interface NoSyncRule$2 { /** * Disallow synchronous methods. * * @deprecated * * @see [no-sync](https://eslint.org/docs/latest/rules/no-sync) */ 'no-sync': NoSyncRuleConfig$2; } /** * Option. */ interface NoTabsOption { allowIndentationTabs?: boolean; } /** * Options. */ type NoTabsOptions = [NoTabsOption?]; /** * Disallow all tabs. * * @see [no-tabs](https://eslint.org/docs/latest/rules/no-tabs) */ type NoTabsRuleConfig = RuleConfig; /** * Disallow all tabs. * * @see [no-tabs](https://eslint.org/docs/latest/rules/no-tabs) */ interface NoTabsRule { /** * Disallow all tabs. * * @see [no-tabs](https://eslint.org/docs/latest/rules/no-tabs) */ 'no-tabs': NoTabsRuleConfig; } /** * Disallow template literal placeholder syntax in regular strings. * * @see [no-template-curly-in-string](https://eslint.org/docs/latest/rules/no-template-curly-in-string) */ type NoTemplateCurlyInStringRuleConfig = RuleConfig<[]>; /** * Disallow template literal placeholder syntax in regular strings. * * @see [no-template-curly-in-string](https://eslint.org/docs/latest/rules/no-template-curly-in-string) */ interface NoTemplateCurlyInStringRule { /** * Disallow template literal placeholder syntax in regular strings. * * @see [no-template-curly-in-string](https://eslint.org/docs/latest/rules/no-template-curly-in-string) */ 'no-template-curly-in-string': NoTemplateCurlyInStringRuleConfig; } /** * Disallow ternary operators. * * @see [no-ternary](https://eslint.org/docs/latest/rules/no-ternary) */ type NoTernaryRuleConfig = RuleConfig<[]>; /** * Disallow ternary operators. * * @see [no-ternary](https://eslint.org/docs/latest/rules/no-ternary) */ interface NoTernaryRule { /** * Disallow ternary operators. * * @see [no-ternary](https://eslint.org/docs/latest/rules/no-ternary) */ 'no-ternary': NoTernaryRuleConfig; } /** * Disallow `this`/`super` before calling `super()` in constructors. * * @see [no-this-before-super](https://eslint.org/docs/latest/rules/no-this-before-super) */ type NoThisBeforeSuperRuleConfig = RuleConfig<[]>; /** * Disallow `this`/`super` before calling `super()` in constructors. * * @see [no-this-before-super](https://eslint.org/docs/latest/rules/no-this-before-super) */ interface NoThisBeforeSuperRule { /** * Disallow `this`/`super` before calling `super()` in constructors. * * @see [no-this-before-super](https://eslint.org/docs/latest/rules/no-this-before-super) */ 'no-this-before-super': NoThisBeforeSuperRuleConfig; } /** * Disallow throwing literals as exceptions. * * @see [no-throw-literal](https://eslint.org/docs/latest/rules/no-throw-literal) */ type NoThrowLiteralRuleConfig$1 = RuleConfig<[]>; /** * Disallow throwing literals as exceptions. * * @see [no-throw-literal](https://eslint.org/docs/latest/rules/no-throw-literal) */ interface NoThrowLiteralRule$1 { /** * Disallow throwing literals as exceptions. * * @see [no-throw-literal](https://eslint.org/docs/latest/rules/no-throw-literal) */ 'no-throw-literal': NoThrowLiteralRuleConfig$1; } /** * Option. */ interface NoTrailingSpacesOption { skipBlankLines?: boolean; ignoreComments?: boolean; } /** * Options. */ type NoTrailingSpacesOptions = [NoTrailingSpacesOption?]; /** * Disallow trailing whitespace at the end of lines. * * @see [no-trailing-spaces](https://eslint.org/docs/latest/rules/no-trailing-spaces) */ type NoTrailingSpacesRuleConfig = RuleConfig; /** * Disallow trailing whitespace at the end of lines. * * @see [no-trailing-spaces](https://eslint.org/docs/latest/rules/no-trailing-spaces) */ interface NoTrailingSpacesRule { /** * Disallow trailing whitespace at the end of lines. * * @see [no-trailing-spaces](https://eslint.org/docs/latest/rules/no-trailing-spaces) */ 'no-trailing-spaces': NoTrailingSpacesRuleConfig; } /** * Option. */ interface NoUndefOption { typeof?: boolean; } /** * Options. */ type NoUndefOptions = [NoUndefOption?]; /** * Disallow the use of undeclared variables unless mentioned in `/*global ` comments. * * @see [no-undef](https://eslint.org/docs/latest/rules/no-undef) */ type NoUndefRuleConfig = RuleConfig; /** * Disallow the use of undeclared variables unless mentioned in `/*global ` comments. * * @see [no-undef](https://eslint.org/docs/latest/rules/no-undef) */ interface NoUndefRule { /** * Disallow the use of undeclared variables unless mentioned in `/*global ` comments. * * @see [no-undef](https://eslint.org/docs/latest/rules/no-undef) */ 'no-undef': NoUndefRuleConfig; } /** * Disallow initializing variables to `undefined`. * * @see [no-undef-init](https://eslint.org/docs/latest/rules/no-undef-init) */ type NoUndefInitRuleConfig = RuleConfig<[]>; /** * Disallow initializing variables to `undefined`. * * @see [no-undef-init](https://eslint.org/docs/latest/rules/no-undef-init) */ interface NoUndefInitRule { /** * Disallow initializing variables to `undefined`. * * @see [no-undef-init](https://eslint.org/docs/latest/rules/no-undef-init) */ 'no-undef-init': NoUndefInitRuleConfig; } /** * Disallow the use of `undefined` as an identifier. * * @see [no-undefined](https://eslint.org/docs/latest/rules/no-undefined) */ type NoUndefinedRuleConfig = RuleConfig<[]>; /** * Disallow the use of `undefined` as an identifier. * * @see [no-undefined](https://eslint.org/docs/latest/rules/no-undefined) */ interface NoUndefinedRule { /** * Disallow the use of `undefined` as an identifier. * * @see [no-undefined](https://eslint.org/docs/latest/rules/no-undefined) */ 'no-undefined': NoUndefinedRuleConfig; } /** * Option. */ interface NoUnderscoreDangleOption { allow?: string[]; allowAfterThis?: boolean; allowAfterSuper?: boolean; allowAfterThisConstructor?: boolean; enforceInMethodNames?: boolean; allowFunctionParams?: boolean; enforceInClassFields?: boolean; allowInArrayDestructuring?: boolean; allowInObjectDestructuring?: boolean; } /** * Options. */ type NoUnderscoreDangleOptions = [NoUnderscoreDangleOption?]; /** * Disallow dangling underscores in identifiers. * * @see [no-underscore-dangle](https://eslint.org/docs/latest/rules/no-underscore-dangle) */ type NoUnderscoreDangleRuleConfig = RuleConfig; /** * Disallow dangling underscores in identifiers. * * @see [no-underscore-dangle](https://eslint.org/docs/latest/rules/no-underscore-dangle) */ interface NoUnderscoreDangleRule { /** * Disallow dangling underscores in identifiers. * * @see [no-underscore-dangle](https://eslint.org/docs/latest/rules/no-underscore-dangle) */ 'no-underscore-dangle': NoUnderscoreDangleRuleConfig; } /** * Disallow confusing multiline expressions. * * @see [no-unexpected-multiline](https://eslint.org/docs/latest/rules/no-unexpected-multiline) */ type NoUnexpectedMultilineRuleConfig = RuleConfig<[]>; /** * Disallow confusing multiline expressions. * * @see [no-unexpected-multiline](https://eslint.org/docs/latest/rules/no-unexpected-multiline) */ interface NoUnexpectedMultilineRule { /** * Disallow confusing multiline expressions. * * @see [no-unexpected-multiline](https://eslint.org/docs/latest/rules/no-unexpected-multiline) */ 'no-unexpected-multiline': NoUnexpectedMultilineRuleConfig; } /** * Disallow unmodified loop conditions. * * @see [no-unmodified-loop-condition](https://eslint.org/docs/latest/rules/no-unmodified-loop-condition) */ type NoUnmodifiedLoopConditionRuleConfig = RuleConfig<[]>; /** * Disallow unmodified loop conditions. * * @see [no-unmodified-loop-condition](https://eslint.org/docs/latest/rules/no-unmodified-loop-condition) */ interface NoUnmodifiedLoopConditionRule { /** * Disallow unmodified loop conditions. * * @see [no-unmodified-loop-condition](https://eslint.org/docs/latest/rules/no-unmodified-loop-condition) */ 'no-unmodified-loop-condition': NoUnmodifiedLoopConditionRuleConfig; } /** * Option. */ interface NoUnneededTernaryOption { defaultAssignment?: boolean; } /** * Options. */ type NoUnneededTernaryOptions = [NoUnneededTernaryOption?]; /** * Disallow ternary operators when simpler alternatives exist. * * @see [no-unneeded-ternary](https://eslint.org/docs/latest/rules/no-unneeded-ternary) */ type NoUnneededTernaryRuleConfig = RuleConfig; /** * Disallow ternary operators when simpler alternatives exist. * * @see [no-unneeded-ternary](https://eslint.org/docs/latest/rules/no-unneeded-ternary) */ interface NoUnneededTernaryRule { /** * Disallow ternary operators when simpler alternatives exist. * * @see [no-unneeded-ternary](https://eslint.org/docs/latest/rules/no-unneeded-ternary) */ 'no-unneeded-ternary': NoUnneededTernaryRuleConfig; } /** * Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements. * * @see [no-unreachable](https://eslint.org/docs/latest/rules/no-unreachable) */ type NoUnreachableRuleConfig = RuleConfig<[]>; /** * Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements. * * @see [no-unreachable](https://eslint.org/docs/latest/rules/no-unreachable) */ interface NoUnreachableRule { /** * Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements. * * @see [no-unreachable](https://eslint.org/docs/latest/rules/no-unreachable) */ 'no-unreachable': NoUnreachableRuleConfig; } /** * Option. */ interface NoUnreachableLoopOption { ignore?: ( | 'WhileStatement' | 'DoWhileStatement' | 'ForStatement' | 'ForInStatement' | 'ForOfStatement' )[]; } /** * Options. */ type NoUnreachableLoopOptions = [NoUnreachableLoopOption?]; /** * Disallow loops with a body that allows only one iteration. * * @see [no-unreachable-loop](https://eslint.org/docs/latest/rules/no-unreachable-loop) */ type NoUnreachableLoopRuleConfig = RuleConfig; /** * Disallow loops with a body that allows only one iteration. * * @see [no-unreachable-loop](https://eslint.org/docs/latest/rules/no-unreachable-loop) */ interface NoUnreachableLoopRule { /** * Disallow loops with a body that allows only one iteration. * * @see [no-unreachable-loop](https://eslint.org/docs/latest/rules/no-unreachable-loop) */ 'no-unreachable-loop': NoUnreachableLoopRuleConfig; } /** * Disallow control flow statements in `finally` blocks. * * @see [no-unsafe-finally](https://eslint.org/docs/latest/rules/no-unsafe-finally) */ type NoUnsafeFinallyRuleConfig = RuleConfig<[]>; /** * Disallow control flow statements in `finally` blocks. * * @see [no-unsafe-finally](https://eslint.org/docs/latest/rules/no-unsafe-finally) */ interface NoUnsafeFinallyRule { /** * Disallow control flow statements in `finally` blocks. * * @see [no-unsafe-finally](https://eslint.org/docs/latest/rules/no-unsafe-finally) */ 'no-unsafe-finally': NoUnsafeFinallyRuleConfig; } /** * Option. */ interface NoUnsafeNegationOption { enforceForOrderingRelations?: boolean; } /** * Options. */ type NoUnsafeNegationOptions = [NoUnsafeNegationOption?]; /** * Disallow negating the left operand of relational operators. * * @see [no-unsafe-negation](https://eslint.org/docs/latest/rules/no-unsafe-negation) */ type NoUnsafeNegationRuleConfig = RuleConfig; /** * Disallow negating the left operand of relational operators. * * @see [no-unsafe-negation](https://eslint.org/docs/latest/rules/no-unsafe-negation) */ interface NoUnsafeNegationRule { /** * Disallow negating the left operand of relational operators. * * @see [no-unsafe-negation](https://eslint.org/docs/latest/rules/no-unsafe-negation) */ 'no-unsafe-negation': NoUnsafeNegationRuleConfig; } /** * Option. */ interface NoUnsafeOptionalChainingOption { disallowArithmeticOperators?: boolean; } /** * Options. */ type NoUnsafeOptionalChainingOptions = [NoUnsafeOptionalChainingOption?]; /** * Disallow use of optional chaining in contexts where the `undefined` value is not allowed. * * @see [no-unsafe-optional-chaining](https://eslint.org/docs/latest/rules/no-unsafe-optional-chaining) */ type NoUnsafeOptionalChainingRuleConfig = RuleConfig; /** * Disallow use of optional chaining in contexts where the `undefined` value is not allowed. * * @see [no-unsafe-optional-chaining](https://eslint.org/docs/latest/rules/no-unsafe-optional-chaining) */ interface NoUnsafeOptionalChainingRule { /** * Disallow use of optional chaining in contexts where the `undefined` value is not allowed. * * @see [no-unsafe-optional-chaining](https://eslint.org/docs/latest/rules/no-unsafe-optional-chaining) */ 'no-unsafe-optional-chaining': NoUnsafeOptionalChainingRuleConfig; } /** * Option. */ interface NoUnusedExpressionsOption$1 { allowShortCircuit?: boolean; allowTernary?: boolean; allowTaggedTemplates?: boolean; enforceForJSX?: boolean; } /** * Options. */ type NoUnusedExpressionsOptions$1 = [NoUnusedExpressionsOption$1?]; /** * Disallow unused expressions. * * @see [no-unused-expressions](https://eslint.org/docs/latest/rules/no-unused-expressions) */ type NoUnusedExpressionsRuleConfig$1 = RuleConfig; /** * Disallow unused expressions. * * @see [no-unused-expressions](https://eslint.org/docs/latest/rules/no-unused-expressions) */ interface NoUnusedExpressionsRule$1 { /** * Disallow unused expressions. * * @see [no-unused-expressions](https://eslint.org/docs/latest/rules/no-unused-expressions) */ 'no-unused-expressions': NoUnusedExpressionsRuleConfig$1; } /** * Disallow unused labels. * * @see [no-unused-labels](https://eslint.org/docs/latest/rules/no-unused-labels) */ type NoUnusedLabelsRuleConfig = RuleConfig<[]>; /** * Disallow unused labels. * * @see [no-unused-labels](https://eslint.org/docs/latest/rules/no-unused-labels) */ interface NoUnusedLabelsRule { /** * Disallow unused labels. * * @see [no-unused-labels](https://eslint.org/docs/latest/rules/no-unused-labels) */ 'no-unused-labels': NoUnusedLabelsRuleConfig; } /** * Disallow unused private class members. * * @see [no-unused-private-class-members](https://eslint.org/docs/latest/rules/no-unused-private-class-members) */ type NoUnusedPrivateClassMembersRuleConfig = RuleConfig<[]>; /** * Disallow unused private class members. * * @see [no-unused-private-class-members](https://eslint.org/docs/latest/rules/no-unused-private-class-members) */ interface NoUnusedPrivateClassMembersRule { /** * Disallow unused private class members. * * @see [no-unused-private-class-members](https://eslint.org/docs/latest/rules/no-unused-private-class-members) */ 'no-unused-private-class-members': NoUnusedPrivateClassMembersRuleConfig; } /** * Option. */ type NoUnusedVarsOption$2 = | ('all' | 'local') | { vars?: 'all' | 'local'; varsIgnorePattern?: string; args?: 'all' | 'after-used' | 'none'; ignoreRestSiblings?: boolean; argsIgnorePattern?: string; caughtErrors?: 'all' | 'none'; caughtErrorsIgnorePattern?: string; destructuredArrayIgnorePattern?: string; }; /** * Options. */ type NoUnusedVarsOptions$2 = [NoUnusedVarsOption$2?]; /** * Disallow unused variables. * * @see [no-unused-vars](https://eslint.org/docs/latest/rules/no-unused-vars) */ type NoUnusedVarsRuleConfig$2 = RuleConfig; /** * Disallow unused variables. * * @see [no-unused-vars](https://eslint.org/docs/latest/rules/no-unused-vars) */ interface NoUnusedVarsRule$2 { /** * Disallow unused variables. * * @see [no-unused-vars](https://eslint.org/docs/latest/rules/no-unused-vars) */ 'no-unused-vars': NoUnusedVarsRuleConfig$2; } /** * Option. */ type NoUseBeforeDefineOption$1 = | 'nofunc' | { functions?: boolean; classes?: boolean; variables?: boolean; allowNamedExports?: boolean; }; /** * Options. */ type NoUseBeforeDefineOptions$1 = [NoUseBeforeDefineOption$1?]; /** * Disallow the use of variables before they are defined. * * @see [no-use-before-define](https://eslint.org/docs/latest/rules/no-use-before-define) */ type NoUseBeforeDefineRuleConfig$1 = RuleConfig; /** * Disallow the use of variables before they are defined. * * @see [no-use-before-define](https://eslint.org/docs/latest/rules/no-use-before-define) */ interface NoUseBeforeDefineRule$1 { /** * Disallow the use of variables before they are defined. * * @see [no-use-before-define](https://eslint.org/docs/latest/rules/no-use-before-define) */ 'no-use-before-define': NoUseBeforeDefineRuleConfig$1; } /** * Disallow useless backreferences in regular expressions. * * @see [no-useless-backreference](https://eslint.org/docs/latest/rules/no-useless-backreference) */ type NoUselessBackreferenceRuleConfig = RuleConfig<[]>; /** * Disallow useless backreferences in regular expressions. * * @see [no-useless-backreference](https://eslint.org/docs/latest/rules/no-useless-backreference) */ interface NoUselessBackreferenceRule { /** * Disallow useless backreferences in regular expressions. * * @see [no-useless-backreference](https://eslint.org/docs/latest/rules/no-useless-backreference) */ 'no-useless-backreference': NoUselessBackreferenceRuleConfig; } /** * Disallow unnecessary calls to `.call()` and `.apply()`. * * @see [no-useless-call](https://eslint.org/docs/latest/rules/no-useless-call) */ type NoUselessCallRuleConfig = RuleConfig<[]>; /** * Disallow unnecessary calls to `.call()` and `.apply()`. * * @see [no-useless-call](https://eslint.org/docs/latest/rules/no-useless-call) */ interface NoUselessCallRule { /** * Disallow unnecessary calls to `.call()` and `.apply()`. * * @see [no-useless-call](https://eslint.org/docs/latest/rules/no-useless-call) */ 'no-useless-call': NoUselessCallRuleConfig; } /** * Disallow unnecessary `catch` clauses. * * @see [no-useless-catch](https://eslint.org/docs/latest/rules/no-useless-catch) */ type NoUselessCatchRuleConfig$1 = RuleConfig<[]>; /** * Disallow unnecessary `catch` clauses. * * @see [no-useless-catch](https://eslint.org/docs/latest/rules/no-useless-catch) */ interface NoUselessCatchRule$1 { /** * Disallow unnecessary `catch` clauses. * * @see [no-useless-catch](https://eslint.org/docs/latest/rules/no-useless-catch) */ 'no-useless-catch': NoUselessCatchRuleConfig$1; } /** * Option. */ interface NoUselessComputedKeyOption { enforceForClassMembers?: boolean; } /** * Options. */ type NoUselessComputedKeyOptions = [NoUselessComputedKeyOption?]; /** * Disallow unnecessary computed property keys in objects and classes. * * @see [no-useless-computed-key](https://eslint.org/docs/latest/rules/no-useless-computed-key) */ type NoUselessComputedKeyRuleConfig = RuleConfig; /** * Disallow unnecessary computed property keys in objects and classes. * * @see [no-useless-computed-key](https://eslint.org/docs/latest/rules/no-useless-computed-key) */ interface NoUselessComputedKeyRule { /** * Disallow unnecessary computed property keys in objects and classes. * * @see [no-useless-computed-key](https://eslint.org/docs/latest/rules/no-useless-computed-key) */ 'no-useless-computed-key': NoUselessComputedKeyRuleConfig; } /** * Disallow unnecessary concatenation of literals or template literals. * * @see [no-useless-concat](https://eslint.org/docs/latest/rules/no-useless-concat) */ type NoUselessConcatRuleConfig$1 = RuleConfig<[]>; /** * Disallow unnecessary concatenation of literals or template literals. * * @see [no-useless-concat](https://eslint.org/docs/latest/rules/no-useless-concat) */ interface NoUselessConcatRule$1 { /** * Disallow unnecessary concatenation of literals or template literals. * * @see [no-useless-concat](https://eslint.org/docs/latest/rules/no-useless-concat) */ 'no-useless-concat': NoUselessConcatRuleConfig$1; } /** * Disallow unnecessary constructors. * * @see [no-useless-constructor](https://eslint.org/docs/latest/rules/no-useless-constructor) */ type NoUselessConstructorRuleConfig$1 = RuleConfig<[]>; /** * Disallow unnecessary constructors. * * @see [no-useless-constructor](https://eslint.org/docs/latest/rules/no-useless-constructor) */ interface NoUselessConstructorRule$1 { /** * Disallow unnecessary constructors. * * @see [no-useless-constructor](https://eslint.org/docs/latest/rules/no-useless-constructor) */ 'no-useless-constructor': NoUselessConstructorRuleConfig$1; } /** * Disallow unnecessary escape characters. * * @see [no-useless-escape](https://eslint.org/docs/latest/rules/no-useless-escape) */ type NoUselessEscapeRuleConfig$1 = RuleConfig<[]>; /** * Disallow unnecessary escape characters. * * @see [no-useless-escape](https://eslint.org/docs/latest/rules/no-useless-escape) */ interface NoUselessEscapeRule$1 { /** * Disallow unnecessary escape characters. * * @see [no-useless-escape](https://eslint.org/docs/latest/rules/no-useless-escape) */ 'no-useless-escape': NoUselessEscapeRuleConfig$1; } /** * Option. */ interface NoUselessRenameOption { ignoreDestructuring?: boolean; ignoreImport?: boolean; ignoreExport?: boolean; } /** * Options. */ type NoUselessRenameOptions = [NoUselessRenameOption?]; /** * Disallow renaming import, export, and destructured assignments to the same name. * * @see [no-useless-rename](https://eslint.org/docs/latest/rules/no-useless-rename) */ type NoUselessRenameRuleConfig = RuleConfig; /** * Disallow renaming import, export, and destructured assignments to the same name. * * @see [no-useless-rename](https://eslint.org/docs/latest/rules/no-useless-rename) */ interface NoUselessRenameRule { /** * Disallow renaming import, export, and destructured assignments to the same name. * * @see [no-useless-rename](https://eslint.org/docs/latest/rules/no-useless-rename) */ 'no-useless-rename': NoUselessRenameRuleConfig; } /** * Disallow redundant return statements. * * @see [no-useless-return](https://eslint.org/docs/latest/rules/no-useless-return) */ type NoUselessReturnRuleConfig = RuleConfig<[]>; /** * Disallow redundant return statements. * * @see [no-useless-return](https://eslint.org/docs/latest/rules/no-useless-return) */ interface NoUselessReturnRule { /** * Disallow redundant return statements. * * @see [no-useless-return](https://eslint.org/docs/latest/rules/no-useless-return) */ 'no-useless-return': NoUselessReturnRuleConfig; } /** * Require `let` or `const` instead of `var`. * * @see [no-var](https://eslint.org/docs/latest/rules/no-var) */ type NoVarRuleConfig = RuleConfig<[]>; /** * Require `let` or `const` instead of `var`. * * @see [no-var](https://eslint.org/docs/latest/rules/no-var) */ interface NoVarRule { /** * Require `let` or `const` instead of `var`. * * @see [no-var](https://eslint.org/docs/latest/rules/no-var) */ 'no-var': NoVarRuleConfig; } /** * Option. */ interface NoVoidOption { allowAsStatement?: boolean; } /** * Options. */ type NoVoidOptions = [NoVoidOption?]; /** * Disallow `void` operators. * * @see [no-void](https://eslint.org/docs/latest/rules/no-void) */ type NoVoidRuleConfig = RuleConfig; /** * Disallow `void` operators. * * @see [no-void](https://eslint.org/docs/latest/rules/no-void) */ interface NoVoidRule { /** * Disallow `void` operators. * * @see [no-void](https://eslint.org/docs/latest/rules/no-void) */ 'no-void': NoVoidRuleConfig; } /** * Option. */ interface NoWarningCommentsOption { terms?: string[]; location?: 'start' | 'anywhere'; /** * @minItems 1 */ decoration?: [string, ...string[]]; } /** * Options. */ type NoWarningCommentsOptions = [NoWarningCommentsOption?]; /** * Disallow specified warning terms in comments. * * @see [no-warning-comments](https://eslint.org/docs/latest/rules/no-warning-comments) */ type NoWarningCommentsRuleConfig = RuleConfig; /** * Disallow specified warning terms in comments. * * @see [no-warning-comments](https://eslint.org/docs/latest/rules/no-warning-comments) */ interface NoWarningCommentsRule { /** * Disallow specified warning terms in comments. * * @see [no-warning-comments](https://eslint.org/docs/latest/rules/no-warning-comments) */ 'no-warning-comments': NoWarningCommentsRuleConfig; } /** * Disallow whitespace before properties. * * @see [no-whitespace-before-property](https://eslint.org/docs/latest/rules/no-whitespace-before-property) */ type NoWhitespaceBeforePropertyRuleConfig = RuleConfig<[]>; /** * Disallow whitespace before properties. * * @see [no-whitespace-before-property](https://eslint.org/docs/latest/rules/no-whitespace-before-property) */ interface NoWhitespaceBeforePropertyRule { /** * Disallow whitespace before properties. * * @see [no-whitespace-before-property](https://eslint.org/docs/latest/rules/no-whitespace-before-property) */ 'no-whitespace-before-property': NoWhitespaceBeforePropertyRuleConfig; } /** * Disallow `with` statements. * * @see [no-with](https://eslint.org/docs/latest/rules/no-with) */ type NoWithRuleConfig = RuleConfig<[]>; /** * Disallow `with` statements. * * @see [no-with](https://eslint.org/docs/latest/rules/no-with) */ interface NoWithRule { /** * Disallow `with` statements. * * @see [no-with](https://eslint.org/docs/latest/rules/no-with) */ 'no-with': NoWithRuleConfig; } /** * Config. */ interface NonblockStatementBodyPositionConfig { overrides?: { if?: 'beside' | 'below' | 'any'; else?: 'beside' | 'below' | 'any'; while?: 'beside' | 'below' | 'any'; do?: 'beside' | 'below' | 'any'; for?: 'beside' | 'below' | 'any'; }; } /** * Option. */ type NonblockStatementBodyPositionOption = 'beside' | 'below' | 'any'; /** * Options. */ type NonblockStatementBodyPositionOptions = [ NonblockStatementBodyPositionOption?, NonblockStatementBodyPositionConfig?, ]; /** * Enforce the location of single-line statements. * * @see [nonblock-statement-body-position](https://eslint.org/docs/latest/rules/nonblock-statement-body-position) */ type NonblockStatementBodyPositionRuleConfig = RuleConfig; /** * Enforce the location of single-line statements. * * @see [nonblock-statement-body-position](https://eslint.org/docs/latest/rules/nonblock-statement-body-position) */ interface NonblockStatementBodyPositionRule { /** * Enforce the location of single-line statements. * * @see [nonblock-statement-body-position](https://eslint.org/docs/latest/rules/nonblock-statement-body-position) */ 'nonblock-statement-body-position': NonblockStatementBodyPositionRuleConfig; } /** * Option. */ type ObjectCurlyNewlineOption$2 = | ( | ('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; }; }; /** * Options. */ type ObjectCurlyNewlineOptions$2 = [ObjectCurlyNewlineOption$2?]; /** * Enforce consistent line breaks after opening and before closing braces. * * @see [object-curly-newline](https://eslint.org/docs/latest/rules/object-curly-newline) */ type ObjectCurlyNewlineRuleConfig$2 = RuleConfig; /** * Enforce consistent line breaks after opening and before closing braces. * * @see [object-curly-newline](https://eslint.org/docs/latest/rules/object-curly-newline) */ interface ObjectCurlyNewlineRule$2 { /** * Enforce consistent line breaks after opening and before closing braces. * * @see [object-curly-newline](https://eslint.org/docs/latest/rules/object-curly-newline) */ 'object-curly-newline': ObjectCurlyNewlineRuleConfig$2; } /** * Config. */ interface ObjectCurlySpacingConfig$3 { arraysInObjects?: boolean; objectsInObjects?: boolean; } /** * Option. */ type ObjectCurlySpacingOption$3 = 'always' | 'never'; /** * Options. */ type ObjectCurlySpacingOptions$3 = [ ObjectCurlySpacingOption$3?, ObjectCurlySpacingConfig$3?, ]; /** * Enforce consistent spacing inside braces. * * @see [object-curly-spacing](https://eslint.org/docs/latest/rules/object-curly-spacing) */ type ObjectCurlySpacingRuleConfig$3 = RuleConfig; /** * Enforce consistent spacing inside braces. * * @see [object-curly-spacing](https://eslint.org/docs/latest/rules/object-curly-spacing) */ interface ObjectCurlySpacingRule$3 { /** * Enforce consistent spacing inside braces. * * @see [object-curly-spacing](https://eslint.org/docs/latest/rules/object-curly-spacing) */ 'object-curly-spacing': ObjectCurlySpacingRuleConfig$3; } /** * Option. */ interface ObjectPropertyNewlineOption$2 { allowAllPropertiesOnSameLine?: boolean; allowMultiplePropertiesPerLine?: boolean; } /** * Options. */ type ObjectPropertyNewlineOptions$2 = [ObjectPropertyNewlineOption$2?]; /** * Enforce placing object properties on separate lines. * * @see [object-property-newline](https://eslint.org/docs/latest/rules/object-property-newline) */ type ObjectPropertyNewlineRuleConfig$2 = RuleConfig; /** * Enforce placing object properties on separate lines. * * @see [object-property-newline](https://eslint.org/docs/latest/rules/object-property-newline) */ interface ObjectPropertyNewlineRule$2 { /** * Enforce placing object properties on separate lines. * * @see [object-property-newline](https://eslint.org/docs/latest/rules/object-property-newline) */ 'object-property-newline': ObjectPropertyNewlineRuleConfig$2; } /** * Option. */ type ObjectShorthandOption$1 = | [] | [ | '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; }, ]; /** * Options. */ type ObjectShorthandOptions$1 = ObjectShorthandOption$1; /** * Require or disallow method and property shorthand syntax for object literals. * * @see [object-shorthand](https://eslint.org/docs/latest/rules/object-shorthand) */ type ObjectShorthandRuleConfig$1 = RuleConfig; /** * Require or disallow method and property shorthand syntax for object literals. * * @see [object-shorthand](https://eslint.org/docs/latest/rules/object-shorthand) */ interface ObjectShorthandRule$1 { /** * Require or disallow method and property shorthand syntax for object literals. * * @see [object-shorthand](https://eslint.org/docs/latest/rules/object-shorthand) */ 'object-shorthand': ObjectShorthandRuleConfig$1; } /** * Option. */ type OneVarOption = | ('always' | 'never' | 'consecutive') | { separateRequires?: boolean; var?: 'always' | 'never' | 'consecutive'; let?: 'always' | 'never' | 'consecutive'; const?: 'always' | 'never' | 'consecutive'; } | { initialized?: 'always' | 'never' | 'consecutive'; uninitialized?: 'always' | 'never' | 'consecutive'; }; /** * Options. */ type OneVarOptions = [OneVarOption?]; /** * Enforce variables to be declared either together or separately in functions. * * @see [one-var](https://eslint.org/docs/latest/rules/one-var) */ type OneVarRuleConfig = RuleConfig; /** * Enforce variables to be declared either together or separately in functions. * * @see [one-var](https://eslint.org/docs/latest/rules/one-var) */ interface OneVarRule { /** * Enforce variables to be declared either together or separately in functions. * * @see [one-var](https://eslint.org/docs/latest/rules/one-var) */ 'one-var': OneVarRuleConfig; } /** * Option. */ type OneVarDeclarationPerLineOption = 'always' | 'initializations'; /** * Options. */ type OneVarDeclarationPerLineOptions = [OneVarDeclarationPerLineOption?]; /** * Require or disallow newlines around variable declarations. * * @see [one-var-declaration-per-line](https://eslint.org/docs/latest/rules/one-var-declaration-per-line) */ type OneVarDeclarationPerLineRuleConfig = RuleConfig; /** * Require or disallow newlines around variable declarations. * * @see [one-var-declaration-per-line](https://eslint.org/docs/latest/rules/one-var-declaration-per-line) */ interface OneVarDeclarationPerLineRule { /** * Require or disallow newlines around variable declarations. * * @see [one-var-declaration-per-line](https://eslint.org/docs/latest/rules/one-var-declaration-per-line) */ 'one-var-declaration-per-line': OneVarDeclarationPerLineRuleConfig; } /** * Option. */ type OperatorAssignmentOption = 'always' | 'never'; /** * Options. */ type OperatorAssignmentOptions = [OperatorAssignmentOption?]; /** * Require or disallow assignment operator shorthand where possible. * * @see [operator-assignment](https://eslint.org/docs/latest/rules/operator-assignment) */ type OperatorAssignmentRuleConfig = RuleConfig; /** * Require or disallow assignment operator shorthand where possible. * * @see [operator-assignment](https://eslint.org/docs/latest/rules/operator-assignment) */ interface OperatorAssignmentRule { /** * Require or disallow assignment operator shorthand where possible. * * @see [operator-assignment](https://eslint.org/docs/latest/rules/operator-assignment) */ 'operator-assignment': OperatorAssignmentRuleConfig; } /** * Config. */ interface OperatorLinebreakConfig$1 { overrides?: { [k: string]: 'after' | 'before' | 'none' | 'ignore'; }; } /** * Option. */ type OperatorLinebreakOption$1 = 'after' | 'before' | 'none' | null; /** * Options. */ type OperatorLinebreakOptions$1 = [ OperatorLinebreakOption$1?, OperatorLinebreakConfig$1?, ]; /** * Enforce consistent linebreak style for operators. * * @see [operator-linebreak](https://eslint.org/docs/latest/rules/operator-linebreak) */ type OperatorLinebreakRuleConfig$1 = RuleConfig; /** * Enforce consistent linebreak style for operators. * * @see [operator-linebreak](https://eslint.org/docs/latest/rules/operator-linebreak) */ interface OperatorLinebreakRule$1 { /** * Enforce consistent linebreak style for operators. * * @see [operator-linebreak](https://eslint.org/docs/latest/rules/operator-linebreak) */ 'operator-linebreak': OperatorLinebreakRuleConfig$1; } /** * Config. */ interface PaddedBlocksConfig { allowSingleLineBlocks?: boolean; } /** * Option. */ type PaddedBlocksOption = | ('always' | 'never') | { blocks?: 'always' | 'never'; switches?: 'always' | 'never'; classes?: 'always' | 'never'; }; /** * Options. */ type PaddedBlocksOptions = [PaddedBlocksOption?, PaddedBlocksConfig?]; /** * Require or disallow padding within blocks. * * @see [padded-blocks](https://eslint.org/docs/latest/rules/padded-blocks) */ type PaddedBlocksRuleConfig = RuleConfig; /** * Require or disallow padding within blocks. * * @see [padded-blocks](https://eslint.org/docs/latest/rules/padded-blocks) */ interface PaddedBlocksRule { /** * Require or disallow padding within blocks. * * @see [padded-blocks](https://eslint.org/docs/latest/rules/padded-blocks) */ 'padded-blocks': PaddedBlocksRuleConfig; } /** * Option. */ type PaddingType$1 = 'any' | 'never' | 'always'; type StatementType$1 = | ( | '*' | '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 PaddingLineBetweenStatementsOption$1 = { blankLine: PaddingType$1; prev: StatementType$1; next: StatementType$1; }[]; /** * Options. */ type PaddingLineBetweenStatementsOptions$1 = PaddingLineBetweenStatementsOption$1; /** * Require or disallow padding lines between statements. * * @see [padding-line-between-statements](https://eslint.org/docs/latest/rules/padding-line-between-statements) */ type PaddingLineBetweenStatementsRuleConfig$1 = RuleConfig; /** * Require or disallow padding lines between statements. * * @see [padding-line-between-statements](https://eslint.org/docs/latest/rules/padding-line-between-statements) */ interface PaddingLineBetweenStatementsRule$1 { /** * Require or disallow padding lines between statements. * * @see [padding-line-between-statements](https://eslint.org/docs/latest/rules/padding-line-between-statements) */ 'padding-line-between-statements': PaddingLineBetweenStatementsRuleConfig$1; } /** * Option. */ interface PreferArrowCallbackOption { allowNamedFunctions?: boolean; allowUnboundThis?: boolean; } /** * Options. */ type PreferArrowCallbackOptions = [PreferArrowCallbackOption?]; /** * Require using arrow functions for callbacks. * * @see [prefer-arrow-callback](https://eslint.org/docs/latest/rules/prefer-arrow-callback) */ type PreferArrowCallbackRuleConfig = RuleConfig; /** * Require using arrow functions for callbacks. * * @see [prefer-arrow-callback](https://eslint.org/docs/latest/rules/prefer-arrow-callback) */ interface PreferArrowCallbackRule { /** * Require using arrow functions for callbacks. * * @see [prefer-arrow-callback](https://eslint.org/docs/latest/rules/prefer-arrow-callback) */ 'prefer-arrow-callback': PreferArrowCallbackRuleConfig; } /** * Option. */ interface PreferConstOption { destructuring?: 'any' | 'all'; ignoreReadBeforeAssign?: boolean; } /** * Options. */ type PreferConstOptions = [PreferConstOption?]; /** * Require `const` declarations for variables that are never reassigned after declared. * * @see [prefer-const](https://eslint.org/docs/latest/rules/prefer-const) */ type PreferConstRuleConfig = RuleConfig; /** * Require `const` declarations for variables that are never reassigned after declared. * * @see [prefer-const](https://eslint.org/docs/latest/rules/prefer-const) */ interface PreferConstRule { /** * Require `const` declarations for variables that are never reassigned after declared. * * @see [prefer-const](https://eslint.org/docs/latest/rules/prefer-const) */ 'prefer-const': PreferConstRuleConfig; } /** * Config. */ interface PreferDestructuringConfig { enforceForRenamedProperties?: boolean; } /** * Option. */ type PreferDestructuringOption = | { VariableDeclarator?: { array?: boolean; object?: boolean; }; AssignmentExpression?: { array?: boolean; object?: boolean; }; } | { array?: boolean; object?: boolean; }; /** * Options. */ type PreferDestructuringOptions = [ PreferDestructuringOption?, PreferDestructuringConfig?, ]; /** * Require destructuring from arrays and/or objects. * * @see [prefer-destructuring](https://eslint.org/docs/latest/rules/prefer-destructuring) */ type PreferDestructuringRuleConfig = RuleConfig; /** * Require destructuring from arrays and/or objects. * * @see [prefer-destructuring](https://eslint.org/docs/latest/rules/prefer-destructuring) */ interface PreferDestructuringRule { /** * Require destructuring from arrays and/or objects. * * @see [prefer-destructuring](https://eslint.org/docs/latest/rules/prefer-destructuring) */ 'prefer-destructuring': PreferDestructuringRuleConfig; } /** * Disallow the use of `Math.pow` in favor of the `**` operator. * * @see [prefer-exponentiation-operator](https://eslint.org/docs/latest/rules/prefer-exponentiation-operator) */ type PreferExponentiationOperatorRuleConfig$1 = RuleConfig<[]>; /** * Disallow the use of `Math.pow` in favor of the `**` operator. * * @see [prefer-exponentiation-operator](https://eslint.org/docs/latest/rules/prefer-exponentiation-operator) */ interface PreferExponentiationOperatorRule$1 { /** * Disallow the use of `Math.pow` in favor of the `**` operator. * * @see [prefer-exponentiation-operator](https://eslint.org/docs/latest/rules/prefer-exponentiation-operator) */ 'prefer-exponentiation-operator': PreferExponentiationOperatorRuleConfig$1; } /** * Enforce using named capture group in regular expression. * * @see [prefer-named-capture-group](https://eslint.org/docs/latest/rules/prefer-named-capture-group) */ type PreferNamedCaptureGroupRuleConfig = RuleConfig<[]>; /** * Enforce using named capture group in regular expression. * * @see [prefer-named-capture-group](https://eslint.org/docs/latest/rules/prefer-named-capture-group) */ interface PreferNamedCaptureGroupRule { /** * Enforce using named capture group in regular expression. * * @see [prefer-named-capture-group](https://eslint.org/docs/latest/rules/prefer-named-capture-group) */ 'prefer-named-capture-group': PreferNamedCaptureGroupRuleConfig; } /** * Disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals. * * @see [prefer-numeric-literals](https://eslint.org/docs/latest/rules/prefer-numeric-literals) */ type PreferNumericLiteralsRuleConfig = RuleConfig<[]>; /** * Disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals. * * @see [prefer-numeric-literals](https://eslint.org/docs/latest/rules/prefer-numeric-literals) */ interface PreferNumericLiteralsRule { /** * Disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals. * * @see [prefer-numeric-literals](https://eslint.org/docs/latest/rules/prefer-numeric-literals) */ 'prefer-numeric-literals': PreferNumericLiteralsRuleConfig; } /** * Disallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()`. * * @see [prefer-object-has-own](https://eslint.org/docs/latest/rules/prefer-object-has-own) */ type PreferObjectHasOwnRuleConfig$1 = RuleConfig<[]>; /** * Disallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()`. * * @see [prefer-object-has-own](https://eslint.org/docs/latest/rules/prefer-object-has-own) */ interface PreferObjectHasOwnRule$1 { /** * Disallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()`. * * @see [prefer-object-has-own](https://eslint.org/docs/latest/rules/prefer-object-has-own) */ 'prefer-object-has-own': PreferObjectHasOwnRuleConfig$1; } /** * Disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead. * * @see [prefer-object-spread](https://eslint.org/docs/latest/rules/prefer-object-spread) */ type PreferObjectSpreadRuleConfig = RuleConfig<[]>; /** * Disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead. * * @see [prefer-object-spread](https://eslint.org/docs/latest/rules/prefer-object-spread) */ interface PreferObjectSpreadRule { /** * Disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead. * * @see [prefer-object-spread](https://eslint.org/docs/latest/rules/prefer-object-spread) */ 'prefer-object-spread': PreferObjectSpreadRuleConfig; } /** * Option. */ interface PreferPromiseRejectErrorsOption { allowEmptyReject?: boolean; } /** * Options. */ type PreferPromiseRejectErrorsOptions = [ PreferPromiseRejectErrorsOption?, ]; /** * Require using Error objects as Promise rejection reasons. * * @see [prefer-promise-reject-errors](https://eslint.org/docs/latest/rules/prefer-promise-reject-errors) */ type PreferPromiseRejectErrorsRuleConfig = RuleConfig; /** * Require using Error objects as Promise rejection reasons. * * @see [prefer-promise-reject-errors](https://eslint.org/docs/latest/rules/prefer-promise-reject-errors) */ interface PreferPromiseRejectErrorsRule { /** * Require using Error objects as Promise rejection reasons. * * @see [prefer-promise-reject-errors](https://eslint.org/docs/latest/rules/prefer-promise-reject-errors) */ 'prefer-promise-reject-errors': PreferPromiseRejectErrorsRuleConfig; } /** * Option. */ interface PreferReflectOption { exceptions?: ( | 'apply' | 'call' | 'delete' | 'defineProperty' | 'getOwnPropertyDescriptor' | 'getPrototypeOf' | 'setPrototypeOf' | 'isExtensible' | 'getOwnPropertyNames' | 'preventExtensions' )[]; } /** * Options. */ type PreferReflectOptions = [PreferReflectOption?]; /** * Require `Reflect` methods where applicable. * * @deprecated * * @see [prefer-reflect](https://eslint.org/docs/latest/rules/prefer-reflect) */ type PreferReflectRuleConfig = RuleConfig; /** * Require `Reflect` methods where applicable. * * @deprecated * * @see [prefer-reflect](https://eslint.org/docs/latest/rules/prefer-reflect) */ interface PreferReflectRule { /** * Require `Reflect` methods where applicable. * * @deprecated * * @see [prefer-reflect](https://eslint.org/docs/latest/rules/prefer-reflect) */ 'prefer-reflect': PreferReflectRuleConfig; } /** * Option. */ interface PreferRegexLiteralsOption { disallowRedundantWrapping?: boolean; } /** * Options. */ type PreferRegexLiteralsOptions = [PreferRegexLiteralsOption?]; /** * Disallow use of the `RegExp` constructor in favor of regular expression literals. * * @see [prefer-regex-literals](https://eslint.org/docs/latest/rules/prefer-regex-literals) */ type PreferRegexLiteralsRuleConfig = RuleConfig; /** * Disallow use of the `RegExp` constructor in favor of regular expression literals. * * @see [prefer-regex-literals](https://eslint.org/docs/latest/rules/prefer-regex-literals) */ interface PreferRegexLiteralsRule { /** * Disallow use of the `RegExp` constructor in favor of regular expression literals. * * @see [prefer-regex-literals](https://eslint.org/docs/latest/rules/prefer-regex-literals) */ 'prefer-regex-literals': PreferRegexLiteralsRuleConfig; } /** * Require rest parameters instead of `arguments`. * * @see [prefer-rest-params](https://eslint.org/docs/latest/rules/prefer-rest-params) */ type PreferRestParamsRuleConfig = RuleConfig<[]>; /** * Require rest parameters instead of `arguments`. * * @see [prefer-rest-params](https://eslint.org/docs/latest/rules/prefer-rest-params) */ interface PreferRestParamsRule { /** * Require rest parameters instead of `arguments`. * * @see [prefer-rest-params](https://eslint.org/docs/latest/rules/prefer-rest-params) */ 'prefer-rest-params': PreferRestParamsRuleConfig; } /** * Require spread operators instead of `.apply()`. * * @see [prefer-spread](https://eslint.org/docs/latest/rules/prefer-spread) */ type PreferSpreadRuleConfig$1 = RuleConfig<[]>; /** * Require spread operators instead of `.apply()`. * * @see [prefer-spread](https://eslint.org/docs/latest/rules/prefer-spread) */ interface PreferSpreadRule$1 { /** * Require spread operators instead of `.apply()`. * * @see [prefer-spread](https://eslint.org/docs/latest/rules/prefer-spread) */ 'prefer-spread': PreferSpreadRuleConfig$1; } /** * Require template literals instead of string concatenation. * * @see [prefer-template](https://eslint.org/docs/latest/rules/prefer-template) */ type PreferTemplateRuleConfig$1 = RuleConfig<[]>; /** * Require template literals instead of string concatenation. * * @see [prefer-template](https://eslint.org/docs/latest/rules/prefer-template) */ interface PreferTemplateRule$1 { /** * Require template literals instead of string concatenation. * * @see [prefer-template](https://eslint.org/docs/latest/rules/prefer-template) */ 'prefer-template': PreferTemplateRuleConfig$1; } /** * Option. */ type QuotePropsOption$2 = | [] | ['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; }, ]; /** * Options. */ type QuotePropsOptions$2 = QuotePropsOption$2; /** * Require quotes around object literal property names. * * @see [quote-props](https://eslint.org/docs/latest/rules/quote-props) */ type QuotePropsRuleConfig$2 = RuleConfig; /** * Require quotes around object literal property names. * * @see [quote-props](https://eslint.org/docs/latest/rules/quote-props) */ interface QuotePropsRule$2 { /** * Require quotes around object literal property names. * * @see [quote-props](https://eslint.org/docs/latest/rules/quote-props) */ 'quote-props': QuotePropsRuleConfig$2; } /** * Config. */ type QuotesConfig$2 = | 'avoid-escape' | { avoidEscape?: boolean; allowTemplateLiterals?: boolean; }; /** * Option. */ type QuotesOption$3 = 'single' | 'double' | 'backtick'; /** * Options. */ type QuotesOptions$3 = [QuotesOption$3?, QuotesConfig$2?]; /** * Enforce the consistent use of either backticks, double, or single quotes. * * @see [quotes](https://eslint.org/docs/latest/rules/quotes) */ type QuotesRuleConfig$3 = RuleConfig; /** * Enforce the consistent use of either backticks, double, or single quotes. * * @see [quotes](https://eslint.org/docs/latest/rules/quotes) */ interface QuotesRule$3 { /** * Enforce the consistent use of either backticks, double, or single quotes. * * @see [quotes](https://eslint.org/docs/latest/rules/quotes) */ quotes: QuotesRuleConfig$3; } /** * Option. */ type RadixOption = 'always' | 'as-needed'; /** * Options. */ type RadixOptions = [RadixOption?]; /** * Enforce the consistent use of the radix argument when using `parseInt()`. * * @see [radix](https://eslint.org/docs/latest/rules/radix) */ type RadixRuleConfig = RuleConfig; /** * Enforce the consistent use of the radix argument when using `parseInt()`. * * @see [radix](https://eslint.org/docs/latest/rules/radix) */ interface RadixRule { /** * Enforce the consistent use of the radix argument when using `parseInt()`. * * @see [radix](https://eslint.org/docs/latest/rules/radix) */ radix: RadixRuleConfig; } /** * Option. */ interface RequireAtomicUpdatesOption { allowProperties?: boolean; } /** * Options. */ type RequireAtomicUpdatesOptions = [RequireAtomicUpdatesOption?]; /** * Disallow assignments that can lead to race conditions due to usage of `await` or `yield`. * * @see [require-atomic-updates](https://eslint.org/docs/latest/rules/require-atomic-updates) */ type RequireAtomicUpdatesRuleConfig = RuleConfig; /** * Disallow assignments that can lead to race conditions due to usage of `await` or `yield`. * * @see [require-atomic-updates](https://eslint.org/docs/latest/rules/require-atomic-updates) */ interface RequireAtomicUpdatesRule { /** * Disallow assignments that can lead to race conditions due to usage of `await` or `yield`. * * @see [require-atomic-updates](https://eslint.org/docs/latest/rules/require-atomic-updates) */ 'require-atomic-updates': RequireAtomicUpdatesRuleConfig; } /** * Disallow async functions which have no `await` expression. * * @see [require-await](https://eslint.org/docs/latest/rules/require-await) */ type RequireAwaitRuleConfig$1 = RuleConfig<[]>; /** * Disallow async functions which have no `await` expression. * * @see [require-await](https://eslint.org/docs/latest/rules/require-await) */ interface RequireAwaitRule$1 { /** * Disallow async functions which have no `await` expression. * * @see [require-await](https://eslint.org/docs/latest/rules/require-await) */ 'require-await': RequireAwaitRuleConfig$1; } /** * Option. */ interface RequireJsdocOption$1 { require?: { ClassDeclaration?: boolean; MethodDefinition?: boolean; FunctionDeclaration?: boolean; ArrowFunctionExpression?: boolean; FunctionExpression?: boolean; }; } /** * Options. */ type RequireJsdocOptions$1 = [RequireJsdocOption$1?]; /** * Require JSDoc comments. * * @deprecated * * @see [require-jsdoc](https://eslint.org/docs/latest/rules/require-jsdoc) */ type RequireJsdocRuleConfig$1 = RuleConfig; /** * Require JSDoc comments. * * @deprecated * * @see [require-jsdoc](https://eslint.org/docs/latest/rules/require-jsdoc) */ interface RequireJsdocRule$1 { /** * Require JSDoc comments. * * @deprecated * * @see [require-jsdoc](https://eslint.org/docs/latest/rules/require-jsdoc) */ 'require-jsdoc': RequireJsdocRuleConfig$1; } /** * Enforce the use of `u` or `v` flag on RegExp. * * @see [require-unicode-regexp](https://eslint.org/docs/latest/rules/require-unicode-regexp) */ type RequireUnicodeRegexpRuleConfig = RuleConfig<[]>; /** * Enforce the use of `u` or `v` flag on RegExp. * * @see [require-unicode-regexp](https://eslint.org/docs/latest/rules/require-unicode-regexp) */ interface RequireUnicodeRegexpRule { /** * Enforce the use of `u` or `v` flag on RegExp. * * @see [require-unicode-regexp](https://eslint.org/docs/latest/rules/require-unicode-regexp) */ 'require-unicode-regexp': RequireUnicodeRegexpRuleConfig; } /** * Require generator functions to contain `yield`. * * @see [require-yield](https://eslint.org/docs/latest/rules/require-yield) */ type RequireYieldRuleConfig = RuleConfig<[]>; /** * Require generator functions to contain `yield`. * * @see [require-yield](https://eslint.org/docs/latest/rules/require-yield) */ interface RequireYieldRule { /** * Require generator functions to contain `yield`. * * @see [require-yield](https://eslint.org/docs/latest/rules/require-yield) */ 'require-yield': RequireYieldRuleConfig; } /** * Option. */ type RestSpreadSpacingOption = 'always' | 'never'; /** * Options. */ type RestSpreadSpacingOptions = [RestSpreadSpacingOption?]; /** * Enforce spacing between rest and spread operators and their expressions. * * @see [rest-spread-spacing](https://eslint.org/docs/latest/rules/rest-spread-spacing) */ type RestSpreadSpacingRuleConfig = RuleConfig; /** * Enforce spacing between rest and spread operators and their expressions. * * @see [rest-spread-spacing](https://eslint.org/docs/latest/rules/rest-spread-spacing) */ interface RestSpreadSpacingRule { /** * Enforce spacing between rest and spread operators and their expressions. * * @see [rest-spread-spacing](https://eslint.org/docs/latest/rules/rest-spread-spacing) */ 'rest-spread-spacing': RestSpreadSpacingRuleConfig; } /** * Option. */ type SemiOption$1 = | [] | ['never'] | [ 'never', { beforeStatementContinuationChars?: 'always' | 'any' | 'never'; }, ] | [] | ['always'] | [ 'always', { omitLastInOneLineBlock?: boolean; omitLastInOneLineClassBody?: boolean; }, ]; /** * Options. */ type SemiOptions$1 = SemiOption$1; /** * Require or disallow semicolons instead of ASI. * * @see [semi](https://eslint.org/docs/latest/rules/semi) */ type SemiRuleConfig$1 = RuleConfig; /** * Require or disallow semicolons instead of ASI. * * @see [semi](https://eslint.org/docs/latest/rules/semi) */ interface SemiRule$1 { /** * Require or disallow semicolons instead of ASI. * * @see [semi](https://eslint.org/docs/latest/rules/semi) */ semi: SemiRuleConfig$1; } /** * Option. */ interface SemiSpacingOption { before?: boolean; after?: boolean; } /** * Options. */ type SemiSpacingOptions = [SemiSpacingOption?]; /** * Enforce consistent spacing before and after semicolons. * * @see [semi-spacing](https://eslint.org/docs/latest/rules/semi-spacing) */ type SemiSpacingRuleConfig = RuleConfig; /** * Enforce consistent spacing before and after semicolons. * * @see [semi-spacing](https://eslint.org/docs/latest/rules/semi-spacing) */ interface SemiSpacingRule { /** * Enforce consistent spacing before and after semicolons. * * @see [semi-spacing](https://eslint.org/docs/latest/rules/semi-spacing) */ 'semi-spacing': SemiSpacingRuleConfig; } /** * Option. */ type SemiStyleOption = 'last' | 'first'; /** * Options. */ type SemiStyleOptions = [SemiStyleOption?]; /** * Enforce location of semicolons. * * @see [semi-style](https://eslint.org/docs/latest/rules/semi-style) */ type SemiStyleRuleConfig = RuleConfig; /** * Enforce location of semicolons. * * @see [semi-style](https://eslint.org/docs/latest/rules/semi-style) */ interface SemiStyleRule { /** * Enforce location of semicolons. * * @see [semi-style](https://eslint.org/docs/latest/rules/semi-style) */ 'semi-style': SemiStyleRuleConfig; } /** * Option. */ interface SortImportsOption { ignoreCase?: boolean; /** * @minItems 4 * @maxItems 4 */ memberSyntaxSortOrder?: [ 'none' | 'all' | 'multiple' | 'single', 'none' | 'all' | 'multiple' | 'single', 'none' | 'all' | 'multiple' | 'single', 'none' | 'all' | 'multiple' | 'single', ]; ignoreDeclarationSort?: boolean; ignoreMemberSort?: boolean; allowSeparatedGroups?: boolean; } /** * Options. */ type SortImportsOptions = [SortImportsOption?]; /** * Enforce sorted import declarations within modules. * * @see [sort-imports](https://eslint.org/docs/latest/rules/sort-imports) */ type SortImportsRuleConfig = RuleConfig; /** * Enforce sorted import declarations within modules. * * @see [sort-imports](https://eslint.org/docs/latest/rules/sort-imports) */ interface SortImportsRule { /** * Enforce sorted import declarations within modules. * * @see [sort-imports](https://eslint.org/docs/latest/rules/sort-imports) */ 'sort-imports': SortImportsRuleConfig; } /** * Config. */ interface SortKeysConfig$1 { caseSensitive?: boolean; natural?: boolean; minKeys?: number; allowLineSeparatedGroups?: boolean; } /** * Option. */ type SortKeysOption$3 = 'asc' | 'desc'; /** * Options. */ type SortKeysOptions$3 = [SortKeysOption$3?, SortKeysConfig$1?]; /** * Require object keys to be sorted. * * @see [sort-keys](https://eslint.org/docs/latest/rules/sort-keys) */ type SortKeysRuleConfig$3 = RuleConfig; /** * Require object keys to be sorted. * * @see [sort-keys](https://eslint.org/docs/latest/rules/sort-keys) */ interface SortKeysRule$3 { /** * Require object keys to be sorted. * * @see [sort-keys](https://eslint.org/docs/latest/rules/sort-keys) */ 'sort-keys': SortKeysRuleConfig$3; } /** * Option. */ interface SortVarsOption { ignoreCase?: boolean; } /** * Options. */ type SortVarsOptions = [SortVarsOption?]; /** * Require variables within the same declaration block to be sorted. * * @see [sort-vars](https://eslint.org/docs/latest/rules/sort-vars) */ type SortVarsRuleConfig = RuleConfig; /** * Require variables within the same declaration block to be sorted. * * @see [sort-vars](https://eslint.org/docs/latest/rules/sort-vars) */ interface SortVarsRule { /** * Require variables within the same declaration block to be sorted. * * @see [sort-vars](https://eslint.org/docs/latest/rules/sort-vars) */ 'sort-vars': SortVarsRuleConfig; } /** * Option. */ type SpaceBeforeBlocksOption$1 = | ('always' | 'never') | { keywords?: 'always' | 'never' | 'off'; functions?: 'always' | 'never' | 'off'; classes?: 'always' | 'never' | 'off'; }; /** * Options. */ type SpaceBeforeBlocksOptions$1 = [SpaceBeforeBlocksOption$1?]; /** * Enforce consistent spacing before blocks. * * @see [space-before-blocks](https://eslint.org/docs/latest/rules/space-before-blocks) */ type SpaceBeforeBlocksRuleConfig$1 = RuleConfig; /** * Enforce consistent spacing before blocks. * * @see [space-before-blocks](https://eslint.org/docs/latest/rules/space-before-blocks) */ interface SpaceBeforeBlocksRule$1 { /** * Enforce consistent spacing before blocks. * * @see [space-before-blocks](https://eslint.org/docs/latest/rules/space-before-blocks) */ 'space-before-blocks': SpaceBeforeBlocksRuleConfig$1; } /** * Option. */ type SpaceBeforeFunctionParenOption$1 = | ('always' | 'never') | { anonymous?: 'always' | 'never' | 'ignore'; named?: 'always' | 'never' | 'ignore'; asyncArrow?: 'always' | 'never' | 'ignore'; }; /** * Options. */ type SpaceBeforeFunctionParenOptions$1 = [SpaceBeforeFunctionParenOption$1?]; /** * Enforce consistent spacing before `function` definition opening parenthesis. * * @see [space-before-function-paren](https://eslint.org/docs/latest/rules/space-before-function-paren) */ type SpaceBeforeFunctionParenRuleConfig$1 = RuleConfig; /** * Enforce consistent spacing before `function` definition opening parenthesis. * * @see [space-before-function-paren](https://eslint.org/docs/latest/rules/space-before-function-paren) */ interface SpaceBeforeFunctionParenRule$1 { /** * Enforce consistent spacing before `function` definition opening parenthesis. * * @see [space-before-function-paren](https://eslint.org/docs/latest/rules/space-before-function-paren) */ 'space-before-function-paren': SpaceBeforeFunctionParenRuleConfig$1; } /** * Config. */ interface SpaceInParensConfig$1 { exceptions?: ('{}' | '[]' | '()' | 'empty')[]; } /** * Option. */ type SpaceInParensOption$1 = 'always' | 'never'; /** * Options. */ type SpaceInParensOptions$1 = [SpaceInParensOption$1?, SpaceInParensConfig$1?]; /** * Enforce consistent spacing inside parentheses. * * @see [space-in-parens](https://eslint.org/docs/latest/rules/space-in-parens) */ type SpaceInParensRuleConfig$1 = RuleConfig; /** * Enforce consistent spacing inside parentheses. * * @see [space-in-parens](https://eslint.org/docs/latest/rules/space-in-parens) */ interface SpaceInParensRule$1 { /** * Enforce consistent spacing inside parentheses. * * @see [space-in-parens](https://eslint.org/docs/latest/rules/space-in-parens) */ 'space-in-parens': SpaceInParensRuleConfig$1; } /** * Option. */ interface SpaceInfixOpsOption$2 { int32Hint?: boolean; } /** * Options. */ type SpaceInfixOpsOptions$2 = [SpaceInfixOpsOption$2?]; /** * Require spacing around infix operators. * * @see [space-infix-ops](https://eslint.org/docs/latest/rules/space-infix-ops) */ type SpaceInfixOpsRuleConfig$2 = RuleConfig; /** * Require spacing around infix operators. * * @see [space-infix-ops](https://eslint.org/docs/latest/rules/space-infix-ops) */ interface SpaceInfixOpsRule$2 { /** * Require spacing around infix operators. * * @see [space-infix-ops](https://eslint.org/docs/latest/rules/space-infix-ops) */ 'space-infix-ops': SpaceInfixOpsRuleConfig$2; } /** * Option. */ interface SpaceUnaryOpsOption$2 { words?: boolean; nonwords?: boolean; overrides?: { [k: string]: boolean; }; } /** * Options. */ type SpaceUnaryOpsOptions$2 = [SpaceUnaryOpsOption$2?]; /** * Enforce consistent spacing before or after unary operators. * * @see [space-unary-ops](https://eslint.org/docs/latest/rules/space-unary-ops) */ type SpaceUnaryOpsRuleConfig$2 = RuleConfig; /** * Enforce consistent spacing before or after unary operators. * * @see [space-unary-ops](https://eslint.org/docs/latest/rules/space-unary-ops) */ interface SpaceUnaryOpsRule$2 { /** * Enforce consistent spacing before or after unary operators. * * @see [space-unary-ops](https://eslint.org/docs/latest/rules/space-unary-ops) */ 'space-unary-ops': SpaceUnaryOpsRuleConfig$2; } /** * Config. */ interface SpacedCommentConfig$1 { exceptions?: string[]; markers?: string[]; line?: { exceptions?: string[]; markers?: string[]; }; block?: { exceptions?: string[]; markers?: string[]; balanced?: boolean; }; } /** * Option. */ type SpacedCommentOption$1 = 'always' | 'never'; /** * Options. */ type SpacedCommentOptions$1 = [SpacedCommentOption$1?, SpacedCommentConfig$1?]; /** * Enforce consistent spacing after the `//` or `/*` in a comment. * * @see [spaced-comment](https://eslint.org/docs/latest/rules/spaced-comment) */ type SpacedCommentRuleConfig$1 = RuleConfig; /** * Enforce consistent spacing after the `//` or `/*` in a comment. * * @see [spaced-comment](https://eslint.org/docs/latest/rules/spaced-comment) */ interface SpacedCommentRule$1 { /** * Enforce consistent spacing after the `//` or `/*` in a comment. * * @see [spaced-comment](https://eslint.org/docs/latest/rules/spaced-comment) */ 'spaced-comment': SpacedCommentRuleConfig$1; } /** * Option. */ type StrictOption = 'never' | 'global' | 'function' | 'safe'; /** * Options. */ type StrictOptions = [StrictOption?]; /** * Require or disallow strict mode directives. * * @see [strict](https://eslint.org/docs/latest/rules/strict) */ type StrictRuleConfig = RuleConfig; /** * Require or disallow strict mode directives. * * @see [strict](https://eslint.org/docs/latest/rules/strict) */ interface StrictRule { /** * Require or disallow strict mode directives. * * @see [strict](https://eslint.org/docs/latest/rules/strict) */ strict: StrictRuleConfig; } /** * Option. */ interface SwitchColonSpacingOption { before?: boolean; after?: boolean; } /** * Options. */ type SwitchColonSpacingOptions = [SwitchColonSpacingOption?]; /** * Enforce spacing around colons of switch statements. * * @see [switch-colon-spacing](https://eslint.org/docs/latest/rules/switch-colon-spacing) */ type SwitchColonSpacingRuleConfig = RuleConfig; /** * Enforce spacing around colons of switch statements. * * @see [switch-colon-spacing](https://eslint.org/docs/latest/rules/switch-colon-spacing) */ interface SwitchColonSpacingRule { /** * Enforce spacing around colons of switch statements. * * @see [switch-colon-spacing](https://eslint.org/docs/latest/rules/switch-colon-spacing) */ 'switch-colon-spacing': SwitchColonSpacingRuleConfig; } /** * Require symbol descriptions. * * @see [symbol-description](https://eslint.org/docs/latest/rules/symbol-description) */ type SymbolDescriptionRuleConfig = RuleConfig<[]>; /** * Require symbol descriptions. * * @see [symbol-description](https://eslint.org/docs/latest/rules/symbol-description) */ interface SymbolDescriptionRule { /** * Require symbol descriptions. * * @see [symbol-description](https://eslint.org/docs/latest/rules/symbol-description) */ 'symbol-description': SymbolDescriptionRuleConfig; } /** * Option. */ type TemplateCurlySpacingOption$1 = 'always' | 'never'; /** * Options. */ type TemplateCurlySpacingOptions$1 = [TemplateCurlySpacingOption$1?]; /** * Require or disallow spacing around embedded expressions of template strings. * * @see [template-curly-spacing](https://eslint.org/docs/latest/rules/template-curly-spacing) */ type TemplateCurlySpacingRuleConfig$1 = RuleConfig; /** * Require or disallow spacing around embedded expressions of template strings. * * @see [template-curly-spacing](https://eslint.org/docs/latest/rules/template-curly-spacing) */ interface TemplateCurlySpacingRule$1 { /** * Require or disallow spacing around embedded expressions of template strings. * * @see [template-curly-spacing](https://eslint.org/docs/latest/rules/template-curly-spacing) */ 'template-curly-spacing': TemplateCurlySpacingRuleConfig$1; } /** * Option. */ type TemplateTagSpacingOption = 'always' | 'never'; /** * Options. */ type TemplateTagSpacingOptions = [TemplateTagSpacingOption?]; /** * Require or disallow spacing between template tags and their literals. * * @see [template-tag-spacing](https://eslint.org/docs/latest/rules/template-tag-spacing) */ type TemplateTagSpacingRuleConfig = RuleConfig; /** * Require or disallow spacing between template tags and their literals. * * @see [template-tag-spacing](https://eslint.org/docs/latest/rules/template-tag-spacing) */ interface TemplateTagSpacingRule { /** * Require or disallow spacing between template tags and their literals. * * @see [template-tag-spacing](https://eslint.org/docs/latest/rules/template-tag-spacing) */ 'template-tag-spacing': TemplateTagSpacingRuleConfig; } /** * Option. */ type UnicodeBomOption = 'always' | 'never'; /** * Options. */ type UnicodeBomOptions = [UnicodeBomOption?]; /** * Require or disallow Unicode byte order mark (BOM). * * @see [unicode-bom](https://eslint.org/docs/latest/rules/unicode-bom) */ type UnicodeBomRuleConfig = RuleConfig; /** * Require or disallow Unicode byte order mark (BOM). * * @see [unicode-bom](https://eslint.org/docs/latest/rules/unicode-bom) */ interface UnicodeBomRule { /** * Require or disallow Unicode byte order mark (BOM). * * @see [unicode-bom](https://eslint.org/docs/latest/rules/unicode-bom) */ 'unicode-bom': UnicodeBomRuleConfig; } /** * Option. */ interface UseIsnanOption { enforceForSwitchCase?: boolean; enforceForIndexOf?: boolean; } /** * Options. */ type UseIsnanOptions = [UseIsnanOption?]; /** * Require calls to `isNaN()` when checking for `NaN`. * * @see [use-isnan](https://eslint.org/docs/latest/rules/use-isnan) */ type UseIsnanRuleConfig = RuleConfig; /** * Require calls to `isNaN()` when checking for `NaN`. * * @see [use-isnan](https://eslint.org/docs/latest/rules/use-isnan) */ interface UseIsnanRule { /** * Require calls to `isNaN()` when checking for `NaN`. * * @see [use-isnan](https://eslint.org/docs/latest/rules/use-isnan) */ 'use-isnan': UseIsnanRuleConfig; } /** * Option. */ interface ValidJsdocOption { prefer?: { [k: string]: string; }; preferType?: { [k: string]: string; }; requireReturn?: boolean; requireParamDescription?: boolean; requireReturnDescription?: boolean; matchDescription?: string; requireReturnType?: boolean; requireParamType?: boolean; } /** * Options. */ type ValidJsdocOptions = [ValidJsdocOption?]; /** * Enforce valid JSDoc comments. * * @deprecated * * @see [valid-jsdoc](https://eslint.org/docs/latest/rules/valid-jsdoc) */ type ValidJsdocRuleConfig = RuleConfig; /** * Enforce valid JSDoc comments. * * @deprecated * * @see [valid-jsdoc](https://eslint.org/docs/latest/rules/valid-jsdoc) */ interface ValidJsdocRule { /** * Enforce valid JSDoc comments. * * @deprecated * * @see [valid-jsdoc](https://eslint.org/docs/latest/rules/valid-jsdoc) */ 'valid-jsdoc': ValidJsdocRuleConfig; } /** * Option. */ interface ValidTypeofOption { requireStringLiterals?: boolean; } /** * Options. */ type ValidTypeofOptions = [ValidTypeofOption?]; /** * Enforce comparing `typeof` expressions against valid strings. * * @see [valid-typeof](https://eslint.org/docs/latest/rules/valid-typeof) */ type ValidTypeofRuleConfig = RuleConfig; /** * Enforce comparing `typeof` expressions against valid strings. * * @see [valid-typeof](https://eslint.org/docs/latest/rules/valid-typeof) */ interface ValidTypeofRule { /** * Enforce comparing `typeof` expressions against valid strings. * * @see [valid-typeof](https://eslint.org/docs/latest/rules/valid-typeof) */ 'valid-typeof': ValidTypeofRuleConfig; } /** * Require `var` declarations be placed at the top of their containing scope. * * @see [vars-on-top](https://eslint.org/docs/latest/rules/vars-on-top) */ type VarsOnTopRuleConfig = RuleConfig<[]>; /** * Require `var` declarations be placed at the top of their containing scope. * * @see [vars-on-top](https://eslint.org/docs/latest/rules/vars-on-top) */ interface VarsOnTopRule { /** * Require `var` declarations be placed at the top of their containing scope. * * @see [vars-on-top](https://eslint.org/docs/latest/rules/vars-on-top) */ 'vars-on-top': VarsOnTopRuleConfig; } /** * Config. */ interface WrapIifeConfig { functionPrototypeMethods?: boolean; } /** * Option. */ type WrapIifeOption = 'outside' | 'inside' | 'any'; /** * Options. */ type WrapIifeOptions = [WrapIifeOption?, WrapIifeConfig?]; /** * Require parentheses around immediate `function` invocations. * * @see [wrap-iife](https://eslint.org/docs/latest/rules/wrap-iife) */ type WrapIifeRuleConfig = RuleConfig; /** * Require parentheses around immediate `function` invocations. * * @see [wrap-iife](https://eslint.org/docs/latest/rules/wrap-iife) */ interface WrapIifeRule { /** * Require parentheses around immediate `function` invocations. * * @see [wrap-iife](https://eslint.org/docs/latest/rules/wrap-iife) */ 'wrap-iife': WrapIifeRuleConfig; } /** * Require parenthesis around regex literals. * * @see [wrap-regex](https://eslint.org/docs/latest/rules/wrap-regex) */ type WrapRegexRuleConfig = RuleConfig<[]>; /** * Require parenthesis around regex literals. * * @see [wrap-regex](https://eslint.org/docs/latest/rules/wrap-regex) */ interface WrapRegexRule { /** * Require parenthesis around regex literals. * * @see [wrap-regex](https://eslint.org/docs/latest/rules/wrap-regex) */ 'wrap-regex': WrapRegexRuleConfig; } /** * Option. */ type YieldStarSpacingOption = | ('before' | 'after' | 'both' | 'neither') | { before?: boolean; after?: boolean; }; /** * Options. */ type YieldStarSpacingOptions = [YieldStarSpacingOption?]; /** * Require or disallow spacing around the `*` in `yield*` expressions. * * @see [yield-star-spacing](https://eslint.org/docs/latest/rules/yield-star-spacing) */ type YieldStarSpacingRuleConfig = RuleConfig; /** * Require or disallow spacing around the `*` in `yield*` expressions. * * @see [yield-star-spacing](https://eslint.org/docs/latest/rules/yield-star-spacing) */ interface YieldStarSpacingRule { /** * Require or disallow spacing around the `*` in `yield*` expressions. * * @see [yield-star-spacing](https://eslint.org/docs/latest/rules/yield-star-spacing) */ 'yield-star-spacing': YieldStarSpacingRuleConfig; } /** * Config. */ interface YodaConfig { exceptRange?: boolean; onlyEquality?: boolean; } /** * Option. */ type YodaOption = 'always' | 'never'; /** * Options. */ type YodaOptions = [YodaOption?, YodaConfig?]; /** * Require or disallow "Yoda" conditions. * * @see [yoda](https://eslint.org/docs/latest/rules/yoda) */ type YodaRuleConfig = RuleConfig; /** * Require or disallow "Yoda" conditions. * * @see [yoda](https://eslint.org/docs/latest/rules/yoda) */ interface YodaRule { /** * Require or disallow "Yoda" conditions. * * @see [yoda](https://eslint.org/docs/latest/rules/yoda) */ yoda: YodaRuleConfig; } /** * All Eslint rules. */ type EslintRules = AccessorPairsRule & ArrayBracketNewlineRule$2 & ArrayBracketSpacingRule$2 & ArrayCallbackReturnRule & ArrayElementNewlineRule$2 & ArrowBodyStyleRule & ArrowParensRule & ArrowSpacingRule$1 & BlockScopedVarRule & BlockSpacingRule$2 & BraceStyleRule$2 & CallbackReturnRule$2 & CamelcaseRule$1 & CapitalizedCommentsRule & ClassMethodsUseThisRule$1 & CommaDangleRule$3 & CommaSpacingRule$2 & CommaStyleRule$2 & ComplexityRule & ComputedPropertySpacingRule & ConsistentReturnRule & ConsistentThisRule & ConstructorSuperRule & CurlyRule & DefaultCaseRule & DefaultCaseLastRule & DefaultParamLastRule$1 & DotLocationRule$1 & DotNotationRule$2 & EolLastRule & EqeqeqRule$1 & ForDirectionRule & FuncCallSpacingRule$2 & FuncNameMatchingRule & FuncNamesRule & FuncStyleRule & FunctionCallArgumentNewlineRule & FunctionParenNewlineRule & GeneratorStarSpacingRule & GetterReturnRule & GlobalRequireRule$2 & GroupedAccessorPairsRule & GuardForInRule & HandleCallbackErrRule$2 & IdBlacklistRule & IdDenylistRule & IdLengthRule & IdMatchRule & ImplicitArrowLinebreakRule & IndentRule$3 & IndentLegacyRule & InitDeclarationsRule$1 & JsxQuotesRule & KeySpacingRule$4 & KeywordSpacingRule$2 & LineCommentPositionRule & LinebreakStyleRule & LinesAroundCommentRule$1 & LinesAroundDirectiveRule & LinesBetweenClassMembersRule$1 & LogicalAssignmentOperatorsRule & MaxClassesPerFileRule & MaxDepthRule & MaxLenRule$1 & MaxLinesRule & MaxLinesPerFunctionRule & MaxNestedCallbacksRule & MaxParamsRule & MaxStatementsRule & MaxStatementsPerLineRule & MultilineCommentStyleRule & MultilineTernaryRule$1 & NewCapRule & NewParensRule & NewlineAfterVarRule & NewlineBeforeReturnRule & NewlinePerChainedCallRule & NoAlertRule & NoArrayConstructorRule$1 & NoAsyncPromiseExecutorRule & NoAwaitInLoopRule & NoBitwiseRule & NoBufferConstructorRule & NoCallerRule & NoCaseDeclarationsRule & NoCatchShadowRule & NoClassAssignRule & NoCompareNegZeroRule & NoCondAssignRule & NoConfusingArrowRule & NoConsoleRule$1 & NoConstAssignRule & NoConstantBinaryExpressionRule & NoConstantConditionRule$1 & NoConstructorReturnRule & NoContinueRule & NoControlRegexRule & NoDebuggerRule & NoDeleteVarRule & NoDivRegexRule & NoDupeArgsRule & NoDupeClassMembersRule$1 & NoDupeElseIfRule & NoDupeKeysRule$2 & NoDuplicateCaseRule & NoDuplicateImportsRule & NoElseReturnRule & NoEmptyRule & NoEmptyCharacterClassRule & NoEmptyFunctionRule$1 & NoEmptyPatternRule$1 & NoEmptyStaticBlockRule & NoEqNullRule & NoEvalRule & NoExAssignRule & NoExtendNativeRule & NoExtraBindRule & NoExtraBooleanCastRule & NoExtraLabelRule & NoExtraParensRule$2 & NoExtraSemiRule$1 & NoFallthroughRule & NoFloatingDecimalRule$1 & NoFuncAssignRule & NoGlobalAssignRule & NoImplicitCoercionRule & NoImplicitGlobalsRule & NoImpliedEvalRule$1 & NoImportAssignRule & NoInlineCommentsRule & NoInnerDeclarationsRule & NoInvalidRegexpRule & NoInvalidThisRule$1 & NoIrregularWhitespaceRule$3 & NoIteratorRule & NoLabelVarRule & NoLabelsRule & NoLoneBlocksRule & NoLonelyIfRule$1 & NoLoopFuncRule$1 & NoLossOfPrecisionRule$2 & NoMagicNumbersRule$1 & NoMisleadingCharacterClassRule & NoMixedOperatorsRule & NoMixedRequiresRule$2 & NoMixedSpacesAndTabsRule & NoMultiAssignRule & NoMultiSpacesRule$1 & NoMultiStrRule$1 & NoMultipleEmptyLinesRule$1 & NoNativeReassignRule & NoNegatedConditionRule$1 & NoNegatedInLhsRule & NoNestedTernaryRule$1 & NoNewRule & NoNewFuncRule & NoNewNativeNonconstructorRule & NoNewObjectRule & NoNewRequireRule$2 & NoNewSymbolRule & NoNewWrappersRule & NoNonoctalDecimalEscapeRule & NoObjCallsRule & NoObjectConstructorRule & NoOctalRule$1 & NoOctalEscapeRule$1 & NoParamReassignRule & NoPathConcatRule$2 & NoPlusplusRule & NoProcessEnvRule$2 & NoProcessExitRule$3 & NoPromiseExecutorReturnRule & NoProtoRule & NoPrototypeBuiltinsRule & NoRedeclareRule$1 & NoRegexSpacesRule & NoRestrictedExportsRule & NoRestrictedGlobalsRule & NoRestrictedImportsRule$1 & NoRestrictedModulesRule & NoRestrictedPropertiesRule & NoRestrictedSyntaxRule$2 & NoReturnAssignRule & NoReturnAwaitRule & NoScriptUrlRule & NoSelfAssignRule & NoSelfCompareRule & NoSequencesRule & NoSetterReturnRule & NoShadowRule$1 & NoShadowRestrictedNamesRule & NoSpacedFuncRule & NoSparseArraysRule$2 & NoSyncRule$2 & NoTabsRule & NoTemplateCurlyInStringRule & NoTernaryRule & NoThisBeforeSuperRule & NoThrowLiteralRule$1 & NoTrailingSpacesRule & NoUndefRule & NoUndefInitRule & NoUndefinedRule & NoUnderscoreDangleRule & NoUnexpectedMultilineRule & NoUnmodifiedLoopConditionRule & NoUnneededTernaryRule & NoUnreachableRule & NoUnreachableLoopRule & NoUnsafeFinallyRule & NoUnsafeNegationRule & NoUnsafeOptionalChainingRule & NoUnusedExpressionsRule$1 & NoUnusedLabelsRule & NoUnusedPrivateClassMembersRule & NoUnusedVarsRule$2 & NoUseBeforeDefineRule$1 & NoUselessBackreferenceRule & NoUselessCallRule & NoUselessCatchRule$1 & NoUselessComputedKeyRule & NoUselessConcatRule$1 & NoUselessConstructorRule$1 & NoUselessEscapeRule$1 & NoUselessRenameRule & NoUselessReturnRule & NoVarRule & NoVoidRule & NoWarningCommentsRule & NoWhitespaceBeforePropertyRule & NoWithRule & NonblockStatementBodyPositionRule & ObjectCurlyNewlineRule$2 & ObjectCurlySpacingRule$3 & ObjectPropertyNewlineRule$2 & ObjectShorthandRule$1 & OneVarRule & OneVarDeclarationPerLineRule & OperatorAssignmentRule & OperatorLinebreakRule$1 & PaddedBlocksRule & PaddingLineBetweenStatementsRule$1 & PreferArrowCallbackRule & PreferConstRule & PreferDestructuringRule & PreferExponentiationOperatorRule$1 & PreferNamedCaptureGroupRule & PreferNumericLiteralsRule & PreferObjectHasOwnRule$1 & PreferObjectSpreadRule & PreferPromiseRejectErrorsRule & PreferReflectRule & PreferRegexLiteralsRule & PreferRestParamsRule & PreferSpreadRule$1 & PreferTemplateRule$1 & QuotePropsRule$2 & QuotesRule$3 & RadixRule & RequireAtomicUpdatesRule & RequireAwaitRule$1 & RequireJsdocRule$1 & RequireUnicodeRegexpRule & RequireYieldRule & RestSpreadSpacingRule & SemiRule$1 & SemiSpacingRule & SemiStyleRule & SortImportsRule & SortKeysRule$3 & SortVarsRule & SpaceBeforeBlocksRule$1 & SpaceBeforeFunctionParenRule$1 & SpaceInParensRule$1 & SpaceInfixOpsRule$2 & SpaceUnaryOpsRule$2 & SpacedCommentRule$1 & StrictRule & SwitchColonSpacingRule & SymbolDescriptionRule & TemplateCurlySpacingRule$1 & TemplateTagSpacingRule & UnicodeBomRule & UseIsnanRule & ValidJsdocRule & ValidTypeofRule & VarsOnTopRule & WrapIifeRule & WrapRegexRule & YieldStarSpacingRule & YodaRule; /** * Option. */ interface DisableEnablePairOption { allowWholeFile?: boolean; } /** * Options. */ type DisableEnablePairOptions = [DisableEnablePairOption?]; /** * Require a `eslint-enable` comment for every `eslint-disable` comment. * * @see [disable-enable-pair](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/disable-enable-pair.html) */ type DisableEnablePairRuleConfig = RuleConfig; /** * Require a `eslint-enable` comment for every `eslint-disable` comment. * * @see [disable-enable-pair](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/disable-enable-pair.html) */ interface DisableEnablePairRule { /** * Require a `eslint-enable` comment for every `eslint-disable` comment. * * @see [disable-enable-pair](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/disable-enable-pair.html) */ 'eslint-comments/disable-enable-pair': DisableEnablePairRuleConfig; } /** * Disallow a `eslint-enable` comment for multiple `eslint-disable` comments. * * @see [no-aggregating-enable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-aggregating-enable.html) */ type NoAggregatingEnableRuleConfig = RuleConfig<[]>; /** * Disallow a `eslint-enable` comment for multiple `eslint-disable` comments. * * @see [no-aggregating-enable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-aggregating-enable.html) */ interface NoAggregatingEnableRule { /** * Disallow a `eslint-enable` comment for multiple `eslint-disable` comments. * * @see [no-aggregating-enable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-aggregating-enable.html) */ 'eslint-comments/no-aggregating-enable': NoAggregatingEnableRuleConfig; } /** * Disallow duplicate `eslint-disable` comments. * * @see [no-duplicate-disable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-duplicate-disable.html) */ type NoDuplicateDisableRuleConfig = RuleConfig<[]>; /** * Disallow duplicate `eslint-disable` comments. * * @see [no-duplicate-disable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-duplicate-disable.html) */ interface NoDuplicateDisableRule { /** * Disallow duplicate `eslint-disable` comments. * * @see [no-duplicate-disable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-duplicate-disable.html) */ 'eslint-comments/no-duplicate-disable': NoDuplicateDisableRuleConfig; } /** * Option. */ type NoRestrictedDisableOption = string[]; /** * Options. */ type NoRestrictedDisableOptions = NoRestrictedDisableOption; /** * Disallow `eslint-disable` comments about specific rules. * * @see [no-restricted-disable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-restricted-disable.html) */ type NoRestrictedDisableRuleConfig = RuleConfig; /** * Disallow `eslint-disable` comments about specific rules. * * @see [no-restricted-disable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-restricted-disable.html) */ interface NoRestrictedDisableRule { /** * Disallow `eslint-disable` comments about specific rules. * * @see [no-restricted-disable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-restricted-disable.html) */ 'eslint-comments/no-restricted-disable': NoRestrictedDisableRuleConfig; } /** * Disallow `eslint-disable` comments without rule names. * * @see [no-unlimited-disable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-unlimited-disable.html) */ type NoUnlimitedDisableRuleConfig = RuleConfig<[]>; /** * Disallow `eslint-disable` comments without rule names. * * @see [no-unlimited-disable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-unlimited-disable.html) */ interface NoUnlimitedDisableRule { /** * Disallow `eslint-disable` comments without rule names. * * @see [no-unlimited-disable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-unlimited-disable.html) */ 'eslint-comments/no-unlimited-disable': NoUnlimitedDisableRuleConfig; } /** * Disallow unused `eslint-disable` comments. * * @see [no-unused-disable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-unused-disable.html) */ type NoUnusedDisableRuleConfig = RuleConfig<[]>; /** * Disallow unused `eslint-disable` comments. * * @see [no-unused-disable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-unused-disable.html) */ interface NoUnusedDisableRule { /** * Disallow unused `eslint-disable` comments. * * @see [no-unused-disable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-unused-disable.html) */ 'eslint-comments/no-unused-disable': NoUnusedDisableRuleConfig; } /** * Disallow unused `eslint-enable` comments. * * @see [no-unused-enable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-unused-enable.html) */ type NoUnusedEnableRuleConfig = RuleConfig<[]>; /** * Disallow unused `eslint-enable` comments. * * @see [no-unused-enable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-unused-enable.html) */ interface NoUnusedEnableRule { /** * Disallow unused `eslint-enable` comments. * * @see [no-unused-enable](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-unused-enable.html) */ 'eslint-comments/no-unused-enable': NoUnusedEnableRuleConfig; } /** * Option. */ interface NoUseOption { allow?: ( | 'eslint' | 'eslint-disable' | 'eslint-disable-line' | 'eslint-disable-next-line' | 'eslint-enable' | 'eslint-env' | 'exported' | 'global' | 'globals' )[]; } /** * Options. */ type NoUseOptions = [NoUseOption?]; /** * Disallow ESLint directive-comments. * * @see [no-use](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-use.html) */ type NoUseRuleConfig = RuleConfig; /** * Disallow ESLint directive-comments. * * @see [no-use](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-use.html) */ interface NoUseRule { /** * Disallow ESLint directive-comments. * * @see [no-use](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-use.html) */ 'eslint-comments/no-use': NoUseRuleConfig; } /** * Option. */ interface RequireDescriptionOption$2 { ignore?: ( | 'eslint' | 'eslint-disable' | 'eslint-disable-line' | 'eslint-disable-next-line' | 'eslint-enable' | 'eslint-env' | 'exported' | 'global' | 'globals' )[]; } /** * Options. */ type RequireDescriptionOptions$2 = [RequireDescriptionOption$2?]; /** * Require include descriptions in ESLint directive-comments. * * @see [require-description](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/require-description.html) */ type RequireDescriptionRuleConfig$2 = RuleConfig; /** * Require include descriptions in ESLint directive-comments. * * @see [require-description](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/require-description.html) */ interface RequireDescriptionRule$2 { /** * Require include descriptions in ESLint directive-comments. * * @see [require-description](https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/require-description.html) */ 'eslint-comments/require-description': RequireDescriptionRuleConfig$2; } /** * All EslintComments rules. */ type EslintCommentsRules = DisableEnablePairRule & NoAggregatingEnableRule & NoDuplicateDisableRule & NoRestrictedDisableRule & NoUnlimitedDisableRule & NoUnusedDisableRule & NoUnusedEnableRule & NoUseRule & RequireDescriptionRule$2; /** * Option. */ /** * @minItems 1 * @maxItems 1 */ type AlphabetizeOption = [ { /** * Fields of `type`, `interface`, and `input`. * * @minItems 1 */ fields?: [ ( | 'ObjectTypeDefinition' | 'InterfaceTypeDefinition' | 'InputObjectTypeDefinition' ), ...( | 'ObjectTypeDefinition' | 'InterfaceTypeDefinition' | 'InputObjectTypeDefinition' )[], ]; /** * Values of `enum`. * * @minItems 1 */ values?: ['EnumTypeDefinition', ...'EnumTypeDefinition'[]]; /** * Selections of `fragment` and operations `query`, `mutation` and `subscription`. * * @minItems 1 */ selections?: [ 'OperationDefinition' | 'FragmentDefinition', ...('OperationDefinition' | 'FragmentDefinition')[], ]; /** * Variables of operations `query`, `mutation` and `subscription`. * * @minItems 1 */ variables?: ['OperationDefinition', ...'OperationDefinition'[]]; /** * Arguments of fields and directives. * * @minItems 1 */ arguments?: [ 'FieldDefinition' | 'Field' | 'DirectiveDefinition' | 'Directive', ...('FieldDefinition' | 'Field' | 'DirectiveDefinition' | 'Directive')[], ]; /** * Definitions – `type`, `interface`, `enum`, `scalar`, `input`, `union` and `directive`. */ definitions?: boolean; /** * Custom order group. Example: `['id', '*', 'createdAt', 'updatedAt']` where `*` says for everything else. * * @minItems 2 */ groups?: [string, string, ...string[]]; }, ]; /** * Options. */ type AlphabetizeOptions = AlphabetizeOption; /** * Enforce arrange in alphabetical order for type fields, enum values, input object fields, operation selections and more. * * @see [alphabetize](https://the-guild.dev/graphql/eslint/rules/alphabetize) */ type AlphabetizeRuleConfig = RuleConfig; /** * Enforce arrange in alphabetical order for type fields, enum values, input object fields, operation selections and more. * * @see [alphabetize](https://the-guild.dev/graphql/eslint/rules/alphabetize) */ interface AlphabetizeRule { /** * Enforce arrange in alphabetical order for type fields, enum values, input object fields, operation selections and more. * * @see [alphabetize](https://the-guild.dev/graphql/eslint/rules/alphabetize) */ '@graphql-eslint/alphabetize': AlphabetizeRuleConfig; } /** * Option. */ /** * @maxItems 1 */ type DescriptionStyleOption = | [] | [ { style?: 'block' | 'inline'; }, ]; /** * Options. */ type DescriptionStyleOptions = DescriptionStyleOption; /** * Require all comments to follow the same style (either block or inline). * * @see [description-style](https://the-guild.dev/graphql/eslint/rules/description-style) */ type DescriptionStyleRuleConfig = RuleConfig; /** * Require all comments to follow the same style (either block or inline). * * @see [description-style](https://the-guild.dev/graphql/eslint/rules/description-style) */ interface DescriptionStyleRule { /** * Require all comments to follow the same style (either block or inline). * * @see [description-style](https://the-guild.dev/graphql/eslint/rules/description-style) */ '@graphql-eslint/description-style': DescriptionStyleRuleConfig; } /** * A GraphQL document is only valid for execution if all definitions are either operation or fragment definitions. > This rule is a wrapper around a `graphql-js` validation function. * * @see [executable-definitions](https://the-guild.dev/graphql/eslint/rules/executable-definitions) */ type ExecutableDefinitionsRuleConfig = RuleConfig<[]>; /** * A GraphQL document is only valid for execution if all definitions are either operation or fragment definitions. > This rule is a wrapper around a `graphql-js` validation function. * * @see [executable-definitions](https://the-guild.dev/graphql/eslint/rules/executable-definitions) */ interface ExecutableDefinitionsRule { /** * A GraphQL document is only valid for execution if all definitions are either operation or fragment definitions. > This rule is a wrapper around a `graphql-js` validation function. * * @see [executable-definitions](https://the-guild.dev/graphql/eslint/rules/executable-definitions) */ '@graphql-eslint/executable-definitions': ExecutableDefinitionsRuleConfig; } /** * A GraphQL document is only valid if all fields selected are defined by the parent type, or are an allowed meta field such as `__typename`. > This rule is a wrapper around a `graphql-js` validation function. * * @see [fields-on-correct-type](https://the-guild.dev/graphql/eslint/rules/fields-on-correct-type) */ type FieldsOnCorrectTypeRuleConfig = RuleConfig<[]>; /** * A GraphQL document is only valid if all fields selected are defined by the parent type, or are an allowed meta field such as `__typename`. > This rule is a wrapper around a `graphql-js` validation function. * * @see [fields-on-correct-type](https://the-guild.dev/graphql/eslint/rules/fields-on-correct-type) */ interface FieldsOnCorrectTypeRule { /** * A GraphQL document is only valid if all fields selected are defined by the parent type, or are an allowed meta field such as `__typename`. > This rule is a wrapper around a `graphql-js` validation function. * * @see [fields-on-correct-type](https://the-guild.dev/graphql/eslint/rules/fields-on-correct-type) */ '@graphql-eslint/fields-on-correct-type': FieldsOnCorrectTypeRuleConfig; } /** * Fragments use a type condition to determine if they apply, since fragments can only be spread into a composite type (object, interface, or union), the type condition must also be a composite type. > This rule is a wrapper around a `graphql-js` validation function. * * @see [fragments-on-composite-type](https://the-guild.dev/graphql/eslint/rules/fragments-on-composite-type) */ type FragmentsOnCompositeTypeRuleConfig = RuleConfig<[]>; /** * Fragments use a type condition to determine if they apply, since fragments can only be spread into a composite type (object, interface, or union), the type condition must also be a composite type. > This rule is a wrapper around a `graphql-js` validation function. * * @see [fragments-on-composite-type](https://the-guild.dev/graphql/eslint/rules/fragments-on-composite-type) */ interface FragmentsOnCompositeTypeRule { /** * Fragments use a type condition to determine if they apply, since fragments can only be spread into a composite type (object, interface, or union), the type condition must also be a composite type. > This rule is a wrapper around a `graphql-js` validation function. * * @see [fragments-on-composite-type](https://the-guild.dev/graphql/eslint/rules/fragments-on-composite-type) */ '@graphql-eslint/fragments-on-composite-type': FragmentsOnCompositeTypeRuleConfig; } /** * Option. */ /** * @maxItems 1 */ type InputNameOption = | [] | [ { /** * Check that the input type name follows the convention \Input */ checkInputType?: boolean; /** * Allow for case discrepancies in the input type name */ caseSensitiveInputType?: boolean; /** * Apply the rule to Queries */ checkQueries?: boolean; /** * Apply the rule to Mutations */ checkMutations?: boolean; }, ]; /** * Options. */ type InputNameOptions = InputNameOption; /** * Require mutation argument to be always called "input" and input type to be called Mutation name + "Input". Using the same name for all input parameters will make your schemas easier to consume and more predictable. Using the same name as mutation for InputType will make it easier to find mutations that InputType belongs to. * * @see [input-name](https://the-guild.dev/graphql/eslint/rules/input-name) */ type InputNameRuleConfig = RuleConfig; /** * Require mutation argument to be always called "input" and input type to be called Mutation name + "Input". Using the same name for all input parameters will make your schemas easier to consume and more predictable. Using the same name as mutation for InputType will make it easier to find mutations that InputType belongs to. * * @see [input-name](https://the-guild.dev/graphql/eslint/rules/input-name) */ interface InputNameRule { /** * Require mutation argument to be always called "input" and input type to be called Mutation name + "Input". Using the same name for all input parameters will make your schemas easier to consume and more predictable. Using the same name as mutation for InputType will make it easier to find mutations that InputType belongs to. * * @see [input-name](https://the-guild.dev/graphql/eslint/rules/input-name) */ '@graphql-eslint/input-name': InputNameRuleConfig; } /** * A GraphQL field is only valid if all supplied arguments are defined by that field. > This rule is a wrapper around a `graphql-js` validation function. * * @see [known-argument-names](https://the-guild.dev/graphql/eslint/rules/known-argument-names) */ type KnownArgumentNamesRuleConfig = RuleConfig<[]>; /** * A GraphQL field is only valid if all supplied arguments are defined by that field. > This rule is a wrapper around a `graphql-js` validation function. * * @see [known-argument-names](https://the-guild.dev/graphql/eslint/rules/known-argument-names) */ interface KnownArgumentNamesRule { /** * A GraphQL field is only valid if all supplied arguments are defined by that field. > This rule is a wrapper around a `graphql-js` validation function. * * @see [known-argument-names](https://the-guild.dev/graphql/eslint/rules/known-argument-names) */ '@graphql-eslint/known-argument-names': KnownArgumentNamesRuleConfig; } /** * Option. */ /** * @maxItems 1 */ type KnownDirectivesOption = | [] | [ { /** * @minItems 1 */ ignoreClientDirectives: [string, ...string[]]; }, ]; /** * Options. */ type KnownDirectivesOptions = KnownDirectivesOption; /** * A GraphQL document is only valid if all `@directive`s are known by the schema and legally positioned. > This rule is a wrapper around a `graphql-js` validation function. * * @see [known-directives](https://the-guild.dev/graphql/eslint/rules/known-directives) */ type KnownDirectivesRuleConfig = RuleConfig; /** * A GraphQL document is only valid if all `@directive`s are known by the schema and legally positioned. > This rule is a wrapper around a `graphql-js` validation function. * * @see [known-directives](https://the-guild.dev/graphql/eslint/rules/known-directives) */ interface KnownDirectivesRule { /** * A GraphQL document is only valid if all `@directive`s are known by the schema and legally positioned. > This rule is a wrapper around a `graphql-js` validation function. * * @see [known-directives](https://the-guild.dev/graphql/eslint/rules/known-directives) */ '@graphql-eslint/known-directives': KnownDirectivesRuleConfig; } /** * A GraphQL document is only valid if all `...Fragment` fragment spreads refer to fragments defined in the same document. > This rule is a wrapper around a `graphql-js` validation function. * * @see [known-fragment-names](https://the-guild.dev/graphql/eslint/rules/known-fragment-names) */ type KnownFragmentNamesRuleConfig = RuleConfig<[]>; /** * A GraphQL document is only valid if all `...Fragment` fragment spreads refer to fragments defined in the same document. > This rule is a wrapper around a `graphql-js` validation function. * * @see [known-fragment-names](https://the-guild.dev/graphql/eslint/rules/known-fragment-names) */ interface KnownFragmentNamesRule { /** * A GraphQL document is only valid if all `...Fragment` fragment spreads refer to fragments defined in the same document. > This rule is a wrapper around a `graphql-js` validation function. * * @see [known-fragment-names](https://the-guild.dev/graphql/eslint/rules/known-fragment-names) */ '@graphql-eslint/known-fragment-names': KnownFragmentNamesRuleConfig; } /** * A GraphQL document is only valid if referenced types (specifically variable definitions and fragment conditions) are defined by the type schema. > This rule is a wrapper around a `graphql-js` validation function. * * @see [known-type-names](https://the-guild.dev/graphql/eslint/rules/known-type-names) */ type KnownTypeNamesRuleConfig = RuleConfig<[]>; /** * A GraphQL document is only valid if referenced types (specifically variable definitions and fragment conditions) are defined by the type schema. > This rule is a wrapper around a `graphql-js` validation function. * * @see [known-type-names](https://the-guild.dev/graphql/eslint/rules/known-type-names) */ interface KnownTypeNamesRule { /** * A GraphQL document is only valid if referenced types (specifically variable definitions and fragment conditions) are defined by the type schema. > This rule is a wrapper around a `graphql-js` validation function. * * @see [known-type-names](https://the-guild.dev/graphql/eslint/rules/known-type-names) */ '@graphql-eslint/known-type-names': KnownTypeNamesRuleConfig; } /** * A GraphQL document that contains an anonymous operation (the `query` short-hand) is only valid if it contains only that one operation definition. > This rule is a wrapper around a `graphql-js` validation function. * * @see [lone-anonymous-operation](https://the-guild.dev/graphql/eslint/rules/lone-anonymous-operation) */ type LoneAnonymousOperationRuleConfig = RuleConfig<[]>; /** * A GraphQL document that contains an anonymous operation (the `query` short-hand) is only valid if it contains only that one operation definition. > This rule is a wrapper around a `graphql-js` validation function. * * @see [lone-anonymous-operation](https://the-guild.dev/graphql/eslint/rules/lone-anonymous-operation) */ interface LoneAnonymousOperationRule { /** * A GraphQL document that contains an anonymous operation (the `query` short-hand) is only valid if it contains only that one operation definition. > This rule is a wrapper around a `graphql-js` validation function. * * @see [lone-anonymous-operation](https://the-guild.dev/graphql/eslint/rules/lone-anonymous-operation) */ '@graphql-eslint/lone-anonymous-operation': LoneAnonymousOperationRuleConfig; } /** * Option. */ /** * @maxItems 1 */ type LoneExecutableDefinitionOption = | [] | [ { /** * Allow certain definitions to be placed alongside others. * * @minItems 1 * @maxItems 3 */ ignore?: | ['fragment' | 'query' | 'mutation' | 'subscription'] | [ 'fragment' | 'query' | 'mutation' | 'subscription', 'fragment' | 'query' | 'mutation' | 'subscription', ] | [ 'fragment' | 'query' | 'mutation' | 'subscription', 'fragment' | 'query' | 'mutation' | 'subscription', 'fragment' | 'query' | 'mutation' | 'subscription', ]; }, ]; /** * Options. */ type LoneExecutableDefinitionOptions = LoneExecutableDefinitionOption; /** * Require queries, mutations, subscriptions or fragments to be located in separate files. * * @see [lone-executable-definition](https://the-guild.dev/graphql/eslint/rules/lone-executable-definition) */ type LoneExecutableDefinitionRuleConfig = RuleConfig; /** * Require queries, mutations, subscriptions or fragments to be located in separate files. * * @see [lone-executable-definition](https://the-guild.dev/graphql/eslint/rules/lone-executable-definition) */ interface LoneExecutableDefinitionRule { /** * Require queries, mutations, subscriptions or fragments to be located in separate files. * * @see [lone-executable-definition](https://the-guild.dev/graphql/eslint/rules/lone-executable-definition) */ '@graphql-eslint/lone-executable-definition': LoneExecutableDefinitionRuleConfig; } /** * A GraphQL document is only valid if it contains only one schema definition. > This rule is a wrapper around a `graphql-js` validation function. * * @see [lone-schema-definition](https://the-guild.dev/graphql/eslint/rules/lone-schema-definition) */ type LoneSchemaDefinitionRuleConfig = RuleConfig<[]>; /** * A GraphQL document is only valid if it contains only one schema definition. > This rule is a wrapper around a `graphql-js` validation function. * * @see [lone-schema-definition](https://the-guild.dev/graphql/eslint/rules/lone-schema-definition) */ interface LoneSchemaDefinitionRule { /** * A GraphQL document is only valid if it contains only one schema definition. > This rule is a wrapper around a `graphql-js` validation function. * * @see [lone-schema-definition](https://the-guild.dev/graphql/eslint/rules/lone-schema-definition) */ '@graphql-eslint/lone-schema-definition': LoneSchemaDefinitionRuleConfig; } /** * Option. */ /** * @minItems 1 * @maxItems 1 */ type MatchDocumentFilenameOption = [ { fileExtension?: '.gql' | '.graphql'; query?: AsString$2 | AsObject$1; mutation?: AsString$2 | AsObject$1; subscription?: AsString$2 | AsObject$1; fragment?: AsString$2 | AsObject$1; }, ]; /** * One of: `camelCase`, `PascalCase`, `snake_case`, `UPPER_CASE`, `kebab-case`, `matchDocumentStyle` */ type AsString$2 = | 'camelCase' | 'PascalCase' | 'snake_case' | 'UPPER_CASE' | 'kebab-case' | 'matchDocumentStyle'; interface AsObject$1 { style?: | 'camelCase' | 'PascalCase' | 'snake_case' | 'UPPER_CASE' | 'kebab-case' | 'matchDocumentStyle'; suffix?: string; prefix?: string; } /** * Options. */ type MatchDocumentFilenameOptions = MatchDocumentFilenameOption; /** * This rule allows you to enforce that the file name should match the operation name. * * @see [match-document-filename](https://the-guild.dev/graphql/eslint/rules/match-document-filename) */ type MatchDocumentFilenameRuleConfig = RuleConfig; /** * This rule allows you to enforce that the file name should match the operation name. * * @see [match-document-filename](https://the-guild.dev/graphql/eslint/rules/match-document-filename) */ interface MatchDocumentFilenameRule { /** * This rule allows you to enforce that the file name should match the operation name. * * @see [match-document-filename](https://the-guild.dev/graphql/eslint/rules/match-document-filename) */ '@graphql-eslint/match-document-filename': MatchDocumentFilenameRuleConfig; } /** * Option. */ /** * @maxItems 1 */ type NamingConventionOption$1 = | [] | [ { /** * Includes: * - `ObjectTypeDefinition` * - `InterfaceTypeDefinition` * - `EnumTypeDefinition` * - `ScalarTypeDefinition` * - `InputObjectTypeDefinition` * - `UnionTypeDefinition` */ types?: AsString$1 | AsObject; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#Argument). */ Argument?: AsString$1 | AsObject; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#DirectiveDefinition). */ DirectiveDefinition?: AsString$1 | AsObject; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#EnumTypeDefinition). */ EnumTypeDefinition?: AsString$1 | AsObject; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#EnumValueDefinition). */ EnumValueDefinition?: AsString$1 | AsObject; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#FieldDefinition). */ FieldDefinition?: AsString$1 | AsObject; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#FragmentDefinition). */ FragmentDefinition?: AsString$1 | AsObject; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#InputObjectTypeDefinition). */ InputObjectTypeDefinition?: AsString$1 | AsObject; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#InputValueDefinition). */ InputValueDefinition?: AsString$1 | AsObject; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#InterfaceTypeDefinition). */ InterfaceTypeDefinition?: AsString$1 | AsObject; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#ObjectTypeDefinition). */ ObjectTypeDefinition?: AsString$1 | AsObject; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#OperationDefinition). */ OperationDefinition?: AsString$1 | AsObject; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#ScalarTypeDefinition). */ ScalarTypeDefinition?: AsString$1 | AsObject; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#UnionTypeDefinition). */ UnionTypeDefinition?: AsString$1 | AsObject; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#VariableDefinition). */ VariableDefinition?: AsString$1 | AsObject; allowLeadingUnderscore?: boolean; allowTrailingUnderscore?: boolean; } & { [k: string]: AsString$1 | AsObject; }, ]; /** * One of: `camelCase`, `PascalCase`, `snake_case`, `UPPER_CASE` */ type AsString$1 = 'camelCase' | 'PascalCase' | 'snake_case' | 'UPPER_CASE'; interface AsObject { style?: 'camelCase' | 'PascalCase' | 'snake_case' | 'UPPER_CASE'; prefix?: string; suffix?: string; /** * @minItems 1 */ forbiddenPrefixes?: [string, ...string[]]; /** * @minItems 1 */ forbiddenSuffixes?: [string, ...string[]]; /** * @minItems 1 */ requiredPrefixes?: [string, ...string[]]; /** * @minItems 1 */ requiredSuffixes?: [string, ...string[]]; /** * Option to skip validation of some words, e.g. acronyms */ ignorePattern?: string; } /** * Options. */ type NamingConventionOptions$1 = NamingConventionOption$1; /** * Require names to follow specified conventions. * * @see [naming-convention](https://the-guild.dev/graphql/eslint/rules/naming-convention) */ type NamingConventionRuleConfig$1 = RuleConfig; /** * Require names to follow specified conventions. * * @see [naming-convention](https://the-guild.dev/graphql/eslint/rules/naming-convention) */ interface NamingConventionRule$1 { /** * Require names to follow specified conventions. * * @see [naming-convention](https://the-guild.dev/graphql/eslint/rules/naming-convention) */ '@graphql-eslint/naming-convention': NamingConventionRuleConfig$1; } /** * Require name for your GraphQL operations. This is useful since most GraphQL client libraries are using the operation name for caching purposes. * * @see [no-anonymous-operations](https://the-guild.dev/graphql/eslint/rules/no-anonymous-operations) */ type NoAnonymousOperationsRuleConfig = RuleConfig<[]>; /** * Require name for your GraphQL operations. This is useful since most GraphQL client libraries are using the operation name for caching purposes. * * @see [no-anonymous-operations](https://the-guild.dev/graphql/eslint/rules/no-anonymous-operations) */ interface NoAnonymousOperationsRule { /** * Require name for your GraphQL operations. This is useful since most GraphQL client libraries are using the operation name for caching purposes. * * @see [no-anonymous-operations](https://the-guild.dev/graphql/eslint/rules/no-anonymous-operations) */ '@graphql-eslint/no-anonymous-operations': NoAnonymousOperationsRuleConfig; } /** * Disallow case-insensitive enum values duplicates. * * @see [no-case-insensitive-enum-values-duplicates](https://the-guild.dev/graphql/eslint/rules/no-case-insensitive-enum-values-duplicates) */ type NoCaseInsensitiveEnumValuesDuplicatesRuleConfig = RuleConfig<[]>; /** * Disallow case-insensitive enum values duplicates. * * @see [no-case-insensitive-enum-values-duplicates](https://the-guild.dev/graphql/eslint/rules/no-case-insensitive-enum-values-duplicates) */ interface NoCaseInsensitiveEnumValuesDuplicatesRule { /** * Disallow case-insensitive enum values duplicates. * * @see [no-case-insensitive-enum-values-duplicates](https://the-guild.dev/graphql/eslint/rules/no-case-insensitive-enum-values-duplicates) */ '@graphql-eslint/no-case-insensitive-enum-values-duplicates': NoCaseInsensitiveEnumValuesDuplicatesRuleConfig; } /** * Enforce that deprecated fields or enum values are not in use by operations. * * @see [no-deprecated](https://the-guild.dev/graphql/eslint/rules/no-deprecated) */ type NoDeprecatedRuleConfig$2 = RuleConfig<[]>; /** * Enforce that deprecated fields or enum values are not in use by operations. * * @see [no-deprecated](https://the-guild.dev/graphql/eslint/rules/no-deprecated) */ interface NoDeprecatedRule$2 { /** * Enforce that deprecated fields or enum values are not in use by operations. * * @see [no-deprecated](https://the-guild.dev/graphql/eslint/rules/no-deprecated) */ '@graphql-eslint/no-deprecated': NoDeprecatedRuleConfig$2; } /** * Checks for duplicate fields in selection set, variables in operation definition, or in arguments set of a field. * * @see [no-duplicate-fields](https://the-guild.dev/graphql/eslint/rules/no-duplicate-fields) */ type NoDuplicateFieldsRuleConfig = RuleConfig<[]>; /** * Checks for duplicate fields in selection set, variables in operation definition, or in arguments set of a field. * * @see [no-duplicate-fields](https://the-guild.dev/graphql/eslint/rules/no-duplicate-fields) */ interface NoDuplicateFieldsRule { /** * Checks for duplicate fields in selection set, variables in operation definition, or in arguments set of a field. * * @see [no-duplicate-fields](https://the-guild.dev/graphql/eslint/rules/no-duplicate-fields) */ '@graphql-eslint/no-duplicate-fields': NoDuplicateFieldsRuleConfig; } /** * A GraphQL fragment is only valid when it does not have cycles in fragments usage. > This rule is a wrapper around a `graphql-js` validation function. * * @see [no-fragment-cycles](https://the-guild.dev/graphql/eslint/rules/no-fragment-cycles) */ type NoFragmentCyclesRuleConfig = RuleConfig<[]>; /** * A GraphQL fragment is only valid when it does not have cycles in fragments usage. > This rule is a wrapper around a `graphql-js` validation function. * * @see [no-fragment-cycles](https://the-guild.dev/graphql/eslint/rules/no-fragment-cycles) */ interface NoFragmentCyclesRule { /** * A GraphQL fragment is only valid when it does not have cycles in fragments usage. > This rule is a wrapper around a `graphql-js` validation function. * * @see [no-fragment-cycles](https://the-guild.dev/graphql/eslint/rules/no-fragment-cycles) */ '@graphql-eslint/no-fragment-cycles': NoFragmentCyclesRuleConfig; } /** * Requires to use `"""` or `"` for adding a GraphQL description instead of `#`. Allows to use hashtag for comments, as long as it's not attached to an AST definition. * * @see [no-hashtag-description](https://the-guild.dev/graphql/eslint/rules/no-hashtag-description) */ type NoHashtagDescriptionRuleConfig = RuleConfig<[]>; /** * Requires to use `"""` or `"` for adding a GraphQL description instead of `#`. Allows to use hashtag for comments, as long as it's not attached to an AST definition. * * @see [no-hashtag-description](https://the-guild.dev/graphql/eslint/rules/no-hashtag-description) */ interface NoHashtagDescriptionRule { /** * Requires to use `"""` or `"` for adding a GraphQL description instead of `#`. Allows to use hashtag for comments, as long as it's not attached to an AST definition. * * @see [no-hashtag-description](https://the-guild.dev/graphql/eslint/rules/no-hashtag-description) */ '@graphql-eslint/no-hashtag-description': NoHashtagDescriptionRuleConfig; } /** * Disallow fragments that are used only in one place. * * @see [no-one-place-fragments](https://the-guild.dev/graphql/eslint/rules/no-one-place-fragments) */ type NoOnePlaceFragmentsRuleConfig = RuleConfig<[]>; /** * Disallow fragments that are used only in one place. * * @see [no-one-place-fragments](https://the-guild.dev/graphql/eslint/rules/no-one-place-fragments) */ interface NoOnePlaceFragmentsRule { /** * Disallow fragments that are used only in one place. * * @see [no-one-place-fragments](https://the-guild.dev/graphql/eslint/rules/no-one-place-fragments) */ '@graphql-eslint/no-one-place-fragments': NoOnePlaceFragmentsRuleConfig; } /** * Option. */ /** * @minItems 1 * @maxItems 1 */ type NoRootTypeOption = [ { /** * @minItems 1 */ disallow: ['mutation' | 'subscription', ...('mutation' | 'subscription')[]]; }, ]; /** * Options. */ type NoRootTypeOptions = NoRootTypeOption; /** * Disallow using root types `mutation` and/or `subscription`. * * @see [no-root-type](https://the-guild.dev/graphql/eslint/rules/no-root-type) */ type NoRootTypeRuleConfig = RuleConfig; /** * Disallow using root types `mutation` and/or `subscription`. * * @see [no-root-type](https://the-guild.dev/graphql/eslint/rules/no-root-type) */ interface NoRootTypeRule { /** * Disallow using root types `mutation` and/or `subscription`. * * @see [no-root-type](https://the-guild.dev/graphql/eslint/rules/no-root-type) */ '@graphql-eslint/no-root-type': NoRootTypeRuleConfig; } /** * Avoid scalar result type on mutation type to make sure to return a valid state. * * @see [no-scalar-result-type-on-mutation](https://the-guild.dev/graphql/eslint/rules/no-scalar-result-type-on-mutation) */ type NoScalarResultTypeOnMutationRuleConfig = RuleConfig<[]>; /** * Avoid scalar result type on mutation type to make sure to return a valid state. * * @see [no-scalar-result-type-on-mutation](https://the-guild.dev/graphql/eslint/rules/no-scalar-result-type-on-mutation) */ interface NoScalarResultTypeOnMutationRule { /** * Avoid scalar result type on mutation type to make sure to return a valid state. * * @see [no-scalar-result-type-on-mutation](https://the-guild.dev/graphql/eslint/rules/no-scalar-result-type-on-mutation) */ '@graphql-eslint/no-scalar-result-type-on-mutation': NoScalarResultTypeOnMutationRuleConfig; } /** * Enforces users to avoid using the type name in a field name while defining your schema. * * @see [no-typename-prefix](https://the-guild.dev/graphql/eslint/rules/no-typename-prefix) */ type NoTypenamePrefixRuleConfig = RuleConfig<[]>; /** * Enforces users to avoid using the type name in a field name while defining your schema. * * @see [no-typename-prefix](https://the-guild.dev/graphql/eslint/rules/no-typename-prefix) */ interface NoTypenamePrefixRule { /** * Enforces users to avoid using the type name in a field name while defining your schema. * * @see [no-typename-prefix](https://the-guild.dev/graphql/eslint/rules/no-typename-prefix) */ '@graphql-eslint/no-typename-prefix': NoTypenamePrefixRuleConfig; } /** * A GraphQL operation is only valid if all variables encountered, both directly and via fragment spreads, are defined by that operation. > This rule is a wrapper around a `graphql-js` validation function. * * @see [no-undefined-variables](https://the-guild.dev/graphql/eslint/rules/no-undefined-variables) */ type NoUndefinedVariablesRuleConfig = RuleConfig<[]>; /** * A GraphQL operation is only valid if all variables encountered, both directly and via fragment spreads, are defined by that operation. > This rule is a wrapper around a `graphql-js` validation function. * * @see [no-undefined-variables](https://the-guild.dev/graphql/eslint/rules/no-undefined-variables) */ interface NoUndefinedVariablesRule { /** * A GraphQL operation is only valid if all variables encountered, both directly and via fragment spreads, are defined by that operation. > This rule is a wrapper around a `graphql-js` validation function. * * @see [no-undefined-variables](https://the-guild.dev/graphql/eslint/rules/no-undefined-variables) */ '@graphql-eslint/no-undefined-variables': NoUndefinedVariablesRuleConfig; } /** * Requires all types to be reachable at some level by root level fields. * * @see [no-unreachable-types](https://the-guild.dev/graphql/eslint/rules/no-unreachable-types) */ type NoUnreachableTypesRuleConfig = RuleConfig<[]>; /** * Requires all types to be reachable at some level by root level fields. * * @see [no-unreachable-types](https://the-guild.dev/graphql/eslint/rules/no-unreachable-types) */ interface NoUnreachableTypesRule { /** * Requires all types to be reachable at some level by root level fields. * * @see [no-unreachable-types](https://the-guild.dev/graphql/eslint/rules/no-unreachable-types) */ '@graphql-eslint/no-unreachable-types': NoUnreachableTypesRuleConfig; } /** * Requires all fields to be used at some level by siblings operations. * * @see [no-unused-fields](https://the-guild.dev/graphql/eslint/rules/no-unused-fields) */ type NoUnusedFieldsRuleConfig = RuleConfig<[]>; /** * Requires all fields to be used at some level by siblings operations. * * @see [no-unused-fields](https://the-guild.dev/graphql/eslint/rules/no-unused-fields) */ interface NoUnusedFieldsRule { /** * Requires all fields to be used at some level by siblings operations. * * @see [no-unused-fields](https://the-guild.dev/graphql/eslint/rules/no-unused-fields) */ '@graphql-eslint/no-unused-fields': NoUnusedFieldsRuleConfig; } /** * A GraphQL document is only valid if all fragment definitions are spread within operations, or spread within other fragments spread within operations. > This rule is a wrapper around a `graphql-js` validation function. * * @see [no-unused-fragments](https://the-guild.dev/graphql/eslint/rules/no-unused-fragments) */ type NoUnusedFragmentsRuleConfig = RuleConfig<[]>; /** * A GraphQL document is only valid if all fragment definitions are spread within operations, or spread within other fragments spread within operations. > This rule is a wrapper around a `graphql-js` validation function. * * @see [no-unused-fragments](https://the-guild.dev/graphql/eslint/rules/no-unused-fragments) */ interface NoUnusedFragmentsRule { /** * A GraphQL document is only valid if all fragment definitions are spread within operations, or spread within other fragments spread within operations. > This rule is a wrapper around a `graphql-js` validation function. * * @see [no-unused-fragments](https://the-guild.dev/graphql/eslint/rules/no-unused-fragments) */ '@graphql-eslint/no-unused-fragments': NoUnusedFragmentsRuleConfig; } /** * A GraphQL operation is only valid if all variables defined by an operation are used, either directly or within a spread fragment. > This rule is a wrapper around a `graphql-js` validation function. * * @see [no-unused-variables](https://the-guild.dev/graphql/eslint/rules/no-unused-variables) */ type NoUnusedVariablesRuleConfig = RuleConfig<[]>; /** * A GraphQL operation is only valid if all variables defined by an operation are used, either directly or within a spread fragment. > This rule is a wrapper around a `graphql-js` validation function. * * @see [no-unused-variables](https://the-guild.dev/graphql/eslint/rules/no-unused-variables) */ interface NoUnusedVariablesRule { /** * A GraphQL operation is only valid if all variables defined by an operation are used, either directly or within a spread fragment. > This rule is a wrapper around a `graphql-js` validation function. * * @see [no-unused-variables](https://the-guild.dev/graphql/eslint/rules/no-unused-variables) */ '@graphql-eslint/no-unused-variables': NoUnusedVariablesRuleConfig; } /** * A GraphQL subscription is valid only if it contains a single root field. > This rule is a wrapper around a `graphql-js` validation function. * * @see [one-field-subscriptions](https://the-guild.dev/graphql/eslint/rules/one-field-subscriptions) */ type OneFieldSubscriptionsRuleConfig = RuleConfig<[]>; /** * A GraphQL subscription is valid only if it contains a single root field. > This rule is a wrapper around a `graphql-js` validation function. * * @see [one-field-subscriptions](https://the-guild.dev/graphql/eslint/rules/one-field-subscriptions) */ interface OneFieldSubscriptionsRule { /** * A GraphQL subscription is valid only if it contains a single root field. > This rule is a wrapper around a `graphql-js` validation function. * * @see [one-field-subscriptions](https://the-guild.dev/graphql/eslint/rules/one-field-subscriptions) */ '@graphql-eslint/one-field-subscriptions': OneFieldSubscriptionsRuleConfig; } /** * A selection set is only valid if all fields (including spreading any fragments) either correspond to distinct response names or can be merged without ambiguity. > This rule is a wrapper around a `graphql-js` validation function. * * @see [overlapping-fields-can-be-merged](https://the-guild.dev/graphql/eslint/rules/overlapping-fields-can-be-merged) */ type OverlappingFieldsCanBeMergedRuleConfig = RuleConfig<[]>; /** * A selection set is only valid if all fields (including spreading any fragments) either correspond to distinct response names or can be merged without ambiguity. > This rule is a wrapper around a `graphql-js` validation function. * * @see [overlapping-fields-can-be-merged](https://the-guild.dev/graphql/eslint/rules/overlapping-fields-can-be-merged) */ interface OverlappingFieldsCanBeMergedRule { /** * A selection set is only valid if all fields (including spreading any fragments) either correspond to distinct response names or can be merged without ambiguity. > This rule is a wrapper around a `graphql-js` validation function. * * @see [overlapping-fields-can-be-merged](https://the-guild.dev/graphql/eslint/rules/overlapping-fields-can-be-merged) */ '@graphql-eslint/overlapping-fields-can-be-merged': OverlappingFieldsCanBeMergedRuleConfig; } /** * A fragment spread is only valid if the type condition could ever possibly be true: if there is a non-empty intersection of the possible parent types, and possible types which pass the type condition. > This rule is a wrapper around a `graphql-js` validation function. * * @see [possible-fragment-spread](https://the-guild.dev/graphql/eslint/rules/possible-fragment-spread) */ type PossibleFragmentSpreadRuleConfig = RuleConfig<[]>; /** * A fragment spread is only valid if the type condition could ever possibly be true: if there is a non-empty intersection of the possible parent types, and possible types which pass the type condition. > This rule is a wrapper around a `graphql-js` validation function. * * @see [possible-fragment-spread](https://the-guild.dev/graphql/eslint/rules/possible-fragment-spread) */ interface PossibleFragmentSpreadRule { /** * A fragment spread is only valid if the type condition could ever possibly be true: if there is a non-empty intersection of the possible parent types, and possible types which pass the type condition. > This rule is a wrapper around a `graphql-js` validation function. * * @see [possible-fragment-spread](https://the-guild.dev/graphql/eslint/rules/possible-fragment-spread) */ '@graphql-eslint/possible-fragment-spread': PossibleFragmentSpreadRuleConfig; } /** * A type extension is only valid if the type is defined and has the same kind. > This rule is a wrapper around a `graphql-js` validation function. * * @see [possible-type-extension](https://the-guild.dev/graphql/eslint/rules/possible-type-extension) */ type PossibleTypeExtensionRuleConfig = RuleConfig<[]>; /** * A type extension is only valid if the type is defined and has the same kind. > This rule is a wrapper around a `graphql-js` validation function. * * @see [possible-type-extension](https://the-guild.dev/graphql/eslint/rules/possible-type-extension) */ interface PossibleTypeExtensionRule { /** * A type extension is only valid if the type is defined and has the same kind. > This rule is a wrapper around a `graphql-js` validation function. * * @see [possible-type-extension](https://the-guild.dev/graphql/eslint/rules/possible-type-extension) */ '@graphql-eslint/possible-type-extension': PossibleTypeExtensionRuleConfig; } /** * A field or directive is only valid if all required (non-null without a default value) field arguments have been provided. > This rule is a wrapper around a `graphql-js` validation function. * * @see [provided-required-arguments](https://the-guild.dev/graphql/eslint/rules/provided-required-arguments) */ type ProvidedRequiredArgumentsRuleConfig = RuleConfig<[]>; /** * A field or directive is only valid if all required (non-null without a default value) field arguments have been provided. > This rule is a wrapper around a `graphql-js` validation function. * * @see [provided-required-arguments](https://the-guild.dev/graphql/eslint/rules/provided-required-arguments) */ interface ProvidedRequiredArgumentsRule { /** * A field or directive is only valid if all required (non-null without a default value) field arguments have been provided. > This rule is a wrapper around a `graphql-js` validation function. * * @see [provided-required-arguments](https://the-guild.dev/graphql/eslint/rules/provided-required-arguments) */ '@graphql-eslint/provided-required-arguments': ProvidedRequiredArgumentsRuleConfig; } /** * Option. */ /** * @maxItems 1 */ type RelayArgumentsOption = | [] | [ { /** * Enforce including both forward and backward pagination arguments */ includeBoth?: boolean; }, ]; /** * Options. */ type RelayArgumentsOptions = RelayArgumentsOption; /** * Set of rules to follow Relay specification for Arguments. - A field that returns a Connection type must include forward pagination arguments (`first` and `after`), backward pagination arguments (`last` and `before`), or both Forward pagination arguments - `first` takes a non-negative integer - `after` takes the Cursor type Backward pagination arguments - `last` takes a non-negative integer - `before` takes the Cursor type. * * @see [relay-arguments](https://the-guild.dev/graphql/eslint/rules/relay-arguments) */ type RelayArgumentsRuleConfig = RuleConfig; /** * Set of rules to follow Relay specification for Arguments. - A field that returns a Connection type must include forward pagination arguments (`first` and `after`), backward pagination arguments (`last` and `before`), or both Forward pagination arguments - `first` takes a non-negative integer - `after` takes the Cursor type Backward pagination arguments - `last` takes a non-negative integer - `before` takes the Cursor type. * * @see [relay-arguments](https://the-guild.dev/graphql/eslint/rules/relay-arguments) */ interface RelayArgumentsRule { /** * Set of rules to follow Relay specification for Arguments. - A field that returns a Connection type must include forward pagination arguments (`first` and `after`), backward pagination arguments (`last` and `before`), or both Forward pagination arguments - `first` takes a non-negative integer - `after` takes the Cursor type Backward pagination arguments - `last` takes a non-negative integer - `before` takes the Cursor type. * * @see [relay-arguments](https://the-guild.dev/graphql/eslint/rules/relay-arguments) */ '@graphql-eslint/relay-arguments': RelayArgumentsRuleConfig; } /** * Set of rules to follow Relay specification for Connection types. - Any type whose name ends in "Connection" is considered by spec to be a `Connection type` - Connection type must be an Object type - Connection type must contain a field `edges` that return a list type that wraps an edge type - Connection type must contain a field `pageInfo` that return a non-null `PageInfo` Object type. * * @see [relay-connection-types](https://the-guild.dev/graphql/eslint/rules/relay-connection-types) */ type RelayConnectionTypesRuleConfig = RuleConfig<[]>; /** * Set of rules to follow Relay specification for Connection types. - Any type whose name ends in "Connection" is considered by spec to be a `Connection type` - Connection type must be an Object type - Connection type must contain a field `edges` that return a list type that wraps an edge type - Connection type must contain a field `pageInfo` that return a non-null `PageInfo` Object type. * * @see [relay-connection-types](https://the-guild.dev/graphql/eslint/rules/relay-connection-types) */ interface RelayConnectionTypesRule { /** * Set of rules to follow Relay specification for Connection types. - Any type whose name ends in "Connection" is considered by spec to be a `Connection type` - Connection type must be an Object type - Connection type must contain a field `edges` that return a list type that wraps an edge type - Connection type must contain a field `pageInfo` that return a non-null `PageInfo` Object type. * * @see [relay-connection-types](https://the-guild.dev/graphql/eslint/rules/relay-connection-types) */ '@graphql-eslint/relay-connection-types': RelayConnectionTypesRuleConfig; } /** * Option. */ /** * @maxItems 1 */ type RelayEdgeTypesOption = | [] | [ { /** * Edge type name must end in "Edge". */ withEdgeSuffix?: boolean; /** * Edge type's field `node` must implement `Node` interface. */ shouldImplementNode?: boolean; /** * A list type should only wrap an edge type. */ listTypeCanWrapOnlyEdgeType?: boolean; }, ]; /** * Options. */ type RelayEdgeTypesOptions = RelayEdgeTypesOption; /** * Set of rules to follow Relay specification for Edge types. - A type that is returned in list form by a connection type's `edges` field is considered by this spec to be an Edge type - Edge type must be an Object type - Edge type must contain a field `node` that return either Scalar, Enum, Object, Interface, Union, or a non-null wrapper around one of those types. Notably, this field cannot return a list - Edge type must contain a field `cursor` that return either String, Scalar, or a non-null wrapper around one of those types - Edge type name must end in "Edge" _(optional)_ - Edge type's field `node` must implement `Node` interface _(optional)_ - A list type should only wrap an edge type _(optional)_. * * @see [relay-edge-types](https://the-guild.dev/graphql/eslint/rules/relay-edge-types) */ type RelayEdgeTypesRuleConfig = RuleConfig; /** * Set of rules to follow Relay specification for Edge types. - A type that is returned in list form by a connection type's `edges` field is considered by this spec to be an Edge type - Edge type must be an Object type - Edge type must contain a field `node` that return either Scalar, Enum, Object, Interface, Union, or a non-null wrapper around one of those types. Notably, this field cannot return a list - Edge type must contain a field `cursor` that return either String, Scalar, or a non-null wrapper around one of those types - Edge type name must end in "Edge" _(optional)_ - Edge type's field `node` must implement `Node` interface _(optional)_ - A list type should only wrap an edge type _(optional)_. * * @see [relay-edge-types](https://the-guild.dev/graphql/eslint/rules/relay-edge-types) */ interface RelayEdgeTypesRule { /** * Set of rules to follow Relay specification for Edge types. - A type that is returned in list form by a connection type's `edges` field is considered by this spec to be an Edge type - Edge type must be an Object type - Edge type must contain a field `node` that return either Scalar, Enum, Object, Interface, Union, or a non-null wrapper around one of those types. Notably, this field cannot return a list - Edge type must contain a field `cursor` that return either String, Scalar, or a non-null wrapper around one of those types - Edge type name must end in "Edge" _(optional)_ - Edge type's field `node` must implement `Node` interface _(optional)_ - A list type should only wrap an edge type _(optional)_. * * @see [relay-edge-types](https://the-guild.dev/graphql/eslint/rules/relay-edge-types) */ '@graphql-eslint/relay-edge-types': RelayEdgeTypesRuleConfig; } /** * Set of rules to follow Relay specification for `PageInfo` object. - `PageInfo` must be an Object type - `PageInfo` must contain fields `hasPreviousPage` and `hasNextPage`, that return non-null Boolean - `PageInfo` must contain fields `startCursor` and `endCursor`, that return either String or Scalar, which can be null if there are no results. * * @see [relay-page-info](https://the-guild.dev/graphql/eslint/rules/relay-page-info) */ type RelayPageInfoRuleConfig = RuleConfig<[]>; /** * Set of rules to follow Relay specification for `PageInfo` object. - `PageInfo` must be an Object type - `PageInfo` must contain fields `hasPreviousPage` and `hasNextPage`, that return non-null Boolean - `PageInfo` must contain fields `startCursor` and `endCursor`, that return either String or Scalar, which can be null if there are no results. * * @see [relay-page-info](https://the-guild.dev/graphql/eslint/rules/relay-page-info) */ interface RelayPageInfoRule { /** * Set of rules to follow Relay specification for `PageInfo` object. - `PageInfo` must be an Object type - `PageInfo` must contain fields `hasPreviousPage` and `hasNextPage`, that return non-null Boolean - `PageInfo` must contain fields `startCursor` and `endCursor`, that return either String or Scalar, which can be null if there are no results. * * @see [relay-page-info](https://the-guild.dev/graphql/eslint/rules/relay-page-info) */ '@graphql-eslint/relay-page-info': RelayPageInfoRuleConfig; } /** * Option. */ /** * @maxItems 1 */ type RequireDeprecationDateOption = | [] | [ { argumentName?: string; }, ]; /** * Options. */ type RequireDeprecationDateOptions = RequireDeprecationDateOption; /** * Require deletion date on `@deprecated` directive. Suggest removing deprecated things after deprecated date. * * @see [require-deprecation-date](https://the-guild.dev/graphql/eslint/rules/require-deprecation-date) */ type RequireDeprecationDateRuleConfig = RuleConfig; /** * Require deletion date on `@deprecated` directive. Suggest removing deprecated things after deprecated date. * * @see [require-deprecation-date](https://the-guild.dev/graphql/eslint/rules/require-deprecation-date) */ interface RequireDeprecationDateRule { /** * Require deletion date on `@deprecated` directive. Suggest removing deprecated things after deprecated date. * * @see [require-deprecation-date](https://the-guild.dev/graphql/eslint/rules/require-deprecation-date) */ '@graphql-eslint/require-deprecation-date': RequireDeprecationDateRuleConfig; } /** * Require all deprecation directives to specify a reason. * * @see [require-deprecation-reason](https://the-guild.dev/graphql/eslint/rules/require-deprecation-reason) */ type RequireDeprecationReasonRuleConfig = RuleConfig<[]>; /** * Require all deprecation directives to specify a reason. * * @see [require-deprecation-reason](https://the-guild.dev/graphql/eslint/rules/require-deprecation-reason) */ interface RequireDeprecationReasonRule { /** * Require all deprecation directives to specify a reason. * * @see [require-deprecation-reason](https://the-guild.dev/graphql/eslint/rules/require-deprecation-reason) */ '@graphql-eslint/require-deprecation-reason': RequireDeprecationReasonRuleConfig; } /** * Option. */ /** * @minItems 1 * @maxItems 1 */ type RequireDescriptionOption$1 = [ { /** * Includes: * - `ObjectTypeDefinition` * - `InterfaceTypeDefinition` * - `EnumTypeDefinition` * - `ScalarTypeDefinition` * - `InputObjectTypeDefinition` * - `UnionTypeDefinition` */ types?: boolean; /** * Definitions within `Query`, `Mutation`, and `Subscription` root types. */ rootField?: boolean; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#DirectiveDefinition). */ DirectiveDefinition?: boolean; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#EnumTypeDefinition). */ EnumTypeDefinition?: boolean; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#EnumValueDefinition). */ EnumValueDefinition?: boolean; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#FieldDefinition). */ FieldDefinition?: boolean; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#InputObjectTypeDefinition). */ InputObjectTypeDefinition?: boolean; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#InputValueDefinition). */ InputValueDefinition?: boolean; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#InterfaceTypeDefinition). */ InterfaceTypeDefinition?: boolean; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#ObjectTypeDefinition). */ ObjectTypeDefinition?: boolean; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#OperationDefinition). * > You must use only comment syntax `#` and not description syntax `"""` or `"`. */ OperationDefinition?: boolean; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#ScalarTypeDefinition). */ ScalarTypeDefinition?: boolean; /** * Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#UnionTypeDefinition). */ UnionTypeDefinition?: boolean; }, ]; /** * Options. */ type RequireDescriptionOptions$1 = RequireDescriptionOption$1; /** * Enforce descriptions in type definitions and operations. * * @see [require-description](https://the-guild.dev/graphql/eslint/rules/require-description) */ type RequireDescriptionRuleConfig$1 = RuleConfig; /** * Enforce descriptions in type definitions and operations. * * @see [require-description](https://the-guild.dev/graphql/eslint/rules/require-description) */ interface RequireDescriptionRule$1 { /** * Enforce descriptions in type definitions and operations. * * @see [require-description](https://the-guild.dev/graphql/eslint/rules/require-description) */ '@graphql-eslint/require-description': RequireDescriptionRuleConfig$1; } /** * Allow the client in one round-trip not only to call mutation but also to get a wagon of data to update their application. > Currently, no errors are reported for result type `union`, `interface` and `scalar`. * * @see [require-field-of-type-query-in-mutation-result](https://the-guild.dev/graphql/eslint/rules/require-field-of-type-query-in-mutation-result) */ type RequireFieldOfTypeQueryInMutationResultRuleConfig = RuleConfig<[]>; /** * Allow the client in one round-trip not only to call mutation but also to get a wagon of data to update their application. > Currently, no errors are reported for result type `union`, `interface` and `scalar`. * * @see [require-field-of-type-query-in-mutation-result](https://the-guild.dev/graphql/eslint/rules/require-field-of-type-query-in-mutation-result) */ interface RequireFieldOfTypeQueryInMutationResultRule { /** * Allow the client in one round-trip not only to call mutation but also to get a wagon of data to update their application. > Currently, no errors are reported for result type `union`, `interface` and `scalar`. * * @see [require-field-of-type-query-in-mutation-result](https://the-guild.dev/graphql/eslint/rules/require-field-of-type-query-in-mutation-result) */ '@graphql-eslint/require-field-of-type-query-in-mutation-result': RequireFieldOfTypeQueryInMutationResultRuleConfig; } /** * Option. */ /** * @maxItems 1 */ type RequireIdWhenAvailableOption = | [] | [ { fieldName?: AsString | AsArray; }, ]; type AsString = string; /** * @minItems 1 */ type AsArray = [string, ...string[]]; /** * Options. */ type RequireIdWhenAvailableOptions = RequireIdWhenAvailableOption; /** * Enforce selecting specific fields when they are available on the GraphQL type. * * @see [require-id-when-available](https://the-guild.dev/graphql/eslint/rules/require-id-when-available) */ type RequireIdWhenAvailableRuleConfig = RuleConfig; /** * Enforce selecting specific fields when they are available on the GraphQL type. * * @see [require-id-when-available](https://the-guild.dev/graphql/eslint/rules/require-id-when-available) */ interface RequireIdWhenAvailableRule { /** * Enforce selecting specific fields when they are available on the GraphQL type. * * @see [require-id-when-available](https://the-guild.dev/graphql/eslint/rules/require-id-when-available) */ '@graphql-eslint/require-id-when-available': RequireIdWhenAvailableRuleConfig; } /** * Require fragments to be imported via an import expression. * * @see [require-import-fragment](https://the-guild.dev/graphql/eslint/rules/require-import-fragment) */ type RequireImportFragmentRuleConfig = RuleConfig<[]>; /** * Require fragments to be imported via an import expression. * * @see [require-import-fragment](https://the-guild.dev/graphql/eslint/rules/require-import-fragment) */ interface RequireImportFragmentRule { /** * Require fragments to be imported via an import expression. * * @see [require-import-fragment](https://the-guild.dev/graphql/eslint/rules/require-import-fragment) */ '@graphql-eslint/require-import-fragment': RequireImportFragmentRuleConfig; } /** * Require `input` or `type` fields to be non-nullable with `@oneOf` directive. * * @see [require-nullable-fields-with-oneof](https://the-guild.dev/graphql/eslint/rules/require-nullable-fields-with-oneof) */ type RequireNullableFieldsWithOneofRuleConfig = RuleConfig<[]>; /** * Require `input` or `type` fields to be non-nullable with `@oneOf` directive. * * @see [require-nullable-fields-with-oneof](https://the-guild.dev/graphql/eslint/rules/require-nullable-fields-with-oneof) */ interface RequireNullableFieldsWithOneofRule { /** * Require `input` or `type` fields to be non-nullable with `@oneOf` directive. * * @see [require-nullable-fields-with-oneof](https://the-guild.dev/graphql/eslint/rules/require-nullable-fields-with-oneof) */ '@graphql-eslint/require-nullable-fields-with-oneof': RequireNullableFieldsWithOneofRuleConfig; } /** * Require nullable fields in root types. * * @see [require-nullable-result-in-root](https://the-guild.dev/graphql/eslint/rules/require-nullable-result-in-root) */ type RequireNullableResultInRootRuleConfig = RuleConfig<[]>; /** * Require nullable fields in root types. * * @see [require-nullable-result-in-root](https://the-guild.dev/graphql/eslint/rules/require-nullable-result-in-root) */ interface RequireNullableResultInRootRule { /** * Require nullable fields in root types. * * @see [require-nullable-result-in-root](https://the-guild.dev/graphql/eslint/rules/require-nullable-result-in-root) */ '@graphql-eslint/require-nullable-result-in-root': RequireNullableResultInRootRuleConfig; } /** * Enforce types with `@oneOf` directive have `error` and `ok` fields. * * @see [require-type-pattern-with-oneof](https://the-guild.dev/graphql/eslint/rules/require-type-pattern-with-oneof) */ type RequireTypePatternWithOneofRuleConfig = RuleConfig<[]>; /** * Enforce types with `@oneOf` directive have `error` and `ok` fields. * * @see [require-type-pattern-with-oneof](https://the-guild.dev/graphql/eslint/rules/require-type-pattern-with-oneof) */ interface RequireTypePatternWithOneofRule { /** * Enforce types with `@oneOf` directive have `error` and `ok` fields. * * @see [require-type-pattern-with-oneof](https://the-guild.dev/graphql/eslint/rules/require-type-pattern-with-oneof) */ '@graphql-eslint/require-type-pattern-with-oneof': RequireTypePatternWithOneofRuleConfig; } /** * A GraphQL document is valid only if all leaf fields (fields without sub selections) are of scalar or enum types. > This rule is a wrapper around a `graphql-js` validation function. * * @see [scalar-leafs](https://the-guild.dev/graphql/eslint/rules/scalar-leafs) */ type ScalarLeafsRuleConfig = RuleConfig<[]>; /** * A GraphQL document is valid only if all leaf fields (fields without sub selections) are of scalar or enum types. > This rule is a wrapper around a `graphql-js` validation function. * * @see [scalar-leafs](https://the-guild.dev/graphql/eslint/rules/scalar-leafs) */ interface ScalarLeafsRule { /** * A GraphQL document is valid only if all leaf fields (fields without sub selections) are of scalar or enum types. > This rule is a wrapper around a `graphql-js` validation function. * * @see [scalar-leafs](https://the-guild.dev/graphql/eslint/rules/scalar-leafs) */ '@graphql-eslint/scalar-leafs': ScalarLeafsRuleConfig; } /** * Option. */ /** * @minItems 1 * @maxItems 1 */ type SelectionSetDepthOption = [ { maxDepth: number; /** * @minItems 1 */ ignore?: [string, ...string[]]; }, ]; /** * Options. */ type SelectionSetDepthOptions = SelectionSetDepthOption; /** * Limit the complexity of the GraphQL operations solely by their depth. Based on [graphql-depth-limit](https://npmjs.com/package/graphql-depth-limit). * * @see [selection-set-depth](https://the-guild.dev/graphql/eslint/rules/selection-set-depth) */ type SelectionSetDepthRuleConfig = RuleConfig; /** * Limit the complexity of the GraphQL operations solely by their depth. Based on [graphql-depth-limit](https://npmjs.com/package/graphql-depth-limit). * * @see [selection-set-depth](https://the-guild.dev/graphql/eslint/rules/selection-set-depth) */ interface SelectionSetDepthRule { /** * Limit the complexity of the GraphQL operations solely by their depth. Based on [graphql-depth-limit](https://npmjs.com/package/graphql-depth-limit). * * @see [selection-set-depth](https://the-guild.dev/graphql/eslint/rules/selection-set-depth) */ '@graphql-eslint/selection-set-depth': SelectionSetDepthRuleConfig; } /** * Option. */ /** * @maxItems 1 */ type StrictIdInTypesOption = | [] | [ { /** * @minItems 1 */ acceptedIdNames?: [string, ...string[]]; /** * @minItems 1 */ acceptedIdTypes?: [string, ...string[]]; exceptions?: { /** * This is used to exclude types with names that match one of the specified values. * * @minItems 1 */ types?: [string, ...string[]]; /** * This is used to exclude types with names with suffixes that match one of the specified values. * * @minItems 1 */ suffixes?: [string, ...string[]]; }; }, ]; /** * Options. */ type StrictIdInTypesOptions = StrictIdInTypesOption; /** * Requires output types to have one unique identifier unless they do not have a logical one. Exceptions can be used to ignore output types that do not have unique identifiers. * * @see [strict-id-in-types](https://the-guild.dev/graphql/eslint/rules/strict-id-in-types) */ type StrictIdInTypesRuleConfig = RuleConfig; /** * Requires output types to have one unique identifier unless they do not have a logical one. Exceptions can be used to ignore output types that do not have unique identifiers. * * @see [strict-id-in-types](https://the-guild.dev/graphql/eslint/rules/strict-id-in-types) */ interface StrictIdInTypesRule { /** * Requires output types to have one unique identifier unless they do not have a logical one. Exceptions can be used to ignore output types that do not have unique identifiers. * * @see [strict-id-in-types](https://the-guild.dev/graphql/eslint/rules/strict-id-in-types) */ '@graphql-eslint/strict-id-in-types': StrictIdInTypesRuleConfig; } /** * A GraphQL field or directive is only valid if all supplied arguments are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-argument-names](https://the-guild.dev/graphql/eslint/rules/unique-argument-names) */ type UniqueArgumentNamesRuleConfig = RuleConfig<[]>; /** * A GraphQL field or directive is only valid if all supplied arguments are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-argument-names](https://the-guild.dev/graphql/eslint/rules/unique-argument-names) */ interface UniqueArgumentNamesRule { /** * A GraphQL field or directive is only valid if all supplied arguments are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-argument-names](https://the-guild.dev/graphql/eslint/rules/unique-argument-names) */ '@graphql-eslint/unique-argument-names': UniqueArgumentNamesRuleConfig; } /** * A GraphQL document is only valid if all defined directives have unique names. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-directive-names](https://the-guild.dev/graphql/eslint/rules/unique-directive-names) */ type UniqueDirectiveNamesRuleConfig = RuleConfig<[]>; /** * A GraphQL document is only valid if all defined directives have unique names. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-directive-names](https://the-guild.dev/graphql/eslint/rules/unique-directive-names) */ interface UniqueDirectiveNamesRule { /** * A GraphQL document is only valid if all defined directives have unique names. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-directive-names](https://the-guild.dev/graphql/eslint/rules/unique-directive-names) */ '@graphql-eslint/unique-directive-names': UniqueDirectiveNamesRuleConfig; } /** * A GraphQL document is only valid if all non-repeatable directives at a given location are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-directive-names-per-location](https://the-guild.dev/graphql/eslint/rules/unique-directive-names-per-location) */ type UniqueDirectiveNamesPerLocationRuleConfig = RuleConfig<[]>; /** * A GraphQL document is only valid if all non-repeatable directives at a given location are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-directive-names-per-location](https://the-guild.dev/graphql/eslint/rules/unique-directive-names-per-location) */ interface UniqueDirectiveNamesPerLocationRule { /** * A GraphQL document is only valid if all non-repeatable directives at a given location are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-directive-names-per-location](https://the-guild.dev/graphql/eslint/rules/unique-directive-names-per-location) */ '@graphql-eslint/unique-directive-names-per-location': UniqueDirectiveNamesPerLocationRuleConfig; } /** * A GraphQL enum type is only valid if all its values are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-enum-value-names](https://the-guild.dev/graphql/eslint/rules/unique-enum-value-names) */ type UniqueEnumValueNamesRuleConfig = RuleConfig<[]>; /** * A GraphQL enum type is only valid if all its values are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-enum-value-names](https://the-guild.dev/graphql/eslint/rules/unique-enum-value-names) */ interface UniqueEnumValueNamesRule { /** * A GraphQL enum type is only valid if all its values are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-enum-value-names](https://the-guild.dev/graphql/eslint/rules/unique-enum-value-names) */ '@graphql-eslint/unique-enum-value-names': UniqueEnumValueNamesRuleConfig; } /** * A GraphQL complex type is only valid if all its fields are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-field-definition-names](https://the-guild.dev/graphql/eslint/rules/unique-field-definition-names) */ type UniqueFieldDefinitionNamesRuleConfig = RuleConfig<[]>; /** * A GraphQL complex type is only valid if all its fields are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-field-definition-names](https://the-guild.dev/graphql/eslint/rules/unique-field-definition-names) */ interface UniqueFieldDefinitionNamesRule { /** * A GraphQL complex type is only valid if all its fields are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-field-definition-names](https://the-guild.dev/graphql/eslint/rules/unique-field-definition-names) */ '@graphql-eslint/unique-field-definition-names': UniqueFieldDefinitionNamesRuleConfig; } /** * Enforce unique fragment names across your project. * * @see [unique-fragment-name](https://the-guild.dev/graphql/eslint/rules/unique-fragment-name) */ type UniqueFragmentNameRuleConfig = RuleConfig<[]>; /** * Enforce unique fragment names across your project. * * @see [unique-fragment-name](https://the-guild.dev/graphql/eslint/rules/unique-fragment-name) */ interface UniqueFragmentNameRule { /** * Enforce unique fragment names across your project. * * @see [unique-fragment-name](https://the-guild.dev/graphql/eslint/rules/unique-fragment-name) */ '@graphql-eslint/unique-fragment-name': UniqueFragmentNameRuleConfig; } /** * A GraphQL input object value is only valid if all supplied fields are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-input-field-names](https://the-guild.dev/graphql/eslint/rules/unique-input-field-names) */ type UniqueInputFieldNamesRuleConfig = RuleConfig<[]>; /** * A GraphQL input object value is only valid if all supplied fields are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-input-field-names](https://the-guild.dev/graphql/eslint/rules/unique-input-field-names) */ interface UniqueInputFieldNamesRule { /** * A GraphQL input object value is only valid if all supplied fields are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-input-field-names](https://the-guild.dev/graphql/eslint/rules/unique-input-field-names) */ '@graphql-eslint/unique-input-field-names': UniqueInputFieldNamesRuleConfig; } /** * Enforce unique operation names across your project. * * @see [unique-operation-name](https://the-guild.dev/graphql/eslint/rules/unique-operation-name) */ type UniqueOperationNameRuleConfig = RuleConfig<[]>; /** * Enforce unique operation names across your project. * * @see [unique-operation-name](https://the-guild.dev/graphql/eslint/rules/unique-operation-name) */ interface UniqueOperationNameRule { /** * Enforce unique operation names across your project. * * @see [unique-operation-name](https://the-guild.dev/graphql/eslint/rules/unique-operation-name) */ '@graphql-eslint/unique-operation-name': UniqueOperationNameRuleConfig; } /** * A GraphQL document is only valid if it has only one type per operation. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-operation-types](https://the-guild.dev/graphql/eslint/rules/unique-operation-types) */ type UniqueOperationTypesRuleConfig = RuleConfig<[]>; /** * A GraphQL document is only valid if it has only one type per operation. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-operation-types](https://the-guild.dev/graphql/eslint/rules/unique-operation-types) */ interface UniqueOperationTypesRule { /** * A GraphQL document is only valid if it has only one type per operation. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-operation-types](https://the-guild.dev/graphql/eslint/rules/unique-operation-types) */ '@graphql-eslint/unique-operation-types': UniqueOperationTypesRuleConfig; } /** * A GraphQL document is only valid if all defined types have unique names. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-type-names](https://the-guild.dev/graphql/eslint/rules/unique-type-names) */ type UniqueTypeNamesRuleConfig = RuleConfig<[]>; /** * A GraphQL document is only valid if all defined types have unique names. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-type-names](https://the-guild.dev/graphql/eslint/rules/unique-type-names) */ interface UniqueTypeNamesRule { /** * A GraphQL document is only valid if all defined types have unique names. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-type-names](https://the-guild.dev/graphql/eslint/rules/unique-type-names) */ '@graphql-eslint/unique-type-names': UniqueTypeNamesRuleConfig; } /** * A GraphQL operation is only valid if all its variables are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-variable-names](https://the-guild.dev/graphql/eslint/rules/unique-variable-names) */ type UniqueVariableNamesRuleConfig = RuleConfig<[]>; /** * A GraphQL operation is only valid if all its variables are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-variable-names](https://the-guild.dev/graphql/eslint/rules/unique-variable-names) */ interface UniqueVariableNamesRule { /** * A GraphQL operation is only valid if all its variables are uniquely named. > This rule is a wrapper around a `graphql-js` validation function. * * @see [unique-variable-names](https://the-guild.dev/graphql/eslint/rules/unique-variable-names) */ '@graphql-eslint/unique-variable-names': UniqueVariableNamesRuleConfig; } /** * A GraphQL document is only valid if all value literals are of the type expected at their position. > This rule is a wrapper around a `graphql-js` validation function. * * @see [value-literals-of-correct-type](https://the-guild.dev/graphql/eslint/rules/value-literals-of-correct-type) */ type ValueLiteralsOfCorrectTypeRuleConfig = RuleConfig<[]>; /** * A GraphQL document is only valid if all value literals are of the type expected at their position. > This rule is a wrapper around a `graphql-js` validation function. * * @see [value-literals-of-correct-type](https://the-guild.dev/graphql/eslint/rules/value-literals-of-correct-type) */ interface ValueLiteralsOfCorrectTypeRule { /** * A GraphQL document is only valid if all value literals are of the type expected at their position. > This rule is a wrapper around a `graphql-js` validation function. * * @see [value-literals-of-correct-type](https://the-guild.dev/graphql/eslint/rules/value-literals-of-correct-type) */ '@graphql-eslint/value-literals-of-correct-type': ValueLiteralsOfCorrectTypeRuleConfig; } /** * A GraphQL operation is only valid if all the variables it defines are of input types (scalar, enum, or input object). > This rule is a wrapper around a `graphql-js` validation function. * * @see [variables-are-input-types](https://the-guild.dev/graphql/eslint/rules/variables-are-input-types) */ type VariablesAreInputTypesRuleConfig = RuleConfig<[]>; /** * A GraphQL operation is only valid if all the variables it defines are of input types (scalar, enum, or input object). > This rule is a wrapper around a `graphql-js` validation function. * * @see [variables-are-input-types](https://the-guild.dev/graphql/eslint/rules/variables-are-input-types) */ interface VariablesAreInputTypesRule { /** * A GraphQL operation is only valid if all the variables it defines are of input types (scalar, enum, or input object). > This rule is a wrapper around a `graphql-js` validation function. * * @see [variables-are-input-types](https://the-guild.dev/graphql/eslint/rules/variables-are-input-types) */ '@graphql-eslint/variables-are-input-types': VariablesAreInputTypesRuleConfig; } /** * Variables passed to field arguments conform to type. > This rule is a wrapper around a `graphql-js` validation function. * * @see [variables-in-allowed-position](https://the-guild.dev/graphql/eslint/rules/variables-in-allowed-position) */ type VariablesInAllowedPositionRuleConfig = RuleConfig<[]>; /** * Variables passed to field arguments conform to type. > This rule is a wrapper around a `graphql-js` validation function. * * @see [variables-in-allowed-position](https://the-guild.dev/graphql/eslint/rules/variables-in-allowed-position) */ interface VariablesInAllowedPositionRule { /** * Variables passed to field arguments conform to type. > This rule is a wrapper around a `graphql-js` validation function. * * @see [variables-in-allowed-position](https://the-guild.dev/graphql/eslint/rules/variables-in-allowed-position) */ '@graphql-eslint/variables-in-allowed-position': VariablesInAllowedPositionRuleConfig; } /** * All GraphQL rules. */ type GraphQLRules = ExecutableDefinitionsRule & FieldsOnCorrectTypeRule & FragmentsOnCompositeTypeRule & KnownArgumentNamesRule & KnownDirectivesRule & KnownFragmentNamesRule & KnownTypeNamesRule & LoneAnonymousOperationRule & LoneSchemaDefinitionRule & NoFragmentCyclesRule & NoUndefinedVariablesRule & NoUnusedFragmentsRule & NoUnusedVariablesRule & OverlappingFieldsCanBeMergedRule & PossibleFragmentSpreadRule & PossibleTypeExtensionRule & ProvidedRequiredArgumentsRule & ScalarLeafsRule & OneFieldSubscriptionsRule & UniqueArgumentNamesRule & UniqueDirectiveNamesRule & UniqueDirectiveNamesPerLocationRule & UniqueEnumValueNamesRule & UniqueFieldDefinitionNamesRule & UniqueInputFieldNamesRule & UniqueOperationTypesRule & UniqueTypeNamesRule & UniqueVariableNamesRule & ValueLiteralsOfCorrectTypeRule & VariablesAreInputTypesRule & VariablesInAllowedPositionRule & AlphabetizeRule & DescriptionStyleRule & InputNameRule & LoneExecutableDefinitionRule & MatchDocumentFilenameRule & NamingConventionRule$1 & NoAnonymousOperationsRule & NoCaseInsensitiveEnumValuesDuplicatesRule & NoDeprecatedRule$2 & NoDuplicateFieldsRule & NoHashtagDescriptionRule & NoOnePlaceFragmentsRule & NoRootTypeRule & NoScalarResultTypeOnMutationRule & NoTypenamePrefixRule & NoUnreachableTypesRule & NoUnusedFieldsRule & RelayArgumentsRule & RelayConnectionTypesRule & RelayEdgeTypesRule & RelayPageInfoRule & RequireDeprecationDateRule & RequireDeprecationReasonRule & RequireDescriptionRule$1 & RequireFieldOfTypeQueryInMutationResultRule & RequireIdWhenAvailableRule & RequireImportFragmentRule & RequireNullableFieldsWithOneofRule & RequireNullableResultInRootRule & RequireTypePatternWithOneofRule & SelectionSetDepthRule & StrictIdInTypesRule & UniqueFragmentNameRule & UniqueOperationNameRule; /** * Option. */ type ConsistentTypeSpecifierStyleOption = | 'prefer-inline' | 'prefer-top-level'; /** * Options. */ type ConsistentTypeSpecifierStyleOptions = [ ConsistentTypeSpecifierStyleOption?, ]; /** * Enforce or ban the use of inline type-only markers for named imports. * * @see [consistent-type-specifier-style](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/consistent-type-specifier-style.md) */ type ConsistentTypeSpecifierStyleRuleConfig = RuleConfig; /** * Enforce or ban the use of inline type-only markers for named imports. * * @see [consistent-type-specifier-style](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/consistent-type-specifier-style.md) */ interface ConsistentTypeSpecifierStyleRule { /** * Enforce or ban the use of inline type-only markers for named imports. * * @see [consistent-type-specifier-style](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/consistent-type-specifier-style.md) */ 'import/consistent-type-specifier-style': ConsistentTypeSpecifierStyleRuleConfig; } /** * Ensure a default export is present, given a default import. * * @see [default](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/default.md) */ type DefaultRuleConfig = RuleConfig<[]>; /** * Ensure a default export is present, given a default import. * * @see [default](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/default.md) */ interface DefaultRule { /** * Ensure a default export is present, given a default import. * * @see [default](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/default.md) */ 'import/default': DefaultRuleConfig; } /** * Option. */ interface DynamicImportChunknameOption { importFunctions?: string[]; webpackChunknameFormat?: string; [k: string]: any; } /** * Options. */ type DynamicImportChunknameOptions = [DynamicImportChunknameOption?]; /** * Enforce a leading comment with the webpackChunkName for dynamic imports. * * @see [dynamic-import-chunkname](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/dynamic-import-chunkname.md) */ type DynamicImportChunknameRuleConfig = RuleConfig; /** * Enforce a leading comment with the webpackChunkName for dynamic imports. * * @see [dynamic-import-chunkname](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/dynamic-import-chunkname.md) */ interface DynamicImportChunknameRule { /** * Enforce a leading comment with the webpackChunkName for dynamic imports. * * @see [dynamic-import-chunkname](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/dynamic-import-chunkname.md) */ 'import/dynamic-import-chunkname': DynamicImportChunknameRuleConfig; } /** * Forbid any invalid exports, i.e. re-export of the same name. * * @see [export](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/export.md) */ type ExportRuleConfig = RuleConfig<[]>; /** * Forbid any invalid exports, i.e. re-export of the same name. * * @see [export](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/export.md) */ interface ExportRule { /** * Forbid any invalid exports, i.e. re-export of the same name. * * @see [export](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/export.md) */ 'import/export': ExportRuleConfig; } /** * Ensure all exports appear after other statements. * * @see [exports-last](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/exports-last.md) */ type ExportsLastRuleConfig = RuleConfig<[]>; /** * Ensure all exports appear after other statements. * * @see [exports-last](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/exports-last.md) */ interface ExportsLastRule { /** * Ensure all exports appear after other statements. * * @see [exports-last](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/exports-last.md) */ 'import/exports-last': ExportsLastRuleConfig; } /** * Option. */ type ExtensionsOption = | [] | ['always' | 'ignorePackages' | 'never'] | [] | ['always' | 'ignorePackages' | 'never'] | [ 'always' | 'ignorePackages' | 'never', { pattern?: { /** */ [k: string]: 'always' | 'ignorePackages' | 'never'; }; ignorePackages?: boolean; [k: string]: any; }, ] | [] | [ { pattern?: { /** */ [k: string]: 'always' | 'ignorePackages' | 'never'; }; ignorePackages?: boolean; [k: string]: any; }, ] | [] | [ { /** */ [k: string]: 'always' | 'ignorePackages' | 'never'; }, ] | [] | ['always' | 'ignorePackages' | 'never'] | [ 'always' | 'ignorePackages' | 'never', { /** */ [k: string]: 'always' | 'ignorePackages' | 'never'; }, ]; /** * Options. */ type ExtensionsOptions = ExtensionsOption; /** * Ensure consistent use of file extension within the import path. * * @see [extensions](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/extensions.md) */ type ExtensionsRuleConfig = RuleConfig; /** * Ensure consistent use of file extension within the import path. * * @see [extensions](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/extensions.md) */ interface ExtensionsRule { /** * Ensure consistent use of file extension within the import path. * * @see [extensions](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/extensions.md) */ 'import/extensions': ExtensionsRuleConfig; } /** * Option. */ type FirstOption = 'absolute-first' | 'disable-absolute-first'; /** * Options. */ type FirstOptions = [FirstOption?]; /** * Ensure all imports appear before other statements. * * @see [first](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/first.md) */ type FirstRuleConfig = RuleConfig; /** * Ensure all imports appear before other statements. * * @see [first](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/first.md) */ interface FirstRule { /** * Ensure all imports appear before other statements. * * @see [first](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/first.md) */ 'import/first': FirstRuleConfig; } /** * Prefer named exports to be grouped together in a single export declaration. * * @see [group-exports](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/group-exports.md) */ type GroupExportsRuleConfig = RuleConfig<[]>; /** * Prefer named exports to be grouped together in a single export declaration. * * @see [group-exports](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/group-exports.md) */ interface GroupExportsRule { /** * Prefer named exports to be grouped together in a single export declaration. * * @see [group-exports](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/group-exports.md) */ 'import/group-exports': GroupExportsRuleConfig; } /** * Option. */ type ImportsFirstOption = 'absolute-first' | 'disable-absolute-first'; /** * Options. */ type ImportsFirstOptions = [ImportsFirstOption?]; /** * Replaced by `import/first`. * * @deprecated * * @see [imports-first](https://github.com/import-js/eslint-plugin-import/blob/7b25c1cb95ee18acc1531002fd343e1e6031f9ed/docs/rules/imports-first.md) */ type ImportsFirstRuleConfig = RuleConfig; /** * Replaced by `import/first`. * * @deprecated * * @see [imports-first](https://github.com/import-js/eslint-plugin-import/blob/7b25c1cb95ee18acc1531002fd343e1e6031f9ed/docs/rules/imports-first.md) */ interface ImportsFirstRule { /** * Replaced by `import/first`. * * @deprecated * * @see [imports-first](https://github.com/import-js/eslint-plugin-import/blob/7b25c1cb95ee18acc1531002fd343e1e6031f9ed/docs/rules/imports-first.md) */ 'import/imports-first': ImportsFirstRuleConfig; } /** * Option. */ interface MaxDependenciesOption { max?: number; ignoreTypeImports?: boolean; } /** * Options. */ type MaxDependenciesOptions = [MaxDependenciesOption?]; /** * Enforce the maximum number of dependencies a module can have. * * @see [max-dependencies](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/max-dependencies.md) */ type MaxDependenciesRuleConfig = RuleConfig; /** * Enforce the maximum number of dependencies a module can have. * * @see [max-dependencies](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/max-dependencies.md) */ interface MaxDependenciesRule { /** * Enforce the maximum number of dependencies a module can have. * * @see [max-dependencies](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/max-dependencies.md) */ 'import/max-dependencies': MaxDependenciesRuleConfig; } /** * Option. */ interface NamedOption { commonjs?: boolean; } /** * Options. */ type NamedOptions = [NamedOption?]; /** * Ensure named imports correspond to a named export in the remote file. * * @see [named](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/named.md) */ type NamedRuleConfig = RuleConfig; /** * Ensure named imports correspond to a named export in the remote file. * * @see [named](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/named.md) */ interface NamedRule { /** * Ensure named imports correspond to a named export in the remote file. * * @see [named](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/named.md) */ 'import/named': NamedRuleConfig; } /** * Option. */ interface NamespaceOption { /** * If `false`, will report computed (and thus, un-lintable) references to namespace members. */ allowComputed?: boolean; } /** * Options. */ type NamespaceOptions = [NamespaceOption?]; /** * Ensure imported namespaces contain dereferenced properties as they are dereferenced. * * @see [namespace](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/namespace.md) */ type NamespaceRuleConfig = RuleConfig; /** * Ensure imported namespaces contain dereferenced properties as they are dereferenced. * * @see [namespace](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/namespace.md) */ interface NamespaceRule { /** * Ensure imported namespaces contain dereferenced properties as they are dereferenced. * * @see [namespace](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/namespace.md) */ 'import/namespace': NamespaceRuleConfig; } /** * Option. */ interface NewlineAfterImportOption { count?: number; considerComments?: boolean; } /** * Options. */ type NewlineAfterImportOptions = [NewlineAfterImportOption?]; /** * Enforce a newline after import statements. * * @see [newline-after-import](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/newline-after-import.md) */ type NewlineAfterImportRuleConfig = RuleConfig; /** * Enforce a newline after import statements. * * @see [newline-after-import](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/newline-after-import.md) */ interface NewlineAfterImportRule { /** * Enforce a newline after import statements. * * @see [newline-after-import](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/newline-after-import.md) */ 'import/newline-after-import': NewlineAfterImportRuleConfig; } /** * Option. */ interface NoAbsolutePathOption { commonjs?: boolean; amd?: boolean; esmodule?: boolean; /** * @minItems 1 */ ignore?: [string, ...string[]]; } /** * Options. */ type NoAbsolutePathOptions = [NoAbsolutePathOption?]; /** * Forbid import of modules using absolute paths. * * @see [no-absolute-path](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-absolute-path.md) */ type NoAbsolutePathRuleConfig = RuleConfig; /** * Forbid import of modules using absolute paths. * * @see [no-absolute-path](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-absolute-path.md) */ interface NoAbsolutePathRule { /** * Forbid import of modules using absolute paths. * * @see [no-absolute-path](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-absolute-path.md) */ 'import/no-absolute-path': NoAbsolutePathRuleConfig; } /** * Forbid AMD `require` and `define` calls. * * @see [no-amd](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-amd.md) */ type NoAmdRuleConfig = RuleConfig<[]>; /** * Forbid AMD `require` and `define` calls. * * @see [no-amd](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-amd.md) */ interface NoAmdRule { /** * Forbid AMD `require` and `define` calls. * * @see [no-amd](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-amd.md) */ 'import/no-amd': NoAmdRuleConfig; } /** * Option. */ interface NoAnonymousDefaultExportOption { /** * If `false`, will report default export of an array */ allowArray?: boolean; /** * If `false`, will report default export of an arrow function */ allowArrowFunction?: boolean; /** * If `false`, will report default export of a function call */ allowCallExpression?: boolean; /** * If `false`, will report default export of an anonymous class */ allowAnonymousClass?: boolean; /** * If `false`, will report default export of an anonymous function */ allowAnonymousFunction?: boolean; /** * If `false`, will report default export of a literal */ allowLiteral?: boolean; /** * If `false`, will report default export of an object expression */ allowObject?: boolean; /** * If `false`, will report default export of a class instantiation */ allowNew?: boolean; } /** * Options. */ type NoAnonymousDefaultExportOptions = [NoAnonymousDefaultExportOption?]; /** * Forbid anonymous values as default exports. * * @see [no-anonymous-default-export](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-anonymous-default-export.md) */ type NoAnonymousDefaultExportRuleConfig = RuleConfig; /** * Forbid anonymous values as default exports. * * @see [no-anonymous-default-export](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-anonymous-default-export.md) */ interface NoAnonymousDefaultExportRule { /** * Forbid anonymous values as default exports. * * @see [no-anonymous-default-export](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-anonymous-default-export.md) */ 'import/no-anonymous-default-export': NoAnonymousDefaultExportRuleConfig; } /** * Option. */ type NoCommonjsOption = | [] | ['allow-primitive-modules'] | [] | [ { allowPrimitiveModules?: boolean; allowRequire?: boolean; allowConditionalRequire?: boolean; }, ]; /** * Options. */ type NoCommonjsOptions = NoCommonjsOption; /** * Forbid CommonJS `require` calls and `module.exports` or `exports.*`. * * @see [no-commonjs](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-commonjs.md) */ type NoCommonjsRuleConfig = RuleConfig; /** * Forbid CommonJS `require` calls and `module.exports` or `exports.*`. * * @see [no-commonjs](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-commonjs.md) */ interface NoCommonjsRule { /** * Forbid CommonJS `require` calls and `module.exports` or `exports.*`. * * @see [no-commonjs](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-commonjs.md) */ 'import/no-commonjs': NoCommonjsRuleConfig; } /** * Option. */ interface NoCycleOption { commonjs?: boolean; amd?: boolean; esmodule?: boolean; /** * @minItems 1 */ ignore?: [string, ...string[]]; maxDepth?: number | '∞'; /** * ignore external modules */ ignoreExternal?: boolean; /** * Allow cyclic dependency if there is at least one dynamic import in the chain */ allowUnsafeDynamicCyclicDependency?: boolean; } /** * Options. */ type NoCycleOptions = [NoCycleOption?]; /** * Forbid a module from importing a module with a dependency path back to itself. * * @see [no-cycle](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-cycle.md) */ type NoCycleRuleConfig = RuleConfig; /** * Forbid a module from importing a module with a dependency path back to itself. * * @see [no-cycle](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-cycle.md) */ interface NoCycleRule { /** * Forbid a module from importing a module with a dependency path back to itself. * * @see [no-cycle](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-cycle.md) */ 'import/no-cycle': NoCycleRuleConfig; } /** * Forbid default exports. * * @see [no-default-export](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-default-export.md) */ type NoDefaultExportRuleConfig = RuleConfig<[]>; /** * Forbid default exports. * * @see [no-default-export](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-default-export.md) */ interface NoDefaultExportRule { /** * Forbid default exports. * * @see [no-default-export](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-default-export.md) */ 'import/no-default-export': NoDefaultExportRuleConfig; } /** * Forbid imported names marked with `@deprecated` documentation tag. * * @see [no-deprecated](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-deprecated.md) */ type NoDeprecatedRuleConfig$1 = RuleConfig<[]>; /** * Forbid imported names marked with `@deprecated` documentation tag. * * @see [no-deprecated](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-deprecated.md) */ interface NoDeprecatedRule$1 { /** * Forbid imported names marked with `@deprecated` documentation tag. * * @see [no-deprecated](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-deprecated.md) */ 'import/no-deprecated': NoDeprecatedRuleConfig$1; } /** * Option. */ interface NoDuplicatesOption { considerQueryString?: boolean; 'prefer-inline'?: boolean; } /** * Options. */ type NoDuplicatesOptions = [NoDuplicatesOption?]; /** * Forbid repeated import of the same module in multiple places. * * @see [no-duplicates](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-duplicates.md) */ type NoDuplicatesRuleConfig = RuleConfig; /** * Forbid repeated import of the same module in multiple places. * * @see [no-duplicates](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-duplicates.md) */ interface NoDuplicatesRule { /** * Forbid repeated import of the same module in multiple places. * * @see [no-duplicates](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-duplicates.md) */ 'import/no-duplicates': NoDuplicatesRuleConfig; } /** * Option. */ interface NoDynamicRequireOption { esmodule?: boolean; } /** * Options. */ type NoDynamicRequireOptions = [NoDynamicRequireOption?]; /** * Forbid `require()` calls with expressions. * * @see [no-dynamic-require](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-dynamic-require.md) */ type NoDynamicRequireRuleConfig = RuleConfig; /** * Forbid `require()` calls with expressions. * * @see [no-dynamic-require](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-dynamic-require.md) */ interface NoDynamicRequireRule { /** * Forbid `require()` calls with expressions. * * @see [no-dynamic-require](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-dynamic-require.md) */ 'import/no-dynamic-require': NoDynamicRequireRuleConfig; } /** * Forbid empty named import blocks. * * @see [no-empty-named-blocks](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-empty-named-blocks.md) */ type NoEmptyNamedBlocksRuleConfig = RuleConfig<[]>; /** * Forbid empty named import blocks. * * @see [no-empty-named-blocks](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-empty-named-blocks.md) */ interface NoEmptyNamedBlocksRule { /** * Forbid empty named import blocks. * * @see [no-empty-named-blocks](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-empty-named-blocks.md) */ 'import/no-empty-named-blocks': NoEmptyNamedBlocksRuleConfig; } /** * Option. */ interface NoExtraneousDependenciesOption { devDependencies?: boolean | any[]; optionalDependencies?: boolean | any[]; peerDependencies?: boolean | any[]; bundledDependencies?: boolean | any[]; packageDir?: string | any[]; includeInternal?: boolean; includeTypes?: boolean; } /** * Options. */ type NoExtraneousDependenciesOptions = [NoExtraneousDependenciesOption?]; /** * Forbid the use of extraneous packages. * * @see [no-extraneous-dependencies](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-extraneous-dependencies.md) */ type NoExtraneousDependenciesRuleConfig = RuleConfig; /** * Forbid the use of extraneous packages. * * @see [no-extraneous-dependencies](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-extraneous-dependencies.md) */ interface NoExtraneousDependenciesRule { /** * Forbid the use of extraneous packages. * * @see [no-extraneous-dependencies](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-extraneous-dependencies.md) */ 'import/no-extraneous-dependencies': NoExtraneousDependenciesRuleConfig; } /** * Option. */ interface NoImportModuleExportsOption { exceptions?: any[]; } /** * Options. */ type NoImportModuleExportsOptions = [NoImportModuleExportsOption?]; /** * Forbid import statements with CommonJS module.exports. * */ type NoImportModuleExportsRuleConfig = RuleConfig; /** * Forbid import statements with CommonJS module.exports. * */ interface NoImportModuleExportsRule { /** * Forbid import statements with CommonJS module.exports. * */ 'import/no-import-module-exports': NoImportModuleExportsRuleConfig; } /** * Option. */ type NoInternalModulesOption = | { allow?: string[]; } | { forbid?: string[]; }; /** * Options. */ type NoInternalModulesOptions = [NoInternalModulesOption?]; /** * Forbid importing the submodules of other modules. * * @see [no-internal-modules](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-internal-modules.md) */ type NoInternalModulesRuleConfig = RuleConfig; /** * Forbid importing the submodules of other modules. * * @see [no-internal-modules](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-internal-modules.md) */ interface NoInternalModulesRule { /** * Forbid importing the submodules of other modules. * * @see [no-internal-modules](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-internal-modules.md) */ 'import/no-internal-modules': NoInternalModulesRuleConfig; } /** * Forbid the use of mutable exports with `var` or `let`. * * @see [no-mutable-exports](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-mutable-exports.md) */ type NoMutableExportsRuleConfig = RuleConfig<[]>; /** * Forbid the use of mutable exports with `var` or `let`. * * @see [no-mutable-exports](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-mutable-exports.md) */ interface NoMutableExportsRule { /** * Forbid the use of mutable exports with `var` or `let`. * * @see [no-mutable-exports](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-mutable-exports.md) */ 'import/no-mutable-exports': NoMutableExportsRuleConfig; } /** * Forbid use of exported name as identifier of default export. * * @see [no-named-as-default](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-named-as-default.md) */ type NoNamedAsDefaultRuleConfig = RuleConfig<[]>; /** * Forbid use of exported name as identifier of default export. * * @see [no-named-as-default](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-named-as-default.md) */ interface NoNamedAsDefaultRule { /** * Forbid use of exported name as identifier of default export. * * @see [no-named-as-default](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-named-as-default.md) */ 'import/no-named-as-default': NoNamedAsDefaultRuleConfig; } /** * Forbid use of exported name as property of default export. * * @see [no-named-as-default-member](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-named-as-default-member.md) */ type NoNamedAsDefaultMemberRuleConfig = RuleConfig<[]>; /** * Forbid use of exported name as property of default export. * * @see [no-named-as-default-member](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-named-as-default-member.md) */ interface NoNamedAsDefaultMemberRule { /** * Forbid use of exported name as property of default export. * * @see [no-named-as-default-member](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-named-as-default-member.md) */ 'import/no-named-as-default-member': NoNamedAsDefaultMemberRuleConfig; } /** * Forbid named default exports. * * @see [no-named-default](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-named-default.md) */ type NoNamedDefaultRuleConfig = RuleConfig<[]>; /** * Forbid named default exports. * * @see [no-named-default](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-named-default.md) */ interface NoNamedDefaultRule { /** * Forbid named default exports. * * @see [no-named-default](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-named-default.md) */ 'import/no-named-default': NoNamedDefaultRuleConfig; } /** * Forbid named exports. * * @see [no-named-export](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-named-export.md) */ type NoNamedExportRuleConfig = RuleConfig<[]>; /** * Forbid named exports. * * @see [no-named-export](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-named-export.md) */ interface NoNamedExportRule { /** * Forbid named exports. * * @see [no-named-export](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-named-export.md) */ 'import/no-named-export': NoNamedExportRuleConfig; } /** * Option. */ interface NoNamespaceOption$1 { ignore?: string[]; [k: string]: any; } /** * Options. */ type NoNamespaceOptions$1 = [NoNamespaceOption$1?]; /** * Forbid namespace (a.k.a. "wildcard" `*`) imports. * * @see [no-namespace](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-namespace.md) */ type NoNamespaceRuleConfig$2 = RuleConfig; /** * Forbid namespace (a.k.a. "wildcard" `*`) imports. * * @see [no-namespace](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-namespace.md) */ interface NoNamespaceRule$2 { /** * Forbid namespace (a.k.a. "wildcard" `*`) imports. * * @see [no-namespace](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-namespace.md) */ 'import/no-namespace': NoNamespaceRuleConfig$2; } /** * Option. */ interface NoNodejsModulesOption { allow?: string[]; } /** * Options. */ type NoNodejsModulesOptions = [NoNodejsModulesOption?]; /** * Forbid Node.js builtin modules. * * @see [no-nodejs-modules](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-nodejs-modules.md) */ type NoNodejsModulesRuleConfig = RuleConfig; /** * Forbid Node.js builtin modules. * * @see [no-nodejs-modules](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-nodejs-modules.md) */ interface NoNodejsModulesRule { /** * Forbid Node.js builtin modules. * * @see [no-nodejs-modules](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-nodejs-modules.md) */ 'import/no-nodejs-modules': NoNodejsModulesRuleConfig; } /** * Option. */ interface NoRelativePackagesOption { commonjs?: boolean; amd?: boolean; esmodule?: boolean; /** * @minItems 1 */ ignore?: [string, ...string[]]; } /** * Options. */ type NoRelativePackagesOptions = [NoRelativePackagesOption?]; /** * Forbid importing packages through relative paths. * * @see [no-relative-packages](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-relative-packages.md) */ type NoRelativePackagesRuleConfig = RuleConfig; /** * Forbid importing packages through relative paths. * * @see [no-relative-packages](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-relative-packages.md) */ interface NoRelativePackagesRule { /** * Forbid importing packages through relative paths. * * @see [no-relative-packages](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-relative-packages.md) */ 'import/no-relative-packages': NoRelativePackagesRuleConfig; } /** * Option. */ interface NoRelativeParentImportsOption { commonjs?: boolean; amd?: boolean; esmodule?: boolean; /** * @minItems 1 */ ignore?: [string, ...string[]]; } /** * Options. */ type NoRelativeParentImportsOptions = [NoRelativeParentImportsOption?]; /** * Forbid importing modules from parent directories. * * @see [no-relative-parent-imports](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-relative-parent-imports.md) */ type NoRelativeParentImportsRuleConfig = RuleConfig; /** * Forbid importing modules from parent directories. * * @see [no-relative-parent-imports](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-relative-parent-imports.md) */ interface NoRelativeParentImportsRule { /** * Forbid importing modules from parent directories. * * @see [no-relative-parent-imports](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-relative-parent-imports.md) */ 'import/no-relative-parent-imports': NoRelativeParentImportsRuleConfig; } /** * Option. */ interface NoRestrictedPathsOption { /** * @minItems 1 */ zones?: [ { target?: string | string[]; from?: string | string[]; except?: string[]; message?: string; }, ...{ target?: string | string[]; from?: string | string[]; except?: string[]; message?: string; }[], ]; basePath?: string; } /** * Options. */ type NoRestrictedPathsOptions = [NoRestrictedPathsOption?]; /** * Enforce which files can be imported in a given folder. * * @see [no-restricted-paths](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-restricted-paths.md) */ type NoRestrictedPathsRuleConfig = RuleConfig; /** * Enforce which files can be imported in a given folder. * * @see [no-restricted-paths](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-restricted-paths.md) */ interface NoRestrictedPathsRule { /** * Enforce which files can be imported in a given folder. * * @see [no-restricted-paths](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-restricted-paths.md) */ 'import/no-restricted-paths': NoRestrictedPathsRuleConfig; } /** * Forbid a module from importing itself. * * @see [no-self-import](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-self-import.md) */ type NoSelfImportRuleConfig = RuleConfig<[]>; /** * Forbid a module from importing itself. * * @see [no-self-import](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-self-import.md) */ interface NoSelfImportRule { /** * Forbid a module from importing itself. * * @see [no-self-import](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-self-import.md) */ 'import/no-self-import': NoSelfImportRuleConfig; } /** * Option. */ interface NoUnassignedImportOption { devDependencies?: boolean | any[]; optionalDependencies?: boolean | any[]; peerDependencies?: boolean | any[]; allow?: string[]; } /** * Options. */ type NoUnassignedImportOptions = [NoUnassignedImportOption?]; /** * Forbid unassigned imports. * * @see [no-unassigned-import](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-unassigned-import.md) */ type NoUnassignedImportRuleConfig = RuleConfig; /** * Forbid unassigned imports. * * @see [no-unassigned-import](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-unassigned-import.md) */ interface NoUnassignedImportRule { /** * Forbid unassigned imports. * * @see [no-unassigned-import](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-unassigned-import.md) */ 'import/no-unassigned-import': NoUnassignedImportRuleConfig; } /** * Option. */ interface NoUnresolvedOption { commonjs?: boolean; amd?: boolean; esmodule?: boolean; /** * @minItems 1 */ ignore?: [string, ...string[]]; caseSensitive?: boolean; caseSensitiveStrict?: boolean; } /** * Options. */ type NoUnresolvedOptions = [NoUnresolvedOption?]; /** * Ensure imports point to a file/module that can be resolved. * * @see [no-unresolved](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-unresolved.md) */ type NoUnresolvedRuleConfig = RuleConfig; /** * Ensure imports point to a file/module that can be resolved. * * @see [no-unresolved](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-unresolved.md) */ interface NoUnresolvedRule { /** * Ensure imports point to a file/module that can be resolved. * * @see [no-unresolved](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-unresolved.md) */ 'import/no-unresolved': NoUnresolvedRuleConfig; } /** * Option. */ type NoUnusedModulesOption = ( | { unusedExports: true; src?: { [k: string]: any; }; [k: string]: any; } | { missingExports: true; [k: string]: any; } ) & { /** * files/paths to be analyzed (only for unused exports) */ src?: string[]; /** * files/paths for which unused exports will not be reported (e.g module entry points) */ ignoreExports?: string[]; /** * report modules without any exports */ missingExports?: boolean; /** * report exports without any usage */ unusedExports?: boolean; [k: string]: any; }; /** * Options. */ type NoUnusedModulesOptions = [NoUnusedModulesOption?]; /** * Forbid modules without exports, or exports without matching import in another module. * * @see [no-unused-modules](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-unused-modules.md) */ type NoUnusedModulesRuleConfig = RuleConfig; /** * Forbid modules without exports, or exports without matching import in another module. * * @see [no-unused-modules](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-unused-modules.md) */ interface NoUnusedModulesRule { /** * Forbid modules without exports, or exports without matching import in another module. * * @see [no-unused-modules](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-unused-modules.md) */ 'import/no-unused-modules': NoUnusedModulesRuleConfig; } /** * Option. */ interface NoUselessPathSegmentsOption { commonjs?: boolean; noUselessIndex?: boolean; } /** * Options. */ type NoUselessPathSegmentsOptions = [NoUselessPathSegmentsOption?]; /** * Forbid unnecessary path segments in import and require statements. * * @see [no-useless-path-segments](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-useless-path-segments.md) */ type NoUselessPathSegmentsRuleConfig = RuleConfig; /** * Forbid unnecessary path segments in import and require statements. * * @see [no-useless-path-segments](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-useless-path-segments.md) */ interface NoUselessPathSegmentsRule { /** * Forbid unnecessary path segments in import and require statements. * * @see [no-useless-path-segments](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-useless-path-segments.md) */ 'import/no-useless-path-segments': NoUselessPathSegmentsRuleConfig; } /** * Forbid webpack loader syntax in imports. * * @see [no-webpack-loader-syntax](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-webpack-loader-syntax.md) */ type NoWebpackLoaderSyntaxRuleConfig = RuleConfig<[]>; /** * Forbid webpack loader syntax in imports. * * @see [no-webpack-loader-syntax](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-webpack-loader-syntax.md) */ interface NoWebpackLoaderSyntaxRule { /** * Forbid webpack loader syntax in imports. * * @see [no-webpack-loader-syntax](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/no-webpack-loader-syntax.md) */ 'import/no-webpack-loader-syntax': NoWebpackLoaderSyntaxRuleConfig; } /** * Option. */ interface OrderOption { groups?: any[]; pathGroupsExcludedImportTypes?: any[]; distinctGroup?: boolean; pathGroups?: { pattern: string; patternOptions?: { [k: string]: any; }; group: | 'builtin' | 'external' | 'internal' | 'unknown' | 'parent' | 'sibling' | 'index' | 'object' | 'type'; position?: 'after' | 'before'; }[]; 'newlines-between'?: | 'ignore' | 'always' | 'always-and-inside-groups' | 'never'; alphabetize?: { caseInsensitive?: boolean; order?: 'ignore' | 'asc' | 'desc'; orderImportKind?: 'ignore' | 'asc' | 'desc'; }; warnOnUnassignedImports?: boolean; } /** * Options. */ type OrderOptions$1 = [OrderOption?]; /** * Enforce a convention in module import order. * * @see [order](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/order.md) */ type OrderRuleConfig = RuleConfig; /** * Enforce a convention in module import order. * * @see [order](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/order.md) */ interface OrderRule { /** * Enforce a convention in module import order. * * @see [order](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/order.md) */ 'import/order': OrderRuleConfig; } /** * Option. */ interface PreferDefaultExportOption { target?: 'single' | 'any'; } /** * Options. */ type PreferDefaultExportOptions = [PreferDefaultExportOption?]; /** * Prefer a default export if module exports a single name or multiple names. * * @see [prefer-default-export](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/prefer-default-export.md) */ type PreferDefaultExportRuleConfig = RuleConfig; /** * Prefer a default export if module exports a single name or multiple names. * * @see [prefer-default-export](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/prefer-default-export.md) */ interface PreferDefaultExportRule { /** * Prefer a default export if module exports a single name or multiple names. * * @see [prefer-default-export](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/prefer-default-export.md) */ 'import/prefer-default-export': PreferDefaultExportRuleConfig; } /** * Forbid potentially ambiguous parse goal (`script` vs. `module`). * * @see [unambiguous](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/unambiguous.md) */ type UnambiguousRuleConfig = RuleConfig<[]>; /** * Forbid potentially ambiguous parse goal (`script` vs. `module`). * * @see [unambiguous](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/unambiguous.md) */ interface UnambiguousRule { /** * Forbid potentially ambiguous parse goal (`script` vs. `module`). * * @see [unambiguous](https://github.com/import-js/eslint-plugin-import/blob/v2.28.1/docs/rules/unambiguous.md) */ 'import/unambiguous': UnambiguousRuleConfig; } /** * All Import rules. */ type ImportRules = NoUnresolvedRule & NamedRule & DefaultRule & NamespaceRule & NoNamespaceRule$2 & ExportRule & NoMutableExportsRule & ExtensionsRule & NoRestrictedPathsRule & NoInternalModulesRule & GroupExportsRule & NoRelativePackagesRule & NoRelativeParentImportsRule & ConsistentTypeSpecifierStyleRule & NoSelfImportRule & NoCycleRule & NoNamedDefaultRule & NoNamedAsDefaultRule & NoNamedAsDefaultMemberRule & NoAnonymousDefaultExportRule & NoUnusedModulesRule & NoCommonjsRule & NoAmdRule & NoDuplicatesRule & FirstRule & MaxDependenciesRule & NoExtraneousDependenciesRule & NoAbsolutePathRule & NoNodejsModulesRule & NoWebpackLoaderSyntaxRule & OrderRule & NewlineAfterImportRule & PreferDefaultExportRule & NoDefaultExportRule & NoNamedExportRule & NoDynamicRequireRule & UnambiguousRule & NoUnassignedImportRule & NoUselessPathSegmentsRule & DynamicImportChunknameRule & NoImportModuleExportsRule & NoEmptyNamedBlocksRule & ExportsLastRule & NoDeprecatedRule$1 & ImportsFirstRule; /** * Checks that `@access` tags have a valid value. * * @see [check-access](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-access.md#repos-sticky-header) */ type CheckAccessRuleConfig = RuleConfig<[]>; /** * Checks that `@access` tags have a valid value. * * @see [check-access](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-access.md#repos-sticky-header) */ interface CheckAccessRule { /** * Checks that `@access` tags have a valid value. * * @see [check-access](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-access.md#repos-sticky-header) */ 'jsdoc/check-access': CheckAccessRuleConfig; } /** * Reports invalid alignment of JSDoc block asterisks. * * @see [check-alignment](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-alignment.md#repos-sticky-header) */ type CheckAlignmentRuleConfig = RuleConfig<[]>; /** * Reports invalid alignment of JSDoc block asterisks. * * @see [check-alignment](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-alignment.md#repos-sticky-header) */ interface CheckAlignmentRule { /** * Reports invalid alignment of JSDoc block asterisks. * * @see [check-alignment](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-alignment.md#repos-sticky-header) */ 'jsdoc/check-alignment': CheckAlignmentRuleConfig; } /** * Option. */ interface CheckExamplesOption { allowInlineConfig?: boolean; baseConfig?: { [k: string]: any; }; 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; } /** * Options. */ type CheckExamplesOptions = [CheckExamplesOption?]; /** * Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules. * * @see [check-examples](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-examples.md#repos-sticky-header) */ type CheckExamplesRuleConfig = RuleConfig; /** * Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules. * * @see [check-examples](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-examples.md#repos-sticky-header) */ interface CheckExamplesRule { /** * Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules. * * @see [check-examples](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-examples.md#repos-sticky-header) */ 'jsdoc/check-examples': CheckExamplesRuleConfig; } /** * Option. */ interface CheckIndentationOption { excludeTags?: string[]; } /** * Options. */ type CheckIndentationOptions = [CheckIndentationOption?]; /** * Reports invalid padding inside JSDoc blocks. * * @see [check-indentation](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-indentation.md#repos-sticky-header) */ type CheckIndentationRuleConfig = RuleConfig; /** * Reports invalid padding inside JSDoc blocks. * * @see [check-indentation](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-indentation.md#repos-sticky-header) */ interface CheckIndentationRule { /** * Reports invalid padding inside JSDoc blocks. * * @see [check-indentation](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-indentation.md#repos-sticky-header) */ 'jsdoc/check-indentation': CheckIndentationRuleConfig; } /** * Config. */ interface CheckLineAlignmentConfig { customSpacings?: { postDelimiter?: number; postHyphen?: number; postName?: number; postTag?: number; postType?: number; }; preserveMainDescriptionPostDelimiter?: boolean; tags?: string[]; wrapIndent?: string; } /** * Option. */ type CheckLineAlignmentOption = 'always' | 'never' | 'any'; /** * Options. */ type CheckLineAlignmentOptions = [ CheckLineAlignmentOption?, CheckLineAlignmentConfig?, ]; /** * Reports invalid alignment of JSDoc block lines. * * @see [check-line-alignment](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-line-alignment.md#repos-sticky-header) */ type CheckLineAlignmentRuleConfig = RuleConfig; /** * Reports invalid alignment of JSDoc block lines. * * @see [check-line-alignment](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-line-alignment.md#repos-sticky-header) */ interface CheckLineAlignmentRule { /** * Reports invalid alignment of JSDoc block lines. * * @see [check-line-alignment](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-line-alignment.md#repos-sticky-header) */ 'jsdoc/check-line-alignment': CheckLineAlignmentRuleConfig; } /** * Option. */ interface CheckParamNamesOption { allowExtraTrailingParamDocs?: boolean; checkDestructured?: boolean; checkRestProperty?: boolean; checkTypesPattern?: string; disableExtraPropertyReporting?: boolean; enableFixer?: boolean; useDefaultObjectProperties?: boolean; } /** * Options. */ type CheckParamNamesOptions = [CheckParamNamesOption?]; /** * Ensures that parameter names in JSDoc match those in the function declaration. * * @see [check-param-names](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-param-names.md#repos-sticky-header) */ type CheckParamNamesRuleConfig = RuleConfig; /** * Ensures that parameter names in JSDoc match those in the function declaration. * * @see [check-param-names](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-param-names.md#repos-sticky-header) */ interface CheckParamNamesRule { /** * Ensures that parameter names in JSDoc match those in the function declaration. * * @see [check-param-names](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-param-names.md#repos-sticky-header) */ 'jsdoc/check-param-names': CheckParamNamesRuleConfig; } /** * Option. */ interface CheckPropertyNamesOption { enableFixer?: boolean; } /** * Options. */ type CheckPropertyNamesOptions = [CheckPropertyNamesOption?]; /** * Ensures that property names in JSDoc are not duplicated on the same block and that nested properties have defined roots. * * @see [check-property-names](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-property-names.md#repos-sticky-header) */ type CheckPropertyNamesRuleConfig = RuleConfig; /** * Ensures that property names in JSDoc are not duplicated on the same block and that nested properties have defined roots. * * @see [check-property-names](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-property-names.md#repos-sticky-header) */ interface CheckPropertyNamesRule { /** * Ensures that property names in JSDoc are not duplicated on the same block and that nested properties have defined roots. * * @see [check-property-names](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-property-names.md#repos-sticky-header) */ 'jsdoc/check-property-names': CheckPropertyNamesRuleConfig; } /** * Reports against syntax not valid for the mode (e.g., Google Closure Compiler in non-Closure mode). * * @see [check-syntax](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-syntax.md#repos-sticky-header) */ type CheckSyntaxRuleConfig = RuleConfig<[]>; /** * Reports against syntax not valid for the mode (e.g., Google Closure Compiler in non-Closure mode). * * @see [check-syntax](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-syntax.md#repos-sticky-header) */ interface CheckSyntaxRule { /** * Reports against syntax not valid for the mode (e.g., Google Closure Compiler in non-Closure mode). * * @see [check-syntax](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-syntax.md#repos-sticky-header) */ 'jsdoc/check-syntax': CheckSyntaxRuleConfig; } /** * Option. */ interface CheckTagNamesOption { definedTags?: string[]; enableFixer?: boolean; jsxTags?: boolean; typed?: boolean; } /** * Options. */ type CheckTagNamesOptions = [CheckTagNamesOption?]; /** * Reports invalid block tag names. * * @see [check-tag-names](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-tag-names.md#repos-sticky-header) */ type CheckTagNamesRuleConfig = RuleConfig; /** * Reports invalid block tag names. * * @see [check-tag-names](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-tag-names.md#repos-sticky-header) */ interface CheckTagNamesRule { /** * Reports invalid block tag names. * * @see [check-tag-names](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-tag-names.md#repos-sticky-header) */ 'jsdoc/check-tag-names': CheckTagNamesRuleConfig; } /** * Option. */ interface CheckTypesOption { exemptTagContexts?: { tag?: string; types?: boolean | string[]; }[]; noDefaults?: boolean; unifyParentAndChildTypeChecks?: boolean; } /** * Options. */ type CheckTypesOptions = [CheckTypesOption?]; /** * Reports invalid types. * * @see [check-types](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-types.md#repos-sticky-header) */ type CheckTypesRuleConfig = RuleConfig; /** * Reports invalid types. * * @see [check-types](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-types.md#repos-sticky-header) */ interface CheckTypesRule { /** * Reports invalid types. * * @see [check-types](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-types.md#repos-sticky-header) */ 'jsdoc/check-types': CheckTypesRuleConfig; } /** * Option. */ interface CheckValuesOption { allowedAuthors?: string[]; allowedLicenses?: string[] | boolean; licensePattern?: string; numericOnlyVariation?: boolean; } /** * Options. */ type CheckValuesOptions = [CheckValuesOption?]; /** * This rule checks the values for a handful of tags: `@version`, `@since`, `@license` and `@author`. * * @see [check-values](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-values.md#repos-sticky-header) */ type CheckValuesRuleConfig = RuleConfig; /** * This rule checks the values for a handful of tags: `@version`, `@since`, `@license` and `@author`. * * @see [check-values](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-values.md#repos-sticky-header) */ interface CheckValuesRule { /** * This rule checks the values for a handful of tags: `@version`, `@since`, `@license` and `@author`. * * @see [check-values](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-values.md#repos-sticky-header) */ 'jsdoc/check-values': CheckValuesRuleConfig; } /** * Option. */ interface EmptyTagsOption { tags?: string[]; } /** * Options. */ type EmptyTagsOptions = [EmptyTagsOption?]; /** * Expects specific tags to be empty of any content. * * @see [empty-tags](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/empty-tags.md#repos-sticky-header) */ type EmptyTagsRuleConfig = RuleConfig; /** * Expects specific tags to be empty of any content. * * @see [empty-tags](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/empty-tags.md#repos-sticky-header) */ interface EmptyTagsRule { /** * Expects specific tags to be empty of any content. * * @see [empty-tags](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/empty-tags.md#repos-sticky-header) */ 'jsdoc/empty-tags': EmptyTagsRuleConfig; } /** * Option. */ interface ImplementsOnClassesOption { contexts?: ( | string | { comment?: string; context?: string; } )[]; } /** * Options. */ type ImplementsOnClassesOptions = [ImplementsOnClassesOption?]; /** * Reports an issue with any non-constructor function using `@implements`. * * @see [implements-on-classes](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/implements-on-classes.md#repos-sticky-header) */ type ImplementsOnClassesRuleConfig = RuleConfig; /** * Reports an issue with any non-constructor function using `@implements`. * * @see [implements-on-classes](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/implements-on-classes.md#repos-sticky-header) */ interface ImplementsOnClassesRule { /** * Reports an issue with any non-constructor function using `@implements`. * * @see [implements-on-classes](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/implements-on-classes.md#repos-sticky-header) */ 'jsdoc/implements-on-classes': ImplementsOnClassesRuleConfig; } /** * Reports if JSDoc `import()` statements point to a package which is not listed in `dependencies` or `devDependencies`. * * @see [imports-as-dependencies](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/imports-as-dependencies.md#repos-sticky-header) */ type ImportsAsDependenciesRuleConfig = RuleConfig<[]>; /** * Reports if JSDoc `import()` statements point to a package which is not listed in `dependencies` or `devDependencies`. * * @see [imports-as-dependencies](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/imports-as-dependencies.md#repos-sticky-header) */ interface ImportsAsDependenciesRule { /** * Reports if JSDoc `import()` statements point to a package which is not listed in `dependencies` or `devDependencies`. * * @see [imports-as-dependencies](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/imports-as-dependencies.md#repos-sticky-header) */ 'jsdoc/imports-as-dependencies': ImportsAsDependenciesRuleConfig; } /** * Option. */ interface InformativeDocsOption { aliases?: { /** */ [k: string]: string[]; }; excludedTags?: string[]; uselessWords?: string[]; } /** * Options. */ type InformativeDocsOptions = [InformativeDocsOption?]; /** * This rule reports doc comments that only restate their attached name. * * @see [informative-docs](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/informative-docs.md#repos-sticky-header) */ type InformativeDocsRuleConfig = RuleConfig; /** * This rule reports doc comments that only restate their attached name. * * @see [informative-docs](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/informative-docs.md#repos-sticky-header) */ interface InformativeDocsRule { /** * This rule reports doc comments that only restate their attached name. * * @see [informative-docs](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/informative-docs.md#repos-sticky-header) */ 'jsdoc/informative-docs': InformativeDocsRuleConfig; } /** * Option. */ interface MatchDescriptionOption { 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; }; }; } /** * Options. */ type MatchDescriptionOptions = [MatchDescriptionOption?]; /** * Enforces a regular expression pattern on descriptions. * * @see [match-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-description.md#repos-sticky-header) */ type MatchDescriptionRuleConfig = RuleConfig; /** * Enforces a regular expression pattern on descriptions. * * @see [match-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-description.md#repos-sticky-header) */ interface MatchDescriptionRule { /** * Enforces a regular expression pattern on descriptions. * * @see [match-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-description.md#repos-sticky-header) */ 'jsdoc/match-description': MatchDescriptionRuleConfig; } /** * Option. */ interface MatchNameOption { match: { allowName?: string; comment?: string; context?: string; disallowName?: string; message?: string; tags?: string[]; [k: string]: any; }[]; } /** * Options. */ type MatchNameOptions = [MatchNameOption?]; /** * Reports the name portion of a JSDoc tag if matching or not matching a given regular expression. * * @see [match-name](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-name.md#repos-sticky-header) */ type MatchNameRuleConfig = RuleConfig; /** * Reports the name portion of a JSDoc tag if matching or not matching a given regular expression. * * @see [match-name](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-name.md#repos-sticky-header) */ interface MatchNameRule { /** * Reports the name portion of a JSDoc tag if matching or not matching a given regular expression. * * @see [match-name](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-name.md#repos-sticky-header) */ 'jsdoc/match-name': MatchNameRuleConfig; } /** * Option. */ interface MultilineBlocksOption { allowMultipleTags?: boolean; minimumLengthForMultiline?: number; multilineTags?: '*' | string[]; noFinalLineText?: boolean; noMultilineBlocks?: boolean; noSingleLineBlocks?: boolean; noZeroLineText?: boolean; singleLineTags?: string[]; } /** * Options. */ type MultilineBlocksOptions = [MultilineBlocksOption?]; /** * Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks. * * @see [multiline-blocks](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/multiline-blocks.md#repos-sticky-header) */ type MultilineBlocksRuleConfig = RuleConfig; /** * Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks. * * @see [multiline-blocks](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/multiline-blocks.md#repos-sticky-header) */ interface MultilineBlocksRule { /** * Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks. * * @see [multiline-blocks](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/multiline-blocks.md#repos-sticky-header) */ 'jsdoc/multiline-blocks': MultilineBlocksRuleConfig; } /** * Option. */ interface NoBadBlocksOption { ignore?: string[]; preventAllMultiAsteriskBlocks?: boolean; } /** * Options. */ type NoBadBlocksOptions = [NoBadBlocksOption?]; /** * This rule checks for multi-line-style comments which fail to meet the criteria of a jsdoc block. * * @see [no-bad-blocks](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-bad-blocks.md#repos-sticky-header) */ type NoBadBlocksRuleConfig = RuleConfig; /** * This rule checks for multi-line-style comments which fail to meet the criteria of a jsdoc block. * * @see [no-bad-blocks](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-bad-blocks.md#repos-sticky-header) */ interface NoBadBlocksRule { /** * This rule checks for multi-line-style comments which fail to meet the criteria of a jsdoc block. * * @see [no-bad-blocks](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-bad-blocks.md#repos-sticky-header) */ 'jsdoc/no-bad-blocks': NoBadBlocksRuleConfig; } /** * Detects and removes extra lines of a blank block description. * * @see [no-blank-block-descriptions](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-block-descriptions.md#repos-sticky-header) */ type NoBlankBlockDescriptionsRuleConfig = RuleConfig<[]>; /** * Detects and removes extra lines of a blank block description. * * @see [no-blank-block-descriptions](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-block-descriptions.md#repos-sticky-header) */ interface NoBlankBlockDescriptionsRule { /** * Detects and removes extra lines of a blank block description. * * @see [no-blank-block-descriptions](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-block-descriptions.md#repos-sticky-header) */ 'jsdoc/no-blank-block-descriptions': NoBlankBlockDescriptionsRuleConfig; } /** * Option. */ interface NoBlankBlocksOption { enableFixer?: boolean; } /** * Options. */ type NoBlankBlocksOptions = [NoBlankBlocksOption?]; /** * Removes empty blocks with nothing but possibly line breaks. * * @see [no-blank-blocks](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-blocks.md#repos-sticky-header) */ type NoBlankBlocksRuleConfig = RuleConfig; /** * Removes empty blocks with nothing but possibly line breaks. * * @see [no-blank-blocks](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-blocks.md#repos-sticky-header) */ interface NoBlankBlocksRule { /** * Removes empty blocks with nothing but possibly line breaks. * * @see [no-blank-blocks](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-blocks.md#repos-sticky-header) */ 'jsdoc/no-blank-blocks': NoBlankBlocksRuleConfig; } /** * Option. */ interface NoDefaultsOption { contexts?: ( | string | { comment?: string; context?: string; } )[]; noOptionalParamNames?: boolean; } /** * Options. */ type NoDefaultsOptions = [NoDefaultsOption?]; /** * This rule reports defaults being used on the relevant portion of `@param` or `@default`. * * @see [no-defaults](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-defaults.md#repos-sticky-header) */ type NoDefaultsRuleConfig = RuleConfig; /** * This rule reports defaults being used on the relevant portion of `@param` or `@default`. * * @see [no-defaults](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-defaults.md#repos-sticky-header) */ interface NoDefaultsRule { /** * This rule reports defaults being used on the relevant portion of `@param` or `@default`. * * @see [no-defaults](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-defaults.md#repos-sticky-header) */ 'jsdoc/no-defaults': NoDefaultsRuleConfig; } /** * Option. */ interface NoMissingSyntaxOption { contexts?: ( | string | { comment?: string; context?: string; message?: string; minimum?: number; } )[]; } /** * Options. */ type NoMissingSyntaxOptions = [NoMissingSyntaxOption?]; /** * Reports when certain comment structures are always expected. * * @see [no-missing-syntax](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-missing-syntax.md#repos-sticky-header) */ type NoMissingSyntaxRuleConfig = RuleConfig; /** * Reports when certain comment structures are always expected. * * @see [no-missing-syntax](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-missing-syntax.md#repos-sticky-header) */ interface NoMissingSyntaxRule { /** * Reports when certain comment structures are always expected. * * @see [no-missing-syntax](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-missing-syntax.md#repos-sticky-header) */ 'jsdoc/no-missing-syntax': NoMissingSyntaxRuleConfig; } /** * Option. */ interface NoMultiAsterisksOption { allowWhitespace?: boolean; preventAtEnd?: boolean; preventAtMiddleLines?: boolean; } /** * Options. */ type NoMultiAsterisksOptions = [NoMultiAsterisksOption?]; /** * * @see [no-multi-asterisks](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-multi-asterisks.md#repos-sticky-header) */ type NoMultiAsterisksRuleConfig = RuleConfig; /** * * @see [no-multi-asterisks](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-multi-asterisks.md#repos-sticky-header) */ interface NoMultiAsterisksRule { /** * * @see [no-multi-asterisks](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-multi-asterisks.md#repos-sticky-header) */ 'jsdoc/no-multi-asterisks': NoMultiAsterisksRuleConfig; } /** * Option. */ interface NoRestrictedSyntaxOption$1 { contexts: ( | string | { comment?: string; context?: string; message?: string; } )[]; } /** * Options. */ type NoRestrictedSyntaxOptions$1 = [NoRestrictedSyntaxOption$1?]; /** * Reports when certain comment structures are present. * * @see [no-restricted-syntax](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-restricted-syntax.md#repos-sticky-header) */ type NoRestrictedSyntaxRuleConfig$1 = RuleConfig; /** * Reports when certain comment structures are present. * * @see [no-restricted-syntax](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-restricted-syntax.md#repos-sticky-header) */ interface NoRestrictedSyntaxRule$1 { /** * Reports when certain comment structures are present. * * @see [no-restricted-syntax](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-restricted-syntax.md#repos-sticky-header) */ 'jsdoc/no-restricted-syntax': NoRestrictedSyntaxRuleConfig$1; } /** * Option. */ interface NoTypesOption { contexts?: ( | string | { comment?: string; context?: string; } )[]; } /** * Options. */ type NoTypesOptions = [NoTypesOption?]; /** * This rule reports types being used on `@param` or `@returns`. * * @see [no-types](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-types.md#repos-sticky-header) */ type NoTypesRuleConfig = RuleConfig; /** * This rule reports types being used on `@param` or `@returns`. * * @see [no-types](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-types.md#repos-sticky-header) */ interface NoTypesRule { /** * This rule reports types being used on `@param` or `@returns`. * * @see [no-types](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-types.md#repos-sticky-header) */ 'jsdoc/no-types': NoTypesRuleConfig; } /** * Option. */ interface NoUndefinedTypesOption { definedTypes?: string[]; disableReporting?: boolean; markVariablesAsUsed?: boolean; } /** * Options. */ type NoUndefinedTypesOptions = [NoUndefinedTypesOption?]; /** * Checks that types in jsdoc comments are defined. * * @see [no-undefined-types](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-undefined-types.md#repos-sticky-header) */ type NoUndefinedTypesRuleConfig = RuleConfig; /** * Checks that types in jsdoc comments are defined. * * @see [no-undefined-types](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-undefined-types.md#repos-sticky-header) */ interface NoUndefinedTypesRule { /** * Checks that types in jsdoc comments are defined. * * @see [no-undefined-types](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-undefined-types.md#repos-sticky-header) */ 'jsdoc/no-undefined-types': NoUndefinedTypesRuleConfig; } /** * Config. */ interface RequireAsteriskPrefixConfig { tags?: { always?: string[]; any?: string[]; never?: string[]; [k: string]: any; }; } /** * Option. */ type RequireAsteriskPrefixOption = 'always' | 'never' | 'any'; /** * Options. */ type RequireAsteriskPrefixOptions = [ RequireAsteriskPrefixOption?, RequireAsteriskPrefixConfig?, ]; /** * Requires that each JSDoc line starts with an `*`. * * @see [require-asterisk-prefix](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-asterisk-prefix.md#repos-sticky-header) */ type RequireAsteriskPrefixRuleConfig = RuleConfig; /** * Requires that each JSDoc line starts with an `*`. * * @see [require-asterisk-prefix](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-asterisk-prefix.md#repos-sticky-header) */ interface RequireAsteriskPrefixRule { /** * Requires that each JSDoc line starts with an `*`. * * @see [require-asterisk-prefix](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-asterisk-prefix.md#repos-sticky-header) */ 'jsdoc/require-asterisk-prefix': RequireAsteriskPrefixRuleConfig; } /** * Option. */ interface RequireDescriptionOption { checkConstructors?: boolean; checkGetters?: boolean; checkSetters?: boolean; contexts?: ( | string | { comment?: string; context?: string; } )[]; descriptionStyle?: 'body' | 'tag' | 'any'; exemptedBy?: string[]; } /** * Options. */ type RequireDescriptionOptions = [RequireDescriptionOption?]; /** * Requires that all functions have a description. * * @see [require-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description.md#repos-sticky-header) */ type RequireDescriptionRuleConfig = RuleConfig; /** * Requires that all functions have a description. * * @see [require-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description.md#repos-sticky-header) */ interface RequireDescriptionRule { /** * Requires that all functions have a description. * * @see [require-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description.md#repos-sticky-header) */ 'jsdoc/require-description': RequireDescriptionRuleConfig; } /** * Option. */ interface RequireDescriptionCompleteSentenceOption { abbreviations?: string[]; newlineBeforeCapsAssumesBadSentenceEnd?: boolean; tags?: string[]; } /** * Options. */ type RequireDescriptionCompleteSentenceOptions = [ RequireDescriptionCompleteSentenceOption?, ]; /** * Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences. * * @see [require-description-complete-sentence](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description-complete-sentence.md#repos-sticky-header) */ type RequireDescriptionCompleteSentenceRuleConfig = RuleConfig; /** * Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences. * * @see [require-description-complete-sentence](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description-complete-sentence.md#repos-sticky-header) */ interface RequireDescriptionCompleteSentenceRule { /** * Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences. * * @see [require-description-complete-sentence](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description-complete-sentence.md#repos-sticky-header) */ 'jsdoc/require-description-complete-sentence': RequireDescriptionCompleteSentenceRuleConfig; } /** * Option. */ interface RequireExampleOption { checkConstructors?: boolean; checkGetters?: boolean; checkSetters?: boolean; contexts?: ( | string | { comment?: string; context?: string; } )[]; enableFixer?: boolean; exemptedBy?: string[]; exemptNoArguments?: boolean; } /** * Options. */ type RequireExampleOptions = [RequireExampleOption?]; /** * Requires that all functions have examples. * * @see [require-example](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-example.md#repos-sticky-header) */ type RequireExampleRuleConfig = RuleConfig; /** * Requires that all functions have examples. * * @see [require-example](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-example.md#repos-sticky-header) */ interface RequireExampleRule { /** * Requires that all functions have examples. * * @see [require-example](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-example.md#repos-sticky-header) */ 'jsdoc/require-example': RequireExampleRuleConfig; } /** * Option. */ interface RequireFileOverviewOption { tags?: { /** */ [k: string]: { initialCommentsOnly?: boolean; mustExist?: boolean; preventDuplicates?: boolean; }; }; } /** * Options. */ type RequireFileOverviewOptions = [RequireFileOverviewOption?]; /** * Checks that all files have one `@file`, `@fileoverview`, or `@overview` tag at the beginning of the file. * * @see [require-file-overview](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-file-overview.md#repos-sticky-header) */ type RequireFileOverviewRuleConfig = RuleConfig; /** * Checks that all files have one `@file`, `@fileoverview`, or `@overview` tag at the beginning of the file. * * @see [require-file-overview](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-file-overview.md#repos-sticky-header) */ interface RequireFileOverviewRule { /** * Checks that all files have one `@file`, `@fileoverview`, or `@overview` tag at the beginning of the file. * * @see [require-file-overview](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-file-overview.md#repos-sticky-header) */ 'jsdoc/require-file-overview': RequireFileOverviewRuleConfig; } /** * Config. */ interface RequireHyphenBeforeParamDescriptionConfig { tags?: | { /** */ [k: string]: 'always' | 'never'; } | 'any'; } /** * Option. */ type RequireHyphenBeforeParamDescriptionOption = 'always' | 'never'; /** * Options. */ type RequireHyphenBeforeParamDescriptionOptions = [ RequireHyphenBeforeParamDescriptionOption?, RequireHyphenBeforeParamDescriptionConfig?, ]; /** * Requires a hyphen before the `@param` description. * * @see [require-hyphen-before-param-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-hyphen-before-param-description.md#repos-sticky-header) */ type RequireHyphenBeforeParamDescriptionRuleConfig = RuleConfig; /** * Requires a hyphen before the `@param` description. * * @see [require-hyphen-before-param-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-hyphen-before-param-description.md#repos-sticky-header) */ interface RequireHyphenBeforeParamDescriptionRule { /** * Requires a hyphen before the `@param` description. * * @see [require-hyphen-before-param-description](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': RequireHyphenBeforeParamDescriptionRuleConfig; } /** * Option. */ interface RequireJsdocOption { 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; }; } /** * Options. */ type RequireJsdocOptions = [RequireJsdocOption?]; /** * Require JSDoc comments. * * @see [require-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-jsdoc.md#repos-sticky-header) */ type RequireJsdocRuleConfig = RuleConfig; /** * Require JSDoc comments. * * @see [require-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-jsdoc.md#repos-sticky-header) */ interface RequireJsdocRule { /** * Require JSDoc comments. * * @see [require-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-jsdoc.md#repos-sticky-header) */ 'jsdoc/require-jsdoc': RequireJsdocRuleConfig; } /** * Option. */ interface RequireParamOption { 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[]; unnamedRootBase?: string[]; useDefaultObjectProperties?: boolean; } /** * Options. */ type RequireParamOptions = [RequireParamOption?]; /** * Requires that all function parameters are documented. * * @see [require-param](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param.md#repos-sticky-header) */ type RequireParamRuleConfig = RuleConfig; /** * Requires that all function parameters are documented. * * @see [require-param](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param.md#repos-sticky-header) */ interface RequireParamRule { /** * Requires that all function parameters are documented. * * @see [require-param](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param.md#repos-sticky-header) */ 'jsdoc/require-param': RequireParamRuleConfig; } /** * Option. */ interface RequireParamDescriptionOption { contexts?: ( | string | { comment?: string; context?: string; } )[]; defaultDestructuredRootDescription?: string; setDefaultDestructuredRootDescription?: boolean; } /** * Options. */ type RequireParamDescriptionOptions = [RequireParamDescriptionOption?]; /** * Requires that each `@param` tag has a `description` value. * * @see [require-param-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-description.md#repos-sticky-header) */ type RequireParamDescriptionRuleConfig = RuleConfig; /** * Requires that each `@param` tag has a `description` value. * * @see [require-param-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-description.md#repos-sticky-header) */ interface RequireParamDescriptionRule { /** * Requires that each `@param` tag has a `description` value. * * @see [require-param-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-description.md#repos-sticky-header) */ 'jsdoc/require-param-description': RequireParamDescriptionRuleConfig; } /** * Option. */ interface RequireParamNameOption { contexts?: ( | string | { comment?: string; context?: string; } )[]; } /** * Options. */ type RequireParamNameOptions = [RequireParamNameOption?]; /** * Requires that all function parameters have names. * * @see [require-param-name](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-name.md#repos-sticky-header) */ type RequireParamNameRuleConfig = RuleConfig; /** * Requires that all function parameters have names. * * @see [require-param-name](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-name.md#repos-sticky-header) */ interface RequireParamNameRule { /** * Requires that all function parameters have names. * * @see [require-param-name](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-name.md#repos-sticky-header) */ 'jsdoc/require-param-name': RequireParamNameRuleConfig; } /** * Option. */ interface RequireParamTypeOption { contexts?: ( | string | { comment?: string; context?: string; } )[]; defaultDestructuredRootType?: string; setDefaultDestructuredRootType?: boolean; } /** * Options. */ type RequireParamTypeOptions = [RequireParamTypeOption?]; /** * Requires that each `@param` tag has a `type` value. * * @see [require-param-type](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-type.md#repos-sticky-header) */ type RequireParamTypeRuleConfig = RuleConfig; /** * Requires that each `@param` tag has a `type` value. * * @see [require-param-type](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-type.md#repos-sticky-header) */ interface RequireParamTypeRule { /** * Requires that each `@param` tag has a `type` value. * * @see [require-param-type](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-type.md#repos-sticky-header) */ 'jsdoc/require-param-type': RequireParamTypeRuleConfig; } /** * Requires that all `@typedef` and `@namespace` tags have `@property` when their type is a plain `object`, `Object`, or `PlainObject`. * * @see [require-property](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property.md#repos-sticky-header) */ type RequirePropertyRuleConfig = RuleConfig<[]>; /** * Requires that all `@typedef` and `@namespace` tags have `@property` when their type is a plain `object`, `Object`, or `PlainObject`. * * @see [require-property](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property.md#repos-sticky-header) */ interface RequirePropertyRule { /** * Requires that all `@typedef` and `@namespace` tags have `@property` when their type is a plain `object`, `Object`, or `PlainObject`. * * @see [require-property](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property.md#repos-sticky-header) */ 'jsdoc/require-property': RequirePropertyRuleConfig; } /** * Requires that each `@property` tag has a `description` value. * * @see [require-property-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-description.md#repos-sticky-header) */ type RequirePropertyDescriptionRuleConfig = RuleConfig<[]>; /** * Requires that each `@property` tag has a `description` value. * * @see [require-property-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-description.md#repos-sticky-header) */ interface RequirePropertyDescriptionRule { /** * Requires that each `@property` tag has a `description` value. * * @see [require-property-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-description.md#repos-sticky-header) */ 'jsdoc/require-property-description': RequirePropertyDescriptionRuleConfig; } /** * Requires that all function `@property` tags have names. * * @see [require-property-name](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-name.md#repos-sticky-header) */ type RequirePropertyNameRuleConfig = RuleConfig<[]>; /** * Requires that all function `@property` tags have names. * * @see [require-property-name](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-name.md#repos-sticky-header) */ interface RequirePropertyNameRule { /** * Requires that all function `@property` tags have names. * * @see [require-property-name](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-name.md#repos-sticky-header) */ 'jsdoc/require-property-name': RequirePropertyNameRuleConfig; } /** * Requires that each `@property` tag has a `type` value. * * @see [require-property-type](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-type.md#repos-sticky-header) */ type RequirePropertyTypeRuleConfig = RuleConfig<[]>; /** * Requires that each `@property` tag has a `type` value. * * @see [require-property-type](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-type.md#repos-sticky-header) */ interface RequirePropertyTypeRule { /** * Requires that each `@property` tag has a `type` value. * * @see [require-property-type](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-type.md#repos-sticky-header) */ 'jsdoc/require-property-type': RequirePropertyTypeRuleConfig; } /** * Option. */ interface RequireReturnsOption { 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; }; } /** * Options. */ type RequireReturnsOptions = [RequireReturnsOption?]; /** * Requires that returns are documented. * * @see [require-returns](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns.md#repos-sticky-header) */ type RequireReturnsRuleConfig = RuleConfig; /** * Requires that returns are documented. * * @see [require-returns](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns.md#repos-sticky-header) */ interface RequireReturnsRule { /** * Requires that returns are documented. * * @see [require-returns](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns.md#repos-sticky-header) */ 'jsdoc/require-returns': RequireReturnsRuleConfig; } /** * Option. */ interface RequireReturnsCheckOption { exemptAsync?: boolean; exemptGenerators?: boolean; reportMissingReturnForUndefinedTypes?: boolean; } /** * Options. */ type RequireReturnsCheckOptions = [RequireReturnsCheckOption?]; /** * Requires a return statement in function body if a `@returns` tag is specified in jsdoc comment. * * @see [require-returns-check](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-check.md#repos-sticky-header) */ type RequireReturnsCheckRuleConfig = RuleConfig; /** * Requires a return statement in function body if a `@returns` tag is specified in jsdoc comment. * * @see [require-returns-check](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-check.md#repos-sticky-header) */ interface RequireReturnsCheckRule { /** * Requires a return statement in function body if a `@returns` tag is specified in jsdoc comment. * * @see [require-returns-check](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-check.md#repos-sticky-header) */ 'jsdoc/require-returns-check': RequireReturnsCheckRuleConfig; } /** * Option. */ interface RequireReturnsDescriptionOption { contexts?: ( | string | { comment?: string; context?: string; } )[]; } /** * Options. */ type RequireReturnsDescriptionOptions = [ RequireReturnsDescriptionOption?, ]; /** * Requires that the `@returns` tag has a `description` value. * * @see [require-returns-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-description.md#repos-sticky-header) */ type RequireReturnsDescriptionRuleConfig = RuleConfig; /** * Requires that the `@returns` tag has a `description` value. * * @see [require-returns-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-description.md#repos-sticky-header) */ interface RequireReturnsDescriptionRule { /** * Requires that the `@returns` tag has a `description` value. * * @see [require-returns-description](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-description.md#repos-sticky-header) */ 'jsdoc/require-returns-description': RequireReturnsDescriptionRuleConfig; } /** * Option. */ interface RequireReturnsTypeOption { contexts?: ( | string | { comment?: string; context?: string; } )[]; } /** * Options. */ type RequireReturnsTypeOptions = [RequireReturnsTypeOption?]; /** * Requires that `@returns` tag has `type` value. * * @see [require-returns-type](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-type.md#repos-sticky-header) */ type RequireReturnsTypeRuleConfig = RuleConfig; /** * Requires that `@returns` tag has `type` value. * * @see [require-returns-type](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-type.md#repos-sticky-header) */ interface RequireReturnsTypeRule { /** * Requires that `@returns` tag has `type` value. * * @see [require-returns-type](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-type.md#repos-sticky-header) */ 'jsdoc/require-returns-type': RequireReturnsTypeRuleConfig; } /** * Option. */ interface RequireThrowsOption { contexts?: ( | string | { comment?: string; context?: string; } )[]; exemptedBy?: string[]; } /** * Options. */ type RequireThrowsOptions = [RequireThrowsOption?]; /** * Requires that throw statements are documented. * * @see [require-throws](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws.md#repos-sticky-header) */ type RequireThrowsRuleConfig = RuleConfig; /** * Requires that throw statements are documented. * * @see [require-throws](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws.md#repos-sticky-header) */ interface RequireThrowsRule { /** * Requires that throw statements are documented. * * @see [require-throws](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws.md#repos-sticky-header) */ 'jsdoc/require-throws': RequireThrowsRuleConfig; } /** * Option. */ interface RequireYieldsOption { contexts?: ( | string | { comment?: string; context?: string; } )[]; exemptedBy?: string[]; forceRequireNext?: boolean; forceRequireYields?: boolean; next?: boolean; nextWithGeneratorTag?: boolean; withGeneratorTag?: boolean; } /** * Options. */ type RequireYieldsOptions = [RequireYieldsOption?]; /** * Requires yields are documented. * * @see [require-yields](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields.md#repos-sticky-header) */ type RequireYieldsRuleConfig = RuleConfig; /** * Requires yields are documented. * * @see [require-yields](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields.md#repos-sticky-header) */ interface RequireYieldsRule { /** * Requires yields are documented. * * @see [require-yields](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields.md#repos-sticky-header) */ 'jsdoc/require-yields': RequireYieldsRuleConfig; } /** * Option. */ interface RequireYieldsCheckOption { checkGeneratorsOnly?: boolean; contexts?: ( | string | { comment?: string; context?: string; } )[]; exemptedBy?: string[]; next?: boolean; } /** * Options. */ type RequireYieldsCheckOptions = [RequireYieldsCheckOption?]; /** * Requires a yield statement in function body if a `@yields` tag is specified in jsdoc comment. * * @see [require-yields-check](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-check.md#repos-sticky-header) */ type RequireYieldsCheckRuleConfig = RuleConfig; /** * Requires a yield statement in function body if a `@yields` tag is specified in jsdoc comment. * * @see [require-yields-check](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-check.md#repos-sticky-header) */ interface RequireYieldsCheckRule { /** * Requires a yield statement in function body if a `@yields` tag is specified in jsdoc comment. * * @see [require-yields-check](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-check.md#repos-sticky-header) */ 'jsdoc/require-yields-check': RequireYieldsCheckRuleConfig; } /** * Option. */ interface SortTagsOption { alphabetizeExtras?: boolean; linesBetween?: number; reportIntraTagGroupSpacing?: boolean; reportTagGroupSpacing?: boolean; tagSequence?: { tags?: string[]; [k: string]: any; }[]; } /** * Options. */ type SortTagsOptions = [SortTagsOption?]; /** * Sorts tags by a specified sequence according to tag name. * * @see [sort-tags](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/sort-tags.md#repos-sticky-header) */ type SortTagsRuleConfig = RuleConfig; /** * Sorts tags by a specified sequence according to tag name. * * @see [sort-tags](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/sort-tags.md#repos-sticky-header) */ interface SortTagsRule { /** * Sorts tags by a specified sequence according to tag name. * * @see [sort-tags](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/sort-tags.md#repos-sticky-header) */ 'jsdoc/sort-tags': SortTagsRuleConfig; } /** * Config. */ interface TagLinesConfig { applyToEndTag?: boolean; count?: number; endLines?: number | null; startLines?: number | null; tags?: { /** */ [k: string]: { count?: number; lines?: 'always' | 'never' | 'any'; }; }; } /** * Option. */ type TagLinesOption = 'always' | 'any' | 'never'; /** * Options. */ type TagLinesOptions = [TagLinesOption?, TagLinesConfig?]; /** * Enforces lines (or no lines) between tags. * * @see [tag-lines](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/tag-lines.md#repos-sticky-header) */ type TagLinesRuleConfig = RuleConfig; /** * Enforces lines (or no lines) between tags. * * @see [tag-lines](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/tag-lines.md#repos-sticky-header) */ interface TagLinesRule { /** * Enforces lines (or no lines) between tags. * * @see [tag-lines](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/tag-lines.md#repos-sticky-header) */ 'jsdoc/tag-lines': TagLinesRuleConfig; } /** * Option. */ interface TextEscapingOption { escapeHTML?: boolean; escapeMarkdown?: boolean; } /** * Options. */ type TextEscapingOptions = [TextEscapingOption?]; /** * * @see [text-escaping](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/text-escaping.md#repos-sticky-header) */ type TextEscapingRuleConfig = RuleConfig; /** * * @see [text-escaping](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/text-escaping.md#repos-sticky-header) */ interface TextEscapingRule { /** * * @see [text-escaping](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/text-escaping.md#repos-sticky-header) */ 'jsdoc/text-escaping': TextEscapingRuleConfig; } /** * Option. */ interface ValidTypesOption { allowEmptyNamepaths?: boolean; } /** * Options. */ type ValidTypesOptions = [ValidTypesOption?]; /** * Requires all types to be valid JSDoc or Closure compiler types without syntax errors. * * @see [valid-types](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/valid-types.md#repos-sticky-header) */ type ValidTypesRuleConfig = RuleConfig; /** * Requires all types to be valid JSDoc or Closure compiler types without syntax errors. * * @see [valid-types](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/valid-types.md#repos-sticky-header) */ interface ValidTypesRule { /** * Requires all types to be valid JSDoc or Closure compiler types without syntax errors. * * @see [valid-types](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/valid-types.md#repos-sticky-header) */ 'jsdoc/valid-types': ValidTypesRuleConfig; } /** * All JSDoc rules. */ type JSDocRules = CheckAccessRule & CheckAlignmentRule & CheckExamplesRule & CheckIndentationRule & CheckLineAlignmentRule & CheckParamNamesRule & CheckPropertyNamesRule & CheckSyntaxRule & CheckTagNamesRule & CheckTypesRule & CheckValuesRule & EmptyTagsRule & ImplementsOnClassesRule & ImportsAsDependenciesRule & InformativeDocsRule & MatchDescriptionRule & MatchNameRule & MultilineBlocksRule & NoBadBlocksRule & NoBlankBlockDescriptionsRule & NoBlankBlocksRule & NoDefaultsRule & NoMissingSyntaxRule & NoMultiAsterisksRule & NoRestrictedSyntaxRule$1 & NoTypesRule & NoUndefinedTypesRule & RequireAsteriskPrefixRule & RequireDescriptionRule & RequireDescriptionCompleteSentenceRule & RequireExampleRule & RequireFileOverviewRule & RequireHyphenBeforeParamDescriptionRule & RequireJsdocRule & RequireParamRule & RequireParamDescriptionRule & RequireParamNameRule & RequireParamTypeRule & RequirePropertyRule & RequirePropertyDescriptionRule & RequirePropertyNameRule & RequirePropertyTypeRule & RequireReturnsRule & RequireReturnsCheckRule & RequireReturnsDescriptionRule & RequireReturnsTypeRule & RequireThrowsRule & RequireYieldsRule & RequireYieldsCheckRule & SortTagsRule & TagLinesRule & TextEscapingRule & ValidTypesRule; /** * Option. */ type ArrayBracketNewlineOption$1 = | ('always' | 'never' | 'consistent') | { multiline?: boolean; minItems?: number | null; }; /** * Options. */ type ArrayBracketNewlineOptions$1 = [ArrayBracketNewlineOption$1?]; /** * Enforce line breaks after opening and before closing array brackets. * * @see [array-bracket-newline](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-bracket-newline.html) */ type ArrayBracketNewlineRuleConfig$1 = RuleConfig; /** * Enforce line breaks after opening and before closing array brackets. * * @see [array-bracket-newline](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-bracket-newline.html) */ interface ArrayBracketNewlineRule$1 { /** * Enforce line breaks after opening and before closing array brackets. * * @see [array-bracket-newline](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-bracket-newline.html) */ 'jsonc/array-bracket-newline': ArrayBracketNewlineRuleConfig$1; } /** * Config. */ interface ArrayBracketSpacingConfig$1 { singleValue?: boolean; objectsInArrays?: boolean; arraysInArrays?: boolean; } /** * Option. */ type ArrayBracketSpacingOption$1 = 'always' | 'never'; /** * Options. */ type ArrayBracketSpacingOptions$1 = [ ArrayBracketSpacingOption$1?, ArrayBracketSpacingConfig$1?, ]; /** * Disallow or enforce spaces inside of brackets. * * @see [array-bracket-spacing](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-bracket-spacing.html) */ type ArrayBracketSpacingRuleConfig$1 = RuleConfig; /** * Disallow or enforce spaces inside of brackets. * * @see [array-bracket-spacing](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-bracket-spacing.html) */ interface ArrayBracketSpacingRule$1 { /** * Disallow or enforce spaces inside of brackets. * * @see [array-bracket-spacing](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-bracket-spacing.html) */ 'jsonc/array-bracket-spacing': ArrayBracketSpacingRuleConfig$1; } /** * Option. */ type ArrayElementNewlineOption$1 = | [] | [ | BasicConfig$2 | { ArrayExpression?: BasicConfig$2; ArrayPattern?: BasicConfig$2; }, ]; type BasicConfig$2 = | ('always' | 'never' | 'consistent') | { multiline?: boolean; minItems?: number | null; }; /** * Options. */ type ArrayElementNewlineOptions$1 = ArrayElementNewlineOption$1; /** * Enforce line breaks between array elements. * * @see [array-element-newline](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-element-newline.html) */ type ArrayElementNewlineRuleConfig$1 = RuleConfig; /** * Enforce line breaks between array elements. * * @see [array-element-newline](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-element-newline.html) */ interface ArrayElementNewlineRule$1 { /** * Enforce line breaks between array elements. * * @see [array-element-newline](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-element-newline.html) */ 'jsonc/array-element-newline': ArrayElementNewlineRuleConfig$1; } /** * Apply jsonc rules similar to your configured ESLint core rules. * * @see [auto](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/auto.html) */ type AutoRuleConfig = RuleConfig<[]>; /** * Apply jsonc rules similar to your configured ESLint core rules. * * @see [auto](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/auto.html) */ interface AutoRule { /** * Apply jsonc rules similar to your configured ESLint core rules. * * @see [auto](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/auto.html) */ 'jsonc/auto': AutoRuleConfig; } /** * Option. */ type CommaDangleOption$2 = | [] | [ | Value$2 | { arrays?: ValueWithIgnore$2; objects?: ValueWithIgnore$2; imports?: ValueWithIgnore$2; exports?: ValueWithIgnore$2; functions?: ValueWithIgnore$2; }, ]; type Value$2 = 'always-multiline' | 'always' | 'never' | 'only-multiline'; type ValueWithIgnore$2 = | 'always-multiline' | 'always' | 'ignore' | 'never' | 'only-multiline'; /** * Options. */ type CommaDangleOptions$2 = CommaDangleOption$2; /** * Require or disallow trailing commas. * * @see [comma-dangle](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/comma-dangle.html) */ type CommaDangleRuleConfig$2 = RuleConfig; /** * Require or disallow trailing commas. * * @see [comma-dangle](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/comma-dangle.html) */ interface CommaDangleRule$2 { /** * Require or disallow trailing commas. * * @see [comma-dangle](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/comma-dangle.html) */ 'jsonc/comma-dangle': CommaDangleRuleConfig$2; } /** * Config. */ interface CommaStyleConfig$1 { exceptions?: { [k: string]: boolean; }; } /** * Option. */ type CommaStyleOption$1 = 'first' | 'last'; /** * Options. */ type CommaStyleOptions$1 = [CommaStyleOption$1?, CommaStyleConfig$1?]; /** * Enforce consistent comma style. * * @see [comma-style](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/comma-style.html) */ type CommaStyleRuleConfig$1 = RuleConfig; /** * Enforce consistent comma style. * * @see [comma-style](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/comma-style.html) */ interface CommaStyleRule$1 { /** * Enforce consistent comma style. * * @see [comma-style](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/comma-style.html) */ 'jsonc/comma-style': CommaStyleRuleConfig$1; } /** * Config. */ interface IndentConfig$2 { 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; } /** * Option. */ type IndentOption$2 = 'tab' | number; /** * Options. */ type IndentOptions$2 = [IndentOption$2?, IndentConfig$2?]; /** * Enforce consistent indentation. * * @see [indent](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/indent.html) */ type IndentRuleConfig$2 = RuleConfig; /** * Enforce consistent indentation. * * @see [indent](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/indent.html) */ interface IndentRule$2 { /** * Enforce consistent indentation. * * @see [indent](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/indent.html) */ 'jsonc/indent': IndentRuleConfig$2; } /** * Option. */ interface KeyNameCasingOption$1 { camelCase?: boolean; PascalCase?: boolean; SCREAMING_SNAKE_CASE?: boolean; 'kebab-case'?: boolean; snake_case?: boolean; ignores?: string[]; } /** * Options. */ type KeyNameCasingOptions$1 = [KeyNameCasingOption$1?]; /** * Enforce naming convention to property key names. * * @see [key-name-casing](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/key-name-casing.html) */ type KeyNameCasingRuleConfig$1 = RuleConfig; /** * Enforce naming convention to property key names. * * @see [key-name-casing](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/key-name-casing.html) */ interface KeyNameCasingRule$1 { /** * Enforce naming convention to property key names. * * @see [key-name-casing](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/key-name-casing.html) */ 'jsonc/key-name-casing': KeyNameCasingRuleConfig$1; } /** * Option. */ type KeySpacingOption$3 = | { 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; }; }; /** * Options. */ type KeySpacingOptions$3 = [KeySpacingOption$3?]; /** * Enforce consistent spacing between keys and values in object literal properties. * * @see [key-spacing](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/key-spacing.html) */ type KeySpacingRuleConfig$3 = RuleConfig; /** * Enforce consistent spacing between keys and values in object literal properties. * * @see [key-spacing](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/key-spacing.html) */ interface KeySpacingRule$3 { /** * Enforce consistent spacing between keys and values in object literal properties. * * @see [key-spacing](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/key-spacing.html) */ 'jsonc/key-spacing': KeySpacingRuleConfig$3; } /** * Disallow BigInt literals. * * @see [no-bigint-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-bigint-literals.html) */ type NoBigintLiteralsRuleConfig = RuleConfig<[]>; /** * Disallow BigInt literals. * * @see [no-bigint-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-bigint-literals.html) */ interface NoBigintLiteralsRule { /** * Disallow BigInt literals. * * @see [no-bigint-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-bigint-literals.html) */ 'jsonc/no-bigint-literals': NoBigintLiteralsRuleConfig; } /** * Disallow binary expression. * * @see [no-binary-expression](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-binary-expression.html) */ type NoBinaryExpressionRuleConfig = RuleConfig<[]>; /** * Disallow binary expression. * * @see [no-binary-expression](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-binary-expression.html) */ interface NoBinaryExpressionRule { /** * Disallow binary expression. * * @see [no-binary-expression](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-binary-expression.html) */ 'jsonc/no-binary-expression': NoBinaryExpressionRuleConfig; } /** * Disallow binary numeric literals. * * @see [no-binary-numeric-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-binary-numeric-literals.html) */ type NoBinaryNumericLiteralsRuleConfig = RuleConfig<[]>; /** * Disallow binary numeric literals. * * @see [no-binary-numeric-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-binary-numeric-literals.html) */ interface NoBinaryNumericLiteralsRule { /** * Disallow binary numeric literals. * * @see [no-binary-numeric-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-binary-numeric-literals.html) */ 'jsonc/no-binary-numeric-literals': NoBinaryNumericLiteralsRuleConfig; } /** * Disallow comments. * * @see [no-comments](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-comments.html) */ type NoCommentsRuleConfig = RuleConfig<[]>; /** * Disallow comments. * * @see [no-comments](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-comments.html) */ interface NoCommentsRule { /** * Disallow comments. * * @see [no-comments](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-comments.html) */ 'jsonc/no-comments': NoCommentsRuleConfig; } /** * Disallow duplicate keys in object literals. * * @see [no-dupe-keys](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-dupe-keys.html) */ type NoDupeKeysRuleConfig$1 = RuleConfig<[]>; /** * Disallow duplicate keys in object literals. * * @see [no-dupe-keys](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-dupe-keys.html) */ interface NoDupeKeysRule$1 { /** * Disallow duplicate keys in object literals. * * @see [no-dupe-keys](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-dupe-keys.html) */ 'jsonc/no-dupe-keys': NoDupeKeysRuleConfig$1; } /** * Disallow escape sequences in identifiers. * * @see [no-escape-sequence-in-identifier](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-escape-sequence-in-identifier.html) */ type NoEscapeSequenceInIdentifierRuleConfig = RuleConfig<[]>; /** * Disallow escape sequences in identifiers. * * @see [no-escape-sequence-in-identifier](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-escape-sequence-in-identifier.html) */ interface NoEscapeSequenceInIdentifierRule { /** * Disallow escape sequences in identifiers. * * @see [no-escape-sequence-in-identifier](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-escape-sequence-in-identifier.html) */ 'jsonc/no-escape-sequence-in-identifier': NoEscapeSequenceInIdentifierRuleConfig; } /** * Disallow leading or trailing decimal points in numeric literals. * * @see [no-floating-decimal](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-floating-decimal.html) */ type NoFloatingDecimalRuleConfig = RuleConfig<[]>; /** * Disallow leading or trailing decimal points in numeric literals. * * @see [no-floating-decimal](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-floating-decimal.html) */ interface NoFloatingDecimalRule { /** * Disallow leading or trailing decimal points in numeric literals. * * @see [no-floating-decimal](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-floating-decimal.html) */ 'jsonc/no-floating-decimal': NoFloatingDecimalRuleConfig; } /** * Disallow hexadecimal numeric literals. * * @see [no-hexadecimal-numeric-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-hexadecimal-numeric-literals.html) */ type NoHexadecimalNumericLiteralsRuleConfig = RuleConfig<[]>; /** * Disallow hexadecimal numeric literals. * * @see [no-hexadecimal-numeric-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-hexadecimal-numeric-literals.html) */ interface NoHexadecimalNumericLiteralsRule { /** * Disallow hexadecimal numeric literals. * * @see [no-hexadecimal-numeric-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-hexadecimal-numeric-literals.html) */ 'jsonc/no-hexadecimal-numeric-literals': NoHexadecimalNumericLiteralsRuleConfig; } /** * Disallow Infinity. * * @see [no-infinity](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-infinity.html) */ type NoInfinityRuleConfig = RuleConfig<[]>; /** * Disallow Infinity. * * @see [no-infinity](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-infinity.html) */ interface NoInfinityRule { /** * Disallow Infinity. * * @see [no-infinity](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-infinity.html) */ 'jsonc/no-infinity': NoInfinityRuleConfig; } /** * Option. */ interface NoIrregularWhitespaceOption$2 { skipComments?: boolean; skipStrings?: boolean; skipTemplates?: boolean; skipRegExps?: boolean; skipJSXText?: boolean; } /** * Options. */ type NoIrregularWhitespaceOptions$2 = [NoIrregularWhitespaceOption$2?]; /** * Disallow irregular whitespace. * * @see [no-irregular-whitespace](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-irregular-whitespace.html) */ type NoIrregularWhitespaceRuleConfig$2 = RuleConfig; /** * Disallow irregular whitespace. * * @see [no-irregular-whitespace](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-irregular-whitespace.html) */ interface NoIrregularWhitespaceRule$2 { /** * Disallow irregular whitespace. * * @see [no-irregular-whitespace](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-irregular-whitespace.html) */ 'jsonc/no-irregular-whitespace': NoIrregularWhitespaceRuleConfig$2; } /** * Disallow multiline strings. * * @see [no-multi-str](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-multi-str.html) */ type NoMultiStrRuleConfig = RuleConfig<[]>; /** * Disallow multiline strings. * * @see [no-multi-str](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-multi-str.html) */ interface NoMultiStrRule { /** * Disallow multiline strings. * * @see [no-multi-str](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-multi-str.html) */ 'jsonc/no-multi-str': NoMultiStrRuleConfig; } /** * Disallow NaN. * * @see [no-nan](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-nan.html) */ type NoNanRuleConfig = RuleConfig<[]>; /** * Disallow NaN. * * @see [no-nan](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-nan.html) */ interface NoNanRule { /** * Disallow NaN. * * @see [no-nan](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-nan.html) */ 'jsonc/no-nan': NoNanRuleConfig; } /** * Disallow number property keys. * * @see [no-number-props](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-number-props.html) */ type NoNumberPropsRuleConfig = RuleConfig<[]>; /** * Disallow number property keys. * * @see [no-number-props](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-number-props.html) */ interface NoNumberPropsRule { /** * Disallow number property keys. * * @see [no-number-props](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-number-props.html) */ 'jsonc/no-number-props': NoNumberPropsRuleConfig; } /** * Disallow numeric separators. * * @see [no-numeric-separators](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-numeric-separators.html) */ type NoNumericSeparatorsRuleConfig = RuleConfig<[]>; /** * Disallow numeric separators. * * @see [no-numeric-separators](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-numeric-separators.html) */ interface NoNumericSeparatorsRule { /** * Disallow numeric separators. * * @see [no-numeric-separators](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-numeric-separators.html) */ 'jsonc/no-numeric-separators': NoNumericSeparatorsRuleConfig; } /** * Disallow legacy octal literals. * * @see [no-octal](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal.html) */ type NoOctalRuleConfig = RuleConfig<[]>; /** * Disallow legacy octal literals. * * @see [no-octal](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal.html) */ interface NoOctalRule { /** * Disallow legacy octal literals. * * @see [no-octal](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal.html) */ 'jsonc/no-octal': NoOctalRuleConfig; } /** * Disallow octal escape sequences in string literals. * * @see [no-octal-escape](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal-escape.html) */ type NoOctalEscapeRuleConfig = RuleConfig<[]>; /** * Disallow octal escape sequences in string literals. * * @see [no-octal-escape](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal-escape.html) */ interface NoOctalEscapeRule { /** * Disallow octal escape sequences in string literals. * * @see [no-octal-escape](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal-escape.html) */ 'jsonc/no-octal-escape': NoOctalEscapeRuleConfig; } /** * Disallow octal numeric literals. * * @see [no-octal-numeric-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal-numeric-literals.html) */ type NoOctalNumericLiteralsRuleConfig = RuleConfig<[]>; /** * Disallow octal numeric literals. * * @see [no-octal-numeric-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal-numeric-literals.html) */ interface NoOctalNumericLiteralsRule { /** * Disallow octal numeric literals. * * @see [no-octal-numeric-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal-numeric-literals.html) */ 'jsonc/no-octal-numeric-literals': NoOctalNumericLiteralsRuleConfig; } /** * Disallow parentheses around the expression. * * @see [no-parenthesized](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-parenthesized.html) */ type NoParenthesizedRuleConfig = RuleConfig<[]>; /** * Disallow parentheses around the expression. * * @see [no-parenthesized](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-parenthesized.html) */ interface NoParenthesizedRule { /** * Disallow parentheses around the expression. * * @see [no-parenthesized](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-parenthesized.html) */ 'jsonc/no-parenthesized': NoParenthesizedRuleConfig; } /** * Disallow plus sign. * * @see [no-plus-sign](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-plus-sign.html) */ type NoPlusSignRuleConfig = RuleConfig<[]>; /** * Disallow plus sign. * * @see [no-plus-sign](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-plus-sign.html) */ interface NoPlusSignRule { /** * Disallow plus sign. * * @see [no-plus-sign](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-plus-sign.html) */ 'jsonc/no-plus-sign': NoPlusSignRuleConfig; } /** * Disallow RegExp literals. * * @see [no-regexp-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-regexp-literals.html) */ type NoRegexpLiteralsRuleConfig = RuleConfig<[]>; /** * Disallow RegExp literals. * * @see [no-regexp-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-regexp-literals.html) */ interface NoRegexpLiteralsRule { /** * Disallow RegExp literals. * * @see [no-regexp-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-regexp-literals.html) */ 'jsonc/no-regexp-literals': NoRegexpLiteralsRuleConfig; } /** * Disallow sparse arrays. * * @see [no-sparse-arrays](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-sparse-arrays.html) */ type NoSparseArraysRuleConfig$1 = RuleConfig<[]>; /** * Disallow sparse arrays. * * @see [no-sparse-arrays](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-sparse-arrays.html) */ interface NoSparseArraysRule$1 { /** * Disallow sparse arrays. * * @see [no-sparse-arrays](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-sparse-arrays.html) */ 'jsonc/no-sparse-arrays': NoSparseArraysRuleConfig$1; } /** * Disallow template literals. * * @see [no-template-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-template-literals.html) */ type NoTemplateLiteralsRuleConfig = RuleConfig<[]>; /** * Disallow template literals. * * @see [no-template-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-template-literals.html) */ interface NoTemplateLiteralsRule { /** * Disallow template literals. * * @see [no-template-literals](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-template-literals.html) */ 'jsonc/no-template-literals': NoTemplateLiteralsRuleConfig; } /** * Disallow `undefined`. * * @see [no-undefined-value](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-undefined-value.html) */ type NoUndefinedValueRuleConfig = RuleConfig<[]>; /** * Disallow `undefined`. * * @see [no-undefined-value](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-undefined-value.html) */ interface NoUndefinedValueRule { /** * Disallow `undefined`. * * @see [no-undefined-value](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-undefined-value.html) */ 'jsonc/no-undefined-value': NoUndefinedValueRuleConfig; } /** * Disallow Unicode code point escape sequences. * * @see [no-unicode-codepoint-escapes](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-unicode-codepoint-escapes.html) */ type NoUnicodeCodepointEscapesRuleConfig = RuleConfig<[]>; /** * Disallow Unicode code point escape sequences. * * @see [no-unicode-codepoint-escapes](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-unicode-codepoint-escapes.html) */ interface NoUnicodeCodepointEscapesRule { /** * Disallow Unicode code point escape sequences. * * @see [no-unicode-codepoint-escapes](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-unicode-codepoint-escapes.html) */ 'jsonc/no-unicode-codepoint-escapes': NoUnicodeCodepointEscapesRuleConfig; } /** * Disallow unnecessary escape usage. * * @see [no-useless-escape](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-useless-escape.html) */ type NoUselessEscapeRuleConfig = RuleConfig<[]>; /** * Disallow unnecessary escape usage. * * @see [no-useless-escape](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-useless-escape.html) */ interface NoUselessEscapeRule { /** * Disallow unnecessary escape usage. * * @see [no-useless-escape](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-useless-escape.html) */ 'jsonc/no-useless-escape': NoUselessEscapeRuleConfig; } /** * Option. */ type ObjectCurlyNewlineOption$1 = | ( | ('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; }; }; /** * Options. */ type ObjectCurlyNewlineOptions$1 = [ObjectCurlyNewlineOption$1?]; /** * Enforce consistent line breaks inside braces. * * @see [object-curly-newline](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-curly-newline.html) */ type ObjectCurlyNewlineRuleConfig$1 = RuleConfig; /** * Enforce consistent line breaks inside braces. * * @see [object-curly-newline](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-curly-newline.html) */ interface ObjectCurlyNewlineRule$1 { /** * Enforce consistent line breaks inside braces. * * @see [object-curly-newline](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-curly-newline.html) */ 'jsonc/object-curly-newline': ObjectCurlyNewlineRuleConfig$1; } /** * Config. */ interface ObjectCurlySpacingConfig$2 { arraysInObjects?: boolean; objectsInObjects?: boolean; } /** * Option. */ type ObjectCurlySpacingOption$2 = 'always' | 'never'; /** * Options. */ type ObjectCurlySpacingOptions$2 = [ ObjectCurlySpacingOption$2?, ObjectCurlySpacingConfig$2?, ]; /** * Enforce consistent spacing inside braces. * * @see [object-curly-spacing](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-curly-spacing.html) */ type ObjectCurlySpacingRuleConfig$2 = RuleConfig; /** * Enforce consistent spacing inside braces. * * @see [object-curly-spacing](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-curly-spacing.html) */ interface ObjectCurlySpacingRule$2 { /** * Enforce consistent spacing inside braces. * * @see [object-curly-spacing](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-curly-spacing.html) */ 'jsonc/object-curly-spacing': ObjectCurlySpacingRuleConfig$2; } /** * Option. */ interface ObjectPropertyNewlineOption$1 { allowAllPropertiesOnSameLine?: boolean; allowMultiplePropertiesPerLine?: boolean; } /** * Options. */ type ObjectPropertyNewlineOptions$1 = [ObjectPropertyNewlineOption$1?]; /** * Enforce placing object properties on separate lines. * * @see [object-property-newline](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-property-newline.html) */ type ObjectPropertyNewlineRuleConfig$1 = RuleConfig; /** * Enforce placing object properties on separate lines. * * @see [object-property-newline](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-property-newline.html) */ interface ObjectPropertyNewlineRule$1 { /** * Enforce placing object properties on separate lines. * * @see [object-property-newline](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-property-newline.html) */ 'jsonc/object-property-newline': ObjectPropertyNewlineRuleConfig$1; } /** * Option. */ type QuotePropsOption$1 = | [] | ['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; }, ]; /** * Options. */ type QuotePropsOptions$1 = QuotePropsOption$1; /** * Require quotes around object literal property names. * * @see [quote-props](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/quote-props.html) */ type QuotePropsRuleConfig$1 = RuleConfig; /** * Require quotes around object literal property names. * * @see [quote-props](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/quote-props.html) */ interface QuotePropsRule$1 { /** * Require quotes around object literal property names. * * @see [quote-props](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/quote-props.html) */ 'jsonc/quote-props': QuotePropsRuleConfig$1; } /** * Config. */ type QuotesConfig$1 = | 'avoid-escape' | { avoidEscape?: boolean; allowTemplateLiterals?: boolean; }; /** * Option. */ type QuotesOption$2 = 'single' | 'double' | 'backtick'; /** * Options. */ type QuotesOptions$2 = [QuotesOption$2?, QuotesConfig$1?]; /** * Enforce use of double or single quotes. * * @see [quotes](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/quotes.html) */ type QuotesRuleConfig$2 = RuleConfig; /** * Enforce use of double or single quotes. * * @see [quotes](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/quotes.html) */ interface QuotesRule$2 { /** * Enforce use of double or single quotes. * * @see [quotes](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/quotes.html) */ 'jsonc/quotes': QuotesRuleConfig$2; } /** * Option. */ /** * @minItems 1 */ type SortArrayValuesOption = [ { pathPattern: string; order: | ( | string | { valuePattern?: string; order?: { type?: 'asc' | 'desc'; caseSensitive?: boolean; natural?: boolean; }; } )[] | { type?: 'asc' | 'desc'; caseSensitive?: boolean; natural?: boolean; }; minValues?: number; }, ...{ pathPattern: string; order: | ( | string | { valuePattern?: string; order?: { type?: 'asc' | 'desc'; caseSensitive?: boolean; natural?: boolean; }; } )[] | { type?: 'asc' | 'desc'; caseSensitive?: boolean; natural?: boolean; }; minValues?: number; }[], ]; /** * Options. */ type SortArrayValuesOptions = SortArrayValuesOption; /** * Require array values to be sorted. * * @see [sort-array-values](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-array-values.html) */ type SortArrayValuesRuleConfig = RuleConfig; /** * Require array values to be sorted. * * @see [sort-array-values](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-array-values.html) */ interface SortArrayValuesRule { /** * Require array values to be sorted. * * @see [sort-array-values](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-array-values.html) */ 'jsonc/sort-array-values': SortArrayValuesRuleConfig; } /** * Option. */ type SortKeysOption$2 = | [ { pathPattern: string; hasProperties?: string[]; order: | ( | string | { keyPattern?: string; order?: { type?: 'asc' | 'desc'; caseSensitive?: boolean; natural?: boolean; }; } )[] | { type?: 'asc' | 'desc'; caseSensitive?: boolean; natural?: boolean; }; minKeys?: number; allowLineSeparatedGroups?: boolean; }, ...{ pathPattern: string; hasProperties?: string[]; order: | ( | string | { keyPattern?: string; order?: { type?: 'asc' | 'desc'; caseSensitive?: boolean; natural?: boolean; }; } )[] | { type?: 'asc' | 'desc'; caseSensitive?: boolean; natural?: boolean; }; minKeys?: number; allowLineSeparatedGroups?: boolean; }[], ] | [] | ['asc' | 'desc'] | [ 'asc' | 'desc', { caseSensitive?: boolean; natural?: boolean; minKeys?: number; allowLineSeparatedGroups?: boolean; }, ]; /** * Options. */ type SortKeysOptions$2 = SortKeysOption$2; /** * Require object keys to be sorted. * * @see [sort-keys](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-keys.html) */ type SortKeysRuleConfig$2 = RuleConfig; /** * Require object keys to be sorted. * * @see [sort-keys](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-keys.html) */ interface SortKeysRule$2 { /** * Require object keys to be sorted. * * @see [sort-keys](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-keys.html) */ 'jsonc/sort-keys': SortKeysRuleConfig$2; } /** * Option. */ interface SpaceUnaryOpsOption$1 { words?: boolean; nonwords?: boolean; overrides?: { [k: string]: boolean; }; } /** * Options. */ type SpaceUnaryOpsOptions$1 = [SpaceUnaryOpsOption$1?]; /** * Disallow spaces after unary operators. * * @see [space-unary-ops](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/space-unary-ops.html) */ type SpaceUnaryOpsRuleConfig$1 = RuleConfig; /** * Disallow spaces after unary operators. * * @see [space-unary-ops](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/space-unary-ops.html) */ interface SpaceUnaryOpsRule$1 { /** * Disallow spaces after unary operators. * * @see [space-unary-ops](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/space-unary-ops.html) */ 'jsonc/space-unary-ops': SpaceUnaryOpsRuleConfig$1; } /** * Disallow invalid number for JSON. * * @see [valid-json-number](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/valid-json-number.html) */ type ValidJsonNumberRuleConfig = RuleConfig<[]>; /** * Disallow invalid number for JSON. * * @see [valid-json-number](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/valid-json-number.html) */ interface ValidJsonNumberRule { /** * Disallow invalid number for JSON. * * @see [valid-json-number](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/valid-json-number.html) */ 'jsonc/valid-json-number': ValidJsonNumberRuleConfig; } /** * Disallow parsing errors in Vue custom blocks. * * @see [vue-custom-block/no-parsing-error](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/vue-custom-block/no-parsing-error.html) */ type VueCustomBlockNoParsingErrorRuleConfig$1 = RuleConfig<[]>; /** * Disallow parsing errors in Vue custom blocks. * * @see [vue-custom-block/no-parsing-error](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/vue-custom-block/no-parsing-error.html) */ interface VueCustomBlockNoParsingErrorRule$1 { /** * Disallow parsing errors in Vue custom blocks. * * @see [vue-custom-block/no-parsing-error](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/vue-custom-block/no-parsing-error.html) */ 'jsonc/vue-custom-block/no-parsing-error': VueCustomBlockNoParsingErrorRuleConfig$1; } /** * All Jsonc rules. */ type JsoncRules = ArrayBracketNewlineRule$1 & ArrayBracketSpacingRule$1 & ArrayElementNewlineRule$1 & AutoRule & CommaDangleRule$2 & CommaStyleRule$1 & IndentRule$2 & KeyNameCasingRule$1 & KeySpacingRule$3 & NoBigintLiteralsRule & NoBinaryExpressionRule & NoBinaryNumericLiteralsRule & NoCommentsRule & NoDupeKeysRule$1 & NoEscapeSequenceInIdentifierRule & NoFloatingDecimalRule & NoHexadecimalNumericLiteralsRule & NoInfinityRule & NoIrregularWhitespaceRule$2 & NoMultiStrRule & NoNanRule & NoNumberPropsRule & NoNumericSeparatorsRule & NoOctalEscapeRule & NoOctalNumericLiteralsRule & NoOctalRule & NoParenthesizedRule & NoPlusSignRule & NoRegexpLiteralsRule & NoSparseArraysRule$1 & NoTemplateLiteralsRule & NoUndefinedValueRule & NoUnicodeCodepointEscapesRule & NoUselessEscapeRule & ObjectCurlyNewlineRule$1 & ObjectCurlySpacingRule$2 & ObjectPropertyNewlineRule$1 & QuotePropsRule$1 & QuotesRule$2 & SortArrayValuesRule & SortKeysRule$2 & SpaceUnaryOpsRule$1 & ValidJsonNumberRule & VueCustomBlockNoParsingErrorRule$1; /** * Option. */ interface AccessibleEmojiOption { [k: string]: any; } /** * Options. */ type AccessibleEmojiOptions = [AccessibleEmojiOption?]; /** * Enforce emojis are wrapped in `` and provide screenreader access. * * @deprecated * * @see [accessible-emoji](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/accessible-emoji.md) */ type AccessibleEmojiRuleConfig = RuleConfig; /** * Enforce emojis are wrapped in `` and provide screenreader access. * * @deprecated * * @see [accessible-emoji](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/accessible-emoji.md) */ interface AccessibleEmojiRule { /** * Enforce emojis are wrapped in `` and provide screenreader access. * * @deprecated * * @see [accessible-emoji](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/accessible-emoji.md) */ 'jsx-a11y/accessible-emoji': AccessibleEmojiRuleConfig; } /** * Option. */ interface AltTextOption { elements?: string[]; img?: string[]; object?: string[]; area?: string[]; 'input[type="image"]'?: string[]; [k: string]: any; } /** * Options. */ type AltTextOptions = [AltTextOption?]; /** * Enforce all elements that require alternative text have meaningful information to relay back to end user. * * @see [alt-text](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/alt-text.md) */ type AltTextRuleConfig = RuleConfig; /** * Enforce all elements that require alternative text have meaningful information to relay back to end user. * * @see [alt-text](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/alt-text.md) */ interface AltTextRule { /** * Enforce all elements that require alternative text have meaningful information to relay back to end user. * * @see [alt-text](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/alt-text.md) */ 'jsx-a11y/alt-text': AltTextRuleConfig; } /** * Option. */ interface AnchorAmbiguousTextOption { words?: string[]; [k: string]: any; } /** * Options. */ type AnchorAmbiguousTextOptions = [AnchorAmbiguousTextOption?]; /** * Enforce `` text to not exactly match "click here", "here", "link", or "a link". * * @see [anchor-ambiguous-text](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-ambiguous-text.md) */ type AnchorAmbiguousTextRuleConfig = RuleConfig; /** * Enforce `` text to not exactly match "click here", "here", "link", or "a link". * * @see [anchor-ambiguous-text](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-ambiguous-text.md) */ interface AnchorAmbiguousTextRule { /** * Enforce `` text to not exactly match "click here", "here", "link", or "a link". * * @see [anchor-ambiguous-text](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-ambiguous-text.md) */ 'jsx-a11y/anchor-ambiguous-text': AnchorAmbiguousTextRuleConfig; } /** * Option. */ interface AnchorHasContentOption { components?: string[]; [k: string]: any; } /** * Options. */ type AnchorHasContentOptions = [AnchorHasContentOption?]; /** * Enforce all anchors to contain accessible content. * * @see [anchor-has-content](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-has-content.md) */ type AnchorHasContentRuleConfig = RuleConfig; /** * Enforce all anchors to contain accessible content. * * @see [anchor-has-content](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-has-content.md) */ interface AnchorHasContentRule { /** * Enforce all anchors to contain accessible content. * * @see [anchor-has-content](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-has-content.md) */ 'jsx-a11y/anchor-has-content': AnchorHasContentRuleConfig; } /** * Option. */ interface AnchorIsValidOption { components?: string[]; specialLink?: string[]; /** * @minItems 1 */ aspects?: [ 'noHref' | 'invalidHref' | 'preferButton', ...('noHref' | 'invalidHref' | 'preferButton')[], ]; [k: string]: any; } /** * Options. */ type AnchorIsValidOptions = [AnchorIsValidOption?]; /** * Enforce all anchors are valid, navigable elements. * * @see [anchor-is-valid](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-is-valid.md) */ type AnchorIsValidRuleConfig = RuleConfig; /** * Enforce all anchors are valid, navigable elements. * * @see [anchor-is-valid](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-is-valid.md) */ interface AnchorIsValidRule { /** * Enforce all anchors are valid, navigable elements. * * @see [anchor-is-valid](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-is-valid.md) */ 'jsx-a11y/anchor-is-valid': AnchorIsValidRuleConfig; } /** * Option. */ interface AriaActivedescendantHasTabindexOption { [k: string]: any; } /** * Options. */ type AriaActivedescendantHasTabindexOptions = [ AriaActivedescendantHasTabindexOption?, ]; /** * Enforce elements with aria-activedescendant are tabbable. * * @see [aria-activedescendant-has-tabindex](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-activedescendant-has-tabindex.md) */ type AriaActivedescendantHasTabindexRuleConfig = RuleConfig; /** * Enforce elements with aria-activedescendant are tabbable. * * @see [aria-activedescendant-has-tabindex](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-activedescendant-has-tabindex.md) */ interface AriaActivedescendantHasTabindexRule { /** * Enforce elements with aria-activedescendant are tabbable. * * @see [aria-activedescendant-has-tabindex](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-activedescendant-has-tabindex.md) */ 'jsx-a11y/aria-activedescendant-has-tabindex': AriaActivedescendantHasTabindexRuleConfig; } /** * Option. */ interface AriaPropsOption { [k: string]: any; } /** * Options. */ type AriaPropsOptions = [AriaPropsOption?]; /** * Enforce all `aria-*` props are valid. * * @see [aria-props](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-props.md) */ type AriaPropsRuleConfig = RuleConfig; /** * Enforce all `aria-*` props are valid. * * @see [aria-props](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-props.md) */ interface AriaPropsRule { /** * Enforce all `aria-*` props are valid. * * @see [aria-props](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-props.md) */ 'jsx-a11y/aria-props': AriaPropsRuleConfig; } /** * Option. */ interface AriaProptypesOption { [k: string]: any; } /** * Options. */ type AriaProptypesOptions = [AriaProptypesOption?]; /** * Enforce ARIA state and property values are valid. * * @see [aria-proptypes](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-proptypes.md) */ type AriaProptypesRuleConfig = RuleConfig; /** * Enforce ARIA state and property values are valid. * * @see [aria-proptypes](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-proptypes.md) */ interface AriaProptypesRule { /** * Enforce ARIA state and property values are valid. * * @see [aria-proptypes](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-proptypes.md) */ 'jsx-a11y/aria-proptypes': AriaProptypesRuleConfig; } /** * Option. */ interface AriaRoleOption { allowedInvalidRoles?: string[]; ignoreNonDOM?: boolean; [k: string]: any; } /** * Options. */ type AriaRoleOptions = [AriaRoleOption?]; /** * Enforce that elements with ARIA roles must use a valid, non-abstract ARIA role. * * @see [aria-role](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-role.md) */ type AriaRoleRuleConfig = RuleConfig; /** * Enforce that elements with ARIA roles must use a valid, non-abstract ARIA role. * * @see [aria-role](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-role.md) */ interface AriaRoleRule { /** * Enforce that elements with ARIA roles must use a valid, non-abstract ARIA role. * * @see [aria-role](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-role.md) */ 'jsx-a11y/aria-role': AriaRoleRuleConfig; } /** * Option. */ interface AriaUnsupportedElementsOption { [k: string]: any; } /** * Options. */ type AriaUnsupportedElementsOptions = [AriaUnsupportedElementsOption?]; /** * Enforce that elements that do not support ARIA roles, states, and properties do not have those attributes. * * @see [aria-unsupported-elements](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-unsupported-elements.md) */ type AriaUnsupportedElementsRuleConfig = RuleConfig; /** * Enforce that elements that do not support ARIA roles, states, and properties do not have those attributes. * * @see [aria-unsupported-elements](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-unsupported-elements.md) */ interface AriaUnsupportedElementsRule { /** * Enforce that elements that do not support ARIA roles, states, and properties do not have those attributes. * * @see [aria-unsupported-elements](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-unsupported-elements.md) */ 'jsx-a11y/aria-unsupported-elements': AriaUnsupportedElementsRuleConfig; } /** * Option. */ interface AutocompleteValidOption { inputComponents?: string[]; [k: string]: any; } /** * Options. */ type AutocompleteValidOptions = [AutocompleteValidOption?]; /** * Enforce that autocomplete attributes are used correctly. * * @see [autocomplete-valid](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/autocomplete-valid.md) */ type AutocompleteValidRuleConfig = RuleConfig; /** * Enforce that autocomplete attributes are used correctly. * * @see [autocomplete-valid](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/autocomplete-valid.md) */ interface AutocompleteValidRule { /** * Enforce that autocomplete attributes are used correctly. * * @see [autocomplete-valid](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/autocomplete-valid.md) */ 'jsx-a11y/autocomplete-valid': AutocompleteValidRuleConfig; } /** * Option. */ interface ClickEventsHaveKeyEventsOption { [k: string]: any; } /** * Options. */ type ClickEventsHaveKeyEventsOptions = [ClickEventsHaveKeyEventsOption?]; /** * Enforce a clickable non-interactive element has at least one keyboard event listener. * * @see [click-events-have-key-events](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/click-events-have-key-events.md) */ type ClickEventsHaveKeyEventsRuleConfig = RuleConfig; /** * Enforce a clickable non-interactive element has at least one keyboard event listener. * * @see [click-events-have-key-events](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/click-events-have-key-events.md) */ interface ClickEventsHaveKeyEventsRule { /** * Enforce a clickable non-interactive element has at least one keyboard event listener. * * @see [click-events-have-key-events](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/click-events-have-key-events.md) */ 'jsx-a11y/click-events-have-key-events': ClickEventsHaveKeyEventsRuleConfig; } /** * Option. */ interface ControlHasAssociatedLabelOption { labelAttributes?: string[]; controlComponents?: string[]; ignoreElements?: string[]; ignoreRoles?: string[]; /** * JSX tree depth limit to check for accessible label */ depth?: number; [k: string]: any; } /** * Options. */ type ControlHasAssociatedLabelOptions = [ ControlHasAssociatedLabelOption?, ]; /** * Enforce that a control (an interactive element) has a text label. * * @see [control-has-associated-label](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/control-has-associated-label.md) */ type ControlHasAssociatedLabelRuleConfig = RuleConfig; /** * Enforce that a control (an interactive element) has a text label. * * @see [control-has-associated-label](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/control-has-associated-label.md) */ interface ControlHasAssociatedLabelRule { /** * Enforce that a control (an interactive element) has a text label. * * @see [control-has-associated-label](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/control-has-associated-label.md) */ 'jsx-a11y/control-has-associated-label': ControlHasAssociatedLabelRuleConfig; } /** * Option. */ interface HeadingHasContentOption { components?: string[]; [k: string]: any; } /** * Options. */ type HeadingHasContentOptions = [HeadingHasContentOption?]; /** * Enforce heading (`h1`, `h2`, etc) elements contain accessible content. * * @see [heading-has-content](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/heading-has-content.md) */ type HeadingHasContentRuleConfig = RuleConfig; /** * Enforce heading (`h1`, `h2`, etc) elements contain accessible content. * * @see [heading-has-content](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/heading-has-content.md) */ interface HeadingHasContentRule { /** * Enforce heading (`h1`, `h2`, etc) elements contain accessible content. * * @see [heading-has-content](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/heading-has-content.md) */ 'jsx-a11y/heading-has-content': HeadingHasContentRuleConfig; } /** * Option. */ interface HtmlHasLangOption { [k: string]: any; } /** * Options. */ type HtmlHasLangOptions = [HtmlHasLangOption?]; /** * Enforce `` element has `lang` prop. * * @see [html-has-lang](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/html-has-lang.md) */ type HtmlHasLangRuleConfig = RuleConfig; /** * Enforce `` element has `lang` prop. * * @see [html-has-lang](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/html-has-lang.md) */ interface HtmlHasLangRule { /** * Enforce `` element has `lang` prop. * * @see [html-has-lang](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/html-has-lang.md) */ 'jsx-a11y/html-has-lang': HtmlHasLangRuleConfig; } /** * Option. */ interface IframeHasTitleOption { [k: string]: any; } /** * Options. */ type IframeHasTitleOptions = [IframeHasTitleOption?]; /** * Enforce iframe elements have a title attribute. * * @see [iframe-has-title](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/iframe-has-title.md) */ type IframeHasTitleRuleConfig = RuleConfig; /** * Enforce iframe elements have a title attribute. * * @see [iframe-has-title](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/iframe-has-title.md) */ interface IframeHasTitleRule { /** * Enforce iframe elements have a title attribute. * * @see [iframe-has-title](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/iframe-has-title.md) */ 'jsx-a11y/iframe-has-title': IframeHasTitleRuleConfig; } /** * Option. */ interface ImgRedundantAltOption { components?: string[]; words?: string[]; [k: string]: any; } /** * Options. */ type ImgRedundantAltOptions = [ImgRedundantAltOption?]; /** * Enforce `` alt prop does not contain the word "image", "picture", or "photo". * * @see [img-redundant-alt](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/img-redundant-alt.md) */ type ImgRedundantAltRuleConfig = RuleConfig; /** * Enforce `` alt prop does not contain the word "image", "picture", or "photo". * * @see [img-redundant-alt](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/img-redundant-alt.md) */ interface ImgRedundantAltRule { /** * Enforce `` alt prop does not contain the word "image", "picture", or "photo". * * @see [img-redundant-alt](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/img-redundant-alt.md) */ 'jsx-a11y/img-redundant-alt': ImgRedundantAltRuleConfig; } /** * Option. */ interface InteractiveSupportsFocusOption { /** * @minItems 0 */ tabbable?: ( | 'button' | 'checkbox' | 'columnheader' | 'combobox' | 'grid' | 'gridcell' | 'link' | 'listbox' | 'menu' | 'menubar' | 'menuitem' | 'menuitemcheckbox' | 'menuitemradio' | 'option' | 'progressbar' | 'radio' | 'radiogroup' | 'row' | 'rowheader' | 'scrollbar' | 'searchbox' | 'slider' | 'spinbutton' | 'switch' | 'tab' | 'tablist' | 'textbox' | 'tree' | 'treegrid' | 'treeitem' | 'doc-backlink' | 'doc-biblioref' | 'doc-glossref' | 'doc-noteref' )[]; [k: string]: any; } /** * Options. */ type InteractiveSupportsFocusOptions = [InteractiveSupportsFocusOption?]; /** * Enforce that elements with interactive handlers like `onClick` must be focusable. * * @see [interactive-supports-focus](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/interactive-supports-focus.md) */ type InteractiveSupportsFocusRuleConfig = RuleConfig; /** * Enforce that elements with interactive handlers like `onClick` must be focusable. * * @see [interactive-supports-focus](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/interactive-supports-focus.md) */ interface InteractiveSupportsFocusRule { /** * Enforce that elements with interactive handlers like `onClick` must be focusable. * * @see [interactive-supports-focus](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/interactive-supports-focus.md) */ 'jsx-a11y/interactive-supports-focus': InteractiveSupportsFocusRuleConfig; } /** * Option. */ interface LabelHasAssociatedControlOption { labelComponents?: string[]; labelAttributes?: string[]; controlComponents?: string[]; /** * Assert that the label has htmlFor, a nested label, both or either */ assert?: 'htmlFor' | 'nesting' | 'both' | 'either'; /** * JSX tree depth limit to check for accessible label */ depth?: number; [k: string]: any; } /** * Options. */ type LabelHasAssociatedControlOptions = [ LabelHasAssociatedControlOption?, ]; /** * Enforce that a `label` tag has a text label and an associated control. * * @see [label-has-associated-control](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/label-has-associated-control.md) */ type LabelHasAssociatedControlRuleConfig = RuleConfig; /** * Enforce that a `label` tag has a text label and an associated control. * * @see [label-has-associated-control](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/label-has-associated-control.md) */ interface LabelHasAssociatedControlRule { /** * Enforce that a `label` tag has a text label and an associated control. * * @see [label-has-associated-control](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/label-has-associated-control.md) */ 'jsx-a11y/label-has-associated-control': LabelHasAssociatedControlRuleConfig; } /** * Option. */ interface LabelHasForOption { components?: string[]; required?: | ('nesting' | 'id') | { /** * @minItems 0 */ some: ('nesting' | 'id')[]; [k: string]: any; } | { /** * @minItems 0 */ every: ('nesting' | 'id')[]; [k: string]: any; }; allowChildren?: boolean; [k: string]: any; } /** * Options. */ type LabelHasForOptions = [LabelHasForOption?]; /** * Enforce that `