{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Oxlintrc",
  "description": "Oxlint Configuration File\n\nThis configuration is aligned with ESLint v8's configuration schema (`eslintrc.json`).\n\nUsage: `oxlint -c oxlintrc.json`\n\nExample\n\n`.oxlintrc.json`\n\n```json\n{\n\"$schema\": \"./node_modules/oxlint/configuration_schema.json\",\n\"plugins\": [\"import\", \"typescript\", \"unicorn\"],\n\"env\": {\n\"browser\": true\n},\n\"globals\": {\n\"foo\": \"readonly\"\n},\n\"settings\": {\n\"react\": {\n\"version\": \"18.2.0\"\n},\n\"custom\": { \"option\": true }\n},\n\"rules\": {\n\"eqeqeq\": \"warn\",\n\"import/no-cycle\": \"error\",\n\"react/self-closing-comp\": [\"error\", { \"html\": false }]\n},\n\"overrides\": [\n{\n\"files\": [\"*.test.ts\", \"*.spec.ts\"],\n\"rules\": {\n\"@typescript-eslint/no-explicit-any\": \"off\"\n}\n}\n]\n}\n```\n\n`oxlint.config.ts`\n\n```ts\nimport { defineConfig } from \"oxlint\";\n\nexport default defineConfig({\nplugins: [\"import\", \"typescript\", \"unicorn\"],\nenv: {\n\"browser\": true\n},\nglobals: {\n\"foo\": \"readonly\"\n},\nsettings: {\nreact: {\nversion: \"18.2.0\"\n},\ncustom: { option: true }\n},\nrules: {\n\"eqeqeq\": \"warn\",\n\"import/no-cycle\": \"error\",\n\"react/self-closing-comp\": [\"error\", { \"html\": false }]\n},\noverrides: [\n{\nfiles: [\"*.test.ts\", \"*.spec.ts\"],\nrules: {\n\"@typescript-eslint/no-explicit-any\": \"off\"\n}\n}\n]\n});\n```",
  "type": "object",
  "properties": {
    "$schema": {
      "description": "Schema URI for editor tooling.",
      "type": "string",
      "markdownDescription": "Schema URI for editor tooling."
    },
    "categories": {
      "default": {},
      "allOf": [
        {
          "$ref": "#/definitions/OxlintCategories"
        }
      ]
    },
    "env": {
      "description": "Environments enable and disable collections of global variables.",
      "default": {
        "builtin": true
      },
      "allOf": [
        {
          "$ref": "#/definitions/OxlintEnv"
        }
      ],
      "markdownDescription": "Environments enable and disable collections of global variables."
    },
    "extends": {
      "description": "Paths of configuration files that this configuration file extends (inherits from). The files\nare resolved relative to the location of the configuration file that contains the `extends`\nproperty. The configuration files are merged from the first to the last, with the last file\noverriding the previous ones.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "markdownDescription": "Paths of configuration files that this configuration file extends (inherits from). The files\nare resolved relative to the location of the configuration file that contains the `extends`\nproperty. The configuration files are merged from the first to the last, with the last file\noverriding the previous ones."
    },
    "globals": {
      "description": "Enabled or disabled specific global variables.",
      "default": {},
      "allOf": [
        {
          "$ref": "#/definitions/OxlintGlobals"
        }
      ],
      "markdownDescription": "Enabled or disabled specific global variables."
    },
    "ignorePatterns": {
      "description": "Globs to ignore during linting. These are resolved from the configuration file path.",
      "default": [],
      "type": "array",
      "items": {
        "type": "string"
      },
      "markdownDescription": "Globs to ignore during linting. These are resolved from the configuration file path."
    },
    "jsPlugins": {
      "description": "JS plugins, allows usage of ESLint plugins with Oxlint.\n\nRead more about JS plugins in\n[the docs](https://oxc.rs/docs/guide/usage/linter/js-plugins.html).\n\nNote: JS plugins are in alpha and not subject to semver.\n\nExamples:\n\nBasic usage with a local plugin path.\n\n```json\n{\n\"jsPlugins\": [\"./custom-plugin.js\"],\n\"rules\": {\n\"custom/rule-name\": \"warn\"\n}\n}\n```\n\nBasic usage with a TypeScript plugin and a local plugin path.\n\nTypeScript plugin files are supported in the following environments:\n- Deno and Bun: TypeScript files are supported natively.\n- Node.js >=22.18.0 and Node.js ^20.19.0: TypeScript files are supported natively with built-in\ntype-stripping enabled by default.\n\nFor older Node.js versions, TypeScript plugins are not supported. Please use JavaScript plugins or upgrade your Node version.\n\n```json\n{\n\"jsPlugins\": [\"./custom-plugin.ts\"],\n\"rules\": {\n\"custom/rule-name\": \"warn\"\n}\n}\n```\n\nUsing a built-in Rust plugin alongside a JS plugin with the same name\nby giving the JS plugin an alias.\n\n```json\n{\n\"plugins\": [\"import\"],\n\"jsPlugins\": [\n{ \"name\": \"import-js\", \"specifier\": \"eslint-plugin-import\" }\n],\n\"rules\": {\n\"import/no-cycle\": \"error\",\n\"import-js/no-unresolved\": \"warn\"\n}\n}\n```",
      "anyOf": [
        {
          "type": "null"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ExternalPluginEntry"
          },
          "uniqueItems": true
        }
      ],
      "markdownDescription": "JS plugins, allows usage of ESLint plugins with Oxlint.\n\nRead more about JS plugins in\n[the docs](https://oxc.rs/docs/guide/usage/linter/js-plugins.html).\n\nNote: JS plugins are in alpha and not subject to semver.\n\nExamples:\n\nBasic usage with a local plugin path.\n\n```json\n{\n\"jsPlugins\": [\"./custom-plugin.js\"],\n\"rules\": {\n\"custom/rule-name\": \"warn\"\n}\n}\n```\n\nBasic usage with a TypeScript plugin and a local plugin path.\n\nTypeScript plugin files are supported in the following environments:\n- Deno and Bun: TypeScript files are supported natively.\n- Node.js >=22.18.0 and Node.js ^20.19.0: TypeScript files are supported natively with built-in\ntype-stripping enabled by default.\n\nFor older Node.js versions, TypeScript plugins are not supported. Please use JavaScript plugins or upgrade your Node version.\n\n```json\n{\n\"jsPlugins\": [\"./custom-plugin.ts\"],\n\"rules\": {\n\"custom/rule-name\": \"warn\"\n}\n}\n```\n\nUsing a built-in Rust plugin alongside a JS plugin with the same name\nby giving the JS plugin an alias.\n\n```json\n{\n\"plugins\": [\"import\"],\n\"jsPlugins\": [\n{ \"name\": \"import-js\", \"specifier\": \"eslint-plugin-import\" }\n],\n\"rules\": {\n\"import/no-cycle\": \"error\",\n\"import-js/no-unresolved\": \"warn\"\n}\n}\n```"
    },
    "options": {
      "description": "Oxlint config options.",
      "allOf": [
        {
          "$ref": "#/definitions/OxlintOptions"
        }
      ],
      "markdownDescription": "Oxlint config options."
    },
    "overrides": {
      "description": "Add, remove, or otherwise reconfigure rules for specific files or groups of files.",
      "allOf": [
        {
          "$ref": "#/definitions/OxlintOverrides"
        }
      ],
      "markdownDescription": "Add, remove, or otherwise reconfigure rules for specific files or groups of files."
    },
    "plugins": {
      "description": "Enabled built-in plugins for Oxlint.\nYou can view the list of available plugins on\n[the website](https://oxc.rs/docs/guide/usage/linter/plugins.html#supported-plugins).\n\nNOTE: Setting the `plugins` field will overwrite the base set of plugins.\nThe `plugins` array should reflect all of the plugins you want to use.",
      "default": null,
      "allOf": [
        {
          "$ref": "#/definitions/LintPlugins"
        }
      ],
      "markdownDescription": "Enabled built-in plugins for Oxlint.\nYou can view the list of available plugins on\n[the website](https://oxc.rs/docs/guide/usage/linter/plugins.html#supported-plugins).\n\nNOTE: Setting the `plugins` field will overwrite the base set of plugins.\nThe `plugins` array should reflect all of the plugins you want to use."
    },
    "rules": {
      "description": "Example\n\n`.oxlintrc.json`\n\n```json\n{\n\"$schema\": \"./node_modules/oxlint/configuration_schema.json\",\n\"rules\": {\n\"eqeqeq\": \"warn\",\n\"import/no-cycle\": \"error\",\n\"prefer-const\": [\"error\", { \"ignoreReadBeforeAssign\": true }]\n}\n}\n```\n\nSee [Oxlint Rules](https://oxc.rs/docs/guide/usage/linter/rules.html) for the list of\nrules.",
      "default": {},
      "allOf": [
        {
          "$ref": "#/definitions/OxlintRules"
        }
      ],
      "markdownDescription": "Example\n\n`.oxlintrc.json`\n\n```json\n{\n\"$schema\": \"./node_modules/oxlint/configuration_schema.json\",\n\"rules\": {\n\"eqeqeq\": \"warn\",\n\"import/no-cycle\": \"error\",\n\"prefer-const\": [\"error\", { \"ignoreReadBeforeAssign\": true }]\n}\n}\n```\n\nSee [Oxlint Rules](https://oxc.rs/docs/guide/usage/linter/rules.html) for the list of\nrules."
    },
    "settings": {
      "description": "Plugin-specific configuration for both built-in and custom plugins.\nThis includes settings for built-in plugins such as `react` and `jsdoc`\nas well as configuring settings for JS custom plugins loaded via `jsPlugins`.",
      "default": {
        "jsx-a11y": {
          "polymorphicPropName": null,
          "components": {},
          "attributes": {}
        },
        "next": {
          "rootDir": []
        },
        "react": {
          "formComponents": [],
          "linkComponents": [],
          "version": null,
          "componentWrapperFunctions": []
        },
        "jsdoc": {
          "ignorePrivate": false,
          "ignoreInternal": false,
          "ignoreReplacesDocs": true,
          "overrideReplacesDocs": true,
          "augmentsExtendsReplacesDocs": false,
          "implementsReplacesDocs": false,
          "exemptDestructuredRootsFromChecks": false,
          "tagNamePreference": {}
        },
        "vitest": {
          "typecheck": false
        },
        "jest": {
          "version": null
        }
      },
      "allOf": [
        {
          "$ref": "#/definitions/OxlintSettings"
        }
      ],
      "markdownDescription": "Plugin-specific configuration for both built-in and custom plugins.\nThis includes settings for built-in plugins such as `react` and `jsdoc`\nas well as configuring settings for JS custom plugins loaded via `jsPlugins`."
    }
  },
  "additionalProperties": false,
  "allowComments": true,
  "allowTrailingCommas": true,
  "definitions": {
    "AbsoluteFirst": {
      "oneOf": [
        {
          "description": "Forces absolute imports to be listed before relative imports.\n\nExamples of **incorrect** code for this rule with `\"absolute-first\"`:\n```js\nimport { x } from './foo';\nimport { y } from 'bar'\n```\n\nExamples of **correct** code for this rule with `\"absolute-first\"`:\n```js\nimport { y } from 'bar';\nimport { x } from './foo'\n```",
          "type": "string",
          "enum": [
            "absolute-first"
          ],
          "markdownDescription": "Forces absolute imports to be listed before relative imports.\n\nExamples of **incorrect** code for this rule with `\"absolute-first\"`:\n```js\nimport { x } from './foo';\nimport { y } from 'bar'\n```\n\nExamples of **correct** code for this rule with `\"absolute-first\"`:\n```js\nimport { y } from 'bar';\nimport { x } from './foo'\n```"
        },
        {
          "description": "Disables the absolute-first behavior.\nThis is the default behavior.",
          "type": "string",
          "enum": [
            "disable-absolute-first"
          ],
          "markdownDescription": "Disables the absolute-first behavior.\nThis is the default behavior."
        }
      ]
    },
    "AccessibilityLevel": {
      "oneOf": [
        {
          "description": "Always require an accessibility modifier.",
          "type": "string",
          "enum": [
            "explicit"
          ],
          "markdownDescription": "Always require an accessibility modifier."
        },
        {
          "description": "Require an accessibility modifier except when public.",
          "type": "string",
          "enum": [
            "no-public"
          ],
          "markdownDescription": "Require an accessibility modifier except when public."
        },
        {
          "description": "Never check whether there is an accessibility modifier.",
          "type": "string",
          "enum": [
            "off"
          ],
          "markdownDescription": "Never check whether there is an accessibility modifier."
        }
      ]
    },
    "AccessibilityOverrides": {
      "type": "object",
      "properties": {
        "accessors": {
          "description": "Which member accessibility modifier requirements to apply for accessors (getters/setters).",
          "allOf": [
            {
              "$ref": "#/definitions/AccessibilityLevel"
            }
          ],
          "markdownDescription": "Which member accessibility modifier requirements to apply for accessors (getters/setters)."
        },
        "constructors": {
          "description": "Which member accessibility modifier requirements to apply for constructors.",
          "allOf": [
            {
              "$ref": "#/definitions/AccessibilityLevel"
            }
          ],
          "markdownDescription": "Which member accessibility modifier requirements to apply for constructors."
        },
        "methods": {
          "description": "Which member accessibility modifier requirements to apply for methods.",
          "allOf": [
            {
              "$ref": "#/definitions/AccessibilityLevel"
            }
          ],
          "markdownDescription": "Which member accessibility modifier requirements to apply for methods."
        },
        "parameterProperties": {
          "description": "Which member accessibility modifier requirements to apply for parameter properties.",
          "allOf": [
            {
              "$ref": "#/definitions/AccessibilityLevel"
            }
          ],
          "markdownDescription": "Which member accessibility modifier requirements to apply for parameter properties."
        },
        "properties": {
          "description": "Which member accessibility modifier requirements to apply for properties.",
          "allOf": [
            {
              "$ref": "#/definitions/AccessibilityLevel"
            }
          ],
          "markdownDescription": "Which member accessibility modifier requirements to apply for properties."
        }
      },
      "additionalProperties": false
    },
    "AccessorPairsConfig": {
      "type": "object",
      "properties": {
        "enforceForClassMembers": {
          "description": "Enforce the rule for class members.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Enforce the rule for class members."
        },
        "enforceForTSTypes": {
          "description": "Enforce the rule for TypeScript interfaces and types.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Enforce the rule for TypeScript interfaces and types."
        },
        "getWithoutSet": {
          "description": "Report a getter without a setter.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Report a getter without a setter."
        },
        "setWithoutGet": {
          "description": "Report a setter without a getter.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Report a setter without a getter."
        }
      },
      "additionalProperties": false
    },
    "AllKeyword": {
      "type": "string",
      "enum": [
        "all"
      ]
    },
    "AllowConstantLoopConditions": {
      "description": "Represents the different ways `allowConstantLoopConditions` can be specified in JSON.\nCan be:\n- `true` or `false`\n- A string enum (`\"never\"`, `\"always\"`, `\"only-allowed-literals\"`)",
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/AllowConstantLoopConditionsMode"
        }
      ],
      "markdownDescription": "Represents the different ways `allowConstantLoopConditions` can be specified in JSON.\nCan be:\n- `true` or `false`\n- A string enum (`\"never\"`, `\"always\"`, `\"only-allowed-literals\"`)"
    },
    "AllowConstantLoopConditionsMode": {
      "type": "string",
      "enum": [
        "never",
        "always",
        "only-allowed-literals"
      ]
    },
    "AllowInGenericTypeArguments": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "AllowInterfaces": {
      "oneOf": [
        {
          "description": "Never allow interfaces with no fields.",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Never allow interfaces with no fields."
        },
        {
          "description": "Always allow interfaces with no fields.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Always allow interfaces with no fields."
        },
        {
          "description": "Allow empty interfaces that `extend` from a single base interface.\n\nExamples of **correct** code for this rule with `{ allowInterfaces: 'with-single-extends' }`:\n```ts\ninterface Base {\nvalue: boolean;\n}\ninterface Derived extends Base {}\n```",
          "type": "string",
          "enum": [
            "with-single-extends"
          ],
          "markdownDescription": "Allow empty interfaces that `extend` from a single base interface.\n\nExamples of **correct** code for this rule with `{ allowInterfaces: 'with-single-extends' }`:\n```ts\ninterface Base {\nvalue: boolean;\n}\ninterface Derived extends Base {}\n```"
        }
      ]
    },
    "AllowKind": {
      "description": "Kinds of functions that can be allowed to be empty.",
      "oneOf": [
        {
          "description": "Allow empty regular functions.\n\n```js\nfunction foo() {}\n```",
          "type": "string",
          "enum": [
            "functions"
          ],
          "markdownDescription": "Allow empty regular functions.\n\n```js\nfunction foo() {}\n```"
        },
        {
          "description": "Allow empty arrow functions.\n\n```js\nconst foo = () => {};\n```",
          "type": "string",
          "enum": [
            "arrowFunctions"
          ],
          "markdownDescription": "Allow empty arrow functions.\n\n```js\nconst foo = () => {};\n```"
        },
        {
          "description": "Allow empty generator functions.\n\n```js\nfunction* foo() {}\n```",
          "type": "string",
          "enum": [
            "generatorFunctions"
          ],
          "markdownDescription": "Allow empty generator functions.\n\n```js\nfunction* foo() {}\n```"
        },
        {
          "description": "Allow empty methods.\n\n```js\nclass Foo {\nbar() {}\n}\n```",
          "type": "string",
          "enum": [
            "methods"
          ],
          "markdownDescription": "Allow empty methods.\n\n```js\nclass Foo {\nbar() {}\n}\n```"
        },
        {
          "description": "Allow empty generator methods.\n\n```js\nclass Foo {\n*bar() {}\n}\n```",
          "type": "string",
          "enum": [
            "generatorMethods"
          ],
          "markdownDescription": "Allow empty generator methods.\n\n```js\nclass Foo {\n*bar() {}\n}\n```"
        },
        {
          "description": "Allow empty getters.\n\n```js\nclass Foo {\nget bar() {}\n}\n```",
          "type": "string",
          "enum": [
            "getters"
          ],
          "markdownDescription": "Allow empty getters.\n\n```js\nclass Foo {\nget bar() {}\n}\n```"
        },
        {
          "description": "Allow empty setters.\n\n```js\nclass Foo {\nset bar(value) {}\n}\n```",
          "type": "string",
          "enum": [
            "setters"
          ],
          "markdownDescription": "Allow empty setters.\n\n```js\nclass Foo {\nset bar(value) {}\n}\n```"
        },
        {
          "description": "Allow empty constructors.\n\n```js\nclass Foo {\nconstructor() {}\n}\n```",
          "type": "string",
          "enum": [
            "constructors"
          ],
          "markdownDescription": "Allow empty constructors.\n\n```js\nclass Foo {\nconstructor() {}\n}\n```"
        },
        {
          "description": "Allow empty async functions.\n\n```js\nasync function foo() {}\n```",
          "type": "string",
          "enum": [
            "asyncFunctions"
          ],
          "markdownDescription": "Allow empty async functions.\n\n```js\nasync function foo() {}\n```"
        },
        {
          "description": "Allow empty async methods.\n\n```js\nclass Foo {\nasync bar() {}\n}\n```",
          "type": "string",
          "enum": [
            "asyncMethods"
          ],
          "markdownDescription": "Allow empty async methods.\n\n```js\nclass Foo {\nasync bar() {}\n}\n```"
        },
        {
          "description": "Allow empty private constructors.\n\n```ts\nclass Foo {\nprivate constructor() {}\n}\n```",
          "type": "string",
          "enum": [
            "privateConstructors"
          ],
          "markdownDescription": "Allow empty private constructors.\n\n```ts\nclass Foo {\nprivate constructor() {}\n}\n```"
        },
        {
          "description": "Allow empty protected constructors.\n\n```ts\nclass Foo {\nprotected constructor() {}\n}\n```",
          "type": "string",
          "enum": [
            "protectedConstructors"
          ],
          "markdownDescription": "Allow empty protected constructors.\n\n```ts\nclass Foo {\nprotected constructor() {}\n}\n```"
        },
        {
          "description": "Allow empty decorated functions.\n\n```js\nclass Foo {\n@decorator()\nbar() {}\n}\n```",
          "type": "string",
          "enum": [
            "decoratedFunctions"
          ],
          "markdownDescription": "Allow empty decorated functions.\n\n```js\nclass Foo {\n@decorator()\nbar() {}\n}\n```"
        },
        {
          "description": "Allow empty override methods.\n\n```ts\nclass Foo extends Base {\noverride bar() {}\n}\n```",
          "type": "string",
          "enum": [
            "overrideMethods"
          ],
          "markdownDescription": "Allow empty override methods.\n\n```ts\nclass Foo extends Base {\noverride bar() {}\n}\n```"
        }
      ],
      "markdownDescription": "Kinds of functions that can be allowed to be empty."
    },
    "AllowObjectTypes": {
      "oneOf": [
        {
          "description": "Never allow object type literals with no fields.",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Never allow object type literals with no fields."
        },
        {
          "description": "Always allow object type literals with no fields.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Always allow object type literals with no fields."
        }
      ]
    },
    "AllowSingleElementEquality": {
      "oneOf": [
        {
          "description": "Always allow equality checks against the first or last character.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Always allow equality checks against the first or last character."
        },
        {
          "description": "Never allow equality checks against the first or last character.",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Never allow equality checks against the first or last character."
        }
      ]
    },
    "AllowWarnDeny": {
      "oneOf": [
        {
          "description": "Oxlint rule.\n- \"allow\" or \"off\": Turn off the rule.\n- \"warn\": Turn the rule on as a warning (doesn't affect exit code).\n- \"error\" or \"deny\": Turn the rule on as an error (will exit with a failure code).",
          "type": "string",
          "enum": [
            "allow",
            "off",
            "warn",
            "error",
            "deny"
          ],
          "markdownDescription": "Oxlint rule.\n- \"allow\" or \"off\": Turn off the rule.\n- \"warn\": Turn the rule on as a warning (doesn't affect exit code).\n- \"error\" or \"deny\": Turn the rule on as an error (will exit with a failure code)."
        },
        {
          "description": "Oxlint rule.\n    \n- 0: Turn off the rule.\n- 1: Turn the rule on as a warning (doesn't affect exit code).\n- 2: Turn the rule on as an error (will exit with a failure code).",
          "type": "integer",
          "format": "uint32",
          "maximum": 2.0,
          "minimum": 0.0,
          "markdownDescription": "Oxlint rule.\n    \n- 0: Turn off the rule.\n- 1: Turn the rule on as a warning (doesn't affect exit code).\n- 2: Turn the rule on as an error (will exit with a failure code)."
        }
      ]
    },
    "AllowYoda": {
      "oneOf": [
        {
          "description": "The default `\"never\"` option can have exception options in an object literal, via `exceptRange` and `onlyEquality`.",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "The default `\"never\"` option can have exception options in an object literal, via `exceptRange` and `onlyEquality`."
        },
        {
          "description": "The `\"always\"` option requires that literal values must always come first in comparisons.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "The `\"always\"` option requires that literal values must always come first in comparisons."
        }
      ]
    },
    "AllowedOrDisallowInFunc": {
      "type": "string",
      "enum": [
        "allowed",
        "disallow-in-func"
      ]
    },
    "AltTextConfigSchema": {
      "type": "object",
      "properties": {
        "area": {
          "description": "Custom components to check for alt text on `area` elements.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Custom components to check for alt text on `area` elements."
        },
        "elements": {
          "description": "Custom components to check for alt text on any of the supported elements.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/AltTextElements"
          },
          "markdownDescription": "Custom components to check for alt text on any of the supported elements."
        },
        "img": {
          "description": "Custom components to check for alt text on `img` elements.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Custom components to check for alt text on `img` elements."
        },
        "input[type=\"image\"]": {
          "description": "Custom components to check for alt text on `input[type=\"image\"]` elements.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Custom components to check for alt text on `input[type=\"image\"]` elements."
        },
        "object": {
          "description": "Custom components to check for alt text on `object` elements.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Custom components to check for alt text on `object` elements."
        }
      },
      "additionalProperties": false
    },
    "AltTextElements": {
      "type": "string",
      "enum": [
        "img",
        "object",
        "area",
        "input[type=\"image\"]"
      ]
    },
    "AlwaysNever": {
      "type": "string",
      "enum": [
        "always",
        "never"
      ]
    },
    "AlwaysReturnConfig": {
      "type": "object",
      "properties": {
        "ignoreAssignmentVariable": {
          "description": "You can pass an `{ ignoreAssignmentVariable: [] }` as an option to this rule\nwith a list of variable names so that the last `then()` callback in a promise\nchain does not warn if it does an assignment to a global variable. Default is\n`[\"globalThis\"]`.\n\n```javascript\n/* promise/always-return: [\"error\", { ignoreAssignmentVariable: [\"globalThis\"] }] */\n\n// OK\npromise.then((x) => {\nglobalThis = x\n})\n\npromise.then((x) => {\nglobalThis.x = x\n})\n\n// OK\npromise.then((x) => {\nglobalThis.x.y = x\n})\n\n// NG\npromise.then((x) => {\nanyOtherVariable = x\n})\n\n// NG\npromise.then((x) => {\nanyOtherVariable.x = x\n})\n\n// NG\npromise.then((x) => {\nx()\n})\n```",
          "default": [
            "globalThis"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true,
          "markdownDescription": "You can pass an `{ ignoreAssignmentVariable: [] }` as an option to this rule\nwith a list of variable names so that the last `then()` callback in a promise\nchain does not warn if it does an assignment to a global variable. Default is\n`[\"globalThis\"]`.\n\n```javascript\n/* promise/always-return: [\"error\", { ignoreAssignmentVariable: [\"globalThis\"] }] */\n\n// OK\npromise.then((x) => {\nglobalThis = x\n})\n\npromise.then((x) => {\nglobalThis.x = x\n})\n\n// OK\npromise.then((x) => {\nglobalThis.x.y = x\n})\n\n// NG\npromise.then((x) => {\nanyOtherVariable = x\n})\n\n// NG\npromise.then((x) => {\nanyOtherVariable.x = x\n})\n\n// NG\npromise.then((x) => {\nx()\n})\n```"
        },
        "ignoreLastCallback": {
          "description": "You can pass an `{ ignoreLastCallback: true }` as an option to this rule so that\nthe last `then()` callback in a promise chain does not warn if it does not have\na `return`. Default is `false`.\n\n```javascript\n// OK\npromise.then((x) => {\nconsole.log(x)\n})\n// OK\nvoid promise.then((x) => {\nconsole.log(x)\n})\n// OK\nawait promise.then((x) => {\nconsole.log(x)\n})\n\npromise\n// NG\n.then((x) => {\nconsole.log(x)\n})\n// OK\n.then((x) => {\nconsole.log(x)\n})\n\n// NG\nconst v = promise.then((x) => {\nconsole.log(x)\n})\n// NG\nconst v = await promise.then((x) => {\nconsole.log(x)\n})\nfunction foo() {\n// NG\nreturn promise.then((x) => {\nconsole.log(x)\n})\n}\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "You can pass an `{ ignoreLastCallback: true }` as an option to this rule so that\nthe last `then()` callback in a promise chain does not warn if it does not have\na `return`. Default is `false`.\n\n```javascript\n// OK\npromise.then((x) => {\nconsole.log(x)\n})\n// OK\nvoid promise.then((x) => {\nconsole.log(x)\n})\n// OK\nawait promise.then((x) => {\nconsole.log(x)\n})\n\npromise\n// NG\n.then((x) => {\nconsole.log(x)\n})\n// OK\n.then((x) => {\nconsole.log(x)\n})\n\n// NG\nconst v = promise.then((x) => {\nconsole.log(x)\n})\n// NG\nconst v = await promise.then((x) => {\nconsole.log(x)\n})\nfunction foo() {\n// NG\nreturn promise.then((x) => {\nconsole.log(x)\n})\n}\n```"
        }
      },
      "additionalProperties": false
    },
    "AnchorAmbiguousTextConfig": {
      "type": "object",
      "properties": {
        "words": {
          "description": "List of ambiguous words or phrases that should be flagged in anchor text.",
          "default": [
            "click here",
            "here",
            "link",
            "a link",
            "learn more"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of ambiguous words or phrases that should be flagged in anchor text."
        }
      },
      "additionalProperties": false
    },
    "AnchorIsValidAspect": {
      "type": "string",
      "enum": [
        "noHref",
        "invalidHref",
        "preferButton"
      ]
    },
    "AnchorIsValidConfig": {
      "type": "object",
      "properties": {
        "aspects": {
          "description": "Sub-rule aspects to run.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/AnchorIsValidAspect"
          },
          "markdownDescription": "Sub-rule aspects to run."
        },
        "components": {
          "description": "Custom components to treat as anchor elements.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Custom components to treat as anchor elements."
        },
        "specialLink": {
          "description": "Custom prop names to treat as link destinations.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Custom prop names to treat as link destinations."
        }
      },
      "additionalProperties": false
    },
    "ArgsOption": {
      "oneOf": [
        {
          "description": "Unused positional arguments that occur before the last used argument\nwill not be checked, but all named arguments and all positional\narguments after the last used argument will be checked.",
          "type": "string",
          "enum": [
            "after-used"
          ],
          "markdownDescription": "Unused positional arguments that occur before the last used argument\nwill not be checked, but all named arguments and all positional\narguments after the last used argument will be checked."
        },
        {
          "description": "All named arguments must be used",
          "type": "string",
          "enum": [
            "all"
          ],
          "markdownDescription": "All named arguments must be used"
        },
        {
          "description": "Do not check arguments",
          "type": "string",
          "enum": [
            "none"
          ],
          "markdownDescription": "Do not check arguments"
        }
      ]
    },
    "AriaRoleConfig": {
      "type": "object",
      "properties": {
        "allowedInvalidRoles": {
          "description": "Custom roles that should be allowed in addition to the ARIA spec.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Custom roles that should be allowed in addition to the ARIA spec."
        },
        "ignoreNonDOM": {
          "description": "Determines if developer-created components are checked.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Determines if developer-created components are checked."
        }
      },
      "additionalProperties": false
    },
    "ArrayCallbackReturn": {
      "type": "object",
      "properties": {
        "allowImplicit": {
          "description": "When set to true, allows callbacks of methods that require a return value to\nimplicitly return undefined with a return statement containing no expression.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to true, allows callbacks of methods that require a return value to\nimplicitly return undefined with a return statement containing no expression."
        },
        "allowVoid": {
          "description": "When set to true, rule will not report the return value with a void operator.\nWorks only if `checkForEach` option is set to true.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to true, rule will not report the return value with a void operator.\nWorks only if `checkForEach` option is set to true."
        },
        "checkForEach": {
          "description": "When set to true, rule will also report forEach callbacks that return a value.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to true, rule will also report forEach callbacks that return a value."
        }
      },
      "additionalProperties": false
    },
    "ArrayLiteralTypeAssertions": {
      "oneOf": [
        {
          "description": "Allow type assertions on array literals.\n\nExamples of **correct** code with this option:\n```ts\nconst x = [1, 2] as number[];\nconst x = ['a'] as Array<string>;\n```",
          "type": "string",
          "enum": [
            "allow"
          ],
          "markdownDescription": "Allow type assertions on array literals.\n\nExamples of **correct** code with this option:\n```ts\nconst x = [1, 2] as number[];\nconst x = ['a'] as Array<string>;\n```"
        },
        {
          "description": "Allow type assertions on array literals only when used as a function parameter,\n`throw` target, or default value.\n\nExamples of **incorrect** code with this option:\n```ts\nconst x = [1, 2] as Foo;\nconst foo = () => [5] as Foo;\n```\n\nExamples of **correct** code with this option:\n```ts\nprint([5] as Foo);\nthrow [1, 2] as Bar;\nfunction f(x = [5] as Foo.Bar) {}\n```",
          "type": "string",
          "enum": [
            "allow-as-parameter"
          ],
          "markdownDescription": "Allow type assertions on array literals only when used as a function parameter,\n`throw` target, or default value.\n\nExamples of **incorrect** code with this option:\n```ts\nconst x = [1, 2] as Foo;\nconst foo = () => [5] as Foo;\n```\n\nExamples of **correct** code with this option:\n```ts\nprint([5] as Foo);\nthrow [1, 2] as Bar;\nfunction f(x = [5] as Foo.Bar) {}\n```"
        },
        {
          "description": "Disallow type assertions on array literals entirely.\n\nExamples of **incorrect** code with this option:\n```ts\nconst x = [1, 2] as Foo;\nprint([5] as Foo);\n```\n\nExamples of **correct** code with this option:\n```ts\nconst x: Foo = [1, 2];\nconst x = [1, 2] satisfies Foo;\n```",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Disallow type assertions on array literals entirely.\n\nExamples of **incorrect** code with this option:\n```ts\nconst x = [1, 2] as Foo;\nprint([5] as Foo);\n```\n\nExamples of **correct** code with this option:\n```ts\nconst x: Foo = [1, 2];\nconst x = [1, 2] satisfies Foo;\n```"
        }
      ]
    },
    "ArrayOption": {
      "oneOf": [
        {
          "description": "Enforce using `T[]` for all array types.\n\nExample of **incorrect** code for this option:\n```ts\nconst arr: Array<number> = new Array<number>();\n```\n\nExample of **correct** code for this option:\n```ts\nconst arr: number[] = new Array<number>();\n```",
          "type": "string",
          "enum": [
            "array"
          ],
          "markdownDescription": "Enforce using `T[]` for all array types.\n\nExample of **incorrect** code for this option:\n```ts\nconst arr: Array<number> = new Array<number>();\n```\n\nExample of **correct** code for this option:\n```ts\nconst arr: number[] = new Array<number>();\n```"
        },
        {
          "description": "Enforce using `T[]` for simple types, and `Array<T>` for complex types.\n\nExample of **incorrect** code for this option:\n```ts\nconst a: (string | number)[] = ['a', 'b'];\nconst b: { prop: string }[] = [{ prop: 'a' }];\nconst c: Array<MyType> = ['a', 'b'];\nconst d: Array<string> = ['a', 'b'];\n```\n\nExample of **correct** code for this option:\n```ts\nconst a: Array<string | number> = ['a', 'b'];\nconst b: Array<{ prop: string }> = [{ prop: 'a' }];\nconst c: string[] = ['a', 'b'];\nconst d: MyType[] = ['a', 'b'];\n```",
          "type": "string",
          "enum": [
            "array-simple"
          ],
          "markdownDescription": "Enforce using `T[]` for simple types, and `Array<T>` for complex types.\n\nExample of **incorrect** code for this option:\n```ts\nconst a: (string | number)[] = ['a', 'b'];\nconst b: { prop: string }[] = [{ prop: 'a' }];\nconst c: Array<MyType> = ['a', 'b'];\nconst d: Array<string> = ['a', 'b'];\n```\n\nExample of **correct** code for this option:\n```ts\nconst a: Array<string | number> = ['a', 'b'];\nconst b: Array<{ prop: string }> = [{ prop: 'a' }];\nconst c: string[] = ['a', 'b'];\nconst d: MyType[] = ['a', 'b'];\n```"
        },
        {
          "description": "Enforce using `Array<T>` for all array types.\n\nExample of **incorrect** code for this option:\n```ts\nconst arr: number[] = new Array<number>();\n```\n\nExample of **correct** code for this option:\n```ts\nconst arr: Array<number> = new Array<number>();\n```",
          "type": "string",
          "enum": [
            "generic"
          ],
          "markdownDescription": "Enforce using `Array<T>` for all array types.\n\nExample of **incorrect** code for this option:\n```ts\nconst arr: number[] = new Array<number>();\n```\n\nExample of **correct** code for this option:\n```ts\nconst arr: Array<number> = new Array<number>();\n```"
        }
      ]
    },
    "ArrayTypeConfig": {
      "type": "object",
      "properties": {
        "default": {
          "description": "The array type expected for mutable cases.",
          "default": "array",
          "allOf": [
            {
              "$ref": "#/definitions/ArrayOption"
            }
          ],
          "markdownDescription": "The array type expected for mutable cases."
        },
        "readonly": {
          "description": "The array type expected for readonly cases. If omitted, the value for `default` will be used.",
          "default": null,
          "allOf": [
            {
              "$ref": "#/definitions/ReadonlyArrayOption"
            }
          ],
          "markdownDescription": "The array type expected for readonly cases. If omitted, the value for `default` will be used."
        }
      },
      "additionalProperties": false
    },
    "ArrowBodyStyle": {
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/Mode2"
        },
        {
          "$ref": "#/definitions/ArrowBodyStyleConfig"
        }
      ],
      "maxItems": 2,
      "minItems": 2
    },
    "ArrowBodyStyleConfig": {
      "type": "object",
      "properties": {
        "requireReturnForObjectLiteral": {
          "description": "Requires braces and an explicit return for object literals. This option only applies when\nthe first option is `\"as-needed\"`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Requires braces and an explicit return for object literals. This option only applies when\nthe first option is `\"as-needed\"`."
        }
      },
      "additionalProperties": false
    },
    "Assert": {
      "oneOf": [
        {
          "description": "Assert that the label uses `htmlFor` to associate a control.",
          "type": "string",
          "enum": [
            "htmlFor"
          ],
          "markdownDescription": "Assert that the label uses `htmlFor` to associate a control."
        },
        {
          "description": "Assert that the label has a nested control",
          "type": "string",
          "enum": [
            "nesting"
          ],
          "markdownDescription": "Assert that the label has a nested control"
        },
        {
          "description": "Assert that the label uses both `htmlFor` and nesting for associating a control",
          "type": "string",
          "enum": [
            "both"
          ],
          "markdownDescription": "Assert that the label uses both `htmlFor` and nesting for associating a control"
        },
        {
          "description": "Assert that the label uses either `htmlFor` or nesting for associating a control",
          "type": "string",
          "enum": [
            "either"
          ],
          "markdownDescription": "Assert that the label uses either `htmlFor` or nesting for associating a control"
        }
      ]
    },
    "AssertionStyle": {
      "oneOf": [
        {
          "description": "Enforce `as` syntax for type assertions.\n\nExamples of **incorrect** code with this option:\n```ts\nconst value = <Foo>bar;\n```\n\nExamples of **correct** code with this option:\n```ts\nconst value = bar as Foo;\n```",
          "type": "string",
          "enum": [
            "as"
          ],
          "markdownDescription": "Enforce `as` syntax for type assertions.\n\nExamples of **incorrect** code with this option:\n```ts\nconst value = <Foo>bar;\n```\n\nExamples of **correct** code with this option:\n```ts\nconst value = bar as Foo;\n```"
        },
        {
          "description": "Enforce angle-bracket syntax for type assertions.\n\nExamples of **incorrect** code with this option:\n```ts\nconst value = bar as Foo;\n```\n\nExamples of **correct** code with this option:\n```ts\nconst value = <Foo>bar;\n```",
          "type": "string",
          "enum": [
            "angle-bracket"
          ],
          "markdownDescription": "Enforce angle-bracket syntax for type assertions.\n\nExamples of **incorrect** code with this option:\n```ts\nconst value = bar as Foo;\n```\n\nExamples of **correct** code with this option:\n```ts\nconst value = <Foo>bar;\n```"
        },
        {
          "description": "Disallow type assertions entirely.\n\nExamples of **incorrect** code with this option:\n```ts\nconst value = bar as Foo;\nconst value = <Foo>bar;\n```\n\nExamples of **correct** code with this option:\n```ts\nconst value: Foo = bar;\nconst value = bar satisfies Foo;\n```",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Disallow type assertions entirely.\n\nExamples of **incorrect** code with this option:\n```ts\nconst value = bar as Foo;\nconst value = <Foo>bar;\n```\n\nExamples of **correct** code with this option:\n```ts\nconst value: Foo = bar;\nconst value = bar satisfies Foo;\n```"
        }
      ]
    },
    "AutocompleteValidConfig": {
      "type": "object",
      "properties": {
        "inputComponents": {
          "description": "List of custom component names that should be treated as input elements.",
          "default": [
            "input"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true,
          "markdownDescription": "List of custom component names that should be treated as input elements."
        }
      },
      "additionalProperties": false
    },
    "BanConfigValue": {
      "description": "Represents the different ways a ban config can be specified in JSON.\nCan be:\n- `true` - ban with default message\n- A string - ban with custom message\n- An object with `message` and optional `fixWith` and `suggest`",
      "anyOf": [
        {
          "description": "`\"TypeName\": true` - ban with default message\nNote: Only `true` is valid; `false` would fail to deserialize and be ignored.",
          "allOf": [
            {
              "$ref": "#/definitions/True"
            }
          ],
          "markdownDescription": "`\"TypeName\": true` - ban with default message\nNote: Only `true` is valid; `false` would fail to deserialize and be ignored."
        },
        {
          "description": "`\"TypeName\": \"message\"` - ban with custom message",
          "type": "string",
          "markdownDescription": "`\"TypeName\": \"message\"` - ban with custom message"
        },
        {
          "description": "`\"TypeName\": { \"message\": \"...\", \"fixWith\": \"...\", \"suggest\": [\"...\"] }` - full config",
          "type": "object",
          "properties": {
            "fixWith": {
              "description": "Replacement type for automatic fixing. Applied directly with `--fix`.",
              "default": null,
              "type": "string",
              "markdownDescription": "Replacement type for automatic fixing. Applied directly with `--fix`."
            },
            "message": {
              "description": "Custom message explaining why the type is banned.",
              "default": null,
              "type": "string",
              "markdownDescription": "Custom message explaining why the type is banned."
            },
            "suggest": {
              "description": "Suggested replacement types for manual review. Shown as editor suggestions.",
              "type": "array",
              "items": {
                "type": "string"
              },
              "markdownDescription": "Suggested replacement types for manual review. Shown as editor suggestions."
            }
          },
          "additionalProperties": false,
          "markdownDescription": "`\"TypeName\": { \"message\": \"...\", \"fixWith\": \"...\", \"suggest\": [\"...\"] }` - full config"
        }
      ],
      "markdownDescription": "Represents the different ways a ban config can be specified in JSON.\nCan be:\n- `true` - ban with default message\n- A string - ban with custom message\n- An object with `message` and optional `fixWith` and `suggest`"
    },
    "BanTsCommentConfig": {
      "description": "This rule allows you to specify how different TypeScript directive comments\nshould be handled.\n\nFor each directive (`@ts-expect-error`, `@ts-ignore`, `@ts-nocheck`, `@ts-check`), you can choose one of the following options:\n- `true`: Disallow the directive entirely, preventing its use in the entire codebase.\n- `false`: Allow the directive without any restrictions.\n- `\"allow-with-description\"`: Allow the directive only if it is followed by a description explaining its use. The description must meet the minimum length specified by `minimumDescriptionLength`.\n- `{ \"descriptionFormat\": \"<regex>\" }`: Allow the directive only if the description matches the specified regex pattern.\n\nFor example:\n```json\n{\n\"ts-expect-error\": \"allow-with-description\",\n\"ts-ignore\": true,\n\"ts-nocheck\": { \"descriptionFormat\": \"^: TS\\\\d+ because .+$\" },\n\"ts-check\": false,\n\"minimumDescriptionLength\": 3\n}\n```",
      "type": "object",
      "properties": {
        "minimumDescriptionLength": {
          "description": "Minimum description length required when using directives with `allow-with-description`.",
          "default": 3,
          "type": "integer",
          "format": "uint64",
          "minimum": 0.0,
          "markdownDescription": "Minimum description length required when using directives with `allow-with-description`."
        },
        "ts-check": {
          "description": "How to handle the `@ts-check` directive.",
          "allOf": [
            {
              "$ref": "#/definitions/DirectiveConfigSchema"
            }
          ],
          "markdownDescription": "How to handle the `@ts-check` directive."
        },
        "ts-expect-error": {
          "description": "How to handle the `@ts-expect-error` directive.",
          "allOf": [
            {
              "$ref": "#/definitions/DirectiveConfigSchema"
            }
          ],
          "markdownDescription": "How to handle the `@ts-expect-error` directive."
        },
        "ts-ignore": {
          "description": "How to handle the `@ts-ignore` directive.",
          "allOf": [
            {
              "$ref": "#/definitions/DirectiveConfigSchema"
            }
          ],
          "markdownDescription": "How to handle the `@ts-ignore` directive."
        },
        "ts-nocheck": {
          "description": "How to handle the `@ts-nocheck` directive.",
          "allOf": [
            {
              "$ref": "#/definitions/DirectiveConfigSchema"
            }
          ],
          "markdownDescription": "How to handle the `@ts-nocheck` directive."
        }
      },
      "additionalProperties": false,
      "markdownDescription": "This rule allows you to specify how different TypeScript directive comments\nshould be handled.\n\nFor each directive (`@ts-expect-error`, `@ts-ignore`, `@ts-nocheck`, `@ts-check`), you can choose one of the following options:\n- `true`: Disallow the directive entirely, preventing its use in the entire codebase.\n- `false`: Allow the directive without any restrictions.\n- `\"allow-with-description\"`: Allow the directive only if it is followed by a description explaining its use. The description must meet the minimum length specified by `minimumDescriptionLength`.\n- `{ \"descriptionFormat\": \"<regex>\" }`: Allow the directive only if the description matches the specified regex pattern.\n\nFor example:\n```json\n{\n\"ts-expect-error\": \"allow-with-description\",\n\"ts-ignore\": true,\n\"ts-nocheck\": { \"descriptionFormat\": \"^: TS\\\\d+ because .+$\" },\n\"ts-check\": false,\n\"minimumDescriptionLength\": 3\n}\n```"
    },
    "BlockScopedFunctions": {
      "oneOf": [
        {
          "description": "Allow function declarations in nested blocks in strict mode (ES6+ behavior).",
          "type": "string",
          "enum": [
            "allow"
          ],
          "markdownDescription": "Allow function declarations in nested blocks in strict mode (ES6+ behavior)."
        },
        {
          "description": "Disallow function declarations in nested blocks regardless of strict mode.",
          "type": "string",
          "enum": [
            "disallow"
          ],
          "markdownDescription": "Disallow function declarations in nested blocks regardless of strict mode."
        }
      ]
    },
    "BomOptionType": {
      "oneOf": [
        {
          "description": "Always require a Unicode BOM (Byte Order Mark) at the beginning of the file.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Always require a Unicode BOM (Byte Order Mark) at the beginning of the file."
        },
        {
          "description": "Never allow a Unicode BOM (Byte Order Mark) at the beginning of the file.\nThis is the default option.",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Never allow a Unicode BOM (Byte Order Mark) at the beginning of the file.\nThis is the default option."
        }
      ]
    },
    "ButtonHasType": {
      "type": "object",
      "properties": {
        "button": {
          "description": "If true, allow `type=\"button\"`.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "If true, allow `type=\"button\"`."
        },
        "reset": {
          "description": "If true, allow `type=\"reset\"`.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "If true, allow `type=\"reset\"`."
        },
        "submit": {
          "description": "If true, allow `type=\"submit\"`.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "If true, allow `type=\"submit\"`."
        }
      },
      "additionalProperties": false
    },
    "CallbackReturn": {
      "description": "The rule takes a single option - an array of possible callback names - which may include object methods. The default callback names are `callback`, `cb`, `next`.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "markdownDescription": "The rule takes a single option - an array of possible callback names - which may include object methods. The default callback names are `callback`, `cb`, `next`."
    },
    "CapitalizedCommentsOptions": {
      "description": "Configuration for the capitalized-comments rule.\n\nThe first element specifies whether comments should `\"always\"` or `\"never\"`\nbegin with a capital letter. The second element is an optional object\ncontaining additional options.",
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/AlwaysNever"
        },
        {
          "$ref": "#/definitions/OptionsJsonEnum"
        }
      ],
      "maxItems": 2,
      "minItems": 2,
      "markdownDescription": "Configuration for the capitalized-comments rule.\n\nThe first element specifies whether comments should `\"always\"` or `\"never\"`\nbegin with a capital letter. The second element is an optional object\ncontaining additional options."
    },
    "CaseType": {
      "type": "string",
      "enum": [
        "PascalCase",
        "kebab-case"
      ]
    },
    "CaseType2": {
      "type": "string",
      "enum": [
        "camelCase",
        "snake_case"
      ]
    },
    "CatchErrorNameConfig": {
      "type": "object",
      "properties": {
        "ignore": {
          "description": "A list of patterns to ignore when checking `catch` variable names. The pattern\ncan be a string or regular expression.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "A list of patterns to ignore when checking `catch` variable names. The pattern\ncan be a string or regular expression."
        },
        "name": {
          "description": "The name to use for error variables in `catch` blocks. You can customize it\nto something other than `'error'` (e.g., `'exception'`).",
          "default": "error",
          "type": "string",
          "markdownDescription": "The name to use for error variables in `catch` blocks. You can customize it\nto something other than `'error'` (e.g., `'exception'`)."
        }
      },
      "additionalProperties": false
    },
    "CatchOrReturnConfig": {
      "type": "object",
      "properties": {
        "allowFinally": {
          "description": "Whether to allow `finally()` as a termination method.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow `finally()` as a termination method."
        },
        "allowThen": {
          "description": "Whether to allow `then()` with two arguments as a termination method.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow `then()` with two arguments as a termination method."
        },
        "allowThenStrict": {
          "description": "Whether to allow `then(null, handler)` as a termination method.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow `then(null, handler)` as a termination method."
        },
        "terminationMethod": {
          "description": "List of allowed termination methods (e.g., `catch`, `done`).",
          "default": [
            "catch"
          ],
          "allOf": [
            {
              "$ref": "#/definitions/TerminationMethod"
            }
          ],
          "markdownDescription": "List of allowed termination methods (e.g., `catch`, `done`)."
        }
      },
      "additionalProperties": false
    },
    "CaughtErrorsJson": {
      "oneOf": [
        {
          "description": "All named arguments must be used.",
          "type": "string",
          "enum": [
            "all"
          ],
          "markdownDescription": "All named arguments must be used."
        },
        {
          "description": "Do not check error objects.",
          "type": "string",
          "enum": [
            "none"
          ],
          "markdownDescription": "Do not check error objects."
        }
      ]
    },
    "CheckLoops": {
      "type": "string",
      "enum": [
        "all",
        "allExceptWhileTrue",
        "none"
      ]
    },
    "CheckLoopsConfig": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/CheckLoops"
        }
      ]
    },
    "CheckTagNamesConfig": {
      "type": "object",
      "properties": {
        "definedTags": {
          "description": "Additional tag names to allow.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Additional tag names to allow."
        },
        "jsxTags": {
          "description": "Whether to allow JSX-related tags:\n- `jsx`\n- `jsxFrag`\n- `jsxImportSource`\n- `jsxRuntime`",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow JSX-related tags:\n- `jsx`\n- `jsxFrag`\n- `jsxImportSource`\n- `jsxRuntime`"
        },
        "typed": {
          "description": "If typed is `true`, disallow tags that are unnecessary/duplicative of TypeScript functionality.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If typed is `true`, disallow tags that are unnecessary/duplicative of TypeScript functionality."
        }
      },
      "additionalProperties": false
    },
    "CheckedRequiresOnchangeOrReadonly": {
      "type": "object",
      "properties": {
        "ignoreExclusiveCheckedAttribute": {
          "description": "Ignore the restriction that `checked` and `defaultChecked` should not be used together.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Ignore the restriction that `checked` and `defaultChecked` should not be used together."
        },
        "ignoreMissingProperties": {
          "description": "Ignore the requirement to provide either `onChange` or `readOnly` when the `checked` prop is present.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Ignore the requirement to provide either `onChange` or `readOnly` when the `checked` prop is present."
        }
      },
      "additionalProperties": false
    },
    "ChecksVoidReturn": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/ChecksVoidReturnOptions"
        }
      ]
    },
    "ChecksVoidReturnOptions": {
      "type": "object",
      "properties": {
        "arguments": {
          "description": "Whether to check Promise-returning functions passed as arguments to void-returning functions.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check Promise-returning functions passed as arguments to void-returning functions."
        },
        "attributes": {
          "description": "Whether to check Promise-returning functions in JSX attributes expecting void.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check Promise-returning functions in JSX attributes expecting void."
        },
        "inheritedMethods": {
          "description": "Whether to check Promise-returning methods that override void-returning inherited methods.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check Promise-returning methods that override void-returning inherited methods."
        },
        "properties": {
          "description": "Whether to check Promise-returning functions assigned to object properties expecting void.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check Promise-returning functions assigned to object properties expecting void."
        },
        "returns": {
          "description": "Whether to check Promise values returned from void-returning functions.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check Promise values returned from void-returning functions."
        },
        "variables": {
          "description": "Whether to check Promise-returning functions assigned to variables typed as void-returning.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check Promise-returning functions assigned to variables typed as void-returning."
        }
      },
      "additionalProperties": false
    },
    "ClassLiteralPropertyStyleOption": {
      "oneOf": [
        {
          "description": "Enforce using readonly fields for literal values.\n\nExamples of **incorrect** code with this option:\n```ts\nclass C {\nget name() {\nreturn \"oxc\";\n}\n}\n```\n\nExamples of **correct** code with this option:\n```ts\nclass C {\nreadonly name = \"oxc\";\n}\n```",
          "type": "string",
          "enum": [
            "fields"
          ],
          "markdownDescription": "Enforce using readonly fields for literal values.\n\nExamples of **incorrect** code with this option:\n```ts\nclass C {\nget name() {\nreturn \"oxc\";\n}\n}\n```\n\nExamples of **correct** code with this option:\n```ts\nclass C {\nreadonly name = \"oxc\";\n}\n```"
        },
        {
          "description": "Enforce using getters for literal values.\n\nExamples of **incorrect** code with this option:\n```ts\nclass C {\nreadonly name = \"oxc\";\n}\n```\n\nExamples of **correct** code with this option:\n```ts\nclass C {\nget name() {\nreturn \"oxc\";\n}\n}\n```",
          "type": "string",
          "enum": [
            "getters"
          ],
          "markdownDescription": "Enforce using getters for literal values.\n\nExamples of **incorrect** code with this option:\n```ts\nclass C {\nreadonly name = \"oxc\";\n}\n```\n\nExamples of **correct** code with this option:\n```ts\nclass C {\nget name() {\nreturn \"oxc\";\n}\n}\n```"
        }
      ]
    },
    "ClassMethodsUseThisConfig": {
      "type": "object",
      "properties": {
        "enforceForClassFields": {
          "description": "Enforce this rule for class fields that are functions.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Enforce this rule for class fields that are functions."
        },
        "exceptMethods": {
          "description": "List of method names to exempt from this rule. Names can include the hash for private methods.\nExample: `save`, `#rerender`",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of method names to exempt from this rule. Names can include the hash for private methods.\nExample: `save`, `#rerender`"
        },
        "ignoreClassesWithImplements": {
          "description": "Whether to ignore classes that implement interfaces.",
          "default": null,
          "allOf": [
            {
              "$ref": "#/definitions/IgnoreClassWithImplements"
            }
          ],
          "markdownDescription": "Whether to ignore classes that implement interfaces."
        },
        "ignoreOverrideMethods": {
          "description": "Whether to ignore methods that are overridden.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore methods that are overridden."
        }
      },
      "additionalProperties": false
    },
    "CommentConfigJson": {
      "type": "object",
      "properties": {
        "ignoreConsecutiveComments": {
          "description": "If true, consecutive comments will be ignored after the first comment.",
          "type": "boolean",
          "markdownDescription": "If true, consecutive comments will be ignored after the first comment."
        },
        "ignoreInlineComments": {
          "description": "If true, inline comments (comments in the middle of code) will be ignored.",
          "type": "boolean",
          "markdownDescription": "If true, inline comments (comments in the middle of code) will be ignored."
        },
        "ignorePattern": {
          "description": "A regex pattern. Comments that match the pattern will not cause violations.",
          "type": "string",
          "markdownDescription": "A regex pattern. Comments that match the pattern will not cause violations."
        }
      },
      "additionalProperties": false
    },
    "CompareType": {
      "oneOf": [
        {
          "description": "Always require triple-equal comparisons, `===`/`!==`.\nThis is the default.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Always require triple-equal comparisons, `===`/`!==`.\nThis is the default."
        },
        {
          "description": "Allow certain safe comparisons to use `==`/`!=` (`typeof`, literals, nullish).",
          "type": "string",
          "enum": [
            "smart"
          ],
          "markdownDescription": "Allow certain safe comparisons to use `==`/`!=` (`typeof`, literals, nullish)."
        }
      ]
    },
    "ComplexityConfig": {
      "type": "object",
      "properties": {
        "max": {
          "description": "Maximum amount of cyclomatic complexity",
          "default": 20,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "Maximum amount of cyclomatic complexity"
        },
        "variant": {
          "description": "The cyclomatic complexity variant to use",
          "default": "classic",
          "allOf": [
            {
              "$ref": "#/definitions/Variant"
            }
          ],
          "markdownDescription": "The cyclomatic complexity variant to use"
        }
      },
      "additionalProperties": false
    },
    "ComplexityConfigEnum": {
      "anyOf": [
        {
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0
        },
        {
          "$ref": "#/definitions/ComplexityConfig"
        }
      ]
    },
    "Config": {
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/CaseType2"
        },
        {
          "$ref": "#/definitions/Options"
        }
      ],
      "maxItems": 2,
      "minItems": 2
    },
    "ConsistentEachForJson": {
      "type": "object",
      "properties": {
        "describe": {
          "description": "Preferred method to create parameterized tests for `describe` blocks.",
          "allOf": [
            {
              "$ref": "#/definitions/MemberNames"
            }
          ],
          "markdownDescription": "Preferred method to create parameterized tests for `describe` blocks."
        },
        "it": {
          "description": "Preferred method to create parameterized tests for `it` blocks.",
          "allOf": [
            {
              "$ref": "#/definitions/MemberNames"
            }
          ],
          "markdownDescription": "Preferred method to create parameterized tests for `it` blocks."
        },
        "suite": {
          "description": "Preferred method to create parameterized tests for `suite` blocks.",
          "allOf": [
            {
              "$ref": "#/definitions/MemberNames"
            }
          ],
          "markdownDescription": "Preferred method to create parameterized tests for `suite` blocks."
        },
        "test": {
          "description": "Preferred method to create parameterized tests for `test` blocks.",
          "allOf": [
            {
              "$ref": "#/definitions/MemberNames"
            }
          ],
          "markdownDescription": "Preferred method to create parameterized tests for `test` blocks."
        }
      },
      "additionalProperties": false
    },
    "ConsistentFunctionScoping": {
      "type": "object",
      "properties": {
        "checkArrowFunctions": {
          "description": "Whether to check scoping with arrow functions.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check scoping with arrow functions."
        }
      },
      "additionalProperties": false
    },
    "ConsistentIndexedObjectStyleConfig": {
      "oneOf": [
        {
          "description": "When set to `record`, enforces the use of a `Record` for indexed object types, e.g. `Record<string, unknown>`.",
          "type": "string",
          "enum": [
            "record"
          ],
          "markdownDescription": "When set to `record`, enforces the use of a `Record` for indexed object types, e.g. `Record<string, unknown>`."
        },
        {
          "description": "When set to `index-signature`, enforces the use of indexed signature types, e.g. `{ [key: string]: unknown }`.",
          "type": "string",
          "enum": [
            "index-signature"
          ],
          "markdownDescription": "When set to `index-signature`, enforces the use of indexed signature types, e.g. `{ [key: string]: unknown }`."
        }
      ]
    },
    "ConsistentReturnConfig": {
      "type": "object",
      "properties": {
        "treatUndefinedAsUnspecified": {
          "description": "Treat explicit `return undefined` as equivalent to an unspecified return.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Treat explicit `return undefined` as equivalent to an unspecified return."
        }
      },
      "additionalProperties": false
    },
    "ConsistentTestFilenameConfig": {
      "type": "object",
      "properties": {
        "allTestPattern": {
          "description": "Regex pattern to ensure we are linting only test filenames.\nDecides whether a file is a testing file.",
          "type": "string",
          "markdownDescription": "Regex pattern to ensure we are linting only test filenames.\nDecides whether a file is a testing file."
        },
        "pattern": {
          "description": "Required regex to check if a test filename have a valid formart.\nPattern doesn't have a default value, you must provide one.",
          "type": "string",
          "markdownDescription": "Required regex to check if a test filename have a valid formart.\nPattern doesn't have a default value, you must provide one."
        }
      },
      "additionalProperties": false
    },
    "ConsistentTestItConfig": {
      "type": "object",
      "properties": {
        "fn": {
          "description": "Decides whether to use `test` or `it`.\n\nExamples of **incorrect** code for `{ \"fn\": \"test\" }`:\n```javascript\nit('foo');\nit.only('foo');\n```\n\nExamples of **correct** code for `{ \"fn\": \"test\" }`:\n```javascript\ntest('foo');\ntest.only('foo');\n```\n\nExamples of **incorrect** code for `{ \"fn\": \"it\" }`:\n```javascript\ntest('foo');\ntest.only('foo');\n```\n\nExamples of **correct** code for `{ \"fn\": \"it\" }`:\n```javascript\nit('foo');\nit.only('foo');\n```",
          "default": "test",
          "allOf": [
            {
              "$ref": "#/definitions/TestCaseName"
            }
          ],
          "markdownDescription": "Decides whether to use `test` or `it`.\n\nExamples of **incorrect** code for `{ \"fn\": \"test\" }`:\n```javascript\nit('foo');\nit.only('foo');\n```\n\nExamples of **correct** code for `{ \"fn\": \"test\" }`:\n```javascript\ntest('foo');\ntest.only('foo');\n```\n\nExamples of **incorrect** code for `{ \"fn\": \"it\" }`:\n```javascript\ntest('foo');\ntest.only('foo');\n```\n\nExamples of **correct** code for `{ \"fn\": \"it\" }`:\n```javascript\nit('foo');\nit.only('foo');\n```"
        },
        "withinDescribe": {
          "description": "Decides whether to use `test` or `it` within a `describe` scope.\nIf only `fn` is provided, this will default to the value of `fn`.\n\nExamples of **incorrect** code for `{ \"withinDescribe\": \"test\" }`:\n```javascript\ndescribe('foo', function () {\nit('bar');\n});\n```\n\nExamples of **correct** code for `{ \"withinDescribe\": \"test\" }`:\n```javascript\ndescribe('foo', function () {\ntest('bar');\n});\n```",
          "default": "it",
          "allOf": [
            {
              "$ref": "#/definitions/TestCaseName"
            }
          ],
          "markdownDescription": "Decides whether to use `test` or `it` within a `describe` scope.\nIf only `fn` is provided, this will default to the value of `fn`.\n\nExamples of **incorrect** code for `{ \"withinDescribe\": \"test\" }`:\n```javascript\ndescribe('foo', function () {\nit('bar');\n});\n```\n\nExamples of **correct** code for `{ \"withinDescribe\": \"test\" }`:\n```javascript\ndescribe('foo', function () {\ntest('bar');\n});\n```"
        }
      },
      "additionalProperties": false
    },
    "ConsistentTypeAssertionsConfig": {
      "type": "object",
      "properties": {
        "arrayLiteralTypeAssertions": {
          "description": "Whether array literal type assertions are allowed, allowed only as parameters, or disallowed.",
          "allOf": [
            {
              "$ref": "#/definitions/ArrayLiteralTypeAssertions"
            }
          ],
          "markdownDescription": "Whether array literal type assertions are allowed, allowed only as parameters, or disallowed."
        },
        "assertionStyle": {
          "description": "Which assertion syntax is enforced.",
          "allOf": [
            {
              "$ref": "#/definitions/AssertionStyle"
            }
          ],
          "markdownDescription": "Which assertion syntax is enforced."
        },
        "objectLiteralTypeAssertions": {
          "description": "Whether object literal type assertions are allowed, allowed only as parameters, or disallowed.",
          "allOf": [
            {
              "$ref": "#/definitions/ObjectLiteralTypeAssertions"
            }
          ],
          "markdownDescription": "Whether object literal type assertions are allowed, allowed only as parameters, or disallowed."
        }
      },
      "additionalProperties": false
    },
    "ConsistentTypeDefinitionsConfig": {
      "oneOf": [
        {
          "description": "Prefer `interface` over `type` for object type definitions:\n\n```typescript\ninterface T {\nx: number;\n}\n```",
          "type": "string",
          "enum": [
            "interface"
          ],
          "markdownDescription": "Prefer `interface` over `type` for object type definitions:\n\n```typescript\ninterface T {\nx: number;\n}\n```"
        },
        {
          "description": "Prefer `type` over `interface` for object type definitions:\n\n```typescript\ntype T = { x: number };\n```",
          "type": "string",
          "enum": [
            "type"
          ],
          "markdownDescription": "Prefer `type` over `interface` for object type definitions:\n\n```typescript\ntype T = { x: number };\n```"
        }
      ]
    },
    "ConsistentTypeExportsConfig": {
      "type": "object",
      "properties": {
        "fixMixedExportsWithInlineTypeSpecifier": {
          "description": "Enables an autofix strategy that rewrites mixed exports using inline `type` specifiers.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Enables an autofix strategy that rewrites mixed exports using inline `type` specifiers."
        }
      },
      "additionalProperties": false
    },
    "ConsistentTypeImportsConfig": {
      "type": "object",
      "properties": {
        "disallowTypeAnnotations": {
          "description": "Disallow using `import()` in type annotations, like `type T = import('foo')`",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Disallow using `import()` in type annotations, like `type T = import('foo')`"
        },
        "fixStyle": {
          "description": "Control how type imports are added when auto-fixing.",
          "default": "separate-type-imports",
          "allOf": [
            {
              "$ref": "#/definitions/FixStyle"
            }
          ],
          "markdownDescription": "Control how type imports are added when auto-fixing."
        },
        "prefer": {
          "description": "Control whether to enforce type imports or value imports.",
          "default": "type-imports",
          "allOf": [
            {
              "$ref": "#/definitions/Prefer"
            }
          ],
          "markdownDescription": "Control whether to enforce type imports or value imports."
        }
      },
      "additionalProperties": false
    },
    "ConsistentVitestConfig": {
      "type": "object",
      "properties": {
        "fn": {
          "description": "Decides whether to prefer vitest function accessor",
          "default": "vi",
          "allOf": [
            {
              "$ref": "#/definitions/VitestFnName"
            }
          ],
          "markdownDescription": "Decides whether to prefer vitest function accessor"
        }
      },
      "additionalProperties": false
    },
    "ControlHasAssociatedLabelConfig": {
      "type": "object",
      "properties": {
        "controlComponents": {
          "description": "Custom JSX components to be treated as interactive controls.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Custom JSX components to be treated as interactive controls."
        },
        "depth": {
          "description": "Maximum depth to search for an accessible label within the element.\nDefaults to `2`.",
          "default": 2,
          "type": "integer",
          "format": "uint8",
          "maximum": 25.0,
          "minimum": 0.0,
          "markdownDescription": "Maximum depth to search for an accessible label within the element.\nDefaults to `2`."
        },
        "ignoreElements": {
          "description": "Elements to ignore.\nDefaults to `[\"audio\", \"canvas\", \"embed\", \"input\", \"textarea\", \"tr\", \"video\"]`.",
          "default": [
            "audio",
            "canvas",
            "embed",
            "input",
            "textarea",
            "tr",
            "video"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Elements to ignore.\nDefaults to `[\"audio\", \"canvas\", \"embed\", \"input\", \"textarea\", \"tr\", \"video\"]`."
        },
        "ignoreRoles": {
          "description": "Interactive roles to ignore.\nDefaults to `[\"grid\", \"listbox\", \"menu\", \"menubar\", \"radiogroup\", \"row\", \"tablist\", \"toolbar\", \"tree\", \"treegrid\"]`.",
          "default": [
            "grid",
            "listbox",
            "menu",
            "menubar",
            "radiogroup",
            "row",
            "tablist",
            "toolbar",
            "tree",
            "treegrid"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Interactive roles to ignore.\nDefaults to `[\"grid\", \"listbox\", \"menu\", \"menubar\", \"radiogroup\", \"row\", \"tablist\", \"toolbar\", \"tree\", \"treegrid\"]`."
        },
        "labelAttributes": {
          "description": "Additional attributes to check for accessible label text.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Additional attributes to check for accessible label text."
        }
      },
      "additionalProperties": false
    },
    "CountThis": {
      "oneOf": [
        {
          "description": "Always count `this` as a parameter.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Always count `this` as a parameter."
        },
        {
          "description": "Never count `this` as a parameter.",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Never count `this` as a parameter."
        },
        {
          "description": "Count `this` unless it is explicitly typed as `void`.",
          "type": "string",
          "enum": [
            "except-void"
          ],
          "markdownDescription": "Count `this` unless it is explicitly typed as `void`."
        }
      ]
    },
    "Curly": {
      "description": "Configuration for the curly rule, specified as an array of one or two elements.\n\nExamples:\n- `[\"all\"]` - Require braces in all cases (default)\n- `[\"multi\"]` - Require braces only for multi-statement blocks\n- `[\"multi-line\"]` - Require braces for multi-line blocks\n- `[\"multi-or-nest\"]` - Require braces for nested or multi-line blocks\n- `[\"multi\", \"consistent\"]` - Multi mode with consistent braces in if-else chains",
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/CurlyType"
        },
        {
          "$ref": "#/definitions/CurlyConsistent"
        }
      ],
      "maxItems": 2,
      "minItems": 2,
      "markdownDescription": "Configuration for the curly rule, specified as an array of one or two elements.\n\nExamples:\n- `[\"all\"]` - Require braces in all cases (default)\n- `[\"multi\"]` - Require braces only for multi-statement blocks\n- `[\"multi-line\"]` - Require braces for multi-line blocks\n- `[\"multi-or-nest\"]` - Require braces for nested or multi-line blocks\n- `[\"multi\", \"consistent\"]` - Multi mode with consistent braces in if-else chains"
    },
    "CurlyConsistent": {
      "description": "The optional second element of the curly config array.\nWhen set to `\"consistent\"`, enforces consistent brace usage within if-else chains.",
      "oneOf": [
        {
          "description": "Enforce consistent brace usage in if-else chains",
          "type": "string",
          "enum": [
            "consistent"
          ],
          "markdownDescription": "Enforce consistent brace usage in if-else chains"
        }
      ],
      "markdownDescription": "The optional second element of the curly config array.\nWhen set to `\"consistent\"`, enforces consistent brace usage within if-else chains."
    },
    "CurlyType": {
      "description": "The enforcement type for the curly rule.",
      "oneOf": [
        {
          "description": "Require braces in all cases (default)",
          "type": "string",
          "enum": [
            "all"
          ],
          "markdownDescription": "Require braces in all cases (default)"
        },
        {
          "description": "Require braces only when there are multiple statements in the block",
          "type": "string",
          "enum": [
            "multi"
          ],
          "markdownDescription": "Require braces only when there are multiple statements in the block"
        },
        {
          "description": "Require braces when the block spans multiple lines",
          "type": "string",
          "enum": [
            "multi-line"
          ],
          "markdownDescription": "Require braces when the block spans multiple lines"
        },
        {
          "description": "Require braces when the block is nested or spans multiple lines",
          "type": "string",
          "enum": [
            "multi-or-nest"
          ],
          "markdownDescription": "Require braces when the block is nested or spans multiple lines"
        }
      ],
      "markdownDescription": "The enforcement type for the curly rule."
    },
    "CustomComponent": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "object",
          "required": [
            "attribute",
            "name"
          ],
          "properties": {
            "attribute": {
              "type": "string"
            },
            "name": {
              "type": "string"
            }
          }
        },
        {
          "type": "object",
          "required": [
            "attributes",
            "name"
          ],
          "properties": {
            "attributes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "name": {
              "type": "string"
            }
          }
        }
      ]
    },
    "DeclarationStyle": {
      "oneOf": [
        {
          "description": "Enforces the use of a named TypeScript type or interface as the\nargument to `defineEmits`, e.g. `defineEmits<MyEmits>()`.",
          "type": "string",
          "enum": [
            "type-based"
          ],
          "markdownDescription": "Enforces the use of a named TypeScript type or interface as the\nargument to `defineEmits`, e.g. `defineEmits<MyEmits>()`."
        },
        {
          "description": "Enforces the use of an inline type literal as the argument to\n`defineEmits`, e.g. `defineEmits<{ (event: string): void }>()`.",
          "type": "string",
          "enum": [
            "type-literal"
          ],
          "markdownDescription": "Enforces the use of an inline type literal as the argument to\n`defineEmits`, e.g. `defineEmits<{ (event: string): void }>()`."
        },
        {
          "description": "Enforces the use of runtime declaration, where emits are declared\nusing an array or object, e.g. `defineEmits(['event1', 'event2'])`.",
          "type": "string",
          "enum": [
            "runtime"
          ],
          "markdownDescription": "Enforces the use of runtime declaration, where emits are declared\nusing an array or object, e.g. `defineEmits(['event1', 'event2'])`."
        }
      ]
    },
    "DeclarationStyle2": {
      "oneOf": [
        {
          "description": "Enforce type-based declaration.",
          "type": "string",
          "enum": [
            "type-based"
          ],
          "markdownDescription": "Enforce type-based declaration."
        },
        {
          "description": "Enforce runtime declaration.",
          "type": "string",
          "enum": [
            "runtime"
          ],
          "markdownDescription": "Enforce runtime declaration."
        }
      ]
    },
    "DefaultCaseConfig": {
      "type": "object",
      "properties": {
        "commentPattern": {
          "description": "A regex pattern used to detect comments that mark the absence\nof a `default` case as intentional.\n\nDefault value: `no default`.\n\nExamples of **incorrect** code for this rule with the `{ \"commentPattern\": \"^skip\\\\sdefault\" }` option:\n```js\nswitch (a) {\ncase 1:\nbreak;\n// no default\n}\n```\n\nExamples of **correct** code for this rule with the `{ \"commentPattern\": \"^skip\\\\sdefault\" }` option:\n```js\nswitch (a) {\ncase 1:\nbreak;\n// skip default\n}\n```",
          "type": "string",
          "markdownDescription": "A regex pattern used to detect comments that mark the absence\nof a `default` case as intentional.\n\nDefault value: `no default`.\n\nExamples of **incorrect** code for this rule with the `{ \"commentPattern\": \"^skip\\\\sdefault\" }` option:\n```js\nswitch (a) {\ncase 1:\nbreak;\n// no default\n}\n```\n\nExamples of **correct** code for this rule with the `{ \"commentPattern\": \"^skip\\\\sdefault\" }` option:\n```js\nswitch (a) {\ncase 1:\nbreak;\n// skip default\n}\n```"
        }
      },
      "additionalProperties": false
    },
    "DefinePropsDestructuring": {
      "type": "object",
      "properties": {
        "destructure": {
          "description": "Require or prohibit destructuring.",
          "default": "only-when-assigned",
          "allOf": [
            {
              "$ref": "#/definitions/Destructure"
            }
          ],
          "markdownDescription": "Require or prohibit destructuring."
        }
      },
      "additionalProperties": false
    },
    "Destructure": {
      "oneOf": [
        {
          "description": "Requires destructuring when `defineProps` is assigned to a variable and warns against using `withDefaults` with destructuring",
          "type": "string",
          "enum": [
            "only-when-assigned"
          ],
          "markdownDescription": "Requires destructuring when `defineProps` is assigned to a variable and warns against using `withDefaults` with destructuring"
        },
        {
          "description": "Requires destructuring when using `defineProps` and warns against using `withDefaults` with destructuring",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Requires destructuring when using `defineProps` and warns against using `withDefaults` with destructuring"
        },
        {
          "description": "Requires using a variable to store props and prohibits destructuring",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Requires using a variable to store props and prohibits destructuring"
        }
      ]
    },
    "Destructuring": {
      "oneOf": [
        {
          "description": "Warn if any of the variables in a destructuring assignment should be `const`.",
          "type": "string",
          "enum": [
            "any"
          ],
          "markdownDescription": "Warn if any of the variables in a destructuring assignment should be `const`."
        },
        {
          "description": "Only warn if all variables in a destructuring assignment should be `const`. Otherwise, ignore them.",
          "type": "string",
          "enum": [
            "all"
          ],
          "markdownDescription": "Only warn if all variables in a destructuring assignment should be `const`. Otherwise, ignore them."
        }
      ]
    },
    "DirectiveConfigSchema": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RequireDescription"
        },
        {
          "type": "object",
          "properties": {
            "descriptionFormat": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "DisplayNameConfig": {
      "type": "object",
      "properties": {
        "checkContextObjects": {
          "description": "When `true`, this rule will warn on context objects\nwithout a `displayName`.\n\n`displayName` allows you to [name your context](https://reactjs.org/docs/context.html#contextdisplayname) object.\nThis name is used in the React DevTools for the context's `Provider` and `Consumer`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `true`, this rule will warn on context objects\nwithout a `displayName`.\n\n`displayName` allows you to [name your context](https://reactjs.org/docs/context.html#contextdisplayname) object.\nThis name is used in the React DevTools for the context's `Provider` and `Consumer`."
        },
        "ignoreTranspilerName": {
          "description": "When `true`, the rule will ignore the name set by the transpiler\nand require a `displayName` property in this case.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `true`, the rule will ignore the name set by the transpiler\nand require a `displayName` property in this case."
        }
      },
      "additionalProperties": false
    },
    "DistractingElement": {
      "type": "string",
      "enum": [
        "marquee",
        "blink"
      ]
    },
    "DotNotationConfig": {
      "type": "object",
      "properties": {
        "allowIndexSignaturePropertyAccess": {
          "description": "Allow bracket notation for properties covered by an index signature.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow bracket notation for properties covered by an index signature."
        },
        "allowKeywords": {
          "description": "Allow bracket notation for ES3 keyword property names (for example `obj[\"class\"]`).",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Allow bracket notation for ES3 keyword property names (for example `obj[\"class\"]`)."
        },
        "allowPattern": {
          "description": "Regex pattern for property names that are allowed to use bracket notation.",
          "default": "",
          "type": "string",
          "markdownDescription": "Regex pattern for property names that are allowed to use bracket notation."
        },
        "allowPrivateClassPropertyAccess": {
          "description": "Allow bracket notation for private class members.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow bracket notation for private class members."
        },
        "allowProtectedClassPropertyAccess": {
          "description": "Allow bracket notation for protected class members.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow bracket notation for protected class members."
        }
      },
      "additionalProperties": false
    },
    "DummyRule": {
      "anyOf": [
        {
          "$ref": "#/definitions/AllowWarnDeny"
        },
        {
          "type": "array",
          "items": [
            {
              "$ref": "#/definitions/AllowWarnDeny"
            }
          ],
          "additionalItems": true,
          "minItems": 1
        }
      ]
    },
    "DummyRuleMap": {
      "description": "See [Oxlint Rules](https://oxc.rs/docs/guide/usage/linter/rules.html)",
      "type": "object",
      "properties": {
        "accessor-pairs": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AccessorPairsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "array-callback-return": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ArrayCallbackReturn"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "arrow-body-style": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/Mode2"
                },
                {
                  "$ref": "#/definitions/ArrowBodyStyleConfig"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        },
        "block-scoped-var": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "capitalized-comments": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AlwaysNever"
                },
                {
                  "$ref": "#/definitions/OptionsJsonEnum"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        },
        "class-methods-use-this": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ClassMethodsUseThisConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "complexity": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ComplexityConfigEnum"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "constructor-super": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "curly": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/CurlyType"
                },
                {
                  "$ref": "#/definitions/CurlyConsistent"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        },
        "default-case": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/DefaultCaseConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "default-case-last": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "default-param-last": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "eqeqeq": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/CompareType"
                },
                {
                  "$ref": "#/definitions/EqeqeqOptions"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        },
        "for-direction": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "func-name-matching": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "anyOf": [
                {
                  "type": "array",
                  "items": [
                    {
                      "$ref": "#/definitions/AllowWarnDeny"
                    },
                    {
                      "$ref": "#/definitions/FuncNameMatchingMode"
                    },
                    {
                      "$ref": "#/definitions/FuncNameMatchingConfig"
                    }
                  ],
                  "maxItems": 3,
                  "minItems": 2
                },
                {
                  "type": "array",
                  "items": [
                    {
                      "$ref": "#/definitions/AllowWarnDeny"
                    },
                    {
                      "$ref": "#/definitions/FuncNameMatchingMode"
                    }
                  ],
                  "maxItems": 2,
                  "minItems": 2
                },
                {
                  "type": "array",
                  "items": [
                    {
                      "$ref": "#/definitions/AllowWarnDeny"
                    },
                    {
                      "$ref": "#/definitions/FuncNameMatchingConfig"
                    }
                  ],
                  "maxItems": 2,
                  "minItems": 2
                }
              ]
            }
          ]
        },
        "func-names": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/FuncNamesConfigType"
                },
                {
                  "$ref": "#/definitions/FuncNamesGeneratorsConfig"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        },
        "func-style": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/Style"
                },
                {
                  "$ref": "#/definitions/FuncStyleConfig"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        },
        "getter-return": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/GetterReturn"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "grouped-accessor-pairs": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PairOrder"
                },
                {
                  "$ref": "#/definitions/GroupedAccessorPairsConfig"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        },
        "guard-for-in": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "id-length": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/IdLengthConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "id-match": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "type": "string"
                },
                {
                  "$ref": "#/definitions/IdMatchOptions"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        },
        "import/consistent-type-specifier-style": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/Mode"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "import/default": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "import/export": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "import/exports-last": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "import/extensions": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "anyOf": [
                {
                  "type": "array",
                  "items": [
                    {
                      "$ref": "#/definitions/AllowWarnDeny"
                    },
                    {
                      "$ref": "#/definitions/ExtensionRule"
                    },
                    {
                      "$ref": "#/definitions/ImportExtensionsObject"
                    }
                  ],
                  "maxItems": 3,
                  "minItems": 2
                },
                {
                  "type": "array",
                  "items": [
                    {
                      "$ref": "#/definitions/AllowWarnDeny"
                    },
                    {
                      "$ref": "#/definitions/ExtensionRule"
                    }
                  ],
                  "maxItems": 2,
                  "minItems": 2
                },
                {
                  "type": "array",
                  "items": [
                    {
                      "$ref": "#/definitions/AllowWarnDeny"
                    },
                    {
                      "$ref": "#/definitions/ImportExtensionsObject"
                    }
                  ],
                  "maxItems": 2,
                  "minItems": 2
                }
              ]
            }
          ]
        },
        "import/first": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AbsoluteFirst"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "import/group-exports": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "import/max-dependencies": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MaxDependenciesConfigJson"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "import/named": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "import/namespace": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/Namespace"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "import/newline-after-import": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NewlineAfterImport"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "import/no-absolute-path": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoAbsolutePath"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "import/no-amd": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "import/no-anonymous-default-export": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoAnonymousDefaultExport"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "import/no-commonjs": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoCommonjs"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "import/no-cycle": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoCycle"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "import/no-default-export": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "import/no-duplicates": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoDuplicates"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "import/no-dynamic-require": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoDynamicRequire"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "import/no-empty-named-blocks": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "import/no-mutable-exports": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "import/no-named-as-default": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "import/no-named-as-default-member": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "import/no-named-default": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "import/no-named-export": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "import/no-namespace": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoNamespaceConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "import/no-nodejs-modules": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoNodejsModulesConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "import/no-relative-parent-imports": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "import/no-self-import": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "import/no-unassigned-import": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUnassignedImportConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "import/no-webpack-loader-syntax": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "import/prefer-default-export": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferDefaultExport"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "import/unambiguous": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "init-declarations": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AlwaysNever"
                },
                {
                  "$ref": "#/definitions/InitDeclarationsConfig"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        },
        "jest/consistent-test-it": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ConsistentTestItConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/expect-expect": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ExpectExpectConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/max-expects": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MaxExpectsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/max-nested-describe": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MaxNestedDescribeConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/no-alias-methods": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-commented-out-tests": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-conditional-expect": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-conditional-in-test": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-confusing-set-timeout": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-deprecated-functions": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoDeprecatedFunctionsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/no-disabled-tests": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-done-callback": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-duplicate-hooks": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-export": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-focused-tests": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-hooks": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoHooksConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/no-identical-title": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-interpolation-in-snapshots": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-jasmine-globals": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-large-snapshots": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoLargeSnapshotsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/no-mocks-import": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-restricted-jest-methods": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoRestrictedTestMethodsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/no-restricted-matchers": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoRestrictedMatchersConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/no-standalone-expect": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoStandaloneExpectConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/no-test-prefixes": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-test-return-statement": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-unneeded-async-expect-function": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/no-untyped-mock-factory": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/padding-around-after-all-blocks": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/padding-around-test-blocks": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-called-with": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-comparison-matcher": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-each": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-ending-with-an-expect": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferEndingWithAnExpectConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/prefer-equality-matcher": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-expect-assertions": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferExpectAssertionsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/prefer-expect-resolves": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-hooks-in-order": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-hooks-on-top": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-importing-jest-globals": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferImportingJestGlobalsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/prefer-jest-mocked": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-lowercase-title": {
          "$ref": "#/definitions/DummyRule"
        },
        "jest/prefer-mock-promise-shorthand": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-mock-return-shorthand": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-snapshot-hint": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/SnapshotHintMode"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/prefer-spy-on": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-strict-equal": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-to-be": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-to-contain": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-to-have-been-called": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-to-have-been-called-times": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-to-have-length": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/prefer-todo": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/require-hook": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/RequireHookConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/require-to-throw-message": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/require-top-level-describe": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/RequireTopLevelDescribeConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/valid-describe-callback": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/valid-expect": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ValidExpectConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jest/valid-expect-in-promise": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jest/valid-title": {
          "$ref": "#/definitions/DummyRule"
        },
        "jsdoc/check-access": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsdoc/check-property-names": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsdoc/check-tag-names": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/CheckTagNamesConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsdoc/empty-tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/EmptyTagsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsdoc/implements-on-classes": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsdoc/no-defaults": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoDefaultsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsdoc/require-param": {
          "$ref": "#/definitions/DummyRule"
        },
        "jsdoc/require-param-description": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/RequireParamDescriptionConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsdoc/require-param-name": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsdoc/require-param-type": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/RequireParamTypeConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsdoc/require-property": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsdoc/require-property-description": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsdoc/require-property-name": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsdoc/require-property-type": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsdoc/require-returns": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/RequireReturnsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsdoc/require-returns-description": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsdoc/require-returns-type": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsdoc/require-throws-description": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsdoc/require-throws-type": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsdoc/require-yields": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/RequireYieldsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsdoc/require-yields-description": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsdoc/require-yields-type": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsx-a11y/alt-text": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AltTextConfigSchema"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/anchor-ambiguous-text": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AnchorAmbiguousTextConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/anchor-has-content": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsx-a11y/anchor-is-valid": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AnchorIsValidConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/aria-activedescendant-has-tabindex": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsx-a11y/aria-props": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsx-a11y/aria-proptypes": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsx-a11y/aria-role": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AriaRoleConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/aria-unsupported-elements": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsx-a11y/autocomplete-valid": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AutocompleteValidConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/click-events-have-key-events": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsx-a11y/control-has-associated-label": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ControlHasAssociatedLabelConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/heading-has-content": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/HeadingHasContentConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/html-has-lang": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsx-a11y/iframe-has-title": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsx-a11y/img-redundant-alt": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ImgRedundantAltConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/interactive-supports-focus": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/InteractiveSupportsFocusConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/label-has-associated-control": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/LabelHasAssociatedControlConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/lang": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsx-a11y/media-has-caption": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MediaHasCaptionConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/mouse-events-have-key-events": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MouseEventsHaveKeyEventsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/no-access-key": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsx-a11y/no-aria-hidden-on-focusable": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsx-a11y/no-autofocus": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoAutofocus"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/no-distracting-elements": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoDistractingElementsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/no-interactive-element-to-noninteractive-role": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoInteractiveElementToNoninteractiveRoleConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/no-noninteractive-element-interactions": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoNoninteractiveElementInteractionsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/no-noninteractive-element-to-interactive-role": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoNoninteractiveElementToInteractiveRoleConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/no-noninteractive-tabindex": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoNoninteractiveTabindexConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/no-redundant-roles": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoRedundantRolesConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/no-static-element-interactions": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoStaticElementInteractionsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "jsx-a11y/prefer-tag-over-role": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsx-a11y/role-has-required-aria-props": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsx-a11y/role-supports-aria-props": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsx-a11y/scope": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "jsx-a11y/tabindex-no-positive": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "logical-assignment-operators": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AlwaysNever"
                },
                {
                  "$ref": "#/definitions/LogicalAssignmentOperatorsConfig"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        },
        "max-classes-per-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MaxClassesPerFileConfigEnum"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "max-depth": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MaxDepthConfigEnum"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "max-lines": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MaxLinesConfigEnum"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "max-lines-per-function": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MaxLinesPerFunctionConfigEnum"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "max-nested-callbacks": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MaxNestedCallbacksConfigEnum"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "max-params": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MaxParamsConfigEnum"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "max-statements": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MaxStatementsConfigEnum"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "new-cap": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NewCapConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "nextjs/google-font-display": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/google-font-preconnect": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/inline-script-id": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/next-script-for-ga": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-assign-module-variable": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-async-client-component": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-before-interactive-script-outside-document": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-css-tags": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-document-import-in-page": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-duplicate-head": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-head-element": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-head-import-in-document": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-html-link-for-pages": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-img-element": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-page-custom-font": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-script-component-in-head": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-styled-jsx-in-document": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-sync-scripts": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-title-in-document-head": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-typos": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "nextjs/no-unwanted-polyfillio": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-alert": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-array-constructor": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-async-promise-executor": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-await-in-loop": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-bitwise": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoBitwiseConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-caller": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-case-declarations": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-class-assign": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-compare-neg-zero": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-cond-assign": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoCondAssignConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-console": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoConsoleConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-const-assign": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-constant-binary-expression": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-constant-condition": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoConstantCondition"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-constructor-return": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-continue": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-control-regex": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-debugger": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-delete-var": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-div-regex": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-dupe-class-members": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-dupe-else-if": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-dupe-keys": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-duplicate-case": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-duplicate-imports": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoDuplicateImports"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-else-return": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoElseReturn"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-empty": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoEmpty"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-empty-character-class": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-empty-function": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoEmptyFunctionConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-empty-pattern": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoEmptyPattern"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-empty-static-block": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-eq-null": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-eval": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoEval"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-ex-assign": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-extend-native": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoExtendNativeConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-extra-bind": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-extra-boolean-cast": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoExtraBooleanCast"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-extra-label": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-fallthrough": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoFallthroughConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-func-assign": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-global-assign": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoGlobalAssignConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-implicit-coercion": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoImplicitCoercionConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-implicit-globals": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoImplicitGlobals"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-implied-eval": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-import-assign": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-inline-comments": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoInlineCommentsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-inner-declarations": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoInnerDeclarationsConfig"
                },
                {
                  "$ref": "#/definitions/NoInnerDeclarationsOptions"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        },
        "no-invalid-regexp": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoInvalidRegexpConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-irregular-whitespace": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoIrregularWhitespaceConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-iterator": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-label-var": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-labels": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoLabels"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-lone-blocks": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-lonely-if": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-loop-func": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-loss-of-precision": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-magic-numbers": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoMagicNumbersConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-misleading-character-class": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoMisleadingCharacterClass"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-multi-assign": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoMultiAssign"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-multi-str": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-negated-condition": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-nested-ternary": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-new": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-new-func": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-new-native-nonconstructor": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-new-wrappers": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-nonoctal-decimal-escape": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-obj-calls": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-object-constructor": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-param-reassign": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoParamReassignConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-plusplus": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoPlusplus"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-promise-executor-return": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoPromiseExecutorReturnConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-proto": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-prototype-builtins": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-redeclare": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoRedeclare"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-regex-spaces": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-restricted-exports": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoRestrictedExportsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-restricted-globals": {
          "$ref": "#/definitions/DummyRule"
        },
        "no-restricted-imports": {
          "$ref": "#/definitions/DummyRule"
        },
        "no-restricted-properties": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PropertyDetails"
                }
              ],
              "additionalItems": {
                "$ref": "#/definitions/PropertyDetails"
              },
              "minItems": 2
            }
          ]
        },
        "no-return-assign": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoReturnAssignMode"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-script-url": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-self-assign": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoSelfAssign"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-self-compare": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-sequences": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoSequences"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-setter-return": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-shadow": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoShadowConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-shadow-restricted-names": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoShadowRestrictedNamesConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-sparse-arrays": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-template-curly-in-string": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-ternary": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-this-before-super": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-throw-literal": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-unassigned-vars": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-undef": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUndef"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-undefined": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-underscore-dangle": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUnderscoreDangle"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-unexpected-multiline": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-unmodified-loop-condition": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-unneeded-ternary": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUnneededTernary"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-unreachable": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-unsafe-finally": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-unsafe-negation": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUnsafeNegation"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-unsafe-optional-chaining": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUnsafeOptionalChaining"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-unused-expressions": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUnusedExpressionsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-unused-labels": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-unused-private-class-members": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-unused-vars": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUnusedVarsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-use-before-define": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUseBeforeDefineConfigJson"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-useless-assignment": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-useless-backreference": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-useless-call": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-useless-catch": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-useless-computed-key": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUselessComputedKey"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-useless-concat": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-useless-constructor": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-useless-escape": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUselessEscapeConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-useless-rename": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUselessRenameConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-useless-return": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-var": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "no-void": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoVoid"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-warning-comments": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoWarningCommentsConfigJson"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "no-with": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "node/callback-return": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/CallbackReturn"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "node/global-require": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "node/handle-callback-err": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/HandleCallbackErrConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "node/no-exports-assign": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "node/no-mixed-requires": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoMixedRequiresConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "node/no-new-require": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "node/no-path-concat": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "node/no-process-env": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoProcessEnvConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "node/no-sync": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoSyncConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "object-shorthand": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ShorthandType"
                },
                {
                  "$ref": "#/definitions/ObjectShorthandOptions"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        },
        "operator-assignment": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AlwaysNever"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "oxc/approx-constant": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/bad-array-method-on-arguments": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/bad-bitwise-operator": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/bad-char-at-comparison": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/bad-comparison-sequence": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/bad-min-max-func": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/bad-object-literal-comparison": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/bad-replace-all-arg": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/branches-sharing-code": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/const-comparisons": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/double-comparisons": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/erasing-op": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/misrefactored-assign-op": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/missing-throw": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/no-accumulating-spread": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/no-async-await": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/no-async-endpoint-handlers": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoAsyncEndpointHandlersConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "oxc/no-barrel-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoBarrelFile"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "oxc/no-const-enum": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/no-map-spread": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoMapSpreadConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "oxc/no-optional-chaining": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoOptionalChainingConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "oxc/no-rest-spread-properties": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoRestSpreadPropertiesOptions"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "oxc/no-this-in-exported-function": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/number-arg-out-of-range": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/only-used-in-recursion": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "oxc/uninvoked-array-callback": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "prefer-arrow-callback": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferArrowCallback"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "prefer-const": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferConst"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "prefer-destructuring": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferDestructuringOption"
                },
                {
                  "$ref": "#/definitions/PreferDestructuringRenamedPropertiesConfig"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        },
        "prefer-exponentiation-operator": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "prefer-named-capture-group": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "prefer-numeric-literals": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "prefer-object-has-own": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "prefer-object-spread": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "prefer-promise-reject-errors": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferPromiseRejectErrors"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "prefer-regex-literals": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferRegexLiterals"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "prefer-rest-params": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "prefer-spread": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "prefer-template": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "preserve-caught-error": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreserveCaughtErrorOptions"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "promise/always-return": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AlwaysReturnConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "promise/avoid-new": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "promise/catch-or-return": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/CatchOrReturnConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "promise/no-callback-in-promise": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoCallbackInPromiseConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "promise/no-multiple-resolved": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "promise/no-nesting": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "promise/no-new-statics": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "promise/no-promise-in-callback": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoPromiseInCallback"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "promise/no-return-in-finally": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "promise/no-return-wrap": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoReturnWrap"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "promise/param-names": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ParamNamesConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "promise/prefer-await-to-callbacks": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "promise/prefer-await-to-then": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferAwaitToThenConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "promise/prefer-catch": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "promise/spec-only": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/SpecOnlyConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "promise/valid-params": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "radix": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/RadixType"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react-perf/jsx-no-jsx-as-prop": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ReactPerfConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react-perf/jsx-no-new-array-as-prop": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ReactPerfConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react-perf/jsx-no-new-function-as-prop": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ReactPerfConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react-perf/jsx-no-new-object-as-prop": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ReactPerfConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/button-has-type": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ButtonHasType"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/checked-requires-onchange-or-readonly": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/CheckedRequiresOnchangeOrReadonly"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/display-name": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/DisplayNameConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/exhaustive-deps": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ExhaustiveDepsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/forbid-component-props": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ForbidComponentPropsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/forbid-dom-props": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ForbidDomPropsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/forbid-elements": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ForbidElementsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/forward-ref-uses-ref": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/hook-use-state": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/HookUseState"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/iframe-missing-sandbox": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/jsx-boolean-value": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/EnforceBooleanAttribute"
                },
                {
                  "$ref": "#/definitions/JsxBooleanValueOptions"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        },
        "react/jsx-curly-brace-presence": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/JsxCurlyBracePresenceConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/jsx-filename-extension": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/JsxFilenameExtensionConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/jsx-fragments": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/FragmentMode"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/jsx-handler-names": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/JsxHandlerNamesConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/jsx-key": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/JsxKeyConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/jsx-max-depth": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/JsxMaxDepthConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/jsx-no-comment-textnodes": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/jsx-no-constructed-context-values": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/jsx-no-duplicate-props": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/jsx-no-literals": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/JsxNoLiteralsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/jsx-no-script-url": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "anyOf": [
                {
                  "type": "array",
                  "items": [
                    {
                      "$ref": "#/definitions/AllowWarnDeny"
                    },
                    {
                      "type": "array",
                      "items": {
                        "$ref": "#/definitions/JsxNoScriptUrlComponent"
                      }
                    },
                    {
                      "$ref": "#/definitions/JsxNoScriptUrlOptions"
                    }
                  ],
                  "maxItems": 3,
                  "minItems": 2
                },
                {
                  "type": "array",
                  "items": [
                    {
                      "$ref": "#/definitions/AllowWarnDeny"
                    },
                    {
                      "$ref": "#/definitions/JsxNoScriptUrlOptions"
                    }
                  ],
                  "maxItems": 2,
                  "minItems": 2
                }
              ]
            }
          ]
        },
        "react/jsx-no-target-blank": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/JsxNoTargetBlank"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/jsx-no-undef": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/jsx-no-useless-fragment": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/JsxNoUselessFragment"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/jsx-pascal-case": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/JsxPascalCaseConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/jsx-props-no-spread-multi": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/jsx-props-no-spreading": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/JsxPropsNoSpreadingConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/no-array-index-key": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/no-children-prop": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/no-clone-element": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/no-danger": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/no-danger-with-children": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/no-did-mount-set-state": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AllowedOrDisallowInFunc"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/no-did-update-set-state": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AllowedOrDisallowInFunc"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/no-direct-mutation-state": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/no-find-dom-node": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/no-is-mounted": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/no-multi-comp": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoMultiComp"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/no-namespace": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/no-object-type-as-default-prop": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/no-react-children": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/no-redundant-should-component-update": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/no-render-return-value": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/no-set-state": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/no-string-refs": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoStringRefs"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/no-this-in-sfc": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/no-unescaped-entities": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/no-unknown-property": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUnknownPropertyConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/no-unsafe": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUnsafeConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/no-unstable-nested-components": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUnstableNestedComponentsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/no-will-update-set-state": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AllowedOrDisallowInFunc"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/only-export-components": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/OnlyExportComponentsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/prefer-es6-class": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AlwaysNever"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/prefer-function-component": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferFunctionComponent"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/react-compiler": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ReactCompilerConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/react-in-jsx-scope": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/require-render-return": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/rules-of-hooks": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "react/self-closing-comp": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/SelfClosingComp"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/state-in-constructor": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AlwaysNever"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/style-prop-object": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/StylePropObjectConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "react/void-dom-elements-no-children": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "require-await": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "require-unicode-regexp": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/RequireUnicodeRegexp"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "require-yield": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "sort-imports": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/SortImportsOptions"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "sort-keys": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/SortOrder"
                },
                {
                  "$ref": "#/definitions/SortKeysOptions"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        },
        "sort-vars": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/SortVars"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "symbol-description": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/adjacent-overload-signatures": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/array-type": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ArrayTypeConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/await-thenable": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/ban-ts-comment": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/BanTsCommentConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/ban-tslint-comment": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/ban-types": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/class-literal-property-style": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ClassLiteralPropertyStyleOption"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/consistent-generic-constructors": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferGenericType"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/consistent-indexed-object-style": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ConsistentIndexedObjectStyleConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/consistent-return": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ConsistentReturnConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/consistent-type-assertions": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ConsistentTypeAssertionsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/consistent-type-definitions": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ConsistentTypeDefinitionsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/consistent-type-exports": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ConsistentTypeExportsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/consistent-type-imports": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ConsistentTypeImportsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/dot-notation": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/DotNotationConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/explicit-function-return-type": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ExplicitFunctionReturnTypeConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/explicit-member-accessibility": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ExplicitMemberAccessibilityConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/explicit-module-boundary-types": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ExplicitModuleBoundaryTypesConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/method-signature-style": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MethodSignatureStyleConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-array-delete": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-base-to-string": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoBaseToStringConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-confusing-non-null-assertion": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-confusing-void-expression": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoConfusingVoidExpressionConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-deprecated": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoDeprecatedConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-duplicate-enum-values": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-duplicate-type-constituents": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoDuplicateTypeConstituentsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-dynamic-delete": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-empty-interface": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoEmptyInterface"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-empty-object-type": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoEmptyObjectTypeConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-explicit-any": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoExplicitAny"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-extra-non-null-assertion": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-extraneous-class": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoExtraneousClass"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-floating-promises": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoFloatingPromisesConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-for-in-array": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-implied-eval": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-import-type-side-effects": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-inferrable-types": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoInferrableTypes"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-invalid-void-type": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoInvalidVoidTypeConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-meaningless-void-operator": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoMeaninglessVoidOperatorConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-misused-new": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-misused-promises": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoMisusedPromisesConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-misused-spread": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoMisusedSpreadConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-mixed-enums": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-namespace": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoNamespace"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-non-null-asserted-nullish-coalescing": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-non-null-asserted-optional-chain": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-non-null-assertion": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-redundant-type-constituents": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-require-imports": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoRequireImportsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-restricted-types": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoRestrictedTypesConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-this-alias": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoThisAliasConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-unnecessary-boolean-literal-compare": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUnnecessaryBooleanLiteralCompareConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-unnecessary-condition": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUnnecessaryConditionConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-unnecessary-parameter-property-assignment": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-unnecessary-qualifier": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-unnecessary-template-expression": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-unnecessary-type-arguments": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-unnecessary-type-assertion": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUnnecessaryTypeAssertionConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-unnecessary-type-constraint": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-unnecessary-type-conversion": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-unnecessary-type-parameters": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-unsafe-argument": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-unsafe-assignment": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-unsafe-call": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-unsafe-declaration-merging": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-unsafe-enum-comparison": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-unsafe-function-type": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-unsafe-member-access": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUnsafeMemberAccessConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/no-unsafe-return": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-unsafe-type-assertion": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-unsafe-unary-minus": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-useless-default-assignment": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-useless-empty-export": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-var-requires": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/no-wrapper-object-types": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/non-nullable-type-assertion-style": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/only-throw-error": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/OnlyThrowErrorConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/parameter-properties": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ParameterPropertiesConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/prefer-as-const": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/prefer-enum-initializers": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/prefer-find": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/prefer-for-of": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/prefer-function-type": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/prefer-includes": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/prefer-literal-enum-member": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferLiteralEnumMember"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/prefer-namespace-keyword": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/prefer-nullish-coalescing": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferNullishCoalescingConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/prefer-optional-chain": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferOptionalChainConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/prefer-promise-reject-errors": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferPromiseRejectErrorsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/prefer-readonly": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferReadonlyConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/prefer-readonly-parameter-types": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferReadonlyParameterTypesConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/prefer-reduce-type-parameter": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/prefer-regexp-exec": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/prefer-return-this-type": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/prefer-string-starts-ends-with": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferStringStartsEndsWithConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/prefer-ts-expect-error": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/promise-function-async": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PromiseFunctionAsyncConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/related-getter-setter-pairs": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/require-array-sort-compare": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/RequireArraySortCompareConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/require-await": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "typescript/restrict-plus-operands": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/RestrictPlusOperandsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/restrict-template-expressions": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/RestrictTemplateExpressionsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/return-await": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ReturnAwaitOption"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/strict-boolean-expressions": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/StrictBooleanExpressionsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/strict-void-return": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/StrictVoidReturnConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/switch-exhaustiveness-check": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/SwitchExhaustivenessCheckConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/triple-slash-reference": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/TripleSlashReferenceConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/unbound-method": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/UnboundMethodConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/unified-signatures": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/UnifiedSignaturesOptions"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "typescript/use-unknown-in-catch-callback-variable": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicode-bom": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/BomOptionType"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/catch-error-name": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/CatchErrorNameConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/consistent-assert": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/consistent-date-clone": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/consistent-empty-array-spread": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/consistent-existence-index-check": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/consistent-function-scoping": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ConsistentFunctionScoping"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/consistent-template-literal-escape": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/custom-error-definition": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/empty-brace-spaces": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/error-message": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/escape-case": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/explicit-length-check": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ExplicitLengthCheck"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/filename-case": {
          "$ref": "#/definitions/DummyRule"
        },
        "unicorn/import-style": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ImportStyleConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/max-nested-calls": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MaxNestedCalls"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/new-for-builtins": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-abusive-eslint-disable": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-accessor-recursion": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-anonymous-default-export": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-array-callback-reference": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-array-fill-with-reference-type": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-array-for-each": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-array-method-this-argument": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-array-reduce": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoArrayReduce"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/no-array-reverse": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoArrayReverse"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/no-array-sort": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoArraySort"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/no-await-expression-member": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-await-in-promise-methods": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-console-spaces": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-document-cookie": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-empty-file": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-hex-escape": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-immediate-mutation": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-instanceof-array": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-instanceof-builtins": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoInstanceofBuiltinsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/no-invalid-fetch-options": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-invalid-remove-event-listener": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-length-as-slice-end": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-lonely-if": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-magic-array-flat-depth": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-negated-condition": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-negation-in-equality-check": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-nested-ternary": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-new-array": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-new-buffer": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-null": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoNull"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/no-object-as-default-parameter": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-process-exit": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-single-promise-in-promise-methods": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-static-only-class": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-thenable": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-this-assignment": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-typeof-undefined": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoTypeofUndefined"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/no-unnecessary-array-flat-depth": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-unnecessary-array-splice-count": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-unnecessary-await": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-unnecessary-slice-end": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-unreadable-array-destructuring": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-unreadable-iife": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-useless-collection-argument": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-useless-error-capture-stack-trace": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-useless-fallback-in-spread": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-useless-iterator-to-array": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-useless-length-check": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-useless-promise-resolve-reject": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUselessPromiseResolveRejectOptions"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/no-useless-spread": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-useless-switch-case": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/no-useless-undefined": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoUselessUndefined"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/no-zero-fractions": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/number-literal-case": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/numeric-separators-style": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NumericSeparatorsStyleConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/prefer-add-event-listener": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-array-find": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-array-flat": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-array-flat-map": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-array-index-of": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-array-some": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-at": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferAtConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/prefer-bigint-literals": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-blob-reading-methods": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-class-fields": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-classlist-toggle": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-code-point": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-date-now": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-default-parameters": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-dom-node-append": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-dom-node-dataset": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-dom-node-remove": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-dom-node-text-content": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-event-target": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-export-from": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferExportFrom"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/prefer-global-this": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-import-meta-properties": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-includes": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-keyboard-event-key": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-logical-operator-over-ternary": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-math-min-max": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-math-trunc": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-modern-dom-apis": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-modern-math-apis": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-module": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-native-coercion-functions": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-negative-index": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-node-protocol": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-number-coercion": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-number-properties": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferNumberPropertiesConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/prefer-object-from-entries": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferObjectFromEntriesConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/prefer-optional-catch-binding": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-prototype-methods": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-query-selector": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-reflect-apply": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-regexp-test": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-response-static-json": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-set-has": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-set-size": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-single-call": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferSingleCallConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/prefer-spread": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-string-raw": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-string-replace-all": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-string-slice": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-string-starts-ends-with": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-string-trim-start-end": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-structured-clone": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferStructuredCloneConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/prefer-ternary": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferTernaryOption"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/prefer-top-level-await": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/prefer-type-error": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/relative-url-style": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/RelativeUrlStyleConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/require-array-join-separator": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/require-module-attributes": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/require-module-specifiers": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/require-number-to-fixed-digits-argument": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/require-post-message-target-origin": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/switch-case-braces": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/SwitchCaseBracesConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/switch-case-break-position": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "unicorn/text-encoding-identifier-case": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/TextEncodingIdentifierCase"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "unicorn/throw-new-error": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "use-isnan": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/UseIsnan"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "valid-typeof": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ValidTypeof"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vars-on-top": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/consistent-each-for": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ConsistentEachForJson"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/consistent-test-filename": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ConsistentTestFilenameConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/consistent-test-it": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ConsistentTestItConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/consistent-vitest-vi": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ConsistentVitestConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/expect-expect": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ExpectExpectConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/hoisted-apis-on-top": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/max-expects": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MaxExpectsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/max-nested-describe": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MaxNestedDescribeConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/no-alias-methods": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/no-commented-out-tests": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/no-conditional-expect": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/no-conditional-in-test": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/no-conditional-tests": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/no-disabled-tests": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/no-duplicate-hooks": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/no-focused-tests": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/no-hooks": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoHooksConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/no-identical-title": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/no-import-node-test": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/no-importing-vitest-globals": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/no-interpolation-in-snapshots": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/no-large-snapshots": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoLargeSnapshotsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/no-mocks-import": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/no-restricted-matchers": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoRestrictedMatchersConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/no-restricted-vi-methods": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoRestrictedTestMethodsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/no-standalone-expect": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoStandaloneExpectConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/no-test-prefixes": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/no-test-return-statement": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/no-unneeded-async-expect-function": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/padding-around-after-all-blocks": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-called-exactly-once-with": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-called-once": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-called-times": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-called-with": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-comparison-matcher": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-describe-function-title": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-each": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-equality-matcher": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-expect-assertions": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferExpectAssertionsConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/prefer-expect-resolves": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-expect-type-of": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-hooks-in-order": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-hooks-on-top": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-import-in-mock": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/PreferImportInMockConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/prefer-importing-vitest-globals": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-lowercase-title": {
          "$ref": "#/definitions/DummyRule"
        },
        "vitest/prefer-mock-promise-shorthand": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-mock-return-shorthand": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-snapshot-hint": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/SnapshotHintMode"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/prefer-spy-on": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-strict-boolean-matchers": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-strict-equal": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-to-be": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-to-be-falsy": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-to-be-object": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-to-be-truthy": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-to-contain": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-to-have-been-called-times": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-to-have-length": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/prefer-todo": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/require-awaited-expect-poll": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/require-hook": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/RequireHookConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/require-local-test-context-for-concurrent-snapshots": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/require-mock-type-parameters": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/RequireMockTypeParametersConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/require-test-timeout": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/require-to-throw-message": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/require-top-level-describe": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/RequireTopLevelDescribeConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/valid-describe-callback": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/valid-expect": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ValidExpectConfig"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vitest/valid-expect-in-promise": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vitest/valid-title": {
          "$ref": "#/definitions/DummyRule"
        },
        "vitest/warn-todo": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/component-definition-name-casing": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/CaseType"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vue/define-emits-declaration": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/DeclarationStyle"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vue/define-props-declaration": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/DeclarationStyle2"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vue/define-props-destructuring": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/DefinePropsDestructuring"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vue/max-props": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/MaxProps"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vue/next-tick-style": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NextTickOption"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vue/no-arrow-functions-in-watch": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-async-in-computed-properties": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoAsyncInComputedProperties"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vue/no-computed-properties-in-data": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-deprecated-data-object-declaration": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-deprecated-delete-set": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-deprecated-destroyed-lifecycle": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-deprecated-events-api": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-deprecated-model-definition": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoDeprecatedModelDefinition"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vue/no-deprecated-props-default-this": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-deprecated-vue-config-keycodes": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-dupe-keys": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoDupeKeys"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vue/no-export-in-script-setup": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-expose-after-await": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-import-compiler-macros": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-lifecycle-after-await": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-multiple-slot-args": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-required-prop-with-default": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-reserved-component-names": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoReservedComponentNames"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vue/no-reserved-keys": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoReservedKeys"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vue/no-reserved-props": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/NoReservedProps"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vue/no-shared-component-data": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-side-effects-in-computed-properties": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-this-in-before-route-enter": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/no-watch-after-await": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/prefer-import-from-vue": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/prop-name-casing": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/CaseType2"
                },
                {
                  "$ref": "#/definitions/Options"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        },
        "vue/require-default-export": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/require-default-prop": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/require-direct-export": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/RequireDirectExport"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vue/require-prop-type-constructor": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/require-prop-types": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/require-render-return": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/require-slots-as-functions": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/require-typed-ref": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/return-in-computed-property": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/ReturnInComputedProperty"
                }
              ],
              "maxItems": 2,
              "minItems": 2
            }
          ]
        },
        "vue/return-in-emits-validator": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/valid-define-emits": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/valid-define-options": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/valid-define-props": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "vue/valid-next-tick": {
          "$ref": "#/definitions/RuleNoConfig"
        },
        "yoda": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleNoConfig"
            },
            {
              "type": "array",
              "items": [
                {
                  "$ref": "#/definitions/AllowWarnDeny"
                },
                {
                  "$ref": "#/definitions/AllowYoda"
                },
                {
                  "$ref": "#/definitions/YodaOptions"
                }
              ],
              "maxItems": 3,
              "minItems": 2
            }
          ]
        }
      },
      "additionalProperties": {
        "$ref": "#/definitions/DummyRule"
      },
      "markdownDescription": "See [Oxlint Rules](https://oxc.rs/docs/guide/usage/linter/rules.html)"
    },
    "ElementOverrideOptions": {
      "description": "One entry in `elementOverrides`: the base options plus override-only fields.",
      "type": "object",
      "properties": {
        "allowElement": {
          "description": "(default: false) - When true the rule will allow the specified element to have string literals as children, wrapped or unwrapped without warning.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "(default: false) - When true the rule will allow the specified element to have string literals as children, wrapped or unwrapped without warning."
        },
        "allowedStrings": {
          "description": "An array of unique string values that would otherwise warn, but will be ignored.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of unique string values that would otherwise warn, but will be ignored."
        },
        "applyToNestedElements": {
          "description": "(default: true) - When false the rule will not apply the current options set to nested elements. This is useful when you want to apply the rule to a specific element, but not to its children.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "(default: true) - When false the rule will not apply the current options set to nested elements. This is useful when you want to apply the rule to a specific element, but not to its children."
        },
        "ignoreProps": {
          "description": "(default: false) - When true the rule ignores literals used in props, wrapped or unwrapped.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "(default: false) - When true the rule ignores literals used in props, wrapped or unwrapped."
        },
        "noAttributeStrings": {
          "description": "(default: false) - Enforces no string literals used in attributes when set to true.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "(default: false) - Enforces no string literals used in attributes when set to true."
        },
        "noStrings": {
          "description": "(default: false) - Enforces no string literals used as children, wrapped or unwrapped.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "(default: false) - Enforces no string literals used as children, wrapped or unwrapped."
        },
        "restrictedAttributes": {
          "description": "An array of unique attribute names where string literals should be restricted. Only the specified attributes will be checked for string literals when this option is used. Note: When noAttributeStrings is true, this option is ignored at the root level.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of unique attribute names where string literals should be restricted. Only the specified attributes will be checked for string literals when this option is used. Note: When noAttributeStrings is true, this option is ignored at the root level."
        }
      },
      "additionalProperties": false,
      "markdownDescription": "One entry in `elementOverrides`: the base options plus override-only fields."
    },
    "EmptyTagsConfig": {
      "type": "object",
      "properties": {
        "tags": {
          "description": "Additional tags to check for their descriptions.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Additional tags to check for their descriptions."
        }
      },
      "additionalProperties": false
    },
    "EnforceBooleanAttribute": {
      "oneOf": [
        {
          "description": "All boolean attributes must have explicit values.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "All boolean attributes must have explicit values."
        },
        {
          "description": "All boolean attributes must omit values that are set to `true`.",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "All boolean attributes must omit values that are set to `true`."
        }
      ]
    },
    "EnforceDynamicLinksEnum": {
      "oneOf": [
        {
          "description": "Always enforce dynamic links.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Always enforce dynamic links."
        },
        {
          "description": "Always enforce static links.",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Always enforce static links."
        }
      ]
    },
    "Eqeqeq": {
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/CompareType"
        },
        {
          "$ref": "#/definitions/EqeqeqOptions"
        }
      ],
      "maxItems": 2,
      "minItems": 2
    },
    "EqeqeqOptions": {
      "type": "object",
      "properties": {
        "null": {
          "description": "Configuration for whether to allow/disallow comparisons against `null`,\ne.g. `foo == null` or `foo != null`",
          "allOf": [
            {
              "$ref": "#/definitions/NullType"
            }
          ],
          "markdownDescription": "Configuration for whether to allow/disallow comparisons against `null`,\ne.g. `foo == null` or `foo != null`"
        }
      },
      "additionalProperties": false
    },
    "ExhaustiveDepsConfig": {
      "type": "object",
      "properties": {
        "additionalHooks": {
          "description": "Optionally provide a regex of additional hooks to check.",
          "type": "string",
          "markdownDescription": "Optionally provide a regex of additional hooks to check."
        }
      },
      "additionalProperties": false
    },
    "ExpectExpectConfig": {
      "type": "object",
      "properties": {
        "additionalTestBlockFunctions": {
          "description": "An array of function names that should also be treated as test blocks.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of function names that should also be treated as test blocks."
        },
        "assertFunctionNames": {
          "description": "A list of function names that should be treated as assertion functions.\n\nNOTE: The default value is `[\"expect\"]` for Jest and\n`[\"expect\", \"expectTypeOf\", \"assert\", \"assertType\"]` for Vitest.",
          "default": [
            "expect"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "A list of function names that should be treated as assertion functions.\n\nNOTE: The default value is `[\"expect\"]` for Jest and\n`[\"expect\", \"expectTypeOf\", \"assert\", \"assertType\"]` for Vitest."
        }
      },
      "additionalProperties": false
    },
    "ExplicitFunctionReturnTypeConfig": {
      "type": "object",
      "properties": {
        "allowConciseArrowFunctionExpressionsStartingWithVoid": {
          "description": "Whether to allow concise arrow functions that start with the `void` keyword.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow concise arrow functions that start with the `void` keyword."
        },
        "allowDirectConstAssertionInArrowFunctions": {
          "description": "Whether to allow arrow functions that use `as const` assertion on their return value.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow arrow functions that use `as const` assertion on their return value."
        },
        "allowExpressions": {
          "description": "Whether to allow expressions as function return types. When `true`, allows functions that immediately return an expression without a return type annotation.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow expressions as function return types. When `true`, allows functions that immediately return an expression without a return type annotation."
        },
        "allowFunctionsWithoutTypeParameters": {
          "description": "Whether to allow functions that do not have generic type parameters.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow functions that do not have generic type parameters."
        },
        "allowHigherOrderFunctions": {
          "description": "Whether to allow higher-order functions (functions that return another function) without return type annotations.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow higher-order functions (functions that return another function) without return type annotations."
        },
        "allowIIFEs": {
          "description": "Whether to allow immediately invoked function expressions (IIFEs) without return type annotations.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow immediately invoked function expressions (IIFEs) without return type annotations."
        },
        "allowTypedFunctionExpressions": {
          "description": "Whether to allow typed function expressions. When `true`, allows function expressions that are assigned to a typed variable or parameter.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow typed function expressions. When `true`, allows function expressions that are assigned to a typed variable or parameter."
        },
        "allowedNames": {
          "description": "Array of function names that are exempt from requiring return type annotations.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true,
          "markdownDescription": "Array of function names that are exempt from requiring return type annotations."
        }
      },
      "additionalProperties": false
    },
    "ExplicitLengthCheck": {
      "type": "object",
      "properties": {
        "non-zero": {
          "description": "Configuration option to specify how non-zero length checks should be enforced.",
          "default": "greater-than",
          "allOf": [
            {
              "$ref": "#/definitions/NonZero"
            }
          ],
          "markdownDescription": "Configuration option to specify how non-zero length checks should be enforced."
        }
      },
      "additionalProperties": false
    },
    "ExplicitMemberAccessibilityConfig": {
      "type": "object",
      "properties": {
        "accessibility": {
          "description": "Which accessibility modifier is required to exist or not exist.",
          "allOf": [
            {
              "$ref": "#/definitions/AccessibilityLevel"
            }
          ],
          "markdownDescription": "Which accessibility modifier is required to exist or not exist."
        },
        "ignoredMethodNames": {
          "description": "Specific method names that may be ignored.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Specific method names that may be ignored."
        },
        "overrides": {
          "description": "Changes to required accessibility modifiers for specific kinds of class members.",
          "allOf": [
            {
              "$ref": "#/definitions/AccessibilityOverrides"
            }
          ],
          "markdownDescription": "Changes to required accessibility modifiers for specific kinds of class members."
        }
      },
      "additionalProperties": false
    },
    "ExplicitModuleBoundaryTypesConfig": {
      "type": "object",
      "properties": {
        "allowArgumentsExplicitlyTypedAsAny": {
          "description": "Whether to ignore arguments that are explicitly typed as `any`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore arguments that are explicitly typed as `any`."
        },
        "allowDirectConstAssertionInArrowFunctions": {
          "description": "Whether to ignore return type annotations on body-less arrow functions\nthat return an `as const` type assertion. You must still type the\nparameters of the function.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to ignore return type annotations on body-less arrow functions\nthat return an `as const` type assertion. You must still type the\nparameters of the function."
        },
        "allowHigherOrderFunctions": {
          "description": "Whether to ignore return type annotations on functions immediately\nreturning another function expression. You must still type the\nparameters of the function.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to ignore return type annotations on functions immediately\nreturning another function expression. You must still type the\nparameters of the function."
        },
        "allowOverloadFunctions": {
          "description": "Whether to ignore return type annotations on functions with overload\nsignatures.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore return type annotations on functions with overload\nsignatures."
        },
        "allowTypedFunctionExpressions": {
          "description": "Whether to ignore type annotations on the variable of a function\nexpression.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to ignore type annotations on the variable of a function\nexpression."
        },
        "allowedNames": {
          "description": "An array of function/method names that will not have their arguments or\nreturn values checked.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of function/method names that will not have their arguments or\nreturn values checked."
        }
      },
      "additionalProperties": false
    },
    "ExtensionRule": {
      "description": "Extension rule configuration; Copy to avoid extra indirection.",
      "type": "string",
      "enum": [
        "always",
        "never",
        "ignorePackages"
      ],
      "markdownDescription": "Extension rule configuration; Copy to avoid extra indirection."
    },
    "ExternalPluginEntry": {
      "anyOf": [
        {
          "description": "Path or package name of the plugin",
          "type": "string",
          "markdownDescription": "Path or package name of the plugin"
        },
        {
          "description": "Plugin with custom name/alias",
          "type": "object",
          "required": [
            "name",
            "specifier"
          ],
          "properties": {
            "name": {
              "description": "Custom name/alias for the plugin.\n\nNote: The following plugin names are reserved because they are implemented natively in Rust within oxlint and cannot be used for JS plugins:\n- react (includes react-hooks)\n- unicorn\n- typescript (includes @typescript-eslint)\n- oxc\n- import (includes import-x)\n- jsdoc\n- jest\n- vitest\n- jsx-a11y (includes jsx-a11y-x)\n- nextjs\n- react-perf\n- promise\n- node\n- vue\n- eslint\n\nIf you need to use the JavaScript version of any of these plugins, provide a custom alias to avoid conflicts.",
              "type": "string",
              "markdownDescription": "Custom name/alias for the plugin.\n\nNote: The following plugin names are reserved because they are implemented natively in Rust within oxlint and cannot be used for JS plugins:\n- react (includes react-hooks)\n- unicorn\n- typescript (includes @typescript-eslint)\n- oxc\n- import (includes import-x)\n- jsdoc\n- jest\n- vitest\n- jsx-a11y (includes jsx-a11y-x)\n- nextjs\n- react-perf\n- promise\n- node\n- vue\n- eslint\n\nIf you need to use the JavaScript version of any of these plugins, provide a custom alias to avoid conflicts."
            },
            "specifier": {
              "description": "Path or package name of the plugin",
              "type": "string",
              "markdownDescription": "Path or package name of the plugin"
            }
          },
          "additionalProperties": false,
          "markdownDescription": "Plugin with custom name/alias"
        }
      ]
    },
    "FileFrom": {
      "type": "string",
      "enum": [
        "file"
      ]
    },
    "FileSpecifier": {
      "description": "Describes specific types or values declared in local files.",
      "type": "object",
      "required": [
        "from",
        "name"
      ],
      "properties": {
        "from": {
          "description": "Must be \"file\"",
          "allOf": [
            {
              "$ref": "#/definitions/FileFrom"
            }
          ],
          "markdownDescription": "Must be \"file\""
        },
        "name": {
          "description": "The name(s) of the type or value to match",
          "allOf": [
            {
              "$ref": "#/definitions/NameSpecifier"
            }
          ],
          "markdownDescription": "The name(s) of the type or value to match"
        },
        "path": {
          "description": "Optional file path to specify where the types or values must be declared.\nIf omitted, all files will be matched.",
          "type": "string",
          "markdownDescription": "Optional file path to specify where the types or values must be declared.\nIf omitted, all files will be matched."
        }
      },
      "additionalProperties": false,
      "markdownDescription": "Describes specific types or values declared in local files."
    },
    "FixStyle": {
      "oneOf": [
        {
          "description": "Will add the type keyword after the import keyword `import type { A } from '...'`",
          "type": "string",
          "enum": [
            "separate-type-imports"
          ],
          "markdownDescription": "Will add the type keyword after the import keyword `import type { A } from '...'`"
        },
        {
          "description": "Will inline the type keyword `import { type A } from '...'` (only available in TypeScript 4.5+)",
          "type": "string",
          "enum": [
            "inline-type-imports"
          ],
          "markdownDescription": "Will inline the type keyword `import { type A } from '...'` (only available in TypeScript 4.5+)"
        }
      ]
    },
    "ForbidComponentPropsConfig": {
      "type": "object",
      "properties": {
        "forbid": {
          "description": "An array specifying the names of props that are forbidden.\n\nThe default value is `[\"className\", \"style\"]`.\n\nEach array element can be a string with the property name, or an object with `propName` / `propNamePattern`,\n`allowedFor` / `allowedForPatterns`, `disallowedFor` / `disallowedForPatterns`, optional custom `message`\n\n**Pattern matching**: Uses glob patterns to match prop names and component names.\nFor example, a `propNamePattern` of `\"**-**\"` would match any prop name that contains a hyphen, and an `allowedForPatterns` entry of `\"*Icon\"` would match component names like `SomeIcon` and `AnotherIcon`.\nNote that the pattern matching is done in Rust with the fast-glob library, and so may differ\nfrom the JavaScript glob library used by the original ESLint rule.\n\nExamples:\n\n- `[\"error\", { \"forbid\": [\"className\", \"style\"] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"className\", \"message\": \"Use variant instead\" }] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"className\", \"allowedFor\": [\"ReactModal\"] }] }]`\n- `[\"error\", { \"forbid\": [{ \"propNamePattern\": \"**-**\", \"disallowedFor\": [\"Foo\"] }] }]`",
          "type": "array",
          "items": {
            "$ref": "#/definitions/ForbidItem"
          },
          "markdownDescription": "An array specifying the names of props that are forbidden.\n\nThe default value is `[\"className\", \"style\"]`.\n\nEach array element can be a string with the property name, or an object with `propName` / `propNamePattern`,\n`allowedFor` / `allowedForPatterns`, `disallowedFor` / `disallowedForPatterns`, optional custom `message`\n\n**Pattern matching**: Uses glob patterns to match prop names and component names.\nFor example, a `propNamePattern` of `\"**-**\"` would match any prop name that contains a hyphen, and an `allowedForPatterns` entry of `\"*Icon\"` would match component names like `SomeIcon` and `AnotherIcon`.\nNote that the pattern matching is done in Rust with the fast-glob library, and so may differ\nfrom the JavaScript glob library used by the original ESLint rule.\n\nExamples:\n\n- `[\"error\", { \"forbid\": [\"className\", \"style\"] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"className\", \"message\": \"Use variant instead\" }] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"className\", \"allowedFor\": [\"ReactModal\"] }] }]`\n- `[\"error\", { \"forbid\": [{ \"propNamePattern\": \"**-**\", \"disallowedFor\": [\"Foo\"] }] }]`"
        }
      },
      "additionalProperties": false
    },
    "ForbidDomPropsConfig": {
      "description": "Configuration for the `forbid-dom-props` rule.",
      "type": "object",
      "properties": {
        "forbid": {
          "description": "An array of prop names or objects that are forbidden on DOM elements.\n\nEach array element can be a string with the property name, or an object\nwith `propName`, an optional `disallowedFor` array of DOM node names,\nand an optional custom `message`.\n\nExamples:\n\n- `[\"error\", { \"forbid\": [\"id\", \"style\"] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"className\", \"message\": \"Use class instead\" }] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"style\", \"disallowedFor\": [\"div\", \"span\"] }] }]`",
          "type": "array",
          "items": {
            "$ref": "#/definitions/ForbidDomPropsItem"
          },
          "markdownDescription": "An array of prop names or objects that are forbidden on DOM elements.\n\nEach array element can be a string with the property name, or an object\nwith `propName`, an optional `disallowedFor` array of DOM node names,\nand an optional custom `message`.\n\nExamples:\n\n- `[\"error\", { \"forbid\": [\"id\", \"style\"] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"className\", \"message\": \"Use class instead\" }] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"style\", \"disallowedFor\": [\"div\", \"span\"] }] }]`"
        }
      },
      "additionalProperties": false,
      "markdownDescription": "Configuration for the `forbid-dom-props` rule."
    },
    "ForbidDomPropsItem": {
      "description": "A forbidden prop, either as a plain prop name string or with options.",
      "anyOf": [
        {
          "description": "A prop name to forbid on all DOM elements.",
          "type": "string",
          "markdownDescription": "A prop name to forbid on all DOM elements."
        },
        {
          "description": "A prop with optional `disallowedFor` DOM node list and custom `message`.",
          "allOf": [
            {
              "$ref": "#/definitions/PropWithOptions"
            }
          ],
          "markdownDescription": "A prop with optional `disallowedFor` DOM node list and custom `message`."
        }
      ],
      "markdownDescription": "A forbidden prop, either as a plain prop name string or with options."
    },
    "ForbidElementsConfig": {
      "type": "object",
      "properties": {
        "forbid": {
          "description": "List of forbidden elements, with optional messages for display with lint violations.\n\nExamples:\n\n- `[\"error, { \"forbid\": [\"button\"] }]`\n- `[\"error, { \"forbid\": [{ \"element\": \"button\", \"message\": \"Use <Button> instead.\" }] }]`\n- `[\"error, { \"forbid\": [{ \"element\": \"input\" }] }]`",
          "type": "array",
          "items": {
            "$ref": "#/definitions/ForbidItem2"
          },
          "markdownDescription": "List of forbidden elements, with optional messages for display with lint violations.\n\nExamples:\n\n- `[\"error, { \"forbid\": [\"button\"] }]`\n- `[\"error, { \"forbid\": [{ \"element\": \"button\", \"message\": \"Use <Button> instead.\" }] }]`\n- `[\"error, { \"forbid\": [{ \"element\": \"input\" }] }]`"
        }
      },
      "additionalProperties": false
    },
    "ForbidItem": {
      "description": "A forbidden prop, either as a plain prop name string or with options.",
      "anyOf": [
        {
          "description": "A prop name string to forbid on all components.",
          "type": "string",
          "markdownDescription": "A prop name string to forbid on all components."
        },
        {
          "description": "An object with `propName` / `propNamePattern` and allow/disallow lists.",
          "allOf": [
            {
              "$ref": "#/definitions/ForbidItemObject"
            }
          ],
          "markdownDescription": "An object with `propName` / `propNamePattern` and allow/disallow lists."
        }
      ],
      "markdownDescription": "A forbidden prop, either as a plain prop name string or with options."
    },
    "ForbidItem2": {
      "description": "A forbidden element, either as a plain element name or with a custom message.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "object",
          "required": [
            "element"
          ],
          "properties": {
            "element": {
              "description": "The element name to forbid.",
              "type": "string",
              "markdownDescription": "The element name to forbid."
            },
            "message": {
              "description": "The message to display when this element is found",
              "type": "string",
              "markdownDescription": "The message to display when this element is found"
            }
          },
          "additionalProperties": false
        }
      ],
      "markdownDescription": "A forbidden element, either as a plain element name or with a custom message."
    },
    "ForbidItemObject": {
      "type": "object",
      "required": [
        "allowedFor",
        "allowedForPatterns",
        "disallowedFor",
        "disallowedForPatterns"
      ],
      "properties": {
        "allowedFor": {
          "description": "Component names for which this prop is **allowed** (all others are\nforbidden).",
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Component names for which this prop is **allowed** (all others are\nforbidden)."
        },
        "allowedForPatterns": {
          "description": "Glob patterns for component names where the prop is **allowed**.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Glob patterns for component names where the prop is **allowed**."
        },
        "disallowedFor": {
          "description": "Component names for which this prop is **disallowed** (all others are\nallowed).",
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Component names for which this prop is **disallowed** (all others are\nallowed)."
        },
        "disallowedForPatterns": {
          "description": "Glob patterns for component names where the prop is **disallowed**.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Glob patterns for component names where the prop is **disallowed**."
        },
        "message": {
          "description": "Custom message to display.",
          "type": "string",
          "markdownDescription": "Custom message to display."
        },
        "propName": {
          "description": "Exact prop name to forbid.",
          "type": "string",
          "markdownDescription": "Exact prop name to forbid."
        },
        "propNamePattern": {
          "description": "Glob pattern to match prop names against.",
          "type": "string",
          "markdownDescription": "Glob pattern to match prop names against."
        }
      },
      "additionalProperties": false
    },
    "FragmentMode": {
      "oneOf": [
        {
          "description": "This is the default mode. It will enforce the shorthand syntax for React fragments, with one exception.\nKeys or attributes are not supported by the shorthand syntax, so the rule will not warn on standard-form fragments that use those.\n\nExamples of **incorrect** code for this rule:\n```jsx\n<React.Fragment><Foo /></React.Fragment>\n```\n\nExamples of **correct** code for this rule:\n```jsx\n<><Foo /></>\n```\n\n```jsx\n<React.Fragment key=\"key\"><Foo /></React.Fragment>\n```",
          "type": "string",
          "enum": [
            "syntax"
          ],
          "markdownDescription": "This is the default mode. It will enforce the shorthand syntax for React fragments, with one exception.\nKeys or attributes are not supported by the shorthand syntax, so the rule will not warn on standard-form fragments that use those.\n\nExamples of **incorrect** code for this rule:\n```jsx\n<React.Fragment><Foo /></React.Fragment>\n```\n\nExamples of **correct** code for this rule:\n```jsx\n<><Foo /></>\n```\n\n```jsx\n<React.Fragment key=\"key\"><Foo /></React.Fragment>\n```"
        },
        {
          "description": "This mode enforces the standard form for React fragments.\n\nExamples of **incorrect** code for this rule:\n```jsx\n<><Foo /></>\n```\n\nExamples of **correct** code for this rule:\n```jsx\n<React.Fragment><Foo /></React.Fragment>\n```\n\n```jsx\n<React.Fragment key=\"key\"><Foo /></React.Fragment>\n```",
          "type": "string",
          "enum": [
            "element"
          ],
          "markdownDescription": "This mode enforces the standard form for React fragments.\n\nExamples of **incorrect** code for this rule:\n```jsx\n<><Foo /></>\n```\n\nExamples of **correct** code for this rule:\n```jsx\n<React.Fragment><Foo /></React.Fragment>\n```\n\n```jsx\n<React.Fragment key=\"key\"><Foo /></React.Fragment>\n```"
        }
      ]
    },
    "FuncNameMatchingConfig": {
      "type": "object",
      "properties": {
        "considerPropertyDescriptor": {
          "description": "If `considerPropertyDescriptor` is set to `true`, the check will take into account the use of `Object.create`, `Object.defineProperty`, `Object.defineProperties`, and `Reflect.defineProperty`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If `considerPropertyDescriptor` is set to `true`, the check will take into account the use of `Object.create`, `Object.defineProperty`, `Object.defineProperties`, and `Reflect.defineProperty`."
        },
        "includeCommonJSModuleExports": {
          "description": "If `includeCommonJSModuleExports` is set to `true`, `module.exports` and `module[\"exports\"]` will be checked by this rule.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If `includeCommonJSModuleExports` is set to `true`, `module.exports` and `module[\"exports\"]` will be checked by this rule."
        }
      },
      "additionalProperties": false
    },
    "FuncNameMatchingMode": {
      "type": "string",
      "enum": [
        "always",
        "never"
      ]
    },
    "FuncNames": {
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/FuncNamesConfigType"
        },
        {
          "$ref": "#/definitions/FuncNamesGeneratorsConfig"
        }
      ],
      "maxItems": 2,
      "minItems": 2
    },
    "FuncNamesConfigType": {
      "oneOf": [
        {
          "description": "Requires all function expressions to have a name.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Requires all function expressions to have a name."
        },
        {
          "description": "Requires a name only if one is not automatically inferred.",
          "type": "string",
          "enum": [
            "as-needed"
          ],
          "markdownDescription": "Requires a name only if one is not automatically inferred."
        },
        {
          "description": "Disallows names for function expressions.",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Disallows names for function expressions."
        }
      ]
    },
    "FuncNamesGeneratorsConfig": {
      "type": "object",
      "properties": {
        "generators": {
          "description": "Configuration for generator function expressions. If not specified, uses the\nprimary configuration.\n\nAccepts `always`, `as-needed`, or `never`.\n\nGenerator functions are those defined using the `function*` syntax.\n```js\nfunction* foobar(i) {\nyield i;\nyield i + 10;\n}\n```",
          "allOf": [
            {
              "$ref": "#/definitions/FuncNamesConfigType"
            }
          ],
          "markdownDescription": "Configuration for generator function expressions. If not specified, uses the\nprimary configuration.\n\nAccepts `always`, `as-needed`, or `never`.\n\nGenerator functions are those defined using the `function*` syntax.\n```js\nfunction* foobar(i) {\nyield i;\nyield i + 10;\n}\n```"
        }
      },
      "additionalProperties": false
    },
    "FuncStyle": {
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/Style"
        },
        {
          "$ref": "#/definitions/FuncStyleConfig"
        }
      ],
      "maxItems": 2,
      "minItems": 2
    },
    "FuncStyleConfig": {
      "type": "object",
      "properties": {
        "allowArrowFunctions": {
          "description": "When true, arrow functions are allowed regardless of the style setting.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When true, arrow functions are allowed regardless of the style setting."
        },
        "allowTypeAnnotation": {
          "description": "When true, functions with type annotations are allowed regardless of the style setting.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When true, functions with type annotations are allowed regardless of the style setting."
        },
        "overrides": {
          "description": "Override the style specifically for named exports. Can be \"expression\", \"declaration\", or \"ignore\" (default).",
          "default": {
            "namedExports": null
          },
          "allOf": [
            {
              "$ref": "#/definitions/Override"
            }
          ],
          "markdownDescription": "Override the style specifically for named exports. Can be \"expression\", \"declaration\", or \"ignore\" (default)."
        }
      },
      "additionalProperties": false
    },
    "GetterReturn": {
      "type": "object",
      "properties": {
        "allowImplicit": {
          "description": "When set to `true`, allows getters to implicitly return `undefined` with a `return` statement containing no expression.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, allows getters to implicitly return `undefined` with a `return` statement containing no expression."
        }
      },
      "additionalProperties": false
    },
    "GlobSet": {
      "description": "A set of glob patterns.\nPatterns are matched against paths relative to the configuration file's directory.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "markdownDescription": "A set of glob patterns.\nPatterns are matched against paths relative to the configuration file's directory."
    },
    "GlobalValue": {
      "type": "string",
      "enum": [
        "readonly",
        "writable",
        "off"
      ]
    },
    "GroupedAccessorPairs": {
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/PairOrder"
        },
        {
          "$ref": "#/definitions/GroupedAccessorPairsConfig"
        }
      ],
      "maxItems": 2,
      "minItems": 2
    },
    "GroupedAccessorPairsConfig": {
      "type": "object",
      "properties": {
        "enforceForTSTypes": {
          "description": "When `enforceForTSTypes` is enabled, this rule also applies to TypeScript interfaces\nand type aliases.\n\nExamples of **incorrect** TypeScript code:\n```ts\ninterface Foo {\nget a(): string;\nsomeProperty: string;\nset a(value: string);\n}\n\ntype Bar = {\nget b(): string;\nsomeProperty: string;\nset b(value: string);\n};\n```\n\nExamples of **correct** TypeScript code:\n```ts\ninterface Foo {\nget a(): string;\nset a(value: string);\nsomeProperty: string;\n}\n\ntype Bar = {\nget b(): string;\nset b(value: string);\nsomeProperty: string;\n};\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `enforceForTSTypes` is enabled, this rule also applies to TypeScript interfaces\nand type aliases.\n\nExamples of **incorrect** TypeScript code:\n```ts\ninterface Foo {\nget a(): string;\nsomeProperty: string;\nset a(value: string);\n}\n\ntype Bar = {\nget b(): string;\nsomeProperty: string;\nset b(value: string);\n};\n```\n\nExamples of **correct** TypeScript code:\n```ts\ninterface Foo {\nget a(): string;\nset a(value: string);\nsomeProperty: string;\n}\n\ntype Bar = {\nget b(): string;\nset b(value: string);\nsomeProperty: string;\n};\n```"
        }
      },
      "additionalProperties": false
    },
    "HandleCallbackErrConfig": {
      "description": "The rule takes a single string option: the name of the error parameter.\n\nThis can be either:\n- an exact name (e.g. `\"err\"`, `\"error\"`)\n- a regexp pattern (e.g. `\"^(err|error)$\"`)\n\nIf the configured name of the error variable begins with a `^` it is considered to be a regexp pattern.\n\nDefault: `\"err\"`.",
      "type": "string",
      "markdownDescription": "The rule takes a single string option: the name of the error parameter.\n\nThis can be either:\n- an exact name (e.g. `\"err\"`, `\"error\"`)\n- a regexp pattern (e.g. `\"^(err|error)$\"`)\n\nIf the configured name of the error variable begins with a `^` it is considered to be a regexp pattern.\n\nDefault: `\"err\"`."
    },
    "HeadingHasContentConfig": {
      "type": "object",
      "properties": {
        "components": {
          "description": "Additional custom component names to treat as heading elements.\nThese will be validated in addition to the standard h1-h6 elements.",
          "default": null,
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Additional custom component names to treat as heading elements.\nThese will be validated in addition to the standard h1-h6 elements."
        }
      },
      "additionalProperties": false
    },
    "HoistOption": {
      "description": "Controls how hoisting is handled when checking for shadowing.",
      "oneOf": [
        {
          "description": "Report shadowing even before the outer variable is declared (due to hoisting).",
          "type": "string",
          "enum": [
            "all"
          ],
          "markdownDescription": "Report shadowing even before the outer variable is declared (due to hoisting)."
        },
        {
          "description": "Only report shadowing for function declarations that are hoisted.",
          "type": "string",
          "enum": [
            "functions"
          ],
          "markdownDescription": "Only report shadowing for function declarations that are hoisted."
        },
        {
          "description": "Report shadowing for both function and type declarations that are hoisted.",
          "type": "string",
          "enum": [
            "functions-and-types"
          ],
          "markdownDescription": "Report shadowing for both function and type declarations that are hoisted."
        },
        {
          "description": "Never report shadowing before the outer variable is declared.",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Never report shadowing before the outer variable is declared."
        },
        {
          "description": "Only report shadowing for type declarations that are hoisted.",
          "type": "string",
          "enum": [
            "types"
          ],
          "markdownDescription": "Only report shadowing for type declarations that are hoisted."
        }
      ],
      "markdownDescription": "Controls how hoisting is handled when checking for shadowing."
    },
    "HookUseState": {
      "$ref": "#/definitions/HookUseStateConfig"
    },
    "HookUseStateConfig": {
      "type": "object",
      "properties": {
        "allowDestructuredState": {
          "description": "When true the rule will ignore the name of the destructured value.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When true the rule will ignore the name of the destructured value."
        }
      },
      "additionalProperties": false
    },
    "IdLengthConfig": {
      "type": "object",
      "properties": {
        "checkGeneric": {
          "description": "Whether to check TypeScript generic type parameter names.\nDefaults to `true`.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check TypeScript generic type parameter names.\nDefaults to `true`."
        },
        "exceptionPatterns": {
          "description": "An array of regex patterns for identifiers to exclude from the rule.\nFor example, `[\"^x.*\"]` would exclude all identifiers starting with \"x\".",
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of regex patterns for identifiers to exclude from the rule.\nFor example, `[\"^x.*\"]` would exclude all identifiers starting with \"x\"."
        },
        "exceptions": {
          "description": "An array of identifier names that are excluded from the rule.\nFor example, `[\"x\", \"y\", \"z\"]` would allow single-letter identifiers \"x\", \"y\", and \"z\".",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of identifier names that are excluded from the rule.\nFor example, `[\"x\", \"y\", \"z\"]` would allow single-letter identifiers \"x\", \"y\", and \"z\"."
        },
        "max": {
          "description": "The maximum number of graphemes allowed in an identifier.\nDefaults to no maximum (effectively unlimited).",
          "default": 18446744073709551615,
          "type": "integer",
          "format": "uint64",
          "minimum": 0.0,
          "markdownDescription": "The maximum number of graphemes allowed in an identifier.\nDefaults to no maximum (effectively unlimited)."
        },
        "min": {
          "description": "The minimum number of graphemes required in an identifier.",
          "default": 2,
          "type": "integer",
          "format": "uint64",
          "minimum": 0.0,
          "markdownDescription": "The minimum number of graphemes required in an identifier."
        },
        "properties": {
          "description": "Whether to check property names for length.",
          "default": "always",
          "allOf": [
            {
              "$ref": "#/definitions/AlwaysNever"
            }
          ],
          "markdownDescription": "Whether to check property names for length."
        }
      },
      "additionalProperties": false
    },
    "IdMatchConfig": {
      "type": "array",
      "items": [
        {
          "type": "string"
        },
        {
          "$ref": "#/definitions/IdMatchOptions"
        }
      ],
      "maxItems": 2,
      "minItems": 2
    },
    "IdMatchOptions": {
      "type": "object",
      "properties": {
        "classFields": {
          "description": "Whether class field names are checked, including public fields,\naccessor properties, and private field names.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether class field names are checked, including public fields,\naccessor properties, and private field names."
        },
        "ignoreDestructuring": {
          "description": "Whether to ignore shorthand and aliased bindings introduced by object\ndestructuring, such as `foo` in `const { foo } = obj` and `alias` in\n`const { foo: alias } = obj`. This does not suppress computed key\nreferences such as `const { [key]: value } = obj`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore shorthand and aliased bindings introduced by object\ndestructuring, such as `foo` in `const { foo } = obj` and `alias` in\n`const { foo: alias } = obj`. This does not suppress computed key\nreferences such as `const { [key]: value } = obj`."
        },
        "onlyDeclarations": {
          "description": "Whether to check only variable and function declaration names.\nReferences, member names, labels, class names, TypeScript declarations,\nand function or arrow parameters are skipped.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to check only variable and function declaration names.\nReferences, member names, labels, class names, TypeScript declarations,\nand function or arrow parameters are skipped."
        },
        "properties": {
          "description": "Whether object literal property names, class method names, and assigned\nmember names such as `obj.prop = value` are checked.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether object literal property names, class method names, and assigned\nmember names such as `obj.prop = value` are checked."
        }
      },
      "additionalProperties": false
    },
    "IgnoreClassWithImplements": {
      "oneOf": [
        {
          "description": "Ignores all classes that implement interfaces",
          "type": "string",
          "enum": [
            "all"
          ],
          "markdownDescription": "Ignores all classes that implement interfaces"
        },
        {
          "description": "Only ignores public fields in classes that implement interfaces",
          "type": "string",
          "enum": [
            "public-fields"
          ],
          "markdownDescription": "Only ignores public fields in classes that implement interfaces"
        }
      ]
    },
    "IgnoreEnforceOption": {
      "type": "string",
      "enum": [
        "ignore",
        "enforce"
      ]
    },
    "IgnorePattern_for_String": {
      "anyOf": [
        {
          "description": "The ignore pattern is explicitly none.",
          "type": "null",
          "markdownDescription": "The ignore pattern is explicitly none."
        },
        {
          "description": "The ignore pattern is a regex.",
          "type": "string",
          "markdownDescription": "The ignore pattern is a regex."
        }
      ]
    },
    "IgnorePrimitives": {
      "description": "Represents the different ways `ignorePrimitives` can be specified in JSON.\nCan be:\n- `true` - ignore all primitive types\n- An object specifying which primitives to ignore",
      "anyOf": [
        {
          "description": "`\"ignorePrimitives\": true` - ignore all primitive types",
          "type": "boolean",
          "markdownDescription": "`\"ignorePrimitives\": true` - ignore all primitive types"
        },
        {
          "description": "`\"ignorePrimitives\": { \"string\": true, ... }` - ignore specific primitives",
          "allOf": [
            {
              "$ref": "#/definitions/IgnorePrimitivesOptions"
            }
          ],
          "markdownDescription": "`\"ignorePrimitives\": { \"string\": true, ... }` - ignore specific primitives"
        }
      ],
      "markdownDescription": "Represents the different ways `ignorePrimitives` can be specified in JSON.\nCan be:\n- `true` - ignore all primitive types\n- An object specifying which primitives to ignore"
    },
    "IgnorePrimitivesOptions": {
      "description": "Options for ignoring specific primitive types.",
      "type": "object",
      "properties": {
        "bigint": {
          "description": "Ignore bigint primitive types.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Ignore bigint primitive types."
        },
        "boolean": {
          "description": "Ignore boolean primitive types.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Ignore boolean primitive types."
        },
        "number": {
          "description": "Ignore number primitive types.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Ignore number primitive types."
        },
        "string": {
          "description": "Ignore string primitive types.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Ignore string primitive types."
        }
      },
      "additionalProperties": false,
      "markdownDescription": "Options for ignoring specific primitive types."
    },
    "ImgRedundantAltConfig": {
      "type": "object",
      "properties": {
        "components": {
          "description": "JSX element types to validate (component names) where the rule applies.\nFor example, `[\"img\", \"Image\"]`.",
          "default": [
            "img"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "JSX element types to validate (component names) where the rule applies.\nFor example, `[\"img\", \"Image\"]`."
        },
        "words": {
          "description": "Words considered redundant in alt text that should trigger a warning.",
          "default": [
            "image",
            "photo",
            "picture"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Words considered redundant in alt text that should trigger a warning."
        }
      },
      "additionalProperties": false
    },
    "ImportExtensionsConfig": {
      "type": "object",
      "properties": {
        "checkTypeImports": {
          "description": "Whether to check type imports when enforcing extension rules.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to check type imports when enforcing extension rules."
        },
        "ignorePackages": {
          "description": "Whether to ignore package imports when enforcing extension rules.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore package imports when enforcing extension rules."
        },
        "pathGroupOverrides": {
          "description": "Path group overrides for bespoke import specifiers.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/PathGroupOverrideConfig"
          },
          "markdownDescription": "Path group overrides for bespoke import specifiers."
        },
        "pattern": {
          "description": "Per-extension rules.",
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/ExtensionRule"
          },
          "markdownDescription": "Per-extension rules."
        }
      },
      "additionalProperties": false
    },
    "ImportExtensionsObject": {
      "anyOf": [
        {
          "$ref": "#/definitions/ImportExtensionsConfig"
        },
        {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/ExtensionRule"
          }
        }
      ]
    },
    "ImportKind": {
      "type": "string",
      "enum": [
        "none",
        "all",
        "multiple",
        "single"
      ]
    },
    "ImportStyleConfig": {
      "type": "object",
      "properties": {
        "checkDynamicImport": {
          "description": "Whether dynamic import expressions are checked.\n\nSet this to `false` to skip calls such as `await import(\"module\")`.\n\nWith the default configuration, examples of **incorrect** code:\n```js\nasync () => {\nconst {red} = await import(\"chalk\");\n};\n```\n\nExamples of **correct** code:\n```js\nasync () => {\nconst {default: chalk} = await import(\"chalk\");\n};\n```",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether dynamic import expressions are checked.\n\nSet this to `false` to skip calls such as `await import(\"module\")`.\n\nWith the default configuration, examples of **incorrect** code:\n```js\nasync () => {\nconst {red} = await import(\"chalk\");\n};\n```\n\nExamples of **correct** code:\n```js\nasync () => {\nconst {default: chalk} = await import(\"chalk\");\n};\n```"
        },
        "checkExportFrom": {
          "description": "Whether export-from declarations are checked.\n\nThis is disabled by default. Set this to `true` to check declarations like\n`export ... from \"module\"`.\n\nWith `{ \"checkExportFrom\": true }`, examples of **incorrect** code:\n```js\nexport * from \"node:util\";\n```\n\nExamples of **correct** code:\n```js\nexport {promisify} from \"node:util\";\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether export-from declarations are checked.\n\nThis is disabled by default. Set this to `true` to check declarations like\n`export ... from \"module\"`.\n\nWith `{ \"checkExportFrom\": true }`, examples of **incorrect** code:\n```js\nexport * from \"node:util\";\n```\n\nExamples of **correct** code:\n```js\nexport {promisify} from \"node:util\";\n```"
        },
        "checkImport": {
          "description": "Whether static import declarations are checked.\n\nSet this to `false` to skip `import ... from \"module\"` and side-effect imports like\n`import \"module\"`.\n\nWith the default configuration, examples of **incorrect** code:\n```js\nimport {red} from \"chalk\";\n```\n\nExamples of **correct** code:\n```js\nimport chalk from \"chalk\";\n```",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether static import declarations are checked.\n\nSet this to `false` to skip `import ... from \"module\"` and side-effect imports like\n`import \"module\"`.\n\nWith the default configuration, examples of **incorrect** code:\n```js\nimport {red} from \"chalk\";\n```\n\nExamples of **correct** code:\n```js\nimport chalk from \"chalk\";\n```"
        },
        "checkRequire": {
          "description": "Whether CommonJS `require()` calls are checked.\n\nSet this to `false` to skip `require(\"module\")` calls completely.\n\nWith the default configuration, examples of **incorrect** code:\n```js\nconst util = require(\"node:util\");\n```\n\nExamples of **correct** code:\n```js\nconst {promisify} = require(\"node:util\");\n```",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether CommonJS `require()` calls are checked.\n\nSet this to `false` to skip `require(\"module\")` calls completely.\n\nWith the default configuration, examples of **incorrect** code:\n```js\nconst util = require(\"node:util\");\n```\n\nExamples of **correct** code:\n```js\nconst {promisify} = require(\"node:util\");\n```"
        },
        "extendDefaultStyles": {
          "description": "Whether `styles` extends or replaces the built-in module preferences.\n\nWhen this is `true`, entries in `styles` are merged with the default preferences. For\nexample, `{ \"styles\": { \"path\": { \"named\": true } } }` allows named imports from\n`path` while leaving its default import style allowed. When this is `false`, only modules\nconfigured in `styles` are checked.\n\nWith `{ \"extendDefaultStyles\": false, \"styles\": {} }`, examples of **correct** code:\n```js\nimport {red} from \"chalk\";\n```",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether `styles` extends or replaces the built-in module preferences.\n\nWhen this is `true`, entries in `styles` are merged with the default preferences. For\nexample, `{ \"styles\": { \"path\": { \"named\": true } } }` allows named imports from\n`path` while leaving its default import style allowed. When this is `false`, only modules\nconfigured in `styles` are checked.\n\nWith `{ \"extendDefaultStyles\": false, \"styles\": {} }`, examples of **correct** code:\n```js\nimport {red} from \"chalk\";\n```"
        },
        "styles": {
          "description": "Per-module import style preferences.\n\nEach key is a module specifier. Set the value to `false` to disable checking for the\nmodule, or to an object that allows one or more import styles. The available styles are\n`unassigned`, `default`, `namespace`, and `named`. When `extendDefaultStyles` is `true`,\nthese entries extend the built-in defaults instead of replacing them.\n\nThe default module preferences are default imports for `chalk`, `path`, and `node:path`,\nand named imports for `util` and `node:util`.\n\nWith `{ \"styles\": { \"node:util\": { \"named\": true, \"default\": false } } }`,\nexamples of **incorrect** code:\n```js\nimport util from \"node:util\";\n```\n\nExamples of **correct** code:\n```js\nimport {promisify} from \"node:util\";\n```",
          "default": {},
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/ModuleStylesOverride"
          },
          "markdownDescription": "Per-module import style preferences.\n\nEach key is a module specifier. Set the value to `false` to disable checking for the\nmodule, or to an object that allows one or more import styles. The available styles are\n`unassigned`, `default`, `namespace`, and `named`. When `extendDefaultStyles` is `true`,\nthese entries extend the built-in defaults instead of replacing them.\n\nThe default module preferences are default imports for `chalk`, `path`, and `node:path`,\nand named imports for `util` and `node:util`.\n\nWith `{ \"styles\": { \"node:util\": { \"named\": true, \"default\": false } } }`,\nexamples of **incorrect** code:\n```js\nimport util from \"node:util\";\n```\n\nExamples of **correct** code:\n```js\nimport {promisify} from \"node:util\";\n```"
        }
      },
      "additionalProperties": false
    },
    "InitDeclarations": {
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/AlwaysNever"
        },
        {
          "$ref": "#/definitions/InitDeclarationsConfig"
        }
      ],
      "maxItems": 2,
      "minItems": 2
    },
    "InitDeclarationsConfig": {
      "type": "object",
      "properties": {
        "ignoreForLoopInit": {
          "description": "When set to `true`, allows uninitialized variables in the init expression of `for`, `for-in`, and `for-of` loops.\nOnly applies when mode is set to `\"never\"`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, allows uninitialized variables in the init expression of `for`, `for-in`, and `for-of` loops.\nOnly applies when mode is set to `\"never\"`."
        }
      },
      "additionalProperties": false
    },
    "InteractiveSupportsFocusConfig": {
      "type": "object",
      "properties": {
        "tabbable": {
          "description": "An array of interactive ARIA roles that should be considered tabbable (require `tabIndex={0}`).\nInteractive roles not in this list are only required to be focusable (`tabIndex={-1}` is sufficient).\nDefaults to `[\"button\", \"checkbox\", \"link\", \"searchbox\", \"spinbutton\", \"switch\", \"textbox\"]`.",
          "default": [
            "button",
            "checkbox",
            "link",
            "searchbox",
            "spinbutton",
            "switch",
            "textbox"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of interactive ARIA roles that should be considered tabbable (require `tabIndex={0}`).\nInteractive roles not in this list are only required to be focusable (`tabIndex={-1}` is sufficient).\nDefaults to `[\"button\", \"checkbox\", \"link\", \"searchbox\", \"spinbutton\", \"switch\", \"textbox\"]`."
        }
      },
      "additionalProperties": false
    },
    "JSDocPluginSettings": {
      "type": "object",
      "properties": {
        "augmentsExtendsReplacesDocs": {
          "description": "Only for `require-(yields|returns|description|example|param|throws)` rule",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Only for `require-(yields|returns|description|example|param|throws)` rule"
        },
        "exemptDestructuredRootsFromChecks": {
          "description": "Only for `require-param-type` and `require-param-description` rule",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Only for `require-param-type` and `require-param-description` rule"
        },
        "ignoreInternal": {
          "description": "For all rules but NOT apply to `empty-tags` rule",
          "default": false,
          "type": "boolean",
          "markdownDescription": "For all rules but NOT apply to `empty-tags` rule"
        },
        "ignorePrivate": {
          "description": "For all rules but NOT apply to `check-access` and `empty-tags` rule",
          "default": false,
          "type": "boolean",
          "markdownDescription": "For all rules but NOT apply to `check-access` and `empty-tags` rule"
        },
        "ignoreReplacesDocs": {
          "description": "Only for `require-(yields|returns|description|example|param|throws)` rule",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Only for `require-(yields|returns|description|example|param|throws)` rule"
        },
        "implementsReplacesDocs": {
          "description": "Only for `require-(yields|returns|description|example|param|throws)` rule",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Only for `require-(yields|returns|description|example|param|throws)` rule"
        },
        "overrideReplacesDocs": {
          "description": "Only for `require-(yields|returns|description|example|param|throws)` rule",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Only for `require-(yields|returns|description|example|param|throws)` rule"
        },
        "tagNamePreference": {
          "default": {},
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/TagNamePreference"
          }
        }
      }
    },
    "JSXA11yPluginSettings": {
      "description": "Configure JSX A11y plugin rules.\n\nSee\n[eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y#configurations)'s\nconfiguration for a full reference.",
      "type": "object",
      "properties": {
        "attributes": {
          "description": "Map of attribute names to their DOM equivalents.\nThis is useful for non-React frameworks that use different attribute names.\n\nExample:\n\n```json\n{\n\"settings\": {\n\"jsx-a11y\": {\n\"attributes\": {\n\"for\": [\"htmlFor\", \"for\"]\n}\n}\n}\n}\n```",
          "default": {},
          "type": "object",
          "additionalProperties": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "markdownDescription": "Map of attribute names to their DOM equivalents.\nThis is useful for non-React frameworks that use different attribute names.\n\nExample:\n\n```json\n{\n\"settings\": {\n\"jsx-a11y\": {\n\"attributes\": {\n\"for\": [\"htmlFor\", \"for\"]\n}\n}\n}\n}\n```"
        },
        "components": {
          "description": "To have your custom components be checked as DOM elements, you can\nprovide a mapping of your component names to the DOM element name.\n\nExample:\n\n```json\n{\n\"settings\": {\n\"jsx-a11y\": {\n\"components\": {\n\"Link\": \"a\",\n\"IconButton\": \"button\"\n}\n}\n}\n}\n```",
          "default": {},
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "markdownDescription": "To have your custom components be checked as DOM elements, you can\nprovide a mapping of your component names to the DOM element name.\n\nExample:\n\n```json\n{\n\"settings\": {\n\"jsx-a11y\": {\n\"components\": {\n\"Link\": \"a\",\n\"IconButton\": \"button\"\n}\n}\n}\n}\n```"
        },
        "polymorphicPropName": {
          "description": "An optional setting that define the prop your code uses to create polymorphic components.\nThis setting will be used to determine the element type in rules that\nrequire semantic context.\n\nFor example, if you set the `polymorphicPropName` to `as`, then this element:\n\n```jsx\n<Box as=\"h3\">Hello</Box>\n```\n\nWill be treated as an `h3`. If not set, this component will be treated\nas a `Box`.",
          "type": "string",
          "markdownDescription": "An optional setting that define the prop your code uses to create polymorphic components.\nThis setting will be used to determine the element type in rules that\nrequire semantic context.\n\nFor example, if you set the `polymorphicPropName` to `as`, then this element:\n\n```jsx\n<Box as=\"h3\">Hello</Box>\n```\n\nWill be treated as an `h3`. If not set, this component will be treated\nas a `Box`."
        }
      },
      "markdownDescription": "Configure JSX A11y plugin rules.\n\nSee\n[eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y#configurations)'s\nconfiguration for a full reference."
    },
    "JestConfigJson": {
      "type": "object",
      "properties": {
        "version": {
          "description": "The version of Jest being used.",
          "default": "29",
          "type": "string",
          "markdownDescription": "The version of Jest being used."
        }
      },
      "additionalProperties": false
    },
    "JestFnType": {
      "type": "string",
      "enum": [
        "hook",
        "describe",
        "test",
        "expect",
        "jest",
        "unknown"
      ]
    },
    "JestPluginSettings": {
      "description": "Configure Jest plugin rules.\n\nSee [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest)'s\nconfiguration for a full reference.",
      "type": "object",
      "properties": {
        "version": {
          "description": "Jest version — accepts a number (`29`) or a semver string (`\"29.1.0\"` or `\"v29.1.0\"`),\nstoring only the major version.\n::: warning\nUsing this config will override the `no-deprecated-functions` config set.\n:::",
          "default": null,
          "allOf": [
            {
              "$ref": "#/definitions/JestVersionSchema"
            }
          ],
          "markdownDescription": "Jest version — accepts a number (`29`) or a semver string (`\"29.1.0\"` or `\"v29.1.0\"`),\nstoring only the major version.\n::: warning\nUsing this config will override the `no-deprecated-functions` config set.\n:::"
        }
      },
      "markdownDescription": "Configure Jest plugin rules.\n\nSee [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest)'s\nconfiguration for a full reference."
    },
    "JestVersionSchema": {
      "anyOf": [
        {
          "type": "integer",
          "format": "uint",
          "minimum": 0.0
        },
        {
          "type": "string"
        }
      ]
    },
    "JsxBooleanValueConfig": {
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/EnforceBooleanAttribute"
        },
        {
          "$ref": "#/definitions/JsxBooleanValueOptions"
        }
      ],
      "maxItems": 2,
      "minItems": 2
    },
    "JsxBooleanValueOptions": {
      "type": "object",
      "properties": {
        "always": {
          "description": "List of attribute names that should always have explicit boolean values.\nOnly necessary when main mode is `\"never\"`.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true,
          "markdownDescription": "List of attribute names that should always have explicit boolean values.\nOnly necessary when main mode is `\"never\"`."
        },
        "assumeUndefinedIsFalse": {
          "description": "If `true`, treats `prop={false}` as equivalent to the prop being `undefined`.\nWhen combined with `\"never\"` mode, this will enforce that the attribute is omitted entirely.\n\n```jsx\n// With \"assumeUndefinedIsFalse\": true\n<App foo={false} />; // Incorrect\n<App />;             // Correct\n```\n\nThis option does nothing in `\"always\"` mode.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If `true`, treats `prop={false}` as equivalent to the prop being `undefined`.\nWhen combined with `\"never\"` mode, this will enforce that the attribute is omitted entirely.\n\n```jsx\n// With \"assumeUndefinedIsFalse\": true\n<App foo={false} />; // Incorrect\n<App />;             // Correct\n```\n\nThis option does nothing in `\"always\"` mode."
        },
        "never": {
          "description": "List of attribute names that should never have explicit boolean values.\nOnly necessary when main mode is `\"always\"`.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true,
          "markdownDescription": "List of attribute names that should never have explicit boolean values.\nOnly necessary when main mode is `\"always\"`."
        }
      },
      "additionalProperties": false
    },
    "JsxCurlyBracePresence": {
      "type": "object",
      "properties": {
        "children": {
          "description": "Whether to enforce or disallow curly braces for child content of a JSX element.\n\n- `never` will disallow unnecessary curly braces, e.g. this will be preferred: `<Foo>I love oxlint</Foo>`\n- `always` will force the usage of curly braces like this, in all cases: `<Foo>{'I love oxlint'}</Foo>`\n- `ignore` will allow either style for child content.",
          "default": "never",
          "allOf": [
            {
              "$ref": "#/definitions/JsxCurlyBracePresenceMode"
            }
          ],
          "markdownDescription": "Whether to enforce or disallow curly braces for child content of a JSX element.\n\n- `never` will disallow unnecessary curly braces, e.g. this will be preferred: `<Foo>I love oxlint</Foo>`\n- `always` will force the usage of curly braces like this, in all cases: `<Foo>{'I love oxlint'}</Foo>`\n- `ignore` will allow either style for child content."
        },
        "propElementValues": {
          "description": "When set to `ignore` or `never`, this JSX code is allowed (or enforced):\n`<App prop=<div /> />;`\n\nWhen set to `always`, the curly braces are required for prop values that are\nJSX elements: `<App prop={<div />} />;`\n\n**Note**: it is _highly_ recommended that you set `propElementValues` to `always`.\nThe ability to omit curly braces around prop values that are JSX elements is obscure, and\nintentionally undocumented, and should not be relied upon.",
          "default": "ignore",
          "allOf": [
            {
              "$ref": "#/definitions/JsxCurlyBracePresenceMode"
            }
          ],
          "markdownDescription": "When set to `ignore` or `never`, this JSX code is allowed (or enforced):\n`<App prop=<div /> />;`\n\nWhen set to `always`, the curly braces are required for prop values that are\nJSX elements: `<App prop={<div />} />;`\n\n**Note**: it is _highly_ recommended that you set `propElementValues` to `always`.\nThe ability to omit curly braces around prop values that are JSX elements is obscure, and\nintentionally undocumented, and should not be relied upon."
        },
        "props": {
          "description": "Whether to enforce or disallow curly braces for props on JSX elements.\n\n- `never` will disallow unnecessary curly braces, e.g. this will be preferred: `<Foo foo=\"bar\" />`\n- `always` will force the usage of curly braces like this, in all cases: `<Foo foo={'bar'} />`\n- `ignore` will allow either style for prop values.",
          "default": "never",
          "allOf": [
            {
              "$ref": "#/definitions/JsxCurlyBracePresenceMode"
            }
          ],
          "markdownDescription": "Whether to enforce or disallow curly braces for props on JSX elements.\n\n- `never` will disallow unnecessary curly braces, e.g. this will be preferred: `<Foo foo=\"bar\" />`\n- `always` will force the usage of curly braces like this, in all cases: `<Foo foo={'bar'} />`\n- `ignore` will allow either style for prop values."
        }
      },
      "additionalProperties": false
    },
    "JsxCurlyBracePresenceConfig": {
      "anyOf": [
        {
          "$ref": "#/definitions/JsxCurlyBracePresenceMode"
        },
        {
          "$ref": "#/definitions/JsxCurlyBracePresence"
        }
      ]
    },
    "JsxCurlyBracePresenceMode": {
      "type": "string",
      "enum": [
        "always",
        "never",
        "ignore"
      ]
    },
    "JsxFilenameExtensionAllowMode": {
      "oneOf": [
        {
          "description": "Always allow a JSX filename extension.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Always allow a JSX filename extension."
        },
        {
          "description": "Only allow JSX filename extension for files that contain JSX syntax.",
          "type": "string",
          "enum": [
            "as-needed"
          ],
          "markdownDescription": "Only allow JSX filename extension for files that contain JSX syntax."
        }
      ]
    },
    "JsxFilenameExtensionConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "When to allow a JSX filename extension. By default all files may have a JSX extension.\nSet this to `as-needed` to only allow JSX file extensions in files that contain JSX syntax.",
          "default": "always",
          "allOf": [
            {
              "$ref": "#/definitions/JsxFilenameExtensionAllowMode"
            }
          ],
          "markdownDescription": "When to allow a JSX filename extension. By default all files may have a JSX extension.\nSet this to `as-needed` to only allow JSX file extensions in files that contain JSX syntax."
        },
        "extensions": {
          "description": "The set of allowed file extensions.\nCan include or exclude the leading dot (e.g., \"jsx\" and \".jsx\" are both valid).",
          "default": [
            "jsx"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "The set of allowed file extensions.\nCan include or exclude the leading dot (e.g., \"jsx\" and \".jsx\" are both valid)."
        },
        "ignoreFilesWithoutCode": {
          "description": "If enabled, files that do not contain code (i.e. are empty, contain only whitespaces or comments) will not be rejected.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If enabled, files that do not contain code (i.e. are empty, contain only whitespaces or comments) will not be rejected."
        }
      },
      "additionalProperties": false
    },
    "JsxHandlerNamesConfig": {
      "type": "object",
      "properties": {
        "checkInlineFunction": {
          "description": "Whether to check for inline functions in JSX attributes.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to check for inline functions in JSX attributes."
        },
        "checkLocalVariables": {
          "description": "Whether to check for local variables in JSX attributes.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to check for local variables in JSX attributes."
        },
        "eventHandlerPrefix": {
          "description": "Event handler prefixes to check against.",
          "default": "handle",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "boolean",
              "const": false
            }
          ],
          "markdownDescription": "Event handler prefixes to check against."
        },
        "eventHandlerPropPrefix": {
          "description": "Event handler prop prefixes to check against.",
          "default": "on",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "boolean",
              "const": false
            }
          ],
          "markdownDescription": "Event handler prop prefixes to check against."
        },
        "ignoreComponentNames": {
          "description": "Component names to ignore when checking for event handler prefixes.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Component names to ignore when checking for event handler prefixes."
        }
      },
      "additionalProperties": false
    },
    "JsxKeyConfig": {
      "type": "object",
      "properties": {
        "checkFragmentShorthand": {
          "description": "When true, check fragment shorthand `<>` for keys",
          "default": true,
          "type": "boolean",
          "markdownDescription": "When true, check fragment shorthand `<>` for keys"
        },
        "checkKeyMustBeforeSpread": {
          "description": "When true, require key prop to be placed before any spread props",
          "default": true,
          "type": "boolean",
          "markdownDescription": "When true, require key prop to be placed before any spread props"
        },
        "warnOnDuplicates": {
          "description": "When true, warn on duplicate key values",
          "default": true,
          "type": "boolean",
          "markdownDescription": "When true, warn on duplicate key values"
        }
      },
      "additionalProperties": false
    },
    "JsxMaxDepthConfig": {
      "type": "object",
      "properties": {
        "max": {
          "description": "The maximum allowed depth of nested JSX elements and fragments.",
          "default": 2,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "The maximum allowed depth of nested JSX elements and fragments."
        }
      },
      "additionalProperties": false
    },
    "JsxNoLiteralsConfig": {
      "description": "The options shared between the top-level config and each `elementOverrides` entry.",
      "type": "object",
      "properties": {
        "allowedStrings": {
          "description": "An array of unique string values that would otherwise warn, but will be ignored.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of unique string values that would otherwise warn, but will be ignored."
        },
        "elementOverrides": {
          "description": "An object where the keys are the element names and the values are objects with the same options as above. This allows you to specify different options for different elements.",
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/ElementOverrideOptions"
          },
          "markdownDescription": "An object where the keys are the element names and the values are objects with the same options as above. This allows you to specify different options for different elements."
        },
        "ignoreProps": {
          "description": "(default: false) - When true the rule ignores literals used in props, wrapped or unwrapped.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "(default: false) - When true the rule ignores literals used in props, wrapped or unwrapped."
        },
        "noAttributeStrings": {
          "description": "(default: false) - Enforces no string literals used in attributes when set to true.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "(default: false) - Enforces no string literals used in attributes when set to true."
        },
        "noStrings": {
          "description": "(default: false) - Enforces no string literals used as children, wrapped or unwrapped.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "(default: false) - Enforces no string literals used as children, wrapped or unwrapped."
        },
        "restrictedAttributes": {
          "description": "An array of unique attribute names where string literals should be restricted. Only the specified attributes will be checked for string literals when this option is used. Note: When noAttributeStrings is true, this option is ignored at the root level.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of unique attribute names where string literals should be restricted. Only the specified attributes will be checked for string literals when this option is used. Note: When noAttributeStrings is true, this option is ignored at the root level."
        }
      },
      "additionalProperties": false,
      "markdownDescription": "The options shared between the top-level config and each `elementOverrides` entry."
    },
    "JsxNoScriptUrlComponent": {
      "type": "object",
      "required": [
        "name",
        "props"
      ],
      "properties": {
        "name": {
          "description": "Component name.",
          "type": "string",
          "markdownDescription": "Component name."
        },
        "props": {
          "description": "List of properties that should be validated.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of properties that should be validated."
        }
      },
      "additionalProperties": false
    },
    "JsxNoScriptUrlOptions": {
      "type": "object",
      "properties": {
        "includeFromSettings": {
          "description": "Whether to include components from settings.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to include components from settings."
        }
      },
      "additionalProperties": false
    },
    "JsxNoTargetBlank": {
      "type": "object",
      "properties": {
        "allowReferrer": {
          "description": "Whether to allow referrers.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow referrers."
        },
        "enforceDynamicLinks": {
          "description": "Whether to enforce dynamic links or enforce static links.",
          "default": "always",
          "allOf": [
            {
              "$ref": "#/definitions/EnforceDynamicLinksEnum"
            }
          ],
          "markdownDescription": "Whether to enforce dynamic links or enforce static links."
        },
        "forms": {
          "description": "Whether to check form elements.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to check form elements."
        },
        "links": {
          "description": "Whether to check link elements.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check link elements."
        },
        "warnOnSpreadAttributes": {
          "description": "Whether to warn when spread attributes are used.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to warn when spread attributes are used."
        }
      },
      "additionalProperties": false
    },
    "JsxNoUselessFragment": {
      "type": "object",
      "properties": {
        "allowExpressions": {
          "description": "Allow fragments with a single expression child.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow fragments with a single expression child."
        }
      },
      "additionalProperties": false
    },
    "JsxPascalCaseConfig": {
      "type": "object",
      "properties": {
        "allowAllCaps": {
          "description": "Whether to allow all-caps component names.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow all-caps component names."
        },
        "allowLeadingUnderscore": {
          "description": "Whether to allow leading underscores in component names.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow leading underscores in component names."
        },
        "allowNamespace": {
          "description": "Whether to allow namespaced component names.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow namespaced component names."
        },
        "ignore": {
          "description": "List of component names to ignore.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of component names to ignore."
        }
      },
      "additionalProperties": false
    },
    "JsxPropsNoSpreadingConfig": {
      "type": "object",
      "properties": {
        "custom": {
          "description": "`custom` set to `ignore` will ignore all custom jsx tags like `App`, `MyCustomComponent` etc. Default is set to `enforce`.",
          "default": "enforce",
          "allOf": [
            {
              "$ref": "#/definitions/IgnoreEnforceOption"
            }
          ],
          "markdownDescription": "`custom` set to `ignore` will ignore all custom jsx tags like `App`, `MyCustomComponent` etc. Default is set to `enforce`."
        },
        "exceptions": {
          "description": "Exceptions flip the enforcement behavior for specific components.\nFor example:\n- If `html` is set to `ignore`, an exception for `div` will enforce the rule on `<div>` elements.\n- If `custom` is set to `enforce`, an exception for `Foo` will ignore the rule on `<Foo>` components.\n\nThis allows you to override the general setting for individual components.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Exceptions flip the enforcement behavior for specific components.\nFor example:\n- If `html` is set to `ignore`, an exception for `div` will enforce the rule on `<div>` elements.\n- If `custom` is set to `enforce`, an exception for `Foo` will ignore the rule on `<Foo>` components.\n\nThis allows you to override the general setting for individual components."
        },
        "explicitSpread": {
          "description": "`explicitSpread` set to `ignore` will ignore spread operators that are explicitly listing all object properties within that spread. Default is set to `enforce`.",
          "default": "enforce",
          "allOf": [
            {
              "$ref": "#/definitions/IgnoreEnforceOption"
            }
          ],
          "markdownDescription": "`explicitSpread` set to `ignore` will ignore spread operators that are explicitly listing all object properties within that spread. Default is set to `enforce`."
        },
        "html": {
          "description": "`html` set to `ignore` will ignore all html jsx tags like `div`, `img` etc. Default is set to `enforce`.",
          "default": "enforce",
          "allOf": [
            {
              "$ref": "#/definitions/IgnoreEnforceOption"
            }
          ],
          "markdownDescription": "`html` set to `ignore` will ignore all html jsx tags like `div`, `img` etc. Default is set to `enforce`."
        }
      },
      "additionalProperties": false
    },
    "LabelHasAssociatedControlConfig": {
      "type": "object",
      "properties": {
        "assert": {
          "description": "The type of association required between the label and the control.",
          "default": "either",
          "allOf": [
            {
              "$ref": "#/definitions/Assert"
            }
          ],
          "markdownDescription": "The type of association required between the label and the control."
        },
        "controlComponents": {
          "description": "Custom JSX components to be treated as form controls.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Custom JSX components to be treated as form controls."
        },
        "depth": {
          "description": "Maximum depth to search for a nested control.",
          "default": 2,
          "type": "integer",
          "format": "uint8",
          "minimum": 0.0,
          "markdownDescription": "Maximum depth to search for a nested control."
        },
        "labelAttributes": {
          "description": "Attributes to check for accessible label text.",
          "default": [
            "alt",
            "aria-label",
            "aria-labelledby"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Attributes to check for accessible label text."
        },
        "labelComponents": {
          "description": "Custom JSX components to be treated as labels.",
          "default": [
            "label"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Custom JSX components to be treated as labels."
        }
      },
      "additionalProperties": false
    },
    "LibFrom": {
      "type": "string",
      "enum": [
        "lib"
      ]
    },
    "LibSpecifier": {
      "description": "Describes specific types or values declared in TypeScript's built-in lib.*.d.ts types.",
      "type": "object",
      "required": [
        "from",
        "name"
      ],
      "properties": {
        "from": {
          "description": "Must be \"lib\"",
          "allOf": [
            {
              "$ref": "#/definitions/LibFrom"
            }
          ],
          "markdownDescription": "Must be \"lib\""
        },
        "name": {
          "description": "The name(s) of the lib type or value to match",
          "allOf": [
            {
              "$ref": "#/definitions/NameSpecifier"
            }
          ],
          "markdownDescription": "The name(s) of the lib type or value to match"
        }
      },
      "additionalProperties": false,
      "markdownDescription": "Describes specific types or values declared in TypeScript's built-in lib.*.d.ts types."
    },
    "LintPluginOptionsSchema": {
      "type": "string",
      "enum": [
        "eslint",
        "react",
        "unicorn",
        "typescript",
        "oxc",
        "import",
        "jsdoc",
        "jest",
        "vitest",
        "jsx-a11y",
        "nextjs",
        "react-perf",
        "promise",
        "node",
        "vue"
      ]
    },
    "LintPlugins": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "$ref": "#/definitions/LintPluginOptionsSchema"
          }
        ]
      }
    },
    "Location": {
      "type": "string",
      "enum": [
        "start",
        "anywhere"
      ]
    },
    "LogicalAssignmentOperators": {
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/AlwaysNever"
        },
        {
          "$ref": "#/definitions/LogicalAssignmentOperatorsConfig"
        }
      ],
      "maxItems": 2,
      "minItems": 2
    },
    "LogicalAssignmentOperatorsConfig": {
      "type": "object",
      "properties": {
        "enforceForIfStatements": {
          "description": "This option checks for additional patterns with if statements which could be expressed with the logical assignment operator.\nOnly available if string option is set to `always`.\n\nExamples of **incorrect** code for this rule with the `[\"always\", { enforceForIfStatements: true }]` option:\n```js\nif (a) a = b // <=> a &&= b\nif (!a) a = b // <=> a ||= b\n\nif (a == null) a = b // <=> a ??= b\nif (a === null || a === undefined) a = b // <=> a ??= b\n```\n\nExamples of **correct** code for this rule with the `[\"always\", { enforceForIfStatements: true }]` option:\n```js\nif (a) b = c\nif (a === 0) a = b\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "This option checks for additional patterns with if statements which could be expressed with the logical assignment operator.\nOnly available if string option is set to `always`.\n\nExamples of **incorrect** code for this rule with the `[\"always\", { enforceForIfStatements: true }]` option:\n```js\nif (a) a = b // <=> a &&= b\nif (!a) a = b // <=> a ||= b\n\nif (a == null) a = b // <=> a ??= b\nif (a === null || a === undefined) a = b // <=> a ??= b\n```\n\nExamples of **correct** code for this rule with the `[\"always\", { enforceForIfStatements: true }]` option:\n```js\nif (a) b = c\nif (a === 0) a = b\n```"
        }
      },
      "additionalProperties": false
    },
    "MaxClassesPerFileConfig": {
      "type": "object",
      "properties": {
        "ignoreExpressions": {
          "description": "Whether to ignore class expressions when counting classes.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore class expressions when counting classes."
        },
        "max": {
          "description": "The maximum number of classes allowed per file.",
          "default": 1,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "The maximum number of classes allowed per file."
        }
      },
      "additionalProperties": false
    },
    "MaxClassesPerFileConfigEnum": {
      "anyOf": [
        {
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0
        },
        {
          "$ref": "#/definitions/MaxClassesPerFileConfig"
        }
      ]
    },
    "MaxDependenciesConfig": {
      "type": "object",
      "properties": {
        "ignoreTypeImports": {
          "description": "Whether to ignore type imports when counting dependencies.\n\n```ts\n// Neither of these count as dependencies if `ignoreTypeImports` is true:\nimport type { Foo } from './foo';\nimport { type Foo } from './foo';\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore type imports when counting dependencies.\n\n```ts\n// Neither of these count as dependencies if `ignoreTypeImports` is true:\nimport type { Foo } from './foo';\nimport { type Foo } from './foo';\n```"
        },
        "max": {
          "description": "Maximum number of dependencies allowed in a file.",
          "default": 10,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "Maximum number of dependencies allowed in a file."
        }
      },
      "additionalProperties": false
    },
    "MaxDependenciesConfigJson": {
      "anyOf": [
        {
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0
        },
        {
          "$ref": "#/definitions/MaxDependenciesConfig"
        }
      ]
    },
    "MaxDepth": {
      "type": "object",
      "properties": {
        "max": {
          "description": "The `max` enforces a maximum depth that blocks can be nested",
          "default": 4,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "The `max` enforces a maximum depth that blocks can be nested"
        }
      },
      "additionalProperties": false
    },
    "MaxDepthConfigEnum": {
      "anyOf": [
        {
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0
        },
        {
          "$ref": "#/definitions/MaxDepth"
        }
      ]
    },
    "MaxExpectsConfig": {
      "type": "object",
      "properties": {
        "max": {
          "description": "Maximum number of `expect()` assertion calls allowed within a single test.",
          "default": 5,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "Maximum number of `expect()` assertion calls allowed within a single test."
        }
      },
      "additionalProperties": false
    },
    "MaxLinesConfig": {
      "type": "object",
      "properties": {
        "max": {
          "description": "Maximum number of lines allowed per file.",
          "default": 300,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "Maximum number of lines allowed per file."
        },
        "skipBlankLines": {
          "description": "Whether to ignore blank lines when counting.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore blank lines when counting."
        },
        "skipComments": {
          "description": "Whether to ignore comments when counting.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore comments when counting."
        }
      },
      "additionalProperties": false
    },
    "MaxLinesConfigEnum": {
      "anyOf": [
        {
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0
        },
        {
          "$ref": "#/definitions/MaxLinesConfig"
        }
      ]
    },
    "MaxLinesPerFunctionConfig": {
      "type": "object",
      "properties": {
        "IIFEs": {
          "description": "The `IIFEs` option controls whether IIFEs are included in the line count.\nBy default, IIFEs are not considered, but when set to `true`, they will\nbe included in the line count for the function.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "The `IIFEs` option controls whether IIFEs are included in the line count.\nBy default, IIFEs are not considered, but when set to `true`, they will\nbe included in the line count for the function."
        },
        "max": {
          "description": "Maximum number of lines allowed in a function.",
          "default": 50,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "Maximum number of lines allowed in a function."
        },
        "skipBlankLines": {
          "description": "Skip lines made up purely of whitespace.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Skip lines made up purely of whitespace."
        },
        "skipComments": {
          "description": "Skip lines containing just comments.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Skip lines containing just comments."
        }
      },
      "additionalProperties": false
    },
    "MaxLinesPerFunctionConfigEnum": {
      "anyOf": [
        {
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0
        },
        {
          "$ref": "#/definitions/MaxLinesPerFunctionConfig"
        }
      ]
    },
    "MaxNestedCallbacks": {
      "type": "object",
      "properties": {
        "max": {
          "description": "The `max` enforces a maximum depth that callbacks can be nested.",
          "default": 10,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "The `max` enforces a maximum depth that callbacks can be nested."
        }
      },
      "additionalProperties": false
    },
    "MaxNestedCallbacksConfigEnum": {
      "anyOf": [
        {
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0
        },
        {
          "$ref": "#/definitions/MaxNestedCallbacks"
        }
      ]
    },
    "MaxNestedCalls": {
      "type": "object",
      "properties": {
        "max": {
          "description": "The maximum allowed nested call depth.",
          "default": 3,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "The maximum allowed nested call depth."
        }
      },
      "additionalProperties": false
    },
    "MaxNestedDescribeConfig": {
      "type": "object",
      "properties": {
        "max": {
          "description": "Maximum allowed depth of nested describe calls.",
          "default": 5,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "Maximum allowed depth of nested describe calls."
        }
      },
      "additionalProperties": false
    },
    "MaxParamsConfig": {
      "type": "object",
      "properties": {
        "countThis": {
          "description": "This option controls when to count a `this` parameter.\n\n- \"always\": always count `this`\n- \"never\": never count `this`\n- \"except-void\": count `this` only when it is not type `void`",
          "allOf": [
            {
              "$ref": "#/definitions/CountThis"
            }
          ],
          "markdownDescription": "This option controls when to count a `this` parameter.\n\n- \"always\": always count `this`\n- \"never\": never count `this`\n- \"except-void\": count `this` only when it is not type `void`"
        },
        "countVoidThis": {
          "description": "Deprecated alias for `countThis`.\n\nFor example `{ \"countVoidThis\": true }` would mean that having a function\ntake a `this` parameter of type `void` is counted towards the maximum number of parameters.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Deprecated alias for `countThis`.\n\nFor example `{ \"countVoidThis\": true }` would mean that having a function\ntake a `this` parameter of type `void` is counted towards the maximum number of parameters."
        },
        "max": {
          "description": "Maximum number of parameters allowed in function definitions.",
          "default": 3,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "Maximum number of parameters allowed in function definitions."
        }
      },
      "additionalProperties": false
    },
    "MaxParamsConfigEnum": {
      "anyOf": [
        {
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0
        },
        {
          "$ref": "#/definitions/MaxParamsConfig"
        }
      ]
    },
    "MaxProps": {
      "type": "object",
      "properties": {
        "maxProps": {
          "description": "The maximum number of props allowed in a Vue SFC.",
          "default": 1,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "The maximum number of props allowed in a Vue SFC."
        }
      },
      "additionalProperties": false
    },
    "MaxStatementsConfig": {
      "type": "object",
      "properties": {
        "ignoreTopLevelFunctions": {
          "description": "Whether to ignore top-level functions.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore top-level functions."
        },
        "max": {
          "description": "Maximum number of statements allowed per function.",
          "default": 10,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "Maximum number of statements allowed per function."
        }
      },
      "additionalProperties": false
    },
    "MaxStatementsConfigEnum": {
      "anyOf": [
        {
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0
        },
        {
          "$ref": "#/definitions/MaxStatementsConfig"
        }
      ]
    },
    "MediaHasCaptionConfig": {
      "type": "object",
      "properties": {
        "audio": {
          "description": "Element names to treat as `<audio>` elements",
          "default": [
            "audio"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Element names to treat as `<audio>` elements"
        },
        "track": {
          "description": "Element names to treat as `<track>` elements",
          "default": [
            "track"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Element names to treat as `<track>` elements"
        },
        "video": {
          "description": "Element names to treat as `<video>` elements",
          "default": [
            "video"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Element names to treat as `<video>` elements"
        }
      },
      "additionalProperties": false
    },
    "MemberNames": {
      "oneOf": [
        {
          "description": "Prefer using `.for` to create parameterized tests.",
          "type": "string",
          "enum": [
            "for"
          ],
          "markdownDescription": "Prefer using `.for` to create parameterized tests."
        },
        {
          "description": "Prefer using `.each` to create parameterized tests.",
          "type": "string",
          "enum": [
            "each"
          ],
          "markdownDescription": "Prefer using `.each` to create parameterized tests."
        }
      ]
    },
    "MethodSignatureStyleConfig": {
      "oneOf": [
        {
          "description": "Enforce using property signature for functions. Use this to enforce maximum correctness together with TypeScript's strict mode.",
          "type": "string",
          "enum": [
            "property"
          ],
          "markdownDescription": "Enforce using property signature for functions. Use this to enforce maximum correctness together with TypeScript's strict mode."
        },
        {
          "description": "Enforce using method signature for functions. Use this if you aren't using TypeScript's strict mode and prefer this style.",
          "type": "string",
          "enum": [
            "method"
          ],
          "markdownDescription": "Enforce using method signature for functions. Use this if you aren't using TypeScript's strict mode and prefer this style."
        }
      ]
    },
    "Mode": {
      "oneOf": [
        {
          "description": "Prefer `import type { Foo } from 'foo'` for type imports.",
          "type": "string",
          "enum": [
            "prefer-top-level"
          ],
          "markdownDescription": "Prefer `import type { Foo } from 'foo'` for type imports."
        },
        {
          "description": "Prefer `import { type Foo } from 'foo'` for type imports.",
          "type": "string",
          "enum": [
            "prefer-inline"
          ],
          "markdownDescription": "Prefer `import { type Foo } from 'foo'` for type imports."
        }
      ]
    },
    "Mode2": {
      "oneOf": [
        {
          "description": "Enforces no braces where they can be omitted (default).",
          "type": "string",
          "enum": [
            "as-needed"
          ],
          "markdownDescription": "Enforces no braces where they can be omitted (default)."
        },
        {
          "description": "Enforces braces around the function body.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Enforces braces around the function body."
        },
        {
          "description": "Enforces no braces around the function body (constrains arrow functions to the role of returning an expression).",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Enforces no braces around the function body (constrains arrow functions to the role of returning an expression)."
        }
      ]
    },
    "Modifier": {
      "type": "string",
      "enum": [
        "private",
        "private readonly",
        "protected",
        "protected readonly",
        "public",
        "public readonly",
        "readonly"
      ]
    },
    "ModuleStylesOverride": {
      "oneOf": [
        {
          "type": "boolean",
          "enum": [
            false
          ]
        },
        {
          "type": "object",
          "properties": {
            "default": {
              "description": "Whether default imports or whole-module `require()` assignments are allowed for this module.\n\nWith `{ \"styles\": { \"chalk\": { \"default\": true } } }`, this is valid:\n```js\nimport chalk from \"chalk\";\n```",
              "default": null,
              "type": "boolean",
              "markdownDescription": "Whether default imports or whole-module `require()` assignments are allowed for this module.\n\nWith `{ \"styles\": { \"chalk\": { \"default\": true } } }`, this is valid:\n```js\nimport chalk from \"chalk\";\n```"
            },
            "named": {
              "description": "Whether named imports or destructured `require()` calls are allowed for this module.\n\nWith `{ \"styles\": { \"node:util\": { \"named\": true } } }`, this is valid:\n```js\nimport {promisify} from \"node:util\";\n```",
              "default": null,
              "type": "boolean",
              "markdownDescription": "Whether named imports or destructured `require()` calls are allowed for this module.\n\nWith `{ \"styles\": { \"node:util\": { \"named\": true } } }`, this is valid:\n```js\nimport {promisify} from \"node:util\";\n```"
            },
            "namespace": {
              "description": "Whether namespace imports or whole-module `require()` assignments are allowed for this module.\n\nWith `{ \"styles\": { \"node:fs\": { \"namespace\": true } } }`, this is valid:\n```js\nimport * as fs from \"node:fs\";\n```",
              "default": null,
              "type": "boolean",
              "markdownDescription": "Whether namespace imports or whole-module `require()` assignments are allowed for this module.\n\nWith `{ \"styles\": { \"node:fs\": { \"namespace\": true } } }`, this is valid:\n```js\nimport * as fs from \"node:fs\";\n```"
            },
            "unassigned": {
              "description": "Whether side-effect imports or unassigned dynamic imports/requires are allowed for this module.\n\nWith `{ \"styles\": { \"polyfill\": { \"unassigned\": true } } }`, this is valid:\n```js\nimport \"polyfill\";\n```",
              "default": null,
              "type": "boolean",
              "markdownDescription": "Whether side-effect imports or unassigned dynamic imports/requires are allowed for this module.\n\nWith `{ \"styles\": { \"polyfill\": { \"unassigned\": true } } }`, this is valid:\n```js\nimport \"polyfill\";\n```"
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "MouseEventsHaveKeyEventsConfig": {
      "type": "object",
      "properties": {
        "hoverInHandlers": {
          "description": "List of hover-in mouse event handlers that require corresponding keyboard event handlers.",
          "default": [
            "onMouseOver"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of hover-in mouse event handlers that require corresponding keyboard event handlers."
        },
        "hoverOutHandlers": {
          "description": "List of hover-out mouse event handlers that require corresponding keyboard event handlers.",
          "default": [
            "onMouseOut"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of hover-out mouse event handlers that require corresponding keyboard event handlers."
        }
      },
      "additionalProperties": false
    },
    "NameSpecifier": {
      "description": "Name specifier that can be a single string or array of strings",
      "anyOf": [
        {
          "description": "Single name",
          "type": "string",
          "markdownDescription": "Single name"
        },
        {
          "description": "Multiple names",
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Multiple names"
        }
      ],
      "markdownDescription": "Name specifier that can be a single string or array of strings"
    },
    "NamedExports": {
      "type": "string",
      "enum": [
        "ignore",
        "expression",
        "declaration"
      ]
    },
    "Namespace": {
      "type": "object",
      "properties": {
        "allowComputed": {
          "description": "Whether to allow computed references to an imported namespace.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow computed references to an imported namespace."
        }
      },
      "additionalProperties": false
    },
    "NativeAllowList": {
      "anyOf": [
        {
          "$ref": "#/definitions/AllKeyword"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "NewCapConfig": {
      "type": "object",
      "properties": {
        "capIsNew": {
          "description": "`true` to require that all functions with names starting with an uppercase letter to be called with `new`.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "`true` to require that all functions with names starting with an uppercase letter to be called with `new`."
        },
        "capIsNewExceptionPattern": {
          "description": "A regex pattern to match exceptions for functions with names starting with an uppercase letter.",
          "type": "string",
          "markdownDescription": "A regex pattern to match exceptions for functions with names starting with an uppercase letter."
        },
        "capIsNewExceptions": {
          "description": "Exceptions to ignore for functions with names starting with an uppercase letter.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Exceptions to ignore for functions with names starting with an uppercase letter."
        },
        "newIsCap": {
          "description": "`true` to require that all constructor names start with an uppercase letter, e.g. `new Person()`.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "`true` to require that all constructor names start with an uppercase letter, e.g. `new Person()`."
        },
        "newIsCapExceptionPattern": {
          "description": "A regex pattern to match exceptions for constructor names starting with an uppercase letter.",
          "type": "string",
          "markdownDescription": "A regex pattern to match exceptions for constructor names starting with an uppercase letter."
        },
        "newIsCapExceptions": {
          "description": "Exceptions to ignore for constructor names starting with an uppercase letter.",
          "default": [
            "Array",
            "Boolean",
            "Date",
            "Error",
            "Function",
            "Number",
            "Object",
            "RegExp",
            "String",
            "Symbol",
            "BigInt"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Exceptions to ignore for constructor names starting with an uppercase letter."
        },
        "properties": {
          "description": "`true` to require capitalization for object properties (e.g., `new obj.Method()`).",
          "default": true,
          "type": "boolean",
          "markdownDescription": "`true` to require capitalization for object properties (e.g., `new obj.Method()`)."
        }
      },
      "additionalProperties": false
    },
    "NewlineAfterImport": {
      "type": "object",
      "properties": {
        "considerComments": {
          "default": false,
          "type": "boolean"
        },
        "count": {
          "default": 1,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0
        },
        "exactCount": {
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "NextPluginSettings": {
      "description": "Configure Next.js plugin rules.",
      "type": "object",
      "properties": {
        "rootDir": {
          "description": "The root directory of the Next.js project.\n\nThis is particularly useful when you have a monorepo and your Next.js\nproject is in a subfolder.\n\nExample:\n\n```json\n{\n\"settings\": {\n\"next\": {\n\"rootDir\": \"apps/dashboard/\"\n}\n}\n}\n```",
          "default": [],
          "allOf": [
            {
              "$ref": "#/definitions/OneOrMany_for_String"
            }
          ],
          "markdownDescription": "The root directory of the Next.js project.\n\nThis is particularly useful when you have a monorepo and your Next.js\nproject is in a subfolder.\n\nExample:\n\n```json\n{\n\"settings\": {\n\"next\": {\n\"rootDir\": \"apps/dashboard/\"\n}\n}\n}\n```"
        }
      },
      "markdownDescription": "Configure Next.js plugin rules."
    },
    "NextTickOption": {
      "oneOf": [
        {
          "description": "Require using the Promise returned by `nextTick`.",
          "type": "string",
          "enum": [
            "promise"
          ],
          "markdownDescription": "Require using the Promise returned by `nextTick`."
        },
        {
          "description": "Require passing a callback function to `nextTick`.",
          "type": "string",
          "enum": [
            "callback"
          ],
          "markdownDescription": "Require passing a callback function to `nextTick`."
        }
      ]
    },
    "NoAbsolutePath": {
      "type": "object",
      "properties": {
        "amd": {
          "description": "If set to `true`, dependency paths for AMD-style define and require calls will be resolved:\n\n```js\n/* import/no-absolute-path: [\"error\", { \"commonjs\": false, \"amd\": true }] */\ndefine(['/foo'], function (foo) { /*...*/ }) // reported\nrequire(['/foo'], function (foo) { /*...*/ }) // reported\n\nconst foo = require('/foo') // ignored because of explicit `commonjs: false`\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If set to `true`, dependency paths for AMD-style define and require calls will be resolved:\n\n```js\n/* import/no-absolute-path: [\"error\", { \"commonjs\": false, \"amd\": true }] */\ndefine(['/foo'], function (foo) { /*...*/ }) // reported\nrequire(['/foo'], function (foo) { /*...*/ }) // reported\n\nconst foo = require('/foo') // ignored because of explicit `commonjs: false`\n```"
        },
        "commonjs": {
          "description": "If set to `true`, dependency paths for CommonJS-style require calls will be resolved:\n\n```js\nvar foo = require('/foo'); // reported\n```",
          "default": true,
          "type": "boolean",
          "markdownDescription": "If set to `true`, dependency paths for CommonJS-style require calls will be resolved:\n\n```js\nvar foo = require('/foo'); // reported\n```"
        },
        "esmodule": {
          "description": "If set to `true`, dependency paths for ES module import statements will be resolved:\n\n```js\nimport foo from '/foo'; // reported\n```",
          "default": true,
          "type": "boolean",
          "markdownDescription": "If set to `true`, dependency paths for ES module import statements will be resolved:\n\n```js\nimport foo from '/foo'; // reported\n```"
        }
      },
      "additionalProperties": false
    },
    "NoAnonymousDefaultExport": {
      "type": "object",
      "properties": {
        "allowAnonymousClass": {
          "description": "Allow anonymous class as default export.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow anonymous class as default export."
        },
        "allowAnonymousFunction": {
          "description": "Allow anonymous function as default export.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow anonymous function as default export."
        },
        "allowArray": {
          "description": "Allow anonymous array as default export.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow anonymous array as default export."
        },
        "allowArrowFunction": {
          "description": "Allow anonymous arrow function as default export.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow anonymous arrow function as default export."
        },
        "allowCallExpression": {
          "description": "Allow anonymous call expression as default export.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Allow anonymous call expression as default export."
        },
        "allowLiteral": {
          "description": "Allow anonymous literal as default export.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow anonymous literal as default export."
        },
        "allowNew": {
          "description": "Allow anonymous new expression as default export.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow anonymous new expression as default export."
        },
        "allowObject": {
          "description": "Allow anonymous object as default export.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow anonymous object as default export."
        }
      },
      "additionalProperties": false
    },
    "NoArrayReduce": {
      "type": "object",
      "properties": {
        "allowSimpleOperations": {
          "description": "When set to `true`, allows simple operations (like summing numbers) in `reduce` and `reduceRight` calls.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "When set to `true`, allows simple operations (like summing numbers) in `reduce` and `reduceRight` calls."
        }
      },
      "additionalProperties": false
    },
    "NoArrayReverse": {
      "type": "object",
      "properties": {
        "allowExpressionStatement": {
          "description": "This rule allows `array.reverse()` as an expression statement by default.\nSet to `false` to forbid `Array#reverse()` even if it's an expression statement.\n\nExamples of **incorrect** code for this rule with this option set to `false`:\n```js\narray.reverse();\n```",
          "default": true,
          "type": "boolean",
          "markdownDescription": "This rule allows `array.reverse()` as an expression statement by default.\nSet to `false` to forbid `Array#reverse()` even if it's an expression statement.\n\nExamples of **incorrect** code for this rule with this option set to `false`:\n```js\narray.reverse();\n```"
        }
      },
      "additionalProperties": false
    },
    "NoArraySort": {
      "type": "object",
      "properties": {
        "allowExpressionStatement": {
          "description": "When set to `true` (default), allows `array.sort()` as an expression statement.\nSet to `false` to forbid `Array#sort()` even if it's an expression statement.\n\nExample of **incorrect** code for this rule with `allowExpressionStatement` set to `false`:\n```js\narray.sort();\n```",
          "default": true,
          "type": "boolean",
          "markdownDescription": "When set to `true` (default), allows `array.sort()` as an expression statement.\nSet to `false` to forbid `Array#sort()` even if it's an expression statement.\n\nExample of **incorrect** code for this rule with `allowExpressionStatement` set to `false`:\n```js\narray.sort();\n```"
        }
      },
      "additionalProperties": false
    },
    "NoAsyncEndpointHandlersConfig": {
      "type": "object",
      "properties": {
        "allowedNames": {
          "description": "An array of names that are allowed to be async.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of names that are allowed to be async."
        }
      },
      "additionalProperties": false
    },
    "NoAsyncInComputedProperties": {
      "$ref": "#/definitions/NoAsyncInComputedPropertiesConfig"
    },
    "NoAsyncInComputedPropertiesConfig": {
      "type": "object",
      "properties": {
        "ignoredObjectNames": {
          "description": "Names of identifiers whose member-call chains (`.then` / `.catch` / `.finally`)\nshould be ignored. Useful for libraries like Zod where `.catch(default)` is\na builder API, not a Promise method.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true,
          "markdownDescription": "Names of identifiers whose member-call chains (`.then` / `.catch` / `.finally`)\nshould be ignored. Useful for libraries like Zod where `.catch(default)` is\na builder API, not a Promise method."
        }
      },
      "additionalProperties": false
    },
    "NoAutofocus": {
      "type": "object",
      "properties": {
        "ignoreNonDOM": {
          "description": "Determines if developer-created components are checked.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Determines if developer-created components are checked."
        }
      },
      "additionalProperties": false
    },
    "NoBarrelFile": {
      "type": "object",
      "properties": {
        "threshold": {
          "description": "The maximum number of modules that can be re-exported via `export *`\nbefore the rule is triggered.",
          "default": 100,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "The maximum number of modules that can be re-exported via `export *`\nbefore the rule is triggered."
        }
      },
      "additionalProperties": false
    },
    "NoBaseToStringConfig": {
      "type": "object",
      "properties": {
        "checkUnknown": {
          "description": "Whether to also check values of type `unknown`.\nWhen `true`, calling toString on `unknown` values will be flagged.\nDefault is `false`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to also check values of type `unknown`.\nWhen `true`, calling toString on `unknown` values will be flagged.\nDefault is `false`."
        },
        "ignoredTypeNames": {
          "description": "A list of type names to ignore when checking for unsafe toString usage.\nThese types are considered safe to call toString on even if they don't\nprovide a custom implementation.",
          "default": [
            "Error",
            "RegExp",
            "URL",
            "URLSearchParams"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "A list of type names to ignore when checking for unsafe toString usage.\nThese types are considered safe to call toString on even if they don't\nprovide a custom implementation."
        }
      },
      "additionalProperties": false
    },
    "NoBitwiseConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "The `allow` option permits the given list of bitwise operators to be used\nas exceptions to this rule.\n\nFor example `{ \"allow\": [\"~\"] }` would allow the use of the bitwise operator\n`~` without restriction. Such as in the following:\n\n```javascript\n~[1,2,3].indexOf(1) === -1;\n```",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "The `allow` option permits the given list of bitwise operators to be used\nas exceptions to this rule.\n\nFor example `{ \"allow\": [\"~\"] }` would allow the use of the bitwise operator\n`~` without restriction. Such as in the following:\n\n```javascript\n~[1,2,3].indexOf(1) === -1;\n```"
        },
        "int32Hint": {
          "description": "When set to `true` the `int32Hint` option allows the use of bitwise OR in |0\npattern for type casting.\n\nFor example with `{ \"int32Hint\": true }` the following is permitted:\n\n```javascript\nconst b = a|0;\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true` the `int32Hint` option allows the use of bitwise OR in |0\npattern for type casting.\n\nFor example with `{ \"int32Hint\": true }` the following is permitted:\n\n```javascript\nconst b = a|0;\n```"
        }
      },
      "additionalProperties": false
    },
    "NoCallbackInPromiseConfig": {
      "type": "object",
      "properties": {
        "exceptions": {
          "description": "List of callback function names to allow within Promise `then` and `catch` methods.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of callback function names to allow within Promise `then` and `catch` methods."
        },
        "timeoutsErr": {
          "description": "Boolean as to whether callbacks in timeout functions like `setTimeout` will err.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Boolean as to whether callbacks in timeout functions like `setTimeout` will err."
        }
      },
      "additionalProperties": false
    },
    "NoCommonjs": {
      "type": "object",
      "properties": {
        "allowConditionalRequire": {
          "description": "When set to `true`, allows conditional `require()` calls (e.g., inside `if` statements or try-catch blocks).\nThis is useful for places where you need to conditionally load via commonjs requires if ESM imports are not supported.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "When set to `true`, allows conditional `require()` calls (e.g., inside `if` statements or try-catch blocks).\nThis is useful for places where you need to conditionally load via commonjs requires if ESM imports are not supported."
        },
        "allowPrimitiveModules": {
          "description": "If `allowPrimitiveModules` option is set to true, the following is valid:\n\n```js\nmodule.exports = \"foo\";\nmodule.exports = function rule(context) {\nreturn { /* ... */ };\n};\n```\n\nbut this is still reported:\n\n```js\nmodule.exports = { x: \"y\" };\nexports.z = function bark() { /* ... */ };\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If `allowPrimitiveModules` option is set to true, the following is valid:\n\n```js\nmodule.exports = \"foo\";\nmodule.exports = function rule(context) {\nreturn { /* ... */ };\n};\n```\n\nbut this is still reported:\n\n```js\nmodule.exports = { x: \"y\" };\nexports.z = function bark() { /* ... */ };\n```"
        },
        "allowRequire": {
          "description": "If set to `true`, `require` calls are valid:\n\n```js\nvar mod = require(\"./mod\");\n```\n\nbut `module.exports` is reported as usual.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If set to `true`, `require` calls are valid:\n\n```js\nvar mod = require(\"./mod\");\n```\n\nbut `module.exports` is reported as usual."
        }
      },
      "additionalProperties": false
    },
    "NoCondAssignConfig": {
      "oneOf": [
        {
          "description": "Allow assignments in conditional expressions only if they are\nenclosed in parentheses.",
          "type": "string",
          "enum": [
            "except-parens"
          ],
          "markdownDescription": "Allow assignments in conditional expressions only if they are\nenclosed in parentheses."
        },
        {
          "description": "Disallow all assignments in conditional expressions.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Disallow all assignments in conditional expressions."
        }
      ]
    },
    "NoConfusingVoidExpressionConfig": {
      "type": "object",
      "properties": {
        "ignoreArrowShorthand": {
          "description": "Whether to ignore arrow function shorthand that returns void.\nWhen true, allows expressions like `() => someVoidFunction()`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore arrow function shorthand that returns void.\nWhen true, allows expressions like `() => someVoidFunction()`."
        },
        "ignoreVoidOperator": {
          "description": "Whether to ignore expressions using the void operator.\nWhen true, allows `void someExpression`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore expressions using the void operator.\nWhen true, allows `void someExpression`."
        },
        "ignoreVoidReturningFunctions": {
          "description": "Whether to ignore calling functions that are declared to return void.\nWhen true, allows expressions like `x = voidReturningFunction()`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore calling functions that are declared to return void.\nWhen true, allows expressions like `x = voidReturningFunction()`."
        }
      },
      "additionalProperties": false
    },
    "NoConsoleConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "The `allow` option permits the given list of console methods to be used as exceptions to\nthis rule.\n\nSay the option was configured as `{ \"allow\": [\"info\"] }` then the rule would behave as\nfollows:\n\nExample of **incorrect** code for this option:\n```javascript\nconsole.log('foo');\n```\n\nExample of **correct** code for this option:\n```javascript\nconsole.info('foo');\n```",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "The `allow` option permits the given list of console methods to be used as exceptions to\nthis rule.\n\nSay the option was configured as `{ \"allow\": [\"info\"] }` then the rule would behave as\nfollows:\n\nExample of **incorrect** code for this option:\n```javascript\nconsole.log('foo');\n```\n\nExample of **correct** code for this option:\n```javascript\nconsole.info('foo');\n```"
        }
      },
      "additionalProperties": false
    },
    "NoConstantCondition": {
      "type": "object",
      "properties": {
        "checkLoops": {
          "description": "Configuration option to specify whether to check for constant conditions in loops.\n\n- `\"all\"` or `true` disallows constant expressions in loops\n- `\"allExceptWhileTrue\"` disallows constant expressions in loops except while loops with expression `true`\n- `\"none\"` or `false` allows constant expressions in loops",
          "default": "allExceptWhileTrue",
          "allOf": [
            {
              "$ref": "#/definitions/CheckLoopsConfig"
            }
          ],
          "markdownDescription": "Configuration option to specify whether to check for constant conditions in loops.\n\n- `\"all\"` or `true` disallows constant expressions in loops\n- `\"allExceptWhileTrue\"` disallows constant expressions in loops except while loops with expression `true`\n- `\"none\"` or `false` allows constant expressions in loops"
        }
      },
      "additionalProperties": false
    },
    "NoCycle": {
      "type": "object",
      "properties": {
        "allowUnsafeDynamicCyclicDependency": {
          "description": "Allow cyclic dependency if there is at least one dynamic import in the chain",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow cyclic dependency if there is at least one dynamic import in the chain"
        },
        "ignoreExternal": {
          "description": "Ignore external modules",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Ignore external modules"
        },
        "ignoreTypes": {
          "description": "Ignore type-only imports",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Ignore type-only imports"
        },
        "maxDepth": {
          "description": "Maximum dependency depth to traverse",
          "default": 4294967295,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "Maximum dependency depth to traverse"
        }
      },
      "additionalProperties": false
    },
    "NoDefaultsConfig": {
      "type": "object",
      "properties": {
        "noOptionalParamNames": {
          "description": "If true, report the presence of optional param names (square brackets) on `@param` tags.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If true, report the presence of optional param names (square brackets) on `@param` tags."
        }
      },
      "additionalProperties": false
    },
    "NoDeprecatedConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "An array of type or value specifiers that are allowed to be used even if deprecated.\nUse this to allow specific deprecated APIs that you intentionally want to continue using.",
          "default": [],
          "type": "array",
          "items": {
            "$ref": "#/definitions/TypeOrValueSpecifier"
          },
          "markdownDescription": "An array of type or value specifiers that are allowed to be used even if deprecated.\nUse this to allow specific deprecated APIs that you intentionally want to continue using."
        }
      },
      "additionalProperties": false
    },
    "NoDeprecatedFunctionsConfig": {
      "type": "object",
      "properties": {
        "jest": {
          "description": "Jest configuration options.\nDeprecated config, it will be removed in future versions.\nUse please instead { \"settings\": { \"jest\": {\"version\": 29 } } } in `Oxlint config file`.\nBeware the value from the config have higher priority than the rule config.",
          "allOf": [
            {
              "$ref": "#/definitions/JestConfigJson"
            }
          ],
          "markdownDescription": "Jest configuration options.\nDeprecated config, it will be removed in future versions.\nUse please instead { \"settings\": { \"jest\": {\"version\": 29 } } } in `Oxlint config file`.\nBeware the value from the config have higher priority than the rule config."
        }
      },
      "additionalProperties": false
    },
    "NoDeprecatedModelDefinition": {
      "$ref": "#/definitions/NoDeprecatedModelDefinitionConfig"
    },
    "NoDeprecatedModelDefinitionConfig": {
      "type": "object",
      "properties": {
        "allowVue3Compat": {
          "description": "Allow `model: { prop: 'modelValue', event: 'update:modelValue' }` (or\nthe kebab-case `model-value` variant) which is forwards-compatible with\nVue 3's `v-model`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow `model: { prop: 'modelValue', event: 'update:modelValue' }` (or\nthe kebab-case `model-value` variant) which is forwards-compatible with\nVue 3's `v-model`."
        }
      },
      "additionalProperties": false
    },
    "NoDistractingElementsConfig": {
      "type": "object",
      "properties": {
        "elements": {
          "description": "List of distracting elements to check for.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DistractingElement"
          },
          "markdownDescription": "List of distracting elements to check for."
        }
      },
      "additionalProperties": false
    },
    "NoDupeKeys": {
      "$ref": "#/definitions/NoDupeKeysConfig"
    },
    "NoDupeKeysConfig": {
      "type": "object",
      "properties": {
        "groups": {
          "description": "Additional group names to search for duplicate keys in, on top of the\nbuilt-in `props`, `computed`, `data`, `methods` and `setup` groups.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Additional group names to search for duplicate keys in, on top of the\nbuilt-in `props`, `computed`, `data`, `methods` and `setup` groups."
        }
      },
      "additionalProperties": false
    },
    "NoDuplicateImports": {
      "type": "object",
      "properties": {
        "allowSeparateTypeImports": {
          "description": "When `true`, imports with only type specifiers (inline types or type imports) are\nconsidered separate from imports with value specifiers, so they can be imported from the\nsame module on separate import statements.\n\nExamples of **correct** code when `allowSeparateTypeImports` is set to `true`:\n```js\nimport { foo } from \"module\";\nimport type { Bar } from \"module\";\n```\n\n```js\nimport { type Foo } from \"module\";\nimport type { Bar } from \"module\";\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `true`, imports with only type specifiers (inline types or type imports) are\nconsidered separate from imports with value specifiers, so they can be imported from the\nsame module on separate import statements.\n\nExamples of **correct** code when `allowSeparateTypeImports` is set to `true`:\n```js\nimport { foo } from \"module\";\nimport type { Bar } from \"module\";\n```\n\n```js\nimport { type Foo } from \"module\";\nimport type { Bar } from \"module\";\n```"
        },
        "includeExports": {
          "description": "When `true` this rule will also look at exports to see if there is both a re-export of a\nmodule as in `export ... from 'module'` and also a standard import statement for the same\nmodule. This would count as a rule violation because there are in a sense two statements\nimporting from the same module.\n\nExamples of **incorrect** code when `includeExports` is set to `true`:\n```js\nimport { merge } from 'module';\n\nexport { find } from 'module'; // re-export which is an import and an export.\n```\n\nExamples of **correct** code when `includeExports` is set to `true`:\n\nIf re-exporting from an imported module, you should add the imports to the\n`import` statement, and export that directly, not use `export ... from`.\n```js\nimport { merge } from \"lodash-es\";\nexport { merge as lodashMerge }\n```\n\n```js\nimport { merge, find } from 'module';\n\n// cannot be merged with the above import\nexport * as something from 'module';\n\n// cannot be written differently\nexport * from 'module';\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `true` this rule will also look at exports to see if there is both a re-export of a\nmodule as in `export ... from 'module'` and also a standard import statement for the same\nmodule. This would count as a rule violation because there are in a sense two statements\nimporting from the same module.\n\nExamples of **incorrect** code when `includeExports` is set to `true`:\n```js\nimport { merge } from 'module';\n\nexport { find } from 'module'; // re-export which is an import and an export.\n```\n\nExamples of **correct** code when `includeExports` is set to `true`:\n\nIf re-exporting from an imported module, you should add the imports to the\n`import` statement, and export that directly, not use `export ... from`.\n```js\nimport { merge } from \"lodash-es\";\nexport { merge as lodashMerge }\n```\n\n```js\nimport { merge, find } from 'module';\n\n// cannot be merged with the above import\nexport * as something from 'module';\n\n// cannot be written differently\nexport * from 'module';\n```"
        }
      },
      "additionalProperties": false
    },
    "NoDuplicateTypeConstituentsConfig": {
      "type": "object",
      "properties": {
        "ignoreIntersections": {
          "description": "Whether to ignore duplicate types in intersection types.\nWhen true, allows `type T = A & A`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore duplicate types in intersection types.\nWhen true, allows `type T = A & A`."
        },
        "ignoreUnions": {
          "description": "Whether to ignore duplicate types in union types.\nWhen true, allows `type T = A | A`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore duplicate types in union types.\nWhen true, allows `type T = A | A`."
        }
      },
      "additionalProperties": false
    },
    "NoDuplicates": {
      "type": "object",
      "properties": {
        "considerQueryString": {
          "description": "When set to `true`, the rule will consider the query string part of the import path\nwhen determining if imports are duplicates. This is useful when using loaders like\nwebpack that use query strings to configure how a module should be loaded.\n\nExamples of **correct** code with this option set to `true`:\n```javascript\nimport x from './bar?optionX';\nimport y from './bar?optionY';\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, the rule will consider the query string part of the import path\nwhen determining if imports are duplicates. This is useful when using loaders like\nwebpack that use query strings to configure how a module should be loaded.\n\nExamples of **correct** code with this option set to `true`:\n```javascript\nimport x from './bar?optionX';\nimport y from './bar?optionY';\n```"
        },
        "preferInline": {
          "description": "When set to `true`, prefer inline type imports instead of separate type import\nstatements for TypeScript code.\n\nExamples of **correct** code with this option set to `true`:\n```typescript\nimport { Foo, type Bar } from './module';\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, prefer inline type imports instead of separate type import\nstatements for TypeScript code.\n\nExamples of **correct** code with this option set to `true`:\n```typescript\nimport { Foo, type Bar } from './module';\n```"
        }
      },
      "additionalProperties": false
    },
    "NoDynamicRequire": {
      "type": "object",
      "properties": {
        "esmodule": {
          "description": "When `true`, also check `import()` expressions for dynamic module specifiers.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `true`, also check `import()` expressions for dynamic module specifiers."
        }
      },
      "additionalProperties": false
    },
    "NoElseReturn": {
      "type": "object",
      "properties": {
        "allowElseIf": {
          "description": "Whether to allow `else if` blocks after a return statement.\n\nExamples of **incorrect** code for this rule with `allowElseIf: false`:\n```javascript\nfunction foo() {\nif (error) {\nreturn 'It failed';\n} else if (loading) {\nreturn \"It's still loading\";\n}\n}\n```\n\nExamples of **correct** code for this rule with `allowElseIf: false`:\n```javascript\nfunction foo() {\nif (error) {\nreturn 'It failed';\n}\n\nif (loading) {\nreturn \"It's still loading\";\n}\n}\n```",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow `else if` blocks after a return statement.\n\nExamples of **incorrect** code for this rule with `allowElseIf: false`:\n```javascript\nfunction foo() {\nif (error) {\nreturn 'It failed';\n} else if (loading) {\nreturn \"It's still loading\";\n}\n}\n```\n\nExamples of **correct** code for this rule with `allowElseIf: false`:\n```javascript\nfunction foo() {\nif (error) {\nreturn 'It failed';\n}\n\nif (loading) {\nreturn \"It's still loading\";\n}\n}\n```"
        }
      },
      "additionalProperties": false
    },
    "NoEmpty": {
      "type": "object",
      "properties": {
        "allowEmptyCatch": {
          "description": "If set to `true`, allows an empty `catch` block without triggering the linter.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If set to `true`, allows an empty `catch` block without triggering the linter."
        }
      },
      "additionalProperties": false
    },
    "NoEmptyFunctionConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "Types of functions that are allowed to be empty.\n\nBy default, no function kinds are allowed to be empty, but this option can be used to\npermit specific kinds of functions.\n\nExample:\n```json\n{\n\"no-empty-function\": [\"error\", { \"allow\": [\"constructors\"] }]\n}\n```",
          "type": "array",
          "items": {
            "$ref": "#/definitions/AllowKind"
          },
          "markdownDescription": "Types of functions that are allowed to be empty.\n\nBy default, no function kinds are allowed to be empty, but this option can be used to\npermit specific kinds of functions.\n\nExample:\n```json\n{\n\"no-empty-function\": [\"error\", { \"allow\": [\"constructors\"] }]\n}\n```"
        }
      },
      "additionalProperties": false
    },
    "NoEmptyInterface": {
      "type": "object",
      "properties": {
        "allowSingleExtends": {
          "description": "When set to `true`, allows empty interfaces that extend a single interface.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, allows empty interfaces that extend a single interface."
        }
      },
      "additionalProperties": false
    },
    "NoEmptyObjectTypeConfig": {
      "type": "object",
      "properties": {
        "allowInterfaces": {
          "description": "Whether to allow empty interfaces.",
          "default": "never",
          "allOf": [
            {
              "$ref": "#/definitions/AllowInterfaces"
            }
          ],
          "markdownDescription": "Whether to allow empty interfaces."
        },
        "allowObjectTypes": {
          "description": "Whether to allow empty object type literals.",
          "default": "never",
          "allOf": [
            {
              "$ref": "#/definitions/AllowObjectTypes"
            }
          ],
          "markdownDescription": "Whether to allow empty object type literals."
        },
        "allowWithName": {
          "description": "A stringified regular expression to allow interfaces and object type aliases with the configured name.\n\nThis can be useful if your existing code style includes a pattern of declaring empty types with `{}` instead of `object`.\n\nExample of **incorrect** code for this rule with `{ allowWithName: 'Props$' }`:\n```ts\ninterface InterfaceValue {}\ntype TypeValue = {};\n```\n\nExample of **correct** code for this rule with `{ allowWithName: 'Props$' }`:\n```ts\ninterface InterfaceProps {}\ntype TypeProps = {};\n```",
          "type": "string",
          "markdownDescription": "A stringified regular expression to allow interfaces and object type aliases with the configured name.\n\nThis can be useful if your existing code style includes a pattern of declaring empty types with `{}` instead of `object`.\n\nExample of **incorrect** code for this rule with `{ allowWithName: 'Props$' }`:\n```ts\ninterface InterfaceValue {}\ntype TypeValue = {};\n```\n\nExample of **correct** code for this rule with `{ allowWithName: 'Props$' }`:\n```ts\ninterface InterfaceProps {}\ntype TypeProps = {};\n```"
        }
      },
      "additionalProperties": false
    },
    "NoEmptyPattern": {
      "type": "object",
      "properties": {
        "allowObjectPatternsAsParameters": {
          "description": "When set to `true`, this rule allows empty object patterns used directly as function\nparameters, including parameters defaulted to an empty object literal.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, this rule allows empty object patterns used directly as function\nparameters, including parameters defaulted to an empty object literal."
        }
      },
      "additionalProperties": false
    },
    "NoEval": {
      "type": "object",
      "properties": {
        "allowIndirect": {
          "description": "This `allowIndirect` option allows indirect `eval()` calls.\n\nIndirect calls to `eval`(e.g., `window['eval']`) are less dangerous\nthan direct calls because they cannot dynamically change the scope.\nIndirect `eval()` calls also typically have less impact on performance\ncompared to direct calls, as they do not invoke JavaScript's scope chain.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "This `allowIndirect` option allows indirect `eval()` calls.\n\nIndirect calls to `eval`(e.g., `window['eval']`) are less dangerous\nthan direct calls because they cannot dynamically change the scope.\nIndirect `eval()` calls also typically have less impact on performance\ncompared to direct calls, as they do not invoke JavaScript's scope chain."
        }
      },
      "additionalProperties": false
    },
    "NoExplicitAny": {
      "type": "object",
      "properties": {
        "fixToUnknown": {
          "description": "Whether to enable auto-fixing in which the `any` type is converted to the `unknown` type.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to enable auto-fixing in which the `any` type is converted to the `unknown` type."
        },
        "ignoreRestArgs": {
          "description": "Whether to ignore rest parameter arrays.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore rest parameter arrays."
        }
      },
      "additionalProperties": false
    },
    "NoExtendNativeConfig": {
      "type": "object",
      "properties": {
        "exceptions": {
          "description": "A list of objects which are allowed to be exceptions to the rule.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "A list of objects which are allowed to be exceptions to the rule."
        }
      },
      "additionalProperties": false
    },
    "NoExtraBooleanCast": {
      "type": "object",
      "properties": {
        "enforceForInnerExpressions": {
          "description": "when set to `true`, in addition to checking default contexts, checks\nwhether extra boolean casts are present in expressions whose result is\nused in a boolean context. See examples below. Default is `false`,\nmeaning that this rule by default does not warn about extra booleans\ncast inside inner expressions.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "when set to `true`, in addition to checking default contexts, checks\nwhether extra boolean casts are present in expressions whose result is\nused in a boolean context. See examples below. Default is `false`,\nmeaning that this rule by default does not warn about extra booleans\ncast inside inner expressions."
        }
      },
      "additionalProperties": false
    },
    "NoExtraneousClass": {
      "type": "object",
      "properties": {
        "allowConstructorOnly": {
          "description": "Allow classes that only have a constructor.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow classes that only have a constructor."
        },
        "allowEmpty": {
          "description": "Allow empty classes.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow empty classes."
        },
        "allowStaticOnly": {
          "description": "Allow classes with only static members.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow classes with only static members."
        },
        "allowWithDecorator": {
          "description": "Allow classes with decorators.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow classes with decorators."
        }
      },
      "additionalProperties": false
    },
    "NoFallthroughConfig": {
      "type": "object",
      "properties": {
        "allowEmptyCase": {
          "description": "Whether to allow empty case clauses to fall through.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow empty case clauses to fall through."
        },
        "commentPattern": {
          "description": "Custom regex pattern to match fallthrough comments.",
          "type": "string",
          "markdownDescription": "Custom regex pattern to match fallthrough comments."
        },
        "reportUnusedFallthroughComment": {
          "description": "Whether to report unused fallthrough comments.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to report unused fallthrough comments."
        }
      },
      "additionalProperties": false
    },
    "NoFloatingPromisesConfig": {
      "type": "object",
      "properties": {
        "allowForKnownSafeCalls": {
          "description": "Allows specific calls to be ignored, specified as type or value specifiers.",
          "default": [],
          "type": "array",
          "items": {
            "$ref": "#/definitions/TypeOrValueSpecifier"
          },
          "markdownDescription": "Allows specific calls to be ignored, specified as type or value specifiers."
        },
        "allowForKnownSafePromises": {
          "description": "Allows specific Promise types to be ignored, specified as type or value specifiers.",
          "default": [],
          "type": "array",
          "items": {
            "$ref": "#/definitions/TypeOrValueSpecifier"
          },
          "markdownDescription": "Allows specific Promise types to be ignored, specified as type or value specifiers."
        },
        "checkThenables": {
          "description": "Check for thenable objects that are not necessarily Promises.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Check for thenable objects that are not necessarily Promises."
        },
        "ignoreIIFE": {
          "description": "Ignore immediately invoked function expressions (IIFEs).",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Ignore immediately invoked function expressions (IIFEs)."
        },
        "ignoreVoid": {
          "description": "Ignore Promises that are void expressions.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Ignore Promises that are void expressions."
        }
      },
      "additionalProperties": false
    },
    "NoGlobalAssignConfig": {
      "type": "object",
      "properties": {
        "exceptions": {
          "description": "List of global variable names to exclude from this rule.\nGlobals listed here can be assigned to without triggering warnings.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of global variable names to exclude from this rule.\nGlobals listed here can be assigned to without triggering warnings."
        }
      },
      "additionalProperties": false
    },
    "NoHooksConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "An array of hook function names that are permitted for use.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of hook function names that are permitted for use."
        }
      },
      "additionalProperties": false
    },
    "NoImplicitCoercionConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "List of operators to allow. Valid values: `\"!!\"`, `\"~\"`, `\"+\"`, `\"-\"`, `\"- -\"`, `\"*\"`",
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of operators to allow. Valid values: `\"!!\"`, `\"~\"`, `\"+\"`, `\"-\"`, `\"- -\"`, `\"*\"`"
        },
        "boolean": {
          "description": "When `true`, warns on implicit boolean coercion (e.g., `!!foo`).",
          "default": true,
          "type": "boolean",
          "markdownDescription": "When `true`, warns on implicit boolean coercion (e.g., `!!foo`)."
        },
        "disallowTemplateShorthand": {
          "description": "When `true`, disallows using template literals for string coercion (e.g., `` `${foo}` ``).",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `true`, disallows using template literals for string coercion (e.g., `` `${foo}` ``)."
        },
        "number": {
          "description": "When `true`, warns on implicit number coercion (e.g., `+foo`).",
          "default": true,
          "type": "boolean",
          "markdownDescription": "When `true`, warns on implicit number coercion (e.g., `+foo`)."
        },
        "string": {
          "description": "When `true`, warns on implicit string coercion (e.g., `\"\" + foo`).",
          "default": true,
          "type": "boolean",
          "markdownDescription": "When `true`, warns on implicit string coercion (e.g., `\"\" + foo`)."
        }
      },
      "additionalProperties": false
    },
    "NoImplicitGlobals": {
      "$ref": "#/definitions/NoImplicitGlobalsConfig"
    },
    "NoImplicitGlobalsConfig": {
      "type": "object",
      "properties": {
        "lexicalBindings": {
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "NoInferrableTypes": {
      "type": "object",
      "properties": {
        "ignoreParameters": {
          "description": "When set to `true`, ignores type annotations on function parameters.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, ignores type annotations on function parameters."
        },
        "ignoreProperties": {
          "description": "When set to `true`, ignores type annotations on class properties.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, ignores type annotations on class properties."
        }
      },
      "additionalProperties": false
    },
    "NoInlineCommentsConfig": {
      "type": "object",
      "properties": {
        "ignorePattern": {
          "description": "A regex pattern to ignore certain inline comments.\n\nComments matching this pattern will not be reported.\n\nExample configuration:\n```json\n{\n\"no-inline-comments\": [\"error\", { \"ignorePattern\": \"webpackChunkName\" }]\n}\n```",
          "type": "string",
          "markdownDescription": "A regex pattern to ignore certain inline comments.\n\nComments matching this pattern will not be reported.\n\nExample configuration:\n```json\n{\n\"no-inline-comments\": [\"error\", { \"ignorePattern\": \"webpackChunkName\" }]\n}\n```"
        }
      },
      "additionalProperties": false
    },
    "NoInnerDeclarations": {
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/NoInnerDeclarationsConfig"
        },
        {
          "$ref": "#/definitions/NoInnerDeclarationsOptions"
        }
      ],
      "maxItems": 2,
      "minItems": 2
    },
    "NoInnerDeclarationsConfig": {
      "description": "Determines what type of declarations to check.",
      "oneOf": [
        {
          "description": "Disallows function declarations in nested blocks.",
          "type": "string",
          "enum": [
            "functions"
          ],
          "markdownDescription": "Disallows function declarations in nested blocks."
        },
        {
          "description": "Disallows function and var declarations in nested blocks.",
          "type": "string",
          "enum": [
            "both"
          ],
          "markdownDescription": "Disallows function and var declarations in nested blocks."
        }
      ],
      "markdownDescription": "Determines what type of declarations to check."
    },
    "NoInnerDeclarationsOptions": {
      "type": "object",
      "properties": {
        "blockScopedFunctions": {
          "description": "Controls whether function declarations in nested blocks are allowed in strict mode (ES6+ behavior).",
          "default": null,
          "allOf": [
            {
              "$ref": "#/definitions/BlockScopedFunctions"
            }
          ],
          "markdownDescription": "Controls whether function declarations in nested blocks are allowed in strict mode (ES6+ behavior)."
        }
      },
      "additionalProperties": false
    },
    "NoInstanceofBuiltinsConfig": {
      "type": "object",
      "properties": {
        "exclude": {
          "description": "Constructor names to exclude from checking.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Constructor names to exclude from checking."
        },
        "include": {
          "description": "Additional constructor names to check beyond the default set.\nUse this to extend the rule with additional constructors.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Additional constructor names to check beyond the default set.\nUse this to extend the rule with additional constructors."
        },
        "strategy": {
          "description": "Controls which built-in constructors are checked.",
          "default": "loose",
          "allOf": [
            {
              "$ref": "#/definitions/NoInstanceofBuiltinsStrategy"
            }
          ],
          "markdownDescription": "Controls which built-in constructors are checked."
        },
        "useErrorIsError": {
          "description": "When `true`, checks `instanceof Error` and suggests using `Error.isError()` instead.\nRequires [the `Error.isError()` function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/isError)\nto be available.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `true`, checks `instanceof Error` and suggests using `Error.isError()` instead.\nRequires [the `Error.isError()` function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/isError)\nto be available."
        }
      },
      "additionalProperties": false
    },
    "NoInstanceofBuiltinsStrategy": {
      "oneOf": [
        {
          "description": "Additionally checks Error types, collections, typed arrays, and other built-in constructors.",
          "type": "string",
          "enum": [
            "strict"
          ],
          "markdownDescription": "Additionally checks Error types, collections, typed arrays, and other built-in constructors."
        },
        {
          "description": "Only checks Array, Function, Error (if `useErrorIsError` is true), and primitive wrappers.",
          "type": "string",
          "enum": [
            "loose"
          ],
          "markdownDescription": "Only checks Array, Function, Error (if `useErrorIsError` is true), and primitive wrappers."
        }
      ]
    },
    "NoInteractiveElementToNoninteractiveRoleConfig": {
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "NoInvalidRegexpConfig": {
      "type": "object",
      "properties": {
        "allowConstructorFlags": {
          "description": "Case-sensitive array of flags that will be allowed.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 1,
            "minLength": 1
          },
          "markdownDescription": "Case-sensitive array of flags that will be allowed."
        }
      },
      "additionalProperties": false
    },
    "NoInvalidVoidTypeConfig": {
      "type": "object",
      "properties": {
        "allowAsThisParameter": {
          "description": "Whether a `this` parameter of a function may be `void`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether a `this` parameter of a function may be `void`."
        },
        "allowInGenericTypeArguments": {
          "description": "Whether `void` can be used as generic type arguments.\nCan be `true` / `false`, or an allowlist of generic type names.",
          "default": true,
          "allOf": [
            {
              "$ref": "#/definitions/AllowInGenericTypeArguments"
            }
          ],
          "markdownDescription": "Whether `void` can be used as generic type arguments.\nCan be `true` / `false`, or an allowlist of generic type names."
        }
      },
      "additionalProperties": false
    },
    "NoIrregularWhitespaceConfig": {
      "type": "object",
      "properties": {
        "skipComments": {
          "description": "Whether to skip irregular whitespace in comments.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to skip irregular whitespace in comments."
        },
        "skipJSXText": {
          "description": "Whether to skip irregular whitespace in JSX text.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to skip irregular whitespace in JSX text."
        },
        "skipRegExps": {
          "description": "Whether to skip irregular whitespace in regular expression literals.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to skip irregular whitespace in regular expression literals."
        },
        "skipStrings": {
          "description": "Whether to skip irregular whitespace in string literals.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to skip irregular whitespace in string literals."
        },
        "skipTemplates": {
          "description": "Whether to skip irregular whitespace in template literals.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to skip irregular whitespace in template literals."
        }
      },
      "additionalProperties": false
    },
    "NoLabels": {
      "type": "object",
      "properties": {
        "allowLoop": {
          "description": "If set to `true`, this rule ignores labels which are sticking to loop statements.\nExamples of **correct** code with this option set to `true`:\n```js\nlabel:\nwhile (true) {\nbreak label;\n}\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If set to `true`, this rule ignores labels which are sticking to loop statements.\nExamples of **correct** code with this option set to `true`:\n```js\nlabel:\nwhile (true) {\nbreak label;\n}\n```"
        },
        "allowSwitch": {
          "description": "If set to `true`, this rule ignores labels which are sticking to switch statements.\nExamples of **correct** code with this option set to `true`:\n```js\nlabel:\nswitch (a) {\ncase 0:\nbreak label;\n}\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If set to `true`, this rule ignores labels which are sticking to switch statements.\nExamples of **correct** code with this option set to `true`:\n```js\nlabel:\nswitch (a) {\ncase 0:\nbreak label;\n}\n```"
        }
      },
      "additionalProperties": false
    },
    "NoLargeSnapshotsConfig": {
      "type": "object",
      "properties": {
        "allowedSnapshots": {
          "description": "A map of snapshot file paths to arrays of snapshot names that are allowed to exceed the size limit.\nSnapshot names can be specified as regular expressions.",
          "default": {},
          "type": "object",
          "additionalProperties": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "markdownDescription": "A map of snapshot file paths to arrays of snapshot names that are allowed to exceed the size limit.\nSnapshot names can be specified as regular expressions."
        },
        "inlineMaxSize": {
          "description": "Maximum number of lines allowed for inline snapshots.",
          "default": 50,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "Maximum number of lines allowed for inline snapshots."
        },
        "maxSize": {
          "description": "Maximum number of lines allowed for external snapshot files.",
          "default": 50,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "Maximum number of lines allowed for external snapshot files."
        }
      },
      "additionalProperties": false
    },
    "NoMagicNumbersConfig": {
      "type": "object",
      "properties": {
        "detectObjects": {
          "description": "When true, numeric literals used in object properties are considered magic numbers.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When true, numeric literals used in object properties are considered magic numbers."
        },
        "enforceConst": {
          "description": "When true, enforces that number constants must be declared using `const` instead of `let` or `var`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When true, enforces that number constants must be declared using `const` instead of `let` or `var`."
        },
        "ignore": {
          "description": "An array of numbers to ignore if used as magic numbers. Can include floats or BigInt strings.",
          "default": [],
          "type": "array",
          "items": {
            "$ref": "#/definitions/NoMagicNumbersNumber"
          },
          "markdownDescription": "An array of numbers to ignore if used as magic numbers. Can include floats or BigInt strings."
        },
        "ignoreArrayIndexes": {
          "description": "When true, numeric literals used as array indexes are ignored.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When true, numeric literals used as array indexes are ignored."
        },
        "ignoreClassFieldInitialValues": {
          "description": "When true, numeric literals used as initial values in class fields are ignored.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When true, numeric literals used as initial values in class fields are ignored."
        },
        "ignoreDefaultValues": {
          "description": "When true, numeric literals used as default values in function parameters and destructuring are ignored.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When true, numeric literals used as default values in function parameters and destructuring are ignored."
        },
        "ignoreEnums": {
          "description": "When true, numeric literals in TypeScript enums are ignored.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When true, numeric literals in TypeScript enums are ignored."
        },
        "ignoreNumericLiteralTypes": {
          "description": "When true, numeric literals used as TypeScript numeric literal types are ignored.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When true, numeric literals used as TypeScript numeric literal types are ignored."
        },
        "ignoreReadonlyClassProperties": {
          "description": "When true, numeric literals in readonly class properties are ignored.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When true, numeric literals in readonly class properties are ignored."
        },
        "ignoreTypeIndexes": {
          "description": "When true, numeric literals used to index TypeScript types are ignored.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When true, numeric literals used to index TypeScript types are ignored."
        }
      },
      "additionalProperties": false
    },
    "NoMagicNumbersNumber": {
      "anyOf": [
        {
          "type": "number",
          "format": "double"
        },
        {
          "type": "string"
        }
      ]
    },
    "NoMapSpreadConfig": {
      "type": "object",
      "properties": {
        "ignoreArgs": {
          "description": "Ignore maps on arrays passed as parameters to a function.\n\nThis option is enabled by default to better avoid false positives. It\ncomes at the cost of potentially missing spreads that are inefficient.\nWe recommend turning this off in your `.oxlintrc.json` files.\n\n#### Examples\n\nExamples of **incorrect** code for this rule when `ignoreArgs` is `true`:\n```ts\n/* \"oxc/no-map-spread\": [\"error\", { \"ignoreArgs\": true }] */\nfunction foo(arr) {\nlet arr2 = arr.filter(x => x.a > 0);\nreturn arr2.map(x => ({ ...x }));\n}\n```\n\nExamples of **correct** code for this rule when `ignoreArgs` is `true`:\n```ts\n/* \"oxc/no-map-spread\": [\"error\", { \"ignoreArgs\": true }] */\nfunction foo(arr) {\nreturn arr.map(x => ({ ...x }));\n}\n```",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Ignore maps on arrays passed as parameters to a function.\n\nThis option is enabled by default to better avoid false positives. It\ncomes at the cost of potentially missing spreads that are inefficient.\nWe recommend turning this off in your `.oxlintrc.json` files.\n\n#### Examples\n\nExamples of **incorrect** code for this rule when `ignoreArgs` is `true`:\n```ts\n/* \"oxc/no-map-spread\": [\"error\", { \"ignoreArgs\": true }] */\nfunction foo(arr) {\nlet arr2 = arr.filter(x => x.a > 0);\nreturn arr2.map(x => ({ ...x }));\n}\n```\n\nExamples of **correct** code for this rule when `ignoreArgs` is `true`:\n```ts\n/* \"oxc/no-map-spread\": [\"error\", { \"ignoreArgs\": true }] */\nfunction foo(arr) {\nreturn arr.map(x => ({ ...x }));\n}\n```"
        },
        "ignoreRereads": {
          "description": "Ignore mapped arrays that are re-read after the `map` call.\n\nRe-used arrays may rely on shallow copying behavior to avoid mutations.\nIn these cases, `Object.assign` is not really more performant than spreads.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Ignore mapped arrays that are re-read after the `map` call.\n\nRe-used arrays may rely on shallow copying behavior to avoid mutations.\nIn these cases, `Object.assign` is not really more performant than spreads."
        }
      },
      "additionalProperties": false
    },
    "NoMeaninglessVoidOperatorConfig": {
      "type": "object",
      "properties": {
        "checkNever": {
          "description": "Whether to check `void` applied to expressions of type `never`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to check `void` applied to expressions of type `never`."
        }
      },
      "additionalProperties": false
    },
    "NoMisleadingCharacterClass": {
      "type": "object",
      "properties": {
        "allowEscape": {
          "description": "When set to `true`, the rule allows any grouping of code points\ninside a character class as long as they are written using escape sequences.\n\nExamples of **incorrect** code for this rule with `{ \"allowEscape\": true }`:\n```javascript\n/[\\uD83D]/; // backslash can be omitted\nnew RegExp(\"[\\ud83d\" + \"\\udc4d]\");\n```\n\nExamples of **correct** code for this rule with `{ \"allowEscape\": true }`:\n```javascript\n/[\\ud83d\\udc4d]/;\n/[\\u00B7\\u0300-\\u036F]/u;\n/[👨\\u200d👩]/u;\nnew RegExp(\"[\\x41\\u0301]\");\nnew RegExp(`[\\u{1F1EF}\\u{1F1F5}]`, \"u\");\nnew RegExp(\"[\\\\u{1F1EF}\\\\u{1F1F5}]\", \"u\");\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, the rule allows any grouping of code points\ninside a character class as long as they are written using escape sequences.\n\nExamples of **incorrect** code for this rule with `{ \"allowEscape\": true }`:\n```javascript\n/[\\uD83D]/; // backslash can be omitted\nnew RegExp(\"[\\ud83d\" + \"\\udc4d]\");\n```\n\nExamples of **correct** code for this rule with `{ \"allowEscape\": true }`:\n```javascript\n/[\\ud83d\\udc4d]/;\n/[\\u00B7\\u0300-\\u036F]/u;\n/[👨\\u200d👩]/u;\nnew RegExp(\"[\\x41\\u0301]\");\nnew RegExp(`[\\u{1F1EF}\\u{1F1F5}]`, \"u\");\nnew RegExp(\"[\\\\u{1F1EF}\\\\u{1F1F5}]\", \"u\");\n```"
        }
      },
      "additionalProperties": false
    },
    "NoMisusedPromisesConfig": {
      "type": "object",
      "properties": {
        "checksConditionals": {
          "description": "Whether to check if Promises are used in conditionals.\nWhen true, disallows using Promises in conditions where a boolean is expected.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check if Promises are used in conditionals.\nWhen true, disallows using Promises in conditions where a boolean is expected."
        },
        "checksSpreads": {
          "description": "Whether to check if Promises are used in spread syntax.\nWhen true, disallows spreading Promise values.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check if Promises are used in spread syntax.\nWhen true, disallows spreading Promise values."
        },
        "checksVoidReturn": {
          "description": "Configuration for checking if Promises are returned in contexts expecting void.\nCan be a boolean to enable/disable all checks, or an object for granular control.",
          "default": true,
          "allOf": [
            {
              "$ref": "#/definitions/ChecksVoidReturn"
            }
          ],
          "markdownDescription": "Configuration for checking if Promises are returned in contexts expecting void.\nCan be a boolean to enable/disable all checks, or an object for granular control."
        }
      },
      "additionalProperties": false
    },
    "NoMisusedSpreadConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "An array of type or value specifiers that are allowed to be spread\neven if they would normally be flagged as misused.",
          "default": [],
          "type": "array",
          "items": {
            "$ref": "#/definitions/TypeOrValueSpecifier"
          },
          "markdownDescription": "An array of type or value specifiers that are allowed to be spread\neven if they would normally be flagged as misused."
        }
      },
      "additionalProperties": false
    },
    "NoMixedRequiresConfig": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/NoMixedRequiresOptions"
        }
      ]
    },
    "NoMixedRequiresOptions": {
      "type": "object",
      "properties": {
        "allowCall": {
          "default": false,
          "type": "boolean"
        },
        "grouping": {
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "NoMultiAssign": {
      "type": "object",
      "properties": {
        "ignoreNonDeclaration": {
          "description": "When set to `true`, the rule allows chains that don't include initializing a variable in a declaration or initializing a class field.\n\nExamples of **correct** code for this option set to `true`:\n```js\nlet a;\nlet b;\na = b = \"baz\";\n\nconst x = {};\nconst y = {};\nx.one = y.one = 1;\n```\n\nExamples of **incorrect** code for this option set to `true`:\n```js\nlet a = b = \"baz\";\n\nconst foo = bar = 1;\n\nclass Foo {\na = b = 10;\n}\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, the rule allows chains that don't include initializing a variable in a declaration or initializing a class field.\n\nExamples of **correct** code for this option set to `true`:\n```js\nlet a;\nlet b;\na = b = \"baz\";\n\nconst x = {};\nconst y = {};\nx.one = y.one = 1;\n```\n\nExamples of **incorrect** code for this option set to `true`:\n```js\nlet a = b = \"baz\";\n\nconst foo = bar = 1;\n\nclass Foo {\na = b = 10;\n}\n```"
        }
      },
      "additionalProperties": false
    },
    "NoMultiComp": {
      "$ref": "#/definitions/NoMultiCompConfig"
    },
    "NoMultiCompConfig": {
      "type": "object",
      "properties": {
        "ignoreStateless": {
          "description": "When `true`, the rule will ignore stateless components and will allow you to have multiple\nstateless components in the same file. Or one stateful component and one-or-more stateless\ncomponents in the same file.\n\nStateless basically just means function components, including those created via\n`memo` and `forwardRef`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `true`, the rule will ignore stateless components and will allow you to have multiple\nstateless components in the same file. Or one stateful component and one-or-more stateless\ncomponents in the same file.\n\nStateless basically just means function components, including those created via\n`memo` and `forwardRef`."
        }
      },
      "additionalProperties": false
    },
    "NoNamespace": {
      "type": "object",
      "properties": {
        "allowDeclarations": {
          "description": "Whether to allow declare with custom TypeScript namespaces.\n\nExamples of **incorrect** code for this rule when `{ \"allowDeclarations\": true }`\n```typescript\nmodule foo {}\nnamespace foo {}\n```\n\nExamples of **correct** code for this rule when `{ \"allowDeclarations\": true }`\n```typescript\ndeclare module 'foo' {}\ndeclare module foo {}\ndeclare namespace foo {}\n\ndeclare global {\nnamespace foo {}\n}\n\ndeclare module foo {\nnamespace foo {}\n}\n```\n\nExamples of **incorrect** code for this rule when `{ \"allowDeclarations\": false }`\n```typescript\nmodule foo {}\nnamespace foo {}\ndeclare module foo {}\ndeclare namespace foo {}\n```\n\nExamples of **correct** code for this rule when `{ \"allowDeclarations\": false }`\n```typescript\ndeclare module 'foo' {}\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow declare with custom TypeScript namespaces.\n\nExamples of **incorrect** code for this rule when `{ \"allowDeclarations\": true }`\n```typescript\nmodule foo {}\nnamespace foo {}\n```\n\nExamples of **correct** code for this rule when `{ \"allowDeclarations\": true }`\n```typescript\ndeclare module 'foo' {}\ndeclare module foo {}\ndeclare namespace foo {}\n\ndeclare global {\nnamespace foo {}\n}\n\ndeclare module foo {\nnamespace foo {}\n}\n```\n\nExamples of **incorrect** code for this rule when `{ \"allowDeclarations\": false }`\n```typescript\nmodule foo {}\nnamespace foo {}\ndeclare module foo {}\ndeclare namespace foo {}\n```\n\nExamples of **correct** code for this rule when `{ \"allowDeclarations\": false }`\n```typescript\ndeclare module 'foo' {}\n```"
        },
        "allowDefinitionFiles": {
          "description": "Examples of **incorrect** code for this rule when `{ \"allowDefinitionFiles\": true }`\n```typescript\n// if outside a d.ts file\nmodule foo {}\nnamespace foo {}\n\n// if outside a d.ts file\nmodule foo {}\nnamespace foo {}\ndeclare module foo {}\ndeclare namespace foo {}\n```\n\nExamples of **correct** code for this rule when `{ \"allowDefinitionFiles\": true }`\n```typescript\ndeclare module 'foo' {}\n// anything inside a d.ts file\n```",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Examples of **incorrect** code for this rule when `{ \"allowDefinitionFiles\": true }`\n```typescript\n// if outside a d.ts file\nmodule foo {}\nnamespace foo {}\n\n// if outside a d.ts file\nmodule foo {}\nnamespace foo {}\ndeclare module foo {}\ndeclare namespace foo {}\n```\n\nExamples of **correct** code for this rule when `{ \"allowDefinitionFiles\": true }`\n```typescript\ndeclare module 'foo' {}\n// anything inside a d.ts file\n```"
        }
      },
      "additionalProperties": false
    },
    "NoNamespaceConfig": {
      "type": "object",
      "properties": {
        "ignore": {
          "description": "An array of glob strings for modules that should be ignored by the rule.\nFor example, `[\"*.json\"]` will ignore all JSON imports.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of glob strings for modules that should be ignored by the rule.\nFor example, `[\"*.json\"]` will ignore all JSON imports."
        }
      },
      "additionalProperties": false
    },
    "NoNodejsModulesConfig": {
      "type": "object",
      "required": [
        "allow"
      ],
      "properties": {
        "allow": {
          "description": "Array of names of allowed modules. Defaults to an empty array.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true,
          "markdownDescription": "Array of names of allowed modules. Defaults to an empty array."
        }
      },
      "additionalProperties": false
    },
    "NoNoninteractiveElementInteractionsConfig": {
      "type": "object",
      "properties": {
        "handlers": {
          "description": "An array of event handler names that should trigger this rule.",
          "default": [
            "onError",
            "onLoad",
            "onKeyPress",
            "onKeyDown",
            "onKeyUp",
            "onFocus",
            "onBlur",
            "onClick",
            "onContextMenu",
            "onDblClick",
            "onDoubleClick",
            "onDrag",
            "onDragEnd",
            "onDragEnter",
            "onDragExit",
            "onDragLeave",
            "onDragOver",
            "onDragStart",
            "onDrop",
            "onMouseDown",
            "onMouseEnter",
            "onMouseLeave",
            "onMouseMove",
            "onMouseOut",
            "onMouseOver",
            "onMouseUp"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of event handler names that should trigger this rule."
        }
      },
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "NoNoninteractiveElementToInteractiveRoleConfig": {
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "NoNoninteractiveTabindexConfig": {
      "type": "object",
      "properties": {
        "allowExpressionValues": {
          "description": "If `true`, allows tabIndex values to be expression values (e.g., variables, ternaries). If `false`, only string literal values are allowed.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "If `true`, allows tabIndex values to be expression values (e.g., variables, ternaries). If `false`, only string literal values are allowed."
        },
        "roles": {
          "description": "An array of ARIA roles that should be considered interactive.",
          "default": [
            "tabpanel"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of ARIA roles that should be considered interactive."
        },
        "tags": {
          "description": "An array of custom HTML elements that should be considered interactive.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of custom HTML elements that should be considered interactive."
        }
      },
      "additionalProperties": false
    },
    "NoNull": {
      "type": "object",
      "properties": {
        "checkArguments": {
          "description": "When set to `true`, disallow the use of `null` as a direct function call or constructor argument.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "When set to `true`, disallow the use of `null` as a direct function call or constructor argument."
        },
        "checkStrictEquality": {
          "description": "When set to `true`, the rule will also check strict equality/inequality comparisons (`===` and `!==`) against `null`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, the rule will also check strict equality/inequality comparisons (`===` and `!==`) against `null`."
        }
      },
      "additionalProperties": false
    },
    "NoOptionalChainingConfig": {
      "type": "object",
      "properties": {
        "message": {
          "description": "A custom help message to display when optional chaining is found.\nFor example, \"Our output target is ES2016, and optional chaining results in verbose\nhelpers and should be avoided.\"",
          "default": "",
          "type": "string",
          "markdownDescription": "A custom help message to display when optional chaining is found.\nFor example, \"Our output target is ES2016, and optional chaining results in verbose\nhelpers and should be avoided.\""
        }
      },
      "additionalProperties": false
    },
    "NoParamReassignConfig": {
      "type": "object",
      "properties": {
        "ignorePropertyModificationsFor": {
          "description": "An array of parameter names whose property modifications should be ignored.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true,
          "markdownDescription": "An array of parameter names whose property modifications should be ignored."
        },
        "ignorePropertyModificationsForRegex": {
          "description": "An array of regex patterns (as strings) for parameter names whose property modifications should be ignored.\nNote that this uses [Rust regex syntax](https://docs.rs/regex/latest/regex/) and so may not have all features\navailable to JavaScript regexes.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of regex patterns (as strings) for parameter names whose property modifications should be ignored.\nNote that this uses [Rust regex syntax](https://docs.rs/regex/latest/regex/) and so may not have all features\navailable to JavaScript regexes."
        },
        "props": {
          "description": "When true, also check for modifications to properties of parameters.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When true, also check for modifications to properties of parameters."
        }
      },
      "additionalProperties": false
    },
    "NoPlusplus": {
      "type": "object",
      "properties": {
        "allowForLoopAfterthoughts": {
          "description": "Whether to allow `++` and `--` in for loop afterthoughts.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow `++` and `--` in for loop afterthoughts."
        }
      },
      "additionalProperties": false
    },
    "NoProcessEnvConfig": {
      "type": "object",
      "properties": {
        "allowedVariables": {
          "description": "Variable names which are allowed to be accessed on `process.env`.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true,
          "markdownDescription": "Variable names which are allowed to be accessed on `process.env`."
        }
      },
      "additionalProperties": false
    },
    "NoPromiseExecutorReturnConfig": {
      "type": "object",
      "properties": {
        "allowVoid": {
          "description": "If `true`, allows returning `void` expressions (e.g., `return void resolve()`).",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If `true`, allows returning `void` expressions (e.g., `return void resolve()`)."
        }
      },
      "additionalProperties": false
    },
    "NoPromiseInCallback": {
      "$ref": "#/definitions/NoPromiseInCallbackConfig"
    },
    "NoPromiseInCallbackConfig": {
      "type": "object",
      "properties": {
        "exemptDeclarations": {
          "description": "Whether or not to exempt function declarations. Defaults to `false`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether or not to exempt function declarations. Defaults to `false`."
        }
      },
      "additionalProperties": false
    },
    "NoRedeclare": {
      "type": "object",
      "properties": {
        "builtinGlobals": {
          "description": "When set `true`, it flags redeclaring built-in globals (e.g., `let Object = 1;`).",
          "default": true,
          "type": "boolean",
          "markdownDescription": "When set `true`, it flags redeclaring built-in globals (e.g., `let Object = 1;`)."
        }
      },
      "additionalProperties": false
    },
    "NoRedundantRolesConfig": {
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "NoRequireImportsConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "These strings will be compiled into regular expressions with the u flag and be used to test against the imported path.\nA common use case is to allow importing `package.json`. This is because `package.json` commonly lives outside of the TS root directory,\nso statically importing it would lead to root directory conflicts, especially with `resolveJsonModule` enabled.\nYou can also use it to allow importing any JSON if your environment doesn't support JSON modules, or use it for other cases where `import` statements cannot work.\n\nWith `{ allow: ['/package\\\\.json$'] }`:\n\nExamples of **correct** code for this rule:\n```ts\nconsole.log(require('../package.json').version);\n```",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "These strings will be compiled into regular expressions with the u flag and be used to test against the imported path.\nA common use case is to allow importing `package.json`. This is because `package.json` commonly lives outside of the TS root directory,\nso statically importing it would lead to root directory conflicts, especially with `resolveJsonModule` enabled.\nYou can also use it to allow importing any JSON if your environment doesn't support JSON modules, or use it for other cases where `import` statements cannot work.\n\nWith `{ allow: ['/package\\\\.json$'] }`:\n\nExamples of **correct** code for this rule:\n```ts\nconsole.log(require('../package.json').version);\n```"
        },
        "allowAsImport": {
          "description": "When set to `true`, `import ... = require(...)` declarations won't be reported.\nThis is useful if you use certain module options that require strict CommonJS interop semantics.\n\nWhen set to `true`:\n\nExamples of **incorrect** code for this rule:\n```ts\nvar foo = require('foo');\nconst foo = require('foo');\nlet foo = require('foo');\n```\nExamples of **correct** code for this rule:\n```ts\nimport foo = require('foo');\nimport foo from 'foo';\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, `import ... = require(...)` declarations won't be reported.\nThis is useful if you use certain module options that require strict CommonJS interop semantics.\n\nWhen set to `true`:\n\nExamples of **incorrect** code for this rule:\n```ts\nvar foo = require('foo');\nconst foo = require('foo');\nlet foo = require('foo');\n```\nExamples of **correct** code for this rule:\n```ts\nimport foo = require('foo');\nimport foo from 'foo';\n```"
        }
      },
      "additionalProperties": false
    },
    "NoReservedComponentNames": {
      "type": "object",
      "properties": {
        "disallowVue3BuiltInComponents": {
          "description": "Disallow Vue 3 built-in component names (e.g. `Teleport`, `Suspense`).\nNote: this also catches Vue 2 built-ins because Vue 3's set includes them.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Disallow Vue 3 built-in component names (e.g. `Teleport`, `Suspense`).\nNote: this also catches Vue 2 built-ins because Vue 3's set includes them."
        },
        "disallowVueBuiltInComponents": {
          "description": "Disallow Vue 2 built-in component names (e.g. `Transition`, `KeepAlive`).",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Disallow Vue 2 built-in component names (e.g. `Transition`, `KeepAlive`)."
        },
        "htmlElementCaseSensitive": {
          "description": "Match HTML / SVG element names case-sensitively. When `false` (default),\nthe capitalized form of an HTML element (e.g. `Div`) is also reported.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Match HTML / SVG element names case-sensitively. When `false` (default),\nthe capitalized form of an HTML element (e.g. `Div`) is also reported."
        }
      },
      "additionalProperties": false
    },
    "NoReservedKeys": {
      "$ref": "#/definitions/NoReservedKeysConfig"
    },
    "NoReservedKeysConfig": {
      "type": "object",
      "properties": {
        "groups": {
          "description": "Extra component option groups to inspect, on top of the built-in\n`props` / `computed` / `data` / `asyncData` / `methods` / `setup`.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Extra component option groups to inspect, on top of the built-in\n`props` / `computed` / `data` / `asyncData` / `methods` / `setup`."
        },
        "reserved": {
          "description": "Extra reserved key names to disallow, on top of the built-in list.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Extra reserved key names to disallow, on top of the built-in list."
        }
      },
      "additionalProperties": false
    },
    "NoReservedProps": {
      "$ref": "#/definitions/NoReservedPropsConfig"
    },
    "NoReservedPropsConfig": {
      "type": "object",
      "properties": {
        "vueVersion": {
          "description": "Vue major version whose reserved attribute set is applied. Vue 2 reserves\nmore names (`is`, `slot`, `class`, `style`, ...) than Vue 3.",
          "default": 3,
          "type": "integer",
          "format": "uint8",
          "minimum": 0.0,
          "markdownDescription": "Vue major version whose reserved attribute set is applied. Vue 2 reserves\nmore names (`is`, `slot`, `class`, `style`, ...) than Vue 3."
        }
      },
      "additionalProperties": false
    },
    "NoRestSpreadPropertiesOptions": {
      "type": "object",
      "properties": {
        "objectRestMessage": {
          "description": "A message to display when object rest properties are found.",
          "default": "",
          "type": "string",
          "markdownDescription": "A message to display when object rest properties are found."
        },
        "objectSpreadMessage": {
          "description": "A message to display when object spread properties are found.",
          "default": "",
          "type": "string",
          "markdownDescription": "A message to display when object spread properties are found."
        }
      },
      "additionalProperties": false
    },
    "NoRestrictedExportsConfig": {
      "type": "object",
      "properties": {
        "restrictDefaultExports": {
          "description": "An object with boolean properties to restrict certain default export\ndeclarations. This option works only if the `restrictedNamedExports`\noption does not contain the `\"default\"` value.",
          "allOf": [
            {
              "$ref": "#/definitions/RestrictDefaultExports"
            }
          ],
          "markdownDescription": "An object with boolean properties to restrict certain default export\ndeclarations. This option works only if the `restrictedNamedExports`\noption does not contain the `\"default\"` value."
        },
        "restrictedNamedExports": {
          "description": "An array of strings, where each string is a name to be restricted.\n\nExample of **incorrect** code for `\"restrictedNamedExports\": [\"foo\"]`:\n\n```ts\nexport const foo = 1;\n```\n\nExample of **correct** code for `\"restrictedNamedExports\": [\"foo\"]`:\n\n```ts\nexport const bar = 1;\n```\n\nBy design, this option doesn't disallow export default declarations. If\nyou configure `default` as a restricted name, that restriction will apply\nonly to named export declarations.\n\nExample of **incorrect** code for `\"restrictedNamedExports\": [\"default\"]`:\n\n```ts\nfunction foo() {}\nexport { foo as default };\n\nexport { default } from \"some_module\";\n```",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true,
          "markdownDescription": "An array of strings, where each string is a name to be restricted.\n\nExample of **incorrect** code for `\"restrictedNamedExports\": [\"foo\"]`:\n\n```ts\nexport const foo = 1;\n```\n\nExample of **correct** code for `\"restrictedNamedExports\": [\"foo\"]`:\n\n```ts\nexport const bar = 1;\n```\n\nBy design, this option doesn't disallow export default declarations. If\nyou configure `default` as a restricted name, that restriction will apply\nonly to named export declarations.\n\nExample of **incorrect** code for `\"restrictedNamedExports\": [\"default\"]`:\n\n```ts\nfunction foo() {}\nexport { foo as default };\n\nexport { default } from \"some_module\";\n```"
        },
        "restrictedNamedExportsPattern": {
          "description": "A string representing a regular expression pattern. Named exports\nmatching this pattern will be restricted. This option does not apply to\ndefault named exports.\n\nExample of **incorrect** code for `\"restrictedNamedExportsPattern\": \"bar$\":\n\n```ts\nexport const foobar = 1;\n```\n\nExample of **correct** code for `\"restrictedNamedExportsPattern\": \"bar$\":\n\n```ts\nexport const foo = 1;\n```",
          "type": "string",
          "markdownDescription": "A string representing a regular expression pattern. Named exports\nmatching this pattern will be restricted. This option does not apply to\ndefault named exports.\n\nExample of **incorrect** code for `\"restrictedNamedExportsPattern\": \"bar$\":\n\n```ts\nexport const foobar = 1;\n```\n\nExample of **correct** code for `\"restrictedNamedExportsPattern\": \"bar$\":\n\n```ts\nexport const foo = 1;\n```"
        }
      },
      "additionalProperties": false
    },
    "NoRestrictedMatchersConfig": {
      "type": "object",
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      }
    },
    "NoRestrictedTestMethodsConfig": {
      "type": "object",
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      }
    },
    "NoRestrictedTypesConfig": {
      "type": "object",
      "properties": {
        "types": {
          "description": "A mapping of type names to ban configurations.",
          "default": {},
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/BanConfigValue"
          },
          "markdownDescription": "A mapping of type names to ban configurations."
        }
      },
      "additionalProperties": false
    },
    "NoReturnAssignMode": {
      "oneOf": [
        {
          "description": "Disallow all assignments in return statements.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Disallow all assignments in return statements."
        },
        {
          "description": "Allow assignments in return statements only if they are enclosed in parentheses.\nThis is the default mode.",
          "type": "string",
          "enum": [
            "except-parens"
          ],
          "markdownDescription": "Allow assignments in return statements only if they are enclosed in parentheses.\nThis is the default mode."
        }
      ]
    },
    "NoReturnWrap": {
      "type": "object",
      "properties": {
        "allowReject": {
          "description": "`allowReject` allows returning `Promise.reject` inside a promise handler.\n\nWith `allowReject` set to `true` the following are examples of correct code:\n\n```js\nmyPromise().then(\nfunction() {\nreturn Promise.reject(0)\n})\n```\n\n```js\nmyPromise().then().catch(() => Promise.reject(\"err\"))\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "`allowReject` allows returning `Promise.reject` inside a promise handler.\n\nWith `allowReject` set to `true` the following are examples of correct code:\n\n```js\nmyPromise().then(\nfunction() {\nreturn Promise.reject(0)\n})\n```\n\n```js\nmyPromise().then().catch(() => Promise.reject(\"err\"))\n```"
        }
      },
      "additionalProperties": false
    },
    "NoSelfAssign": {
      "type": "object",
      "properties": {
        "props": {
          "description": "The `props` option when set to `false`, disables the checking of properties.\n\nWith `props` set to `false` the following are examples of correct code:\n```javascript\nobj.a = obj.a;\nobj.a.b = obj.a.b;\nobj[\"a\"] = obj[\"a\"];\nobj[a] = obj[a];\n```",
          "default": true,
          "type": "boolean",
          "markdownDescription": "The `props` option when set to `false`, disables the checking of properties.\n\nWith `props` set to `false` the following are examples of correct code:\n```javascript\nobj.a = obj.a;\nobj.a.b = obj.a.b;\nobj[\"a\"] = obj[\"a\"];\nobj[a] = obj[a];\n```"
        }
      },
      "additionalProperties": false
    },
    "NoSequences": {
      "type": "object",
      "properties": {
        "allowInParentheses": {
          "description": "If this option is set to `false`, this rule disallows the comma operator\neven when the expression sequence is explicitly wrapped in parentheses.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "If this option is set to `false`, this rule disallows the comma operator\neven when the expression sequence is explicitly wrapped in parentheses."
        }
      },
      "additionalProperties": false
    },
    "NoShadowConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "List of variable names that are allowed to shadow.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of variable names that are allowed to shadow."
        },
        "builtinGlobals": {
          "description": "Whether to report shadowing of built-in global variables.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to report shadowing of built-in global variables."
        },
        "hoist": {
          "description": "Controls how hoisting is handled.",
          "default": "functions-and-types",
          "allOf": [
            {
              "$ref": "#/definitions/HoistOption"
            }
          ],
          "markdownDescription": "Controls how hoisting is handled."
        },
        "ignoreFunctionTypeParameterNameValueShadow": {
          "description": "If `true`, ignore when a function type parameter shadows a value.\nExample: `const T = 1; function foo<T>() {}`",
          "default": true,
          "type": "boolean",
          "markdownDescription": "If `true`, ignore when a function type parameter shadows a value.\nExample: `const T = 1; function foo<T>() {}`"
        },
        "ignoreOnInitialization": {
          "description": "Whether to ignore the variable initializers when the shadowed variable is presumably still uninitialized.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore the variable initializers when the shadowed variable is presumably still uninitialized."
        },
        "ignoreTypeValueShadow": {
          "description": "If `true`, ignore when a type and a value have the same name.\nThis is common in TypeScript: `type Foo = ...; const Foo = ...;`",
          "default": true,
          "type": "boolean",
          "markdownDescription": "If `true`, ignore when a type and a value have the same name.\nThis is common in TypeScript: `type Foo = ...; const Foo = ...;`"
        }
      },
      "additionalProperties": false
    },
    "NoShadowRestrictedNamesConfig": {
      "type": "object",
      "properties": {
        "reportGlobalThis": {
          "description": "If true, also report shadowing of `globalThis`.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "If true, also report shadowing of `globalThis`."
        }
      },
      "additionalProperties": false
    },
    "NoStandaloneExpectConfig": {
      "type": "object",
      "properties": {
        "additionalTestBlockFunctions": {
          "description": "An array of function names that should also be treated as test blocks.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of function names that should also be treated as test blocks."
        }
      },
      "additionalProperties": false
    },
    "NoStaticElementInteractionsConfig": {
      "type": "object",
      "properties": {
        "allowExpressionValues": {
          "description": "If `true`, role attribute values that are JSX expressions (e.g., `role={ROLE}`) are allowed.\nIf `false`, only string literal role values are permitted.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If `true`, role attribute values that are JSX expressions (e.g., `role={ROLE}`) are allowed.\nIf `false`, only string literal role values are permitted."
        },
        "handlers": {
          "description": "An array of event handler names that should trigger this rule (e.g., `onClick`, `onKeyDown`).",
          "default": null,
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of event handler names that should trigger this rule (e.g., `onClick`, `onKeyDown`)."
        }
      },
      "additionalProperties": false
    },
    "NoStringRefs": {
      "type": "object",
      "properties": {
        "noTemplateLiterals": {
          "description": "Disallow template literals in addition to string literals.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Disallow template literals in addition to string literals."
        }
      },
      "additionalProperties": false
    },
    "NoSyncConfig": {
      "type": "object",
      "properties": {
        "allowAtRootLevel": {
          "description": "Whether synchronous methods should be allowed at the top level of a file.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether synchronous methods should be allowed at the top level of a file."
        },
        "ignores": {
          "description": "Function names to ignore.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true,
          "markdownDescription": "Function names to ignore."
        }
      },
      "additionalProperties": false
    },
    "NoThisAliasConfig": {
      "type": "object",
      "properties": {
        "allowDestructuring": {
          "description": "Whether to allow destructuring of `this` to local variables.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow destructuring of `this` to local variables."
        },
        "allowedNames": {
          "description": "An array of variable names that are allowed to alias `this`.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true,
          "markdownDescription": "An array of variable names that are allowed to alias `this`."
        }
      },
      "additionalProperties": false
    },
    "NoTypeofUndefined": {
      "type": "object",
      "properties": {
        "checkGlobalVariables": {
          "description": "If set to `true`, also report `typeof x === \"undefined\"` when `x` may be a global\nvariable that is not declared (commonly checked via `typeof foo === \"undefined\"`).",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If set to `true`, also report `typeof x === \"undefined\"` when `x` may be a global\nvariable that is not declared (commonly checked via `typeof foo === \"undefined\"`)."
        }
      },
      "additionalProperties": false
    },
    "NoUnassignedImportConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "A list of glob patterns to allow unassigned imports for specific modules.\nFor example:\n`{ \"allow\": [\"**/*.css\"] }` will allow unassigned imports for any module ending with `.css`.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "A list of glob patterns to allow unassigned imports for specific modules.\nFor example:\n`{ \"allow\": [\"**/*.css\"] }` will allow unassigned imports for any module ending with `.css`."
        }
      },
      "additionalProperties": false
    },
    "NoUndef": {
      "type": "object",
      "properties": {
        "typeof": {
          "description": "When set to `true`, warns on undefined variables used in a `typeof` expression.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, warns on undefined variables used in a `typeof` expression."
        }
      },
      "additionalProperties": false
    },
    "NoUnderscoreDangle": {
      "$ref": "#/definitions/NoUnderscoreDangleConfig"
    },
    "NoUnderscoreDangleConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "An array of variable names that are allowed to have dangling underscores.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of variable names that are allowed to have dangling underscores."
        },
        "allowAfterSuper": {
          "description": "Whether to allow dangling underscores in members of the `super` object.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow dangling underscores in members of the `super` object."
        },
        "allowAfterThis": {
          "description": "Whether to allow dangling underscores in members of the `this` object.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow dangling underscores in members of the `this` object."
        },
        "allowAfterThisConstructor": {
          "description": "Whether to allow dangling underscores in members of the `this.constructor` object.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow dangling underscores in members of the `this.constructor` object."
        },
        "allowFunctionParams": {
          "description": "Whether to allow dangling underscores in function parameter names.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow dangling underscores in function parameter names."
        },
        "allowInArrayDestructuring": {
          "description": "Whether to allow dangling underscores in variable names assigned by array destructuring.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow dangling underscores in variable names assigned by array destructuring."
        },
        "allowInObjectDestructuring": {
          "description": "Whether to allow dangling underscores in variable names assigned by object destructuring.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow dangling underscores in variable names assigned by object destructuring."
        },
        "allowInUsingDeclarations": {
          "description": "Whether to allow dangling underscores in `using` and `await using` declarations.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow dangling underscores in `using` and `await using` declarations."
        },
        "enforceInClassFields": {
          "description": "Whether to enforce dangling underscores in class field names.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to enforce dangling underscores in class field names."
        },
        "enforceInMethodNames": {
          "description": "Whether to enforce dangling underscores in method names.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to enforce dangling underscores in method names."
        }
      },
      "additionalProperties": false
    },
    "NoUnknownPropertyConfig": {
      "type": "object",
      "properties": {
        "ignore": {
          "description": "List of properties to ignore.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true,
          "markdownDescription": "List of properties to ignore."
        },
        "requireDataLowercase": {
          "description": "Require `data-*` attributes to be lowercase, e.g. `data-foobar` instead of `data-fooBar`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Require `data-*` attributes to be lowercase, e.g. `data-foobar` instead of `data-fooBar`."
        }
      },
      "additionalProperties": false
    },
    "NoUnnecessaryBooleanLiteralCompareConfig": {
      "type": "object",
      "properties": {
        "allowComparingNullableBooleansToFalse": {
          "description": "Whether to allow comparing nullable boolean expressions to `false`.\nWhen false, `x === false` where x is `boolean | null` will be flagged.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow comparing nullable boolean expressions to `false`.\nWhen false, `x === false` where x is `boolean | null` will be flagged."
        },
        "allowComparingNullableBooleansToTrue": {
          "description": "Whether to allow comparing nullable boolean expressions to `true`.\nWhen false, `x === true` where x is `boolean | null` will be flagged.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow comparing nullable boolean expressions to `true`.\nWhen false, `x === true` where x is `boolean | null` will be flagged."
        }
      },
      "additionalProperties": false
    },
    "NoUnnecessaryConditionConfig": {
      "type": "object",
      "properties": {
        "allowConstantLoopConditions": {
          "description": "Whether to allow constant loop conditions.\n`true` is treated as `\"always\"`, `false` as `\"never\"`.",
          "default": "never",
          "allOf": [
            {
              "$ref": "#/definitions/AllowConstantLoopConditions"
            }
          ],
          "markdownDescription": "Whether to allow constant loop conditions.\n`true` is treated as `\"always\"`, `false` as `\"never\"`."
        },
        "checkTypePredicates": {
          "description": "Whether to check type predicate functions.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to check type predicate functions."
        }
      },
      "additionalProperties": false
    },
    "NoUnnecessaryTypeAssertionConfig": {
      "type": "object",
      "properties": {
        "checkLiteralConstAssertions": {
          "description": "Whether to check literal const assertions like `'foo' as const`.\nWhen `false` (default), const assertions on literal types are not flagged.\nWhen `true`, these will be reported as unnecessary since the type is already a literal.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to check literal const assertions like `'foo' as const`.\nWhen `false` (default), const assertions on literal types are not flagged.\nWhen `true`, these will be reported as unnecessary since the type is already a literal."
        },
        "typesToIgnore": {
          "description": "A list of type names to ignore when checking for unnecessary assertions.\nType assertions to these types will not be flagged even if they appear unnecessary.\nExample: `[\"Foo\", \"Bar\"]` to allow `x as Foo` or `x as Bar`.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "A list of type names to ignore when checking for unnecessary assertions.\nType assertions to these types will not be flagged even if they appear unnecessary.\nExample: `[\"Foo\", \"Bar\"]` to allow `x as Foo` or `x as Bar`."
        }
      },
      "additionalProperties": false
    },
    "NoUnneededTernary": {
      "type": "object",
      "properties": {
        "defaultAssignment": {
          "description": "Whether to allow the default assignment pattern `x ? x : y`.\n\nWhen set to `false`, the rule also flags cases like `x ? x : y` and suggests using\nthe logical OR form `x || y` instead. When `true` (default), such default assignments\nare allowed and not reported.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow the default assignment pattern `x ? x : y`.\n\nWhen set to `false`, the rule also flags cases like `x ? x : y` and suggests using\nthe logical OR form `x || y` instead. When `true` (default), such default assignments\nare allowed and not reported."
        }
      },
      "additionalProperties": false
    },
    "NoUnsafeConfig": {
      "type": "object",
      "properties": {
        "checkAliases": {
          "description": "Whether to check for the non-prefixed lifecycle methods.\nIf `true`, this means `componentWillMount`, `componentWillReceiveProps`,\nand `componentWillUpdate` will also be flagged, rather than just the\nUNSAFE_ versions. It is recommended to set this to `true` to fully\navoid unsafe lifecycle methods.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to check for the non-prefixed lifecycle methods.\nIf `true`, this means `componentWillMount`, `componentWillReceiveProps`,\nand `componentWillUpdate` will also be flagged, rather than just the\nUNSAFE_ versions. It is recommended to set this to `true` to fully\navoid unsafe lifecycle methods."
        }
      },
      "additionalProperties": false
    },
    "NoUnsafeMemberAccessConfig": {
      "type": "object",
      "properties": {
        "allowOptionalChaining": {
          "description": "Whether to allow `?.` optional chains on `any` values.\nWhen `true`, optional chaining on `any` values will not be flagged.\nDefault is `false`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow `?.` optional chains on `any` values.\nWhen `true`, optional chaining on `any` values will not be flagged.\nDefault is `false`."
        }
      },
      "additionalProperties": false
    },
    "NoUnsafeNegation": {
      "type": "object",
      "properties": {
        "enforceForOrderingRelations": {
          "description": "The `enforceForOrderingRelations` option determines whether negation is allowed\non the left-hand side of ordering relational operators (<, >, <=, >=).\n\nThe purpose is to avoid expressions such as `!a < b` (which is equivalent to `(a ? 0 : 1) < b`)\nwhen what is really intended is `!(a < b)`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "The `enforceForOrderingRelations` option determines whether negation is allowed\non the left-hand side of ordering relational operators (<, >, <=, >=).\n\nThe purpose is to avoid expressions such as `!a < b` (which is equivalent to `(a ? 0 : 1) < b`)\nwhen what is really intended is `!(a < b)`."
        }
      },
      "additionalProperties": false
    },
    "NoUnsafeOptionalChaining": {
      "type": "object",
      "properties": {
        "disallowArithmeticOperators": {
          "description": "Disallow arithmetic operations on optional chaining expressions.\nIf this is true, this rule warns arithmetic operations on optional chaining expressions, which possibly result in NaN.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Disallow arithmetic operations on optional chaining expressions.\nIf this is true, this rule warns arithmetic operations on optional chaining expressions, which possibly result in NaN."
        }
      },
      "additionalProperties": false
    },
    "NoUnstableNestedComponentsConfig": {
      "type": "object",
      "properties": {
        "allowAsProps": {
          "description": "Allow component definitions in props.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow component definitions in props."
        },
        "customValidators": {
          "description": "Optional custom propTypes validators accepted for eslint-plugin-react compatibility.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Optional custom propTypes validators accepted for eslint-plugin-react compatibility."
        },
        "propNamePattern": {
          "description": "Glob pattern for render-prop names that may receive inline component definitions.",
          "default": "render*",
          "type": "string",
          "markdownDescription": "Glob pattern for render-prop names that may receive inline component definitions."
        }
      },
      "additionalProperties": false
    },
    "NoUnusedExpressionsConfig": {
      "type": "object",
      "properties": {
        "allowShortCircuit": {
          "description": "When set to `true`, allows short circuit evaluations in expressions.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, allows short circuit evaluations in expressions."
        },
        "allowTaggedTemplates": {
          "description": "When set to `true`, allows tagged template literals in expressions.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, allows tagged template literals in expressions."
        },
        "allowTernary": {
          "description": "When set to `true`, allows ternary operators in expressions.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, allows ternary operators in expressions."
        },
        "enforceForJSX": {
          "description": "When set to `true`, enforces the rule for unused JSX expressions also.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, enforces the rule for unused JSX expressions also."
        },
        "ignoreDirectives": {
          "description": "When set to `true`, allows directive prologues.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, allows directive prologues."
        }
      },
      "additionalProperties": false
    },
    "NoUnusedVarsConfig": {
      "anyOf": [
        {
          "$ref": "#/definitions/VarsOption"
        },
        {
          "$ref": "#/definitions/NoUnusedVarsOptions"
        }
      ]
    },
    "NoUnusedVarsFixMode": {
      "oneOf": [
        {
          "description": "Disable auto-fixes for this symbol kind.",
          "type": "string",
          "enum": [
            "off"
          ],
          "markdownDescription": "Disable auto-fixes for this symbol kind."
        },
        {
          "description": "Emit suggestion-style fixes (current behavior).",
          "type": "string",
          "enum": [
            "suggestion"
          ],
          "markdownDescription": "Emit suggestion-style fixes (current behavior)."
        },
        {
          "description": "Emit fix-style fixes.",
          "type": "string",
          "enum": [
            "fix"
          ],
          "markdownDescription": "Emit fix-style fixes."
        },
        {
          "description": "Like `Fix`, but does not mark them as dangerous.\nOnly applicable for imports, unavailable for variables.",
          "type": "string",
          "enum": [
            "safe-fix"
          ],
          "markdownDescription": "Like `Fix`, but does not mark them as dangerous.\nOnly applicable for imports, unavailable for variables."
        }
      ]
    },
    "NoUnusedVarsFixOptions": {
      "description": "Fine-grained auto-fix controls for `no-unused-vars`.",
      "type": "object",
      "properties": {
        "imports": {
          "description": "Controls auto-fixes for unused imports.",
          "default": "suggestion",
          "allOf": [
            {
              "$ref": "#/definitions/NoUnusedVarsFixMode"
            }
          ],
          "markdownDescription": "Controls auto-fixes for unused imports."
        },
        "variables": {
          "description": "Controls auto-fixes for unused variables (including catch bindings).",
          "default": "suggestion",
          "allOf": [
            {
              "$ref": "#/definitions/NoUnusedVarsFixMode"
            }
          ],
          "markdownDescription": "Controls auto-fixes for unused variables (including catch bindings)."
        }
      },
      "additionalProperties": false,
      "markdownDescription": "Fine-grained auto-fix controls for `no-unused-vars`."
    },
    "NoUnusedVarsOptions": {
      "type": "object",
      "properties": {
        "args": {
          "description": "Controls how unused arguments are checked.",
          "default": "after-used",
          "allOf": [
            {
              "$ref": "#/definitions/ArgsOption"
            }
          ],
          "markdownDescription": "Controls how unused arguments are checked."
        },
        "argsIgnorePattern": {
          "description": "Specifies exceptions to this rule for unused arguments. Arguments whose\nnames match this pattern will be ignored.\n\nBy default, this pattern is `^_` unless options are configured with an\nobject. In this case it will default to [`None`]. Note that this\nbehavior deviates from both ESLint and TypeScript-ESLint, which never\nprovide a default pattern.\n\n#### Example\n\nExamples of **correct** code for this option when the pattern is `^_`:\n\n```javascript\nfunction foo(_a, b) {\nconsole.log(b);\n}\nfoo(1, 2);\n```",
          "allOf": [
            {
              "$ref": "#/definitions/IgnorePattern_for_String"
            }
          ],
          "markdownDescription": "Specifies exceptions to this rule for unused arguments. Arguments whose\nnames match this pattern will be ignored.\n\nBy default, this pattern is `^_` unless options are configured with an\nobject. In this case it will default to [`None`]. Note that this\nbehavior deviates from both ESLint and TypeScript-ESLint, which never\nprovide a default pattern.\n\n#### Example\n\nExamples of **correct** code for this option when the pattern is `^_`:\n\n```javascript\nfunction foo(_a, b) {\nconsole.log(b);\n}\nfoo(1, 2);\n```"
        },
        "caughtErrors": {
          "description": "Used for `catch` block validation.",
          "allOf": [
            {
              "$ref": "#/definitions/CaughtErrorsJson"
            }
          ],
          "markdownDescription": "Used for `catch` block validation."
        },
        "caughtErrorsIgnorePattern": {
          "description": "Specifies exceptions to this rule for errors caught within a `catch` block.\nVariables declared within a `catch` block whose names match this pattern\nwill be ignored.\n\n#### Example\n\nExamples of **correct** code when the pattern is `^ignore`:\n\n```javascript\ntry {\n// ...\n} catch (ignoreErr) {\nconsole.error(\"Error caught in catch block\");\n}\n```",
          "allOf": [
            {
              "$ref": "#/definitions/IgnorePattern_for_String"
            }
          ],
          "markdownDescription": "Specifies exceptions to this rule for errors caught within a `catch` block.\nVariables declared within a `catch` block whose names match this pattern\nwill be ignored.\n\n#### Example\n\nExamples of **correct** code when the pattern is `^ignore`:\n\n```javascript\ntry {\n// ...\n} catch (ignoreErr) {\nconsole.error(\"Error caught in catch block\");\n}\n```"
        },
        "destructuredArrayIgnorePattern": {
          "description": "This option specifies exceptions within destructuring patterns that will\nnot be checked for usage. Variables declared within array destructuring\nwhose names match this pattern will be ignored.\n\nBy default this pattern is unset.\n\n#### Example\n\nExamples of **correct** code for this option, when the pattern is `^_`:\n```javascript\nconst [a, _b, c] = [\"a\", \"b\", \"c\"];\nconsole.log(a + c);\n\nconst { x: [_a, foo] } = bar;\nconsole.log(foo);\n\nlet _m, n;\nfoo.forEach(item => {\n[_m, n] = item;\nconsole.log(n);\n});\n```",
          "allOf": [
            {
              "$ref": "#/definitions/IgnorePattern_for_String"
            }
          ],
          "markdownDescription": "This option specifies exceptions within destructuring patterns that will\nnot be checked for usage. Variables declared within array destructuring\nwhose names match this pattern will be ignored.\n\nBy default this pattern is unset.\n\n#### Example\n\nExamples of **correct** code for this option, when the pattern is `^_`:\n```javascript\nconst [a, _b, c] = [\"a\", \"b\", \"c\"];\nconsole.log(a + c);\n\nconst { x: [_a, foo] } = bar;\nconsole.log(foo);\n\nlet _m, n;\nfoo.forEach(item => {\n[_m, n] = item;\nconsole.log(n);\n});\n```"
        },
        "fix": {
          "description": "Controls which `no-unused-vars` auto-fixes are emitted.\n\nWhen omitted, both `imports` and `variables` default to `\"suggestion\"`,\npreserving the current behavior.\n\nNOTE: This option is experimental and may change based on feedback.",
          "default": {
            "imports": "suggestion",
            "variables": "suggestion"
          },
          "allOf": [
            {
              "$ref": "#/definitions/NoUnusedVarsFixOptions"
            }
          ],
          "markdownDescription": "Controls which `no-unused-vars` auto-fixes are emitted.\n\nWhen omitted, both `imports` and `variables` default to `\"suggestion\"`,\npreserving the current behavior.\n\nNOTE: This option is experimental and may change based on feedback."
        },
        "ignoreClassWithStaticInitBlock": {
          "description": "The `ignoreClassWithStaticInitBlock` option is a boolean. Static\ninitialization blocks allow you to initialize static variables and\nexecute code during the evaluation of a class definition, meaning\nthe static block code is executed without creating a new instance\nof the class. When set to `true`, this option ignores classes\ncontaining static initialization blocks.\n\n#### Example\n\nExamples of **incorrect** code for the `{ \"ignoreClassWithStaticInitBlock\": true }` option\n\n```javascript\n/* no-unused-vars: [\"error\", { \"ignoreClassWithStaticInitBlock\": true }]*/\n\nclass Foo {\nstatic myProperty = \"some string\";\nstatic mymethod() {\nreturn \"some string\";\n}\n}\n\nclass Bar {\nstatic {\nlet baz; // unused variable\n}\n}\n```\n\nExamples of **correct** code for the `{ \"ignoreClassWithStaticInitBlock\": true }` option\n\n```javascript\n/* no-unused-vars: [\"error\", { \"ignoreClassWithStaticInitBlock\": true }]*/\n\nclass Foo {\nstatic {\nlet bar = \"some string\";\n\nconsole.log(bar);\n}\n}\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "The `ignoreClassWithStaticInitBlock` option is a boolean. Static\ninitialization blocks allow you to initialize static variables and\nexecute code during the evaluation of a class definition, meaning\nthe static block code is executed without creating a new instance\nof the class. When set to `true`, this option ignores classes\ncontaining static initialization blocks.\n\n#### Example\n\nExamples of **incorrect** code for the `{ \"ignoreClassWithStaticInitBlock\": true }` option\n\n```javascript\n/* no-unused-vars: [\"error\", { \"ignoreClassWithStaticInitBlock\": true }]*/\n\nclass Foo {\nstatic myProperty = \"some string\";\nstatic mymethod() {\nreturn \"some string\";\n}\n}\n\nclass Bar {\nstatic {\nlet baz; // unused variable\n}\n}\n```\n\nExamples of **correct** code for the `{ \"ignoreClassWithStaticInitBlock\": true }` option\n\n```javascript\n/* no-unused-vars: [\"error\", { \"ignoreClassWithStaticInitBlock\": true }]*/\n\nclass Foo {\nstatic {\nlet bar = \"some string\";\n\nconsole.log(bar);\n}\n}\n```"
        },
        "ignoreRestSiblings": {
          "description": "Using a Rest property it is possible to \"omit\" properties from an\nobject, but by default the sibling properties are marked as \"unused\".\nWith this option enabled the rest property's siblings are ignored.\n\n\n#### Example\nExamples of **correct** code when this option is set to `true`:\n```js\n// 'foo' and 'bar' were ignored because they have a rest property sibling.\nvar { foo, ...coords } = data;\n\nvar bar;\n({ bar, ...coords } = data);\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Using a Rest property it is possible to \"omit\" properties from an\nobject, but by default the sibling properties are marked as \"unused\".\nWith this option enabled the rest property's siblings are ignored.\n\n\n#### Example\nExamples of **correct** code when this option is set to `true`:\n```js\n// 'foo' and 'bar' were ignored because they have a rest property sibling.\nvar { foo, ...coords } = data;\n\nvar bar;\n({ bar, ...coords } = data);\n```"
        },
        "ignoreUsingDeclarations": {
          "description": "When set to `true`, the rule will ignore variables declared with\n`using` or `await using` declarations, even if they are unused.\n\nThis is useful when working with resources that need to be disposed\nvia the explicit resource management proposal, where the primary\npurpose is the disposal side effect rather than using the resource.\n\n#### Example\n\nExamples of **correct** code for the `{ \"ignoreUsingDeclarations\": true }` option:\n\n```javascript\n/* no-unused-vars: [\"error\", { \"ignoreUsingDeclarations\": true }]*/\n\nusing resource = getResource();\nawait using anotherResource = getAnotherResource();\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, the rule will ignore variables declared with\n`using` or `await using` declarations, even if they are unused.\n\nThis is useful when working with resources that need to be disposed\nvia the explicit resource management proposal, where the primary\npurpose is the disposal side effect rather than using the resource.\n\n#### Example\n\nExamples of **correct** code for the `{ \"ignoreUsingDeclarations\": true }` option:\n\n```javascript\n/* no-unused-vars: [\"error\", { \"ignoreUsingDeclarations\": true }]*/\n\nusing resource = getResource();\nawait using anotherResource = getAnotherResource();\n```"
        },
        "reportUsedIgnorePattern": {
          "description": "The `reportUsedIgnorePattern` option is a boolean.\nUsing this option will report variables that match any of the valid\nignore pattern options (`varsIgnorePattern`, `argsIgnorePattern`,\n`caughtErrorsIgnorePattern`, or `destructuredArrayIgnorePattern`) if\nthey have been used.\n\n#### Example\n\nExamples of **incorrect** code for the `{ \"reportUsedIgnorePattern\": true }` option:\n\n```javascript\n/* no-unused-vars: [\"error\", { \"reportUsedIgnorePattern\": true, \"varsIgnorePattern\": \"[iI]gnored\" }]*/\n\nvar firstVarIgnored = 1;\nvar secondVar = 2;\nconsole.log(firstVarIgnored, secondVar);\n```\n\nExamples of **correct** code for the `{ \"reportUsedIgnorePattern\": true }` option:\n\n```javascript\n/* no-unused-vars: [\"error\", { \"reportUsedIgnorePattern\": true, \"varsIgnorePattern\": \"[iI]gnored\" }]*/\n\nvar firstVar = 1;\nvar secondVar = 2;\nconsole.log(firstVar, secondVar);\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "The `reportUsedIgnorePattern` option is a boolean.\nUsing this option will report variables that match any of the valid\nignore pattern options (`varsIgnorePattern`, `argsIgnorePattern`,\n`caughtErrorsIgnorePattern`, or `destructuredArrayIgnorePattern`) if\nthey have been used.\n\n#### Example\n\nExamples of **incorrect** code for the `{ \"reportUsedIgnorePattern\": true }` option:\n\n```javascript\n/* no-unused-vars: [\"error\", { \"reportUsedIgnorePattern\": true, \"varsIgnorePattern\": \"[iI]gnored\" }]*/\n\nvar firstVarIgnored = 1;\nvar secondVar = 2;\nconsole.log(firstVarIgnored, secondVar);\n```\n\nExamples of **correct** code for the `{ \"reportUsedIgnorePattern\": true }` option:\n\n```javascript\n/* no-unused-vars: [\"error\", { \"reportUsedIgnorePattern\": true, \"varsIgnorePattern\": \"[iI]gnored\" }]*/\n\nvar firstVar = 1;\nvar secondVar = 2;\nconsole.log(firstVar, secondVar);\n```"
        },
        "reportVarsOnlyUsedAsTypes": {
          "description": "The `reportVarsOnlyUsedAsTypes` option is a boolean.\n\nIf `true`, the rule will also report variables that are only used as types.\n\n#### Examples\n\nExamples of **incorrect** code for the `{ \"reportVarsOnlyUsedAsTypes\": true }` option:\n\n```javascript\n/*  no-unused-vars: [\"error\", { \"reportVarsOnlyUsedAsTypes\": true }] */\n\nconst myNumber: number = 4;\nexport type MyNumber = typeof myNumber\n```\n\nExamples of **correct** code for the `{ \"reportVarsOnlyUsedAsTypes\": true }` option:\n\n```javascript\nexport type MyNumber = number;\n```\n\nNote: even with `{ \"reportVarsOnlyUsedAsTypes\": false }`, cases where the value is\nonly used a type within itself will still be reported:\n```javascript\nfunction foo(): typeof foo {}\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "The `reportVarsOnlyUsedAsTypes` option is a boolean.\n\nIf `true`, the rule will also report variables that are only used as types.\n\n#### Examples\n\nExamples of **incorrect** code for the `{ \"reportVarsOnlyUsedAsTypes\": true }` option:\n\n```javascript\n/*  no-unused-vars: [\"error\", { \"reportVarsOnlyUsedAsTypes\": true }] */\n\nconst myNumber: number = 4;\nexport type MyNumber = typeof myNumber\n```\n\nExamples of **correct** code for the `{ \"reportVarsOnlyUsedAsTypes\": true }` option:\n\n```javascript\nexport type MyNumber = number;\n```\n\nNote: even with `{ \"reportVarsOnlyUsedAsTypes\": false }`, cases where the value is\nonly used a type within itself will still be reported:\n```javascript\nfunction foo(): typeof foo {}\n```"
        },
        "vars": {
          "description": "Controls how usage of a variable in the global scope is checked.",
          "default": "all",
          "allOf": [
            {
              "$ref": "#/definitions/VarsOption"
            }
          ],
          "markdownDescription": "Controls how usage of a variable in the global scope is checked."
        },
        "varsIgnorePattern": {
          "description": "Specifies exceptions to this rule for unused variables. Variables whose\nnames match this pattern will be ignored.\n\nBy default, this pattern is `^_` unless options are configured with an\nobject. In this case it will default to [`None`]. Note that this\nbehavior deviates from both ESLint and TypeScript-ESLint, which never\nprovide a default pattern.\n\n#### Example\n\nExamples of **correct** code for this option when the pattern is `^_`:\n```javascript\nvar _a = 10;\nvar b = 10;\nconsole.log(b);\n```",
          "allOf": [
            {
              "$ref": "#/definitions/IgnorePattern_for_String"
            }
          ],
          "markdownDescription": "Specifies exceptions to this rule for unused variables. Variables whose\nnames match this pattern will be ignored.\n\nBy default, this pattern is `^_` unless options are configured with an\nobject. In this case it will default to [`None`]. Note that this\nbehavior deviates from both ESLint and TypeScript-ESLint, which never\nprovide a default pattern.\n\n#### Example\n\nExamples of **correct** code for this option when the pattern is `^_`:\n```javascript\nvar _a = 10;\nvar b = 10;\nconsole.log(b);\n```"
        }
      },
      "additionalProperties": false
    },
    "NoUseBeforeDefineConfig": {
      "type": "object",
      "properties": {
        "allowNamedExports": {
          "description": "Allow named exports that appear before declaration.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow named exports that appear before declaration."
        },
        "classes": {
          "description": "Check class declarations.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Check class declarations."
        },
        "enums": {
          "description": "Check enum declarations.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Check enum declarations."
        },
        "functions": {
          "description": "Check function declarations.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Check function declarations."
        },
        "ignoreTypeReferences": {
          "description": "Ignore usages that are type-only references.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Ignore usages that are type-only references."
        },
        "typedefs": {
          "description": "Check type aliases, interfaces, and type parameters.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Check type aliases, interfaces, and type parameters."
        },
        "variables": {
          "description": "Check variable declarations.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Check variable declarations."
        }
      },
      "additionalProperties": false
    },
    "NoUseBeforeDefineConfigJson": {
      "anyOf": [
        {
          "$ref": "#/definitions/Nofunc"
        },
        {
          "$ref": "#/definitions/NoUseBeforeDefineConfig"
        }
      ]
    },
    "NoUselessComputedKey": {
      "type": "object",
      "properties": {
        "enforceForClassMembers": {
          "description": "The `enforceForClassMembers` option controls whether the rule applies to\nclass members (methods and properties).\n\nExamples of **correct** code for this rule with the `{ \"enforceForClassMembers\": false }` option:\n```js\nclass SomeClass {\n[\"foo\"] = \"bar\";\n[42] = \"baz\";\nget ['b']() {}\nset ['c'](value) {}\nstatic [\"foo\"] = \"bar\";\n}\n```",
          "default": true,
          "type": "boolean",
          "markdownDescription": "The `enforceForClassMembers` option controls whether the rule applies to\nclass members (methods and properties).\n\nExamples of **correct** code for this rule with the `{ \"enforceForClassMembers\": false }` option:\n```js\nclass SomeClass {\n[\"foo\"] = \"bar\";\n[42] = \"baz\";\nget ['b']() {}\nset ['c'](value) {}\nstatic [\"foo\"] = \"bar\";\n}\n```"
        }
      },
      "additionalProperties": false
    },
    "NoUselessEscapeConfig": {
      "type": "object",
      "properties": {
        "allowRegexCharacters": {
          "description": "An array of characters that are allowed to be escaped unnecessarily in regexes.\nFor example, setting this to `[\"#\"]` allows `\\#` in regexes.\n\nEach string in this array must be a single character.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 1,
            "minLength": 1
          },
          "markdownDescription": "An array of characters that are allowed to be escaped unnecessarily in regexes.\nFor example, setting this to `[\"#\"]` allows `\\#` in regexes.\n\nEach string in this array must be a single character."
        }
      },
      "additionalProperties": false
    },
    "NoUselessPromiseResolveRejectOptions": {
      "type": "object",
      "properties": {
        "allowReject": {
          "description": "If set to `true`, allows the use of `Promise.reject` in async functions and promise callbacks.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If set to `true`, allows the use of `Promise.reject` in async functions and promise callbacks."
        }
      },
      "additionalProperties": false
    },
    "NoUselessRenameConfig": {
      "type": "object",
      "properties": {
        "ignoreDestructuring": {
          "description": "When set to `true`, allows using the same name in destructurings.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, allows using the same name in destructurings."
        },
        "ignoreExport": {
          "description": "When set to `true`, allows renaming exports to the same name.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, allows renaming exports to the same name."
        },
        "ignoreImport": {
          "description": "When set to `true`, allows renaming imports to the same name.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, allows renaming imports to the same name."
        }
      },
      "additionalProperties": false
    },
    "NoUselessUndefined": {
      "type": "object",
      "properties": {
        "checkArguments": {
          "description": "Whether to check for useless `undefined` in function call arguments.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check for useless `undefined` in function call arguments."
        },
        "checkArrowFunctionBody": {
          "description": "Whether to check for useless `undefined` in arrow function bodies.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check for useless `undefined` in arrow function bodies."
        }
      },
      "additionalProperties": false
    },
    "NoVoid": {
      "type": "object",
      "properties": {
        "allowAsStatement": {
          "description": "If set to `true`, using `void` as a standalone statement is allowed.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If set to `true`, using `void` as a standalone statement is allowed."
        }
      },
      "additionalProperties": false
    },
    "NoWarningCommentsConfigJson": {
      "type": "object",
      "properties": {
        "decoration": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "location": {
          "$ref": "#/definitions/Location"
        },
        "terms": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "Nofunc": {
      "type": "string",
      "enum": [
        "nofunc"
      ]
    },
    "NonZero": {
      "oneOf": [
        {
          "description": "Enforces non-zero to be checked with `foo.length > 0`.",
          "type": "string",
          "enum": [
            "greater-than"
          ],
          "markdownDescription": "Enforces non-zero to be checked with `foo.length > 0`."
        },
        {
          "description": "Enforces non-zero to be checked with `foo.length !== 0`.",
          "type": "string",
          "enum": [
            "not-equal"
          ],
          "markdownDescription": "Enforces non-zero to be checked with `foo.length !== 0`."
        }
      ]
    },
    "NullType": {
      "oneOf": [
        {
          "description": "Always require triple-equals when comparing with null, `=== null`/`!== null`.\nThis is the default.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Always require triple-equals when comparing with null, `=== null`/`!== null`.\nThis is the default."
        },
        {
          "description": "Never require triple-equals when comparing with null, always use `== null`/`!= null`.",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Never require triple-equals when comparing with null, always use `== null`/`!= null`."
        },
        {
          "description": "Ignore null comparisons, allow either `== null`/`!= null` or `=== null`/`!== null`.",
          "type": "string",
          "enum": [
            "ignore"
          ],
          "markdownDescription": "Ignore null comparisons, allow either `== null`/`!= null` or `=== null`/`!== null`."
        }
      ]
    },
    "NumericBaseConfig": {
      "type": "object",
      "properties": {
        "groupLength": {
          "description": "The number of digits per group when inserting numeric separators.\nFor example, a `groupLength` of 3 formats `1234567` as `1_234_567`.",
          "default": 0,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "The number of digits per group when inserting numeric separators.\nFor example, a `groupLength` of 3 formats `1234567` as `1_234_567`."
        },
        "minimumDigits": {
          "description": "The minimum number of digits required before grouping is applied.\nValues with fewer digits than this threshold will not be grouped.",
          "default": 0,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "The minimum number of digits required before grouping is applied.\nValues with fewer digits than this threshold will not be grouped."
        },
        "onlyIfContainsSeparator": {
          "description": "Only enforce the rule when the numeric literal already contains a separator (`_`).\n\nWhen `true`, numbers without separators are left as-is; when `false` (default),\ngrouping will be enforced for eligible numbers even if they don't include separators yet.",
          "type": "boolean",
          "markdownDescription": "Only enforce the rule when the numeric literal already contains a separator (`_`).\n\nWhen `true`, numbers without separators are left as-is; when `false` (default),\ngrouping will be enforced for eligible numbers even if they don't include separators yet."
        }
      },
      "additionalProperties": false
    },
    "NumericNumberConfig": {
      "type": "object",
      "properties": {
        "fractionGroupLength": {
          "description": "The size a group of digits in the fractional part (after the decimal point) should be.",
          "default": 4294967295,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "The size a group of digits in the fractional part (after the decimal point) should be."
        },
        "groupLength": {
          "description": "The number of digits per group when inserting numeric separators.\nFor example, a `groupLength` of 3 formats `1234567` as `1_234_567`.",
          "default": 0,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "The number of digits per group when inserting numeric separators.\nFor example, a `groupLength` of 3 formats `1234567` as `1_234_567`."
        },
        "minimumDigits": {
          "description": "The minimum number of digits required before grouping is applied.\nValues with fewer digits than this threshold will not be grouped.",
          "default": 0,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "The minimum number of digits required before grouping is applied.\nValues with fewer digits than this threshold will not be grouped."
        },
        "onlyIfContainsSeparator": {
          "description": "Only enforce the rule when the numeric literal already contains a separator (`_`).\n\nWhen `true`, numbers without separators are left as-is; when `false` (default),\ngrouping will be enforced for eligible numbers even if they don't include separators yet.",
          "type": "boolean",
          "markdownDescription": "Only enforce the rule when the numeric literal already contains a separator (`_`).\n\nWhen `true`, numbers without separators are left as-is; when `false` (default),\ngrouping will be enforced for eligible numbers even if they don't include separators yet."
        }
      },
      "additionalProperties": false
    },
    "NumericSeparatorsStyleConfig": {
      "type": "object",
      "properties": {
        "binary": {
          "description": "Configuration for binary literals (e.g. `0b1010_0001` and bigint variants).\nControls how digits are grouped and when separators are applied.",
          "default": {
            "groupLength": 4,
            "minimumDigits": 0
          },
          "allOf": [
            {
              "$ref": "#/definitions/NumericBaseConfig"
            }
          ],
          "markdownDescription": "Configuration for binary literals (e.g. `0b1010_0001` and bigint variants).\nControls how digits are grouped and when separators are applied."
        },
        "hexadecimal": {
          "description": "Configuration for hexadecimal literals (e.g. `0xAB_CD`, `0Xab_cd`, and bigint variants).\nControls how digits are grouped and when separators are applied.",
          "default": {
            "groupLength": 2,
            "minimumDigits": 0
          },
          "allOf": [
            {
              "$ref": "#/definitions/NumericBaseConfig"
            }
          ],
          "markdownDescription": "Configuration for hexadecimal literals (e.g. `0xAB_CD`, `0Xab_cd`, and bigint variants).\nControls how digits are grouped and when separators are applied."
        },
        "number": {
          "description": "Configuration for decimal numbers (integers, fraction parts, and exponents).\nControls how digits are grouped and when separators are applied.",
          "allOf": [
            {
              "$ref": "#/definitions/NumericNumberConfig"
            }
          ],
          "markdownDescription": "Configuration for decimal numbers (integers, fraction parts, and exponents).\nControls how digits are grouped and when separators are applied."
        },
        "octal": {
          "description": "Configuration for octal literals (e.g. `0o1234_5670` and bigint variants).\nControls how digits are grouped and when separators are applied.",
          "default": {
            "groupLength": 4,
            "minimumDigits": 0
          },
          "allOf": [
            {
              "$ref": "#/definitions/NumericBaseConfig"
            }
          ],
          "markdownDescription": "Configuration for octal literals (e.g. `0o1234_5670` and bigint variants).\nControls how digits are grouped and when separators are applied."
        },
        "onlyIfContainsSeparator": {
          "description": "Only enforce the rule when the numeric literal already contains a separator (`_`).\n\nWhen `true`, numbers without separators are left as-is; when `false` (default),\ngrouping will be enforced for eligible numbers even if they don't include separators yet.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Only enforce the rule when the numeric literal already contains a separator (`_`).\n\nWhen `true`, numbers without separators are left as-is; when `false` (default),\ngrouping will be enforced for eligible numbers even if they don't include separators yet."
        }
      },
      "additionalProperties": false
    },
    "ObjectLiteralTypeAssertions": {
      "oneOf": [
        {
          "description": "Allow type assertions on object literals.\n\nExamples of **correct** code with this option:\n```ts\nconst x = { a: 1 } as Foo;\nconst x = {} as Foo<int>;\n```",
          "type": "string",
          "enum": [
            "allow"
          ],
          "markdownDescription": "Allow type assertions on object literals.\n\nExamples of **correct** code with this option:\n```ts\nconst x = { a: 1 } as Foo;\nconst x = {} as Foo<int>;\n```"
        },
        {
          "description": "Allow type assertions on object literals only when used as a function parameter,\n`throw` target, or default value.\n\nExamples of **incorrect** code with this option:\n```ts\nconst x = { a: 1 } as Foo;\nconst x = {} as Foo<int>;\n```\n\nExamples of **correct** code with this option:\n```ts\nprint({ a: 1 } as Foo);\nthrow { bar: 5 } as Foo;\nfunction f(x = {} as Foo) {}\n```",
          "type": "string",
          "enum": [
            "allow-as-parameter"
          ],
          "markdownDescription": "Allow type assertions on object literals only when used as a function parameter,\n`throw` target, or default value.\n\nExamples of **incorrect** code with this option:\n```ts\nconst x = { a: 1 } as Foo;\nconst x = {} as Foo<int>;\n```\n\nExamples of **correct** code with this option:\n```ts\nprint({ a: 1 } as Foo);\nthrow { bar: 5 } as Foo;\nfunction f(x = {} as Foo) {}\n```"
        },
        {
          "description": "Disallow type assertions on object literals entirely.\n\nExamples of **incorrect** code with this option:\n```ts\nconst x = { a: 1 } as Foo;\nprint({ a: 1 } as Foo);\n```\n\nExamples of **correct** code with this option:\n```ts\nconst x: Foo = { a: 1 };\nconst x = { a: 1 } satisfies Foo;\n```",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Disallow type assertions on object literals entirely.\n\nExamples of **incorrect** code with this option:\n```ts\nconst x = { a: 1 } as Foo;\nprint({ a: 1 } as Foo);\n```\n\nExamples of **correct** code with this option:\n```ts\nconst x: Foo = { a: 1 };\nconst x = { a: 1 } satisfies Foo;\n```"
        }
      ]
    },
    "ObjectShorthandOptions": {
      "type": "object",
      "properties": {
        "avoidExplicitReturnArrows": {
          "default": false,
          "type": "boolean"
        },
        "avoidQuotes": {
          "default": false,
          "type": "boolean"
        },
        "ignoreConstructors": {
          "default": false,
          "type": "boolean"
        },
        "methodsIgnorePattern": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "ObjectShorthandTupleConfig": {
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/ShorthandType"
        },
        {
          "$ref": "#/definitions/ObjectShorthandOptions"
        }
      ],
      "maxItems": 2,
      "minItems": 2
    },
    "OneOrMany_for_String": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "OnlyExportComponentsConfig": {
      "type": "object",
      "properties": {
        "allowConstantExport": {
          "description": "Allow exporting primitive constants (string/number/boolean/template literal)\nalongside component exports without triggering a violation. Recommended when your\nbundler’s Fast Refresh integration supports this (enabled by the plugin’s `vite`\npreset).\n\n```jsx\n// Allowed when allowConstantExport: true\nexport const VERSION = \"3\";\nexport const Foo = () => null;\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow exporting primitive constants (string/number/boolean/template literal)\nalongside component exports without triggering a violation. Recommended when your\nbundler’s Fast Refresh integration supports this (enabled by the plugin’s `vite`\npreset).\n\n```jsx\n// Allowed when allowConstantExport: true\nexport const VERSION = \"3\";\nexport const Foo = () => null;\n```"
        },
        "allowExportNames": {
          "description": "Treat specific named exports as HMR-safe (useful for frameworks that hot-replace\ncertain exports). For example, in Remix:\n`{ \"allowExportNames\": [\"meta\", \"links\", \"headers\", \"loader\", \"action\"] }`",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true,
          "markdownDescription": "Treat specific named exports as HMR-safe (useful for frameworks that hot-replace\ncertain exports). For example, in Remix:\n`{ \"allowExportNames\": [\"meta\", \"links\", \"headers\", \"loader\", \"action\"] }`"
        },
        "checkJS": {
          "description": "Check `.js` files that contain JSX (in addition to `.tsx`/`.jsx`). To reduce\nfalse positives, only files that import React are checked when this is enabled.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Check `.js` files that contain JSX (in addition to `.tsx`/`.jsx`). To reduce\nfalse positives, only files that import React are checked when this is enabled."
        },
        "customHOCs": {
          "description": "If you export components wrapped in custom higher-order components, list their\nidentifiers here to avoid false positives.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "If you export components wrapped in custom higher-order components, list their\nidentifiers here to avoid false positives."
        }
      },
      "additionalProperties": false
    },
    "OnlyThrowErrorConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "An array of type or value specifiers for additional types that are allowed to be thrown.\nUse this to allow throwing custom error types.",
          "default": [],
          "type": "array",
          "items": {
            "$ref": "#/definitions/TypeOrValueSpecifier"
          },
          "markdownDescription": "An array of type or value specifiers for additional types that are allowed to be thrown.\nUse this to allow throwing custom error types."
        },
        "allowRethrowing": {
          "description": "Whether to allow rethrowing caught values that are not Error objects.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow rethrowing caught values that are not Error objects."
        },
        "allowThrowingAny": {
          "description": "Whether to allow throwing values typed as `any`.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow throwing values typed as `any`."
        },
        "allowThrowingUnknown": {
          "description": "Whether to allow throwing values typed as `unknown`.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow throwing values typed as `unknown`."
        }
      },
      "additionalProperties": false
    },
    "Options": {
      "type": "object",
      "properties": {
        "ignoreProps": {
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "OptionsJsonEnum": {
      "anyOf": [
        {
          "$ref": "#/definitions/CommentConfigJson"
        },
        {
          "type": "object",
          "properties": {
            "block": {
              "$ref": "#/definitions/CommentConfigJson"
            },
            "line": {
              "$ref": "#/definitions/CommentConfigJson"
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "Override": {
      "type": "object",
      "properties": {
        "namedExports": {
          "default": null,
          "allOf": [
            {
              "$ref": "#/definitions/NamedExports"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "OxlintCategories": {
      "title": "Rule Categories",
      "description": "Configure an entire category of rules all at once.\n\nRules enabled or disabled this way will be overwritten by individual rules in the `rules` field.\n\nExample\n```json\n{\n    \"$schema\": \"./node_modules/oxlint/configuration_schema.json\",\n    \"categories\": {\n        \"correctness\": \"warn\"\n    },\n    \"rules\": {\n        \"eslint/no-unused-vars\": \"error\"\n    }\n}\n```",
      "examples": [
        {
          "correctness": "warn"
        }
      ],
      "type": "object",
      "properties": {
        "correctness": {
          "$ref": "#/definitions/AllowWarnDeny"
        },
        "nursery": {
          "$ref": "#/definitions/AllowWarnDeny"
        },
        "pedantic": {
          "$ref": "#/definitions/AllowWarnDeny"
        },
        "perf": {
          "$ref": "#/definitions/AllowWarnDeny"
        },
        "restriction": {
          "$ref": "#/definitions/AllowWarnDeny"
        },
        "style": {
          "$ref": "#/definitions/AllowWarnDeny"
        },
        "suspicious": {
          "$ref": "#/definitions/AllowWarnDeny"
        }
      },
      "additionalProperties": false,
      "markdownDescription": "Configure an entire category of rules all at once.\n\nRules enabled or disabled this way will be overwritten by individual rules in the `rules` field.\n\nExample\n```json\n{\n    \"$schema\": \"./node_modules/oxlint/configuration_schema.json\",\n    \"categories\": {\n        \"correctness\": \"warn\"\n    },\n    \"rules\": {\n        \"eslint/no-unused-vars\": \"error\"\n    }\n}\n```"
    },
    "OxlintEnv": {
      "description": "Predefine global variables.\n\nEnvironments specify what global variables are predefined.\nAvailable environments:\n- amd - require() and define() globals.\n- applescript - AppleScript globals.\n- astro - Astro globals.\n- atomtest - Atom test globals.\n- audioworklet - AudioWorklet globals.\n- browser - browser globals.\n- builtin - Latest ECMAScript globals, equivalent to es2026.\n- commonjs - CommonJS globals and scoping.\n- embertest - Ember test globals.\n- es2015 - ECMAScript 2015 globals.\n- es2016 - ECMAScript 2016 globals.\n- es2017 - ECMAScript 2017 globals.\n- es2018 - ECMAScript 2018 globals.\n- es2019 - ECMAScript 2019 globals.\n- es2020 - ECMAScript 2020 globals.\n- es2021 - ECMAScript 2021 globals.\n- es2022 - ECMAScript 2022 globals.\n- es2023 - ECMAScript 2023 globals.\n- es2024 - ECMAScript 2024 globals.\n- es2025 - ECMAScript 2025 globals.\n- es2026 - ECMAScript 2026 globals.\n- es6 - ECMAScript 6 globals except modules.\n- greasemonkey - GreaseMonkey globals.\n- jasmine - Jasmine globals.\n- jest - Jest globals.\n- jquery - jQuery globals.\n- meteor - Meteor globals.\n- mocha - Mocha globals.\n- mongo - MongoDB globals.\n- nashorn - Java 8 Nashorn globals.\n- node - Node.js globals and scoping.\n- phantomjs - PhantomJS globals.\n- prototypejs - Prototype.js globals.\n- protractor - Protractor globals.\n- qunit - QUnit globals.\n- serviceworker - Service Worker globals.\n- shared-node-browser - Node.js and Browser common globals.\n- shelljs - ShellJS globals.\n- svelte - Svelte globals.\n- vitest - Vitest globals.\n- vue - Vue globals.\n- webextensions - WebExtensions globals.\n- worker - Web Workers globals.",
      "type": "object",
      "additionalProperties": {
        "type": "boolean"
      },
      "markdownDescription": "Predefine global variables.\n\nEnvironments specify what global variables are predefined.\nAvailable environments:\n- amd - require() and define() globals.\n- applescript - AppleScript globals.\n- astro - Astro globals.\n- atomtest - Atom test globals.\n- audioworklet - AudioWorklet globals.\n- browser - browser globals.\n- builtin - Latest ECMAScript globals, equivalent to es2026.\n- commonjs - CommonJS globals and scoping.\n- embertest - Ember test globals.\n- es2015 - ECMAScript 2015 globals.\n- es2016 - ECMAScript 2016 globals.\n- es2017 - ECMAScript 2017 globals.\n- es2018 - ECMAScript 2018 globals.\n- es2019 - ECMAScript 2019 globals.\n- es2020 - ECMAScript 2020 globals.\n- es2021 - ECMAScript 2021 globals.\n- es2022 - ECMAScript 2022 globals.\n- es2023 - ECMAScript 2023 globals.\n- es2024 - ECMAScript 2024 globals.\n- es2025 - ECMAScript 2025 globals.\n- es2026 - ECMAScript 2026 globals.\n- es6 - ECMAScript 6 globals except modules.\n- greasemonkey - GreaseMonkey globals.\n- jasmine - Jasmine globals.\n- jest - Jest globals.\n- jquery - jQuery globals.\n- meteor - Meteor globals.\n- mocha - Mocha globals.\n- mongo - MongoDB globals.\n- nashorn - Java 8 Nashorn globals.\n- node - Node.js globals and scoping.\n- phantomjs - PhantomJS globals.\n- prototypejs - Prototype.js globals.\n- protractor - Protractor globals.\n- qunit - QUnit globals.\n- serviceworker - Service Worker globals.\n- shared-node-browser - Node.js and Browser common globals.\n- shelljs - ShellJS globals.\n- svelte - Svelte globals.\n- vitest - Vitest globals.\n- vue - Vue globals.\n- webextensions - WebExtensions globals.\n- worker - Web Workers globals."
    },
    "OxlintGlobals": {
      "description": "Add or remove global variables.\n\nFor each global variable, set the corresponding value equal to `\"writable\"`\nto allow the variable to be overwritten or `\"readonly\"` to disallow overwriting.\n\nGlobals can be disabled by setting their value to `\"off\"`. For example, in\nan environment where most Es2015 globals are available but `Promise` is unavailable,\nyou might use this config:\n\n```json\n\n{\n\"$schema\": \"./node_modules/oxlint/configuration_schema.json\",\n\"env\": {\n\"es6\": true\n},\n\"globals\": {\n\"Promise\": \"off\"\n}\n}\n\n```\n\nYou may also use `\"readable\"` or `false` to represent `\"readonly\"`, and\n`\"writeable\"` or `true` to represent `\"writable\"`.",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/GlobalValue"
      },
      "markdownDescription": "Add or remove global variables.\n\nFor each global variable, set the corresponding value equal to `\"writable\"`\nto allow the variable to be overwritten or `\"readonly\"` to disallow overwriting.\n\nGlobals can be disabled by setting their value to `\"off\"`. For example, in\nan environment where most Es2015 globals are available but `Promise` is unavailable,\nyou might use this config:\n\n```json\n\n{\n\"$schema\": \"./node_modules/oxlint/configuration_schema.json\",\n\"env\": {\n\"es6\": true\n},\n\"globals\": {\n\"Promise\": \"off\"\n}\n}\n\n```\n\nYou may also use `\"readable\"` or `false` to represent `\"readonly\"`, and\n`\"writeable\"` or `true` to represent `\"writable\"`."
    },
    "OxlintOptions": {
      "description": "Options for the linter.",
      "type": "object",
      "properties": {
        "denyWarnings": {
          "description": "Ensure warnings produce a non-zero exit code.\n\nEquivalent to passing `--deny-warnings` on the CLI.",
          "type": "boolean",
          "markdownDescription": "Ensure warnings produce a non-zero exit code.\n\nEquivalent to passing `--deny-warnings` on the CLI."
        },
        "maxWarnings": {
          "description": "Specify a warning threshold. Exits with an error status if warnings exceed this value.\n\nEquivalent to passing `--max-warnings` on the CLI.",
          "type": "integer",
          "format": "uint",
          "minimum": 0.0,
          "markdownDescription": "Specify a warning threshold. Exits with an error status if warnings exceed this value.\n\nEquivalent to passing `--max-warnings` on the CLI."
        },
        "reportUnusedDisableDirectives": {
          "description": "Report unused disable directives (e.g. `// oxlint-disable-line` or `// eslint-disable-line`).\n\nEquivalent to passing `--report-unused-disable-directives-severity` on the CLI.\nCLI flags take precedence over this value when both are set.\nOnly supported in the root configuration file.",
          "allOf": [
            {
              "$ref": "#/definitions/AllowWarnDeny"
            }
          ],
          "markdownDescription": "Report unused disable directives (e.g. `// oxlint-disable-line` or `// eslint-disable-line`).\n\nEquivalent to passing `--report-unused-disable-directives-severity` on the CLI.\nCLI flags take precedence over this value when both are set.\nOnly supported in the root configuration file."
        },
        "respectEslintDisableDirectives": {
          "description": "Whether oxlint should respect `eslint-disable*` and `eslint-enable*`\ndirectives in addition to its native `oxlint-*` directives.\n\nDefaults to `true`.\nOnly supported in the root configuration file.",
          "type": "boolean",
          "markdownDescription": "Whether oxlint should respect `eslint-disable*` and `eslint-enable*`\ndirectives in addition to its native `oxlint-*` directives.\n\nDefaults to `true`.\nOnly supported in the root configuration file."
        },
        "typeAware": {
          "description": "Enable rules that require type information.\n\nEquivalent to passing `--type-aware` on the CLI.\n\nNote that this requires the `oxlint-tsgolint` package to be installed.",
          "type": "boolean",
          "markdownDescription": "Enable rules that require type information.\n\nEquivalent to passing `--type-aware` on the CLI.\n\nNote that this requires the `oxlint-tsgolint` package to be installed."
        },
        "typeCheck": {
          "description": "Enable experimental type checking (includes TypeScript compiler diagnostics).\n\nEquivalent to passing `--type-check` on the CLI.\n\nNote that this requires the `oxlint-tsgolint` package to be installed.",
          "type": "boolean",
          "markdownDescription": "Enable experimental type checking (includes TypeScript compiler diagnostics).\n\nEquivalent to passing `--type-check` on the CLI.\n\nNote that this requires the `oxlint-tsgolint` package to be installed."
        }
      },
      "additionalProperties": false,
      "markdownDescription": "Options for the linter."
    },
    "OxlintOverride": {
      "type": "object",
      "required": [
        "files"
      ],
      "properties": {
        "env": {
          "description": "Environments enable and disable collections of global variables.",
          "allOf": [
            {
              "$ref": "#/definitions/OxlintEnv"
            }
          ],
          "markdownDescription": "Environments enable and disable collections of global variables."
        },
        "excludeFiles": {
          "description": "A list of glob patterns to exclude from this override.\n\nFiles matching these patterns are not globally ignored; this override\nsimply does not apply to them.\n\n## Example\n`[ \"*.generated.ts\", \"fixtures/**\" ]`",
          "allOf": [
            {
              "$ref": "#/definitions/GlobSet"
            }
          ],
          "markdownDescription": "A list of glob patterns to exclude from this override.\n\nFiles matching these patterns are not globally ignored; this override\nsimply does not apply to them.\n\n## Example\n`[ \"*.generated.ts\", \"fixtures/**\" ]`"
        },
        "files": {
          "description": "A list of glob patterns to override.\n\n## Example\n`[ \"*.test.ts\", \"*.spec.ts\" ]`",
          "allOf": [
            {
              "$ref": "#/definitions/GlobSet"
            }
          ],
          "markdownDescription": "A list of glob patterns to override.\n\n## Example\n`[ \"*.test.ts\", \"*.spec.ts\" ]`"
        },
        "globals": {
          "description": "Enabled or disabled specific global variables.",
          "allOf": [
            {
              "$ref": "#/definitions/OxlintGlobals"
            }
          ],
          "markdownDescription": "Enabled or disabled specific global variables."
        },
        "jsPlugins": {
          "description": "JS plugins for this override, allows usage of ESLint plugins with Oxlint.\n\nRead more about JS plugins in\n[the docs](https://oxc.rs/docs/guide/usage/linter/js-plugins.html).\n\nNote: JS plugins are in alpha and not subject to semver.",
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ExternalPluginEntry"
              },
              "uniqueItems": true
            }
          ],
          "markdownDescription": "JS plugins for this override, allows usage of ESLint plugins with Oxlint.\n\nRead more about JS plugins in\n[the docs](https://oxc.rs/docs/guide/usage/linter/js-plugins.html).\n\nNote: JS plugins are in alpha and not subject to semver."
        },
        "plugins": {
          "description": "Optionally change what plugins are enabled for this override. When\nomitted, the base config's plugins are used.",
          "default": null,
          "allOf": [
            {
              "$ref": "#/definitions/LintPlugins"
            }
          ],
          "markdownDescription": "Optionally change what plugins are enabled for this override. When\nomitted, the base config's plugins are used."
        },
        "rules": {
          "default": {},
          "allOf": [
            {
              "$ref": "#/definitions/OxlintRules"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "OxlintOverrides": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/OxlintOverride"
      }
    },
    "OxlintRules": {
      "$ref": "#/definitions/DummyRuleMap"
    },
    "OxlintSettings": {
      "title": "Oxlint Plugin Settings",
      "description": "Configure the behavior of linter plugins.\n\nHere's an example if you're using Next.js in a monorepo:\n\n```json\n{\n\"settings\": {\n\"next\": {\n\"rootDir\": \"apps/dashboard/\"\n},\n\"react\": {\n\"linkComponents\": [\n{ \"name\": \"Link\", \"linkAttribute\": \"to\" }\n]\n},\n\"jsx-a11y\": {\n\"components\": {\n\"Link\": \"a\",\n\"Button\": \"button\"\n}\n}\n}\n}\n```",
      "type": "object",
      "properties": {
        "jest": {
          "default": {
            "version": null
          },
          "allOf": [
            {
              "$ref": "#/definitions/JestPluginSettings"
            }
          ]
        },
        "jsdoc": {
          "default": {
            "ignorePrivate": false,
            "ignoreInternal": false,
            "ignoreReplacesDocs": true,
            "overrideReplacesDocs": true,
            "augmentsExtendsReplacesDocs": false,
            "implementsReplacesDocs": false,
            "exemptDestructuredRootsFromChecks": false,
            "tagNamePreference": {}
          },
          "allOf": [
            {
              "$ref": "#/definitions/JSDocPluginSettings"
            }
          ]
        },
        "jsx-a11y": {
          "default": {
            "polymorphicPropName": null,
            "components": {},
            "attributes": {}
          },
          "allOf": [
            {
              "$ref": "#/definitions/JSXA11yPluginSettings"
            }
          ]
        },
        "next": {
          "default": {
            "rootDir": []
          },
          "allOf": [
            {
              "$ref": "#/definitions/NextPluginSettings"
            }
          ]
        },
        "react": {
          "default": {
            "formComponents": [],
            "linkComponents": [],
            "version": null,
            "componentWrapperFunctions": []
          },
          "allOf": [
            {
              "$ref": "#/definitions/ReactPluginSettings"
            }
          ]
        },
        "vitest": {
          "default": {
            "typecheck": false
          },
          "allOf": [
            {
              "$ref": "#/definitions/VitestPluginSettings"
            }
          ]
        }
      },
      "markdownDescription": "Configure the behavior of linter plugins.\n\nHere's an example if you're using Next.js in a monorepo:\n\n```json\n{\n\"settings\": {\n\"next\": {\n\"rootDir\": \"apps/dashboard/\"\n},\n\"react\": {\n\"linkComponents\": [\n{ \"name\": \"Link\", \"linkAttribute\": \"to\" }\n]\n},\n\"jsx-a11y\": {\n\"components\": {\n\"Link\": \"a\",\n\"Button\": \"button\"\n}\n}\n}\n}\n```"
    },
    "PackageFrom": {
      "type": "string",
      "enum": [
        "package"
      ]
    },
    "PackageSpecifier": {
      "description": "Describes specific types or values imported from packages.",
      "type": "object",
      "required": [
        "from",
        "name",
        "package"
      ],
      "properties": {
        "from": {
          "description": "Must be \"package\"",
          "allOf": [
            {
              "$ref": "#/definitions/PackageFrom"
            }
          ],
          "markdownDescription": "Must be \"package\""
        },
        "name": {
          "description": "The name(s) of the type or value to match",
          "allOf": [
            {
              "$ref": "#/definitions/NameSpecifier"
            }
          ],
          "markdownDescription": "The name(s) of the type or value to match"
        },
        "package": {
          "description": "The package name to match",
          "type": "string",
          "markdownDescription": "The package name to match"
        }
      },
      "additionalProperties": false,
      "markdownDescription": "Describes specific types or values imported from packages."
    },
    "PairOrder": {
      "oneOf": [
        {
          "description": "Accessors can be in any order. This is the default.",
          "type": "string",
          "enum": [
            "anyOrder"
          ],
          "markdownDescription": "Accessors can be in any order. This is the default."
        },
        {
          "description": "Getters must come before setters.",
          "type": "string",
          "enum": [
            "getBeforeSet"
          ],
          "markdownDescription": "Getters must come before setters."
        },
        {
          "description": "Setters must come before getters.",
          "type": "string",
          "enum": [
            "setBeforeGet"
          ],
          "markdownDescription": "Setters must come before getters."
        }
      ]
    },
    "ParamNamesConfig": {
      "type": "object",
      "properties": {
        "rejectPattern": {
          "description": "Regex pattern used to validate the `reject` parameter name. If provided, this pattern\nis used instead of the default `^_?reject$` check.",
          "type": "string",
          "markdownDescription": "Regex pattern used to validate the `reject` parameter name. If provided, this pattern\nis used instead of the default `^_?reject$` check."
        },
        "resolvePattern": {
          "description": "Regex pattern used to validate the `resolve` parameter name. If provided, this pattern\nis used instead of the default `^_?resolve$` check.",
          "type": "string",
          "markdownDescription": "Regex pattern used to validate the `resolve` parameter name. If provided, this pattern\nis used instead of the default `^_?resolve$` check."
        }
      },
      "additionalProperties": false
    },
    "ParameterPropertiesConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "Modifiers that are allowed to be used with parameter properties or class properties, depending on the `prefer` option.",
          "default": [],
          "type": "array",
          "items": {
            "$ref": "#/definitions/Modifier"
          },
          "markdownDescription": "Modifiers that are allowed to be used with parameter properties or class properties, depending on the `prefer` option."
        },
        "prefer": {
          "description": "Whether to prefer parameter properties or class properties.",
          "default": "class-property",
          "allOf": [
            {
              "$ref": "#/definitions/Prefer2"
            }
          ],
          "markdownDescription": "Whether to prefer parameter properties or class properties."
        }
      },
      "additionalProperties": false
    },
    "PathGroupAction": {
      "description": "Action to take for path group overrides.\n\nDetermines how import extensions are validated for matching bespoke import specifiers.",
      "oneOf": [
        {
          "description": "Enforce extension validation for matching imports (require extensions based on config).",
          "type": "string",
          "enum": [
            "enforce"
          ],
          "markdownDescription": "Enforce extension validation for matching imports (require extensions based on config)."
        },
        {
          "description": "Ignore matching imports entirely (skip all extension validation).",
          "type": "string",
          "enum": [
            "ignore"
          ],
          "markdownDescription": "Ignore matching imports entirely (skip all extension validation)."
        }
      ],
      "markdownDescription": "Action to take for path group overrides.\n\nDetermines how import extensions are validated for matching bespoke import specifiers."
    },
    "PathGroupOverrideConfig": {
      "type": "object",
      "required": [
        "action",
        "pattern"
      ],
      "properties": {
        "action": {
          "description": "Action to take when pattern matches.",
          "allOf": [
            {
              "$ref": "#/definitions/PathGroupAction"
            }
          ],
          "markdownDescription": "Action to take when pattern matches."
        },
        "pattern": {
          "description": "Glob pattern to match import specifiers.",
          "type": "string",
          "markdownDescription": "Glob pattern to match import specifiers."
        }
      },
      "additionalProperties": false
    },
    "PathOption": {
      "oneOf": [
        {
          "description": "Allow triple-slash `path` references.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Allow triple-slash `path` references."
        },
        {
          "description": "Disallow triple-slash `path` references.",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Disallow triple-slash `path` references."
        }
      ]
    },
    "Prefer": {
      "oneOf": [
        {
          "description": "Enforces that you always use `import type Foo from '...'`, except when referenced by decorator metadata.",
          "type": "string",
          "enum": [
            "type-imports"
          ],
          "markdownDescription": "Enforces that you always use `import type Foo from '...'`, except when referenced by decorator metadata."
        },
        {
          "description": "Will enforce that you always use `import Foo from '...'`",
          "type": "string",
          "enum": [
            "no-type-imports"
          ],
          "markdownDescription": "Will enforce that you always use `import Foo from '...'`"
        }
      ]
    },
    "Prefer2": {
      "type": "string",
      "enum": [
        "class-property",
        "parameter-property"
      ]
    },
    "PreferArrowCallback": {
      "$ref": "#/definitions/PreferArrowCallbackConfig"
    },
    "PreferArrowCallbackConfig": {
      "type": "object",
      "properties": {
        "allowNamedFunctions": {
          "description": "If this option is set to `true`, named function expressions are allowed.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If this option is set to `true`, named function expressions are allowed."
        },
        "allowUnboundThis": {
          "description": "If this option is set to `false`, function expressions that reference `this` are reported even when they are not bound to a `this` value.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "If this option is set to `false`, function expressions that reference `this` are reported even when they are not bound to a `this` value."
        }
      },
      "additionalProperties": false
    },
    "PreferAtConfig": {
      "type": "object",
      "properties": {
        "checkAllIndexAccess": {
          "description": "Check all index access, not just special patterns like `array.length - 1`.\nWhen enabled, `array[0]`, `array[1]`, etc. will also be flagged.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Check all index access, not just special patterns like `array.length - 1`.\nWhen enabled, `array[0]`, `array[1]`, etc. will also be flagged."
        },
        "getLastElementFunctions": {
          "description": "List of function names to treat as \"get last element\" functions.\nThese functions will be checked for `.at(-1)` usage.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of function names to treat as \"get last element\" functions.\nThese functions will be checked for `.at(-1)` usage."
        }
      },
      "additionalProperties": false
    },
    "PreferAwaitToThenConfig": {
      "type": "object",
      "properties": {
        "strict": {
          "description": "If true, enforces the rule even after an `await` or `yield` expression.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If true, enforces the rule even after an `await` or `yield` expression."
        }
      },
      "additionalProperties": false
    },
    "PreferConst": {
      "$ref": "#/definitions/PreferConstConfig"
    },
    "PreferConstConfig": {
      "type": "object",
      "properties": {
        "destructuring": {
          "description": "Configures how destructuring assignments are handled.",
          "default": "any",
          "allOf": [
            {
              "$ref": "#/definitions/Destructuring"
            }
          ],
          "markdownDescription": "Configures how destructuring assignments are handled."
        },
        "ignoreReadBeforeAssign": {
          "description": "If `true`, the rule will not report variables that are read before their initial assignment.\nThis is mainly useful for preventing conflicts with the `typescript/no-use-before-define` rule.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If `true`, the rule will not report variables that are read before their initial assignment.\nThis is mainly useful for preventing conflicts with the `typescript/no-use-before-define` rule."
        }
      },
      "additionalProperties": false
    },
    "PreferDefaultExport": {
      "type": "object",
      "properties": {
        "target": {
          "description": "Configuration option to specify the target type for preferring default exports.",
          "default": "single",
          "allOf": [
            {
              "$ref": "#/definitions/Target"
            }
          ],
          "markdownDescription": "Configuration option to specify the target type for preferring default exports."
        }
      },
      "additionalProperties": false
    },
    "PreferDestructuringAssignmentConfig": {
      "type": "object",
      "properties": {
        "AssignmentExpression": {
          "$ref": "#/definitions/PreferDestructuringTargetOption"
        },
        "VariableDeclarator": {
          "$ref": "#/definitions/PreferDestructuringTargetOption"
        }
      },
      "additionalProperties": false
    },
    "PreferDestructuringConfig": {
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/PreferDestructuringOption"
        },
        {
          "$ref": "#/definitions/PreferDestructuringRenamedPropertiesConfig"
        }
      ],
      "maxItems": 2,
      "minItems": 2
    },
    "PreferDestructuringOption": {
      "anyOf": [
        {
          "$ref": "#/definitions/PreferDestructuringTargetOption"
        },
        {
          "$ref": "#/definitions/PreferDestructuringAssignmentConfig"
        }
      ]
    },
    "PreferDestructuringRenamedPropertiesConfig": {
      "type": "object",
      "properties": {
        "enforceForRenamedProperties": {
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "PreferDestructuringTargetOption": {
      "type": "object",
      "properties": {
        "array": {
          "type": "boolean"
        },
        "object": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "PreferEndingWithAnExpectConfig": {
      "type": "object",
      "properties": {
        "additionalTestBlockFunctions": {
          "description": "An array of function names that should also be treated as test blocks.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of function names that should also be treated as test blocks."
        },
        "assertFunctionNames": {
          "description": "A list of function names that should be treated as assertion functions.",
          "default": [
            "expect"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "A list of function names that should be treated as assertion functions."
        }
      },
      "additionalProperties": false
    },
    "PreferExpectAssertionsConfig": {
      "type": "object",
      "properties": {
        "onlyFunctionsWithAsyncKeyword": {
          "default": false,
          "type": "boolean"
        },
        "onlyFunctionsWithExpectInCallback": {
          "default": false,
          "type": "boolean"
        },
        "onlyFunctionsWithExpectInLoop": {
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "PreferExportFrom": {
      "type": "object",
      "properties": {
        "checkUsedVariables": {
          "description": "When false, if any import binding is used somewhere other than a re-export, all variables in the import declaration are ignored.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "When false, if any import binding is used somewhere other than a re-export, all variables in the import declaration are ignored."
        }
      },
      "additionalProperties": false
    },
    "PreferFunctionComponent": {
      "type": "object",
      "properties": {
        "allowErrorBoundary": {
          "description": "If `true`, error boundary classes (those implementing `componentDidCatch`\nor `static getDerivedStateFromError`) are allowed as class components.\n\nThis is because these classes are not easily converted to function components,\nand so they are exempted from this rule by default.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "If `true`, error boundary classes (those implementing `componentDidCatch`\nor `static getDerivedStateFromError`) are allowed as class components.\n\nThis is because these classes are not easily converted to function components,\nand so they are exempted from this rule by default."
        },
        "allowJsxUtilityClass": {
          "description": "If `true`, classes that contain JSX but do not extend `Component` or\n`PureComponent` are allowed.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If `true`, classes that contain JSX but do not extend `Component` or\n`PureComponent` are allowed."
        }
      },
      "additionalProperties": false
    },
    "PreferGenericType": {
      "oneOf": [
        {
          "description": "Type arguments that only appear on the type annotation are disallowed.",
          "type": "string",
          "enum": [
            "constructor"
          ],
          "markdownDescription": "Type arguments that only appear on the type annotation are disallowed."
        },
        {
          "description": "Type arguments that only appear on the constructor are disallowed.",
          "type": "string",
          "enum": [
            "type-annotation"
          ],
          "markdownDescription": "Type arguments that only appear on the constructor are disallowed."
        }
      ]
    },
    "PreferImportInMockConfig": {
      "type": "object",
      "required": [
        "fixable"
      ],
      "properties": {
        "fixable": {
          "description": "Whether the rule should generate fixes or not.",
          "type": "boolean",
          "markdownDescription": "Whether the rule should generate fixes or not."
        }
      },
      "additionalProperties": false
    },
    "PreferImportingJestGlobalsConfig": {
      "type": "object",
      "properties": {
        "types": {
          "description": "Jest function types to enforce importing for.",
          "default": [
            "hook",
            "describe",
            "test",
            "expect",
            "jest",
            "unknown"
          ],
          "type": "array",
          "items": {
            "$ref": "#/definitions/JestFnType"
          },
          "markdownDescription": "Jest function types to enforce importing for."
        }
      },
      "additionalProperties": false
    },
    "PreferLiteralEnumMember": {
      "type": "object",
      "properties": {
        "allowBitwiseExpressions": {
          "description": "When set to `true`, allows bitwise expressions in enum member initializers.\nThis includes bitwise NOT (`~`), AND (`&`), OR (`|`), XOR (`^`), and shift operators (`<<`, `>>`, `>>>`).",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, allows bitwise expressions in enum member initializers.\nThis includes bitwise NOT (`~`), AND (`&`), OR (`|`), XOR (`^`), and shift operators (`<<`, `>>`, `>>>`)."
        }
      },
      "additionalProperties": false
    },
    "PreferNullishCoalescingConfig": {
      "type": "object",
      "properties": {
        "ignoreBooleanCoercion": {
          "description": "Whether to ignore arguments to the `Boolean` constructor.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore arguments to the `Boolean` constructor."
        },
        "ignoreConditionalTests": {
          "description": "Whether to ignore cases that are located within a conditional test.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to ignore cases that are located within a conditional test."
        },
        "ignoreIfStatements": {
          "description": "Whether to ignore any if statements that could be simplified by using\nthe nullish coalescing operator.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore any if statements that could be simplified by using\nthe nullish coalescing operator."
        },
        "ignoreMixedLogicalExpressions": {
          "description": "Whether to ignore any logical or expressions that are part of a mixed\nlogical expression (with `&&`).",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore any logical or expressions that are part of a mixed\nlogical expression (with `&&`)."
        },
        "ignorePrimitives": {
          "description": "Whether to ignore all (`true`) or some (an object with properties) primitive types.",
          "default": false,
          "allOf": [
            {
              "$ref": "#/definitions/IgnorePrimitives"
            }
          ],
          "markdownDescription": "Whether to ignore all (`true`) or some (an object with properties) primitive types."
        },
        "ignoreTernaryTests": {
          "description": "Whether to ignore any ternary expressions that could be simplified by\nusing the nullish coalescing operator.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore any ternary expressions that could be simplified by\nusing the nullish coalescing operator."
        }
      },
      "additionalProperties": false
    },
    "PreferNumberPropertiesConfig": {
      "type": "object",
      "properties": {
        "checkInfinity": {
          "description": "If set to `true`, checks for usage of `Infinity` and `-Infinity` as global variables.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If set to `true`, checks for usage of `Infinity` and `-Infinity` as global variables."
        },
        "checkNaN": {
          "description": "If set to `true`, checks for usage of `NaN` as a global variable.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "If set to `true`, checks for usage of `NaN` as a global variable."
        }
      },
      "additionalProperties": false
    },
    "PreferObjectFromEntriesConfig": {
      "type": "object",
      "properties": {
        "functions": {
          "description": "Additional functions to treat as equivalents to `Object.fromEntries`.",
          "default": [
            "_.fromPairs",
            "lodash.fromPairs"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Additional functions to treat as equivalents to `Object.fromEntries`."
        }
      },
      "additionalProperties": false
    },
    "PreferOptionalChainConfig": {
      "type": "object",
      "properties": {
        "allowPotentiallyUnsafeFixesThatModifyTheReturnTypeIKnowWhatImDoing": {
          "description": "Allow autofixers that will change the return type of the expression.\nThis option is considered unsafe as it may break the build.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow autofixers that will change the return type of the expression.\nThis option is considered unsafe as it may break the build."
        },
        "checkAny": {
          "description": "Check operands that are typed as `any` when inspecting \"loose boolean\" operands.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Check operands that are typed as `any` when inspecting \"loose boolean\" operands."
        },
        "checkBigInt": {
          "description": "Check operands that are typed as `bigint` when inspecting \"loose boolean\" operands.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Check operands that are typed as `bigint` when inspecting \"loose boolean\" operands."
        },
        "checkBoolean": {
          "description": "Check operands that are typed as `boolean` when inspecting \"loose boolean\" operands.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Check operands that are typed as `boolean` when inspecting \"loose boolean\" operands."
        },
        "checkNumber": {
          "description": "Check operands that are typed as `number` when inspecting \"loose boolean\" operands.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Check operands that are typed as `number` when inspecting \"loose boolean\" operands."
        },
        "checkString": {
          "description": "Check operands that are typed as `string` when inspecting \"loose boolean\" operands.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Check operands that are typed as `string` when inspecting \"loose boolean\" operands."
        },
        "checkUnknown": {
          "description": "Check operands that are typed as `unknown` when inspecting \"loose boolean\" operands.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Check operands that are typed as `unknown` when inspecting \"loose boolean\" operands."
        },
        "requireNullish": {
          "description": "Skip operands that are not typed with `null` and/or `undefined` when inspecting\n\"loose boolean\" operands.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Skip operands that are not typed with `null` and/or `undefined` when inspecting\n\"loose boolean\" operands."
        }
      },
      "additionalProperties": false
    },
    "PreferPromiseRejectErrors": {
      "type": "object",
      "properties": {
        "allowEmptyReject": {
          "description": "Whether to allow calls to `Promise.reject()` with no arguments.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow calls to `Promise.reject()` with no arguments."
        }
      },
      "additionalProperties": false
    },
    "PreferPromiseRejectErrorsConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "An array of type or value specifiers for additional types that are allowed\nas Promise rejection reasons.",
          "default": [],
          "type": "array",
          "items": {
            "$ref": "#/definitions/TypeOrValueSpecifier"
          },
          "markdownDescription": "An array of type or value specifiers for additional types that are allowed\nas Promise rejection reasons."
        },
        "allowEmptyReject": {
          "description": "Whether to allow calling `Promise.reject()` with no arguments.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow calling `Promise.reject()` with no arguments."
        },
        "allowThrowingAny": {
          "description": "Whether to allow rejecting Promises with values typed as `any`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow rejecting Promises with values typed as `any`."
        },
        "allowThrowingUnknown": {
          "description": "Whether to allow rejecting Promises with values typed as `unknown`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow rejecting Promises with values typed as `unknown`."
        }
      },
      "additionalProperties": false
    },
    "PreferReadonlyConfig": {
      "type": "object",
      "properties": {
        "onlyInlineLambdas": {
          "description": "Restrict checks to members immediately initialized with inline lambda values.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Restrict checks to members immediately initialized with inline lambda values."
        }
      },
      "additionalProperties": false
    },
    "PreferReadonlyParameterTypesConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "Type/value specifiers that should be exempt from this rule.",
          "default": [],
          "type": "array",
          "items": {
            "$ref": "#/definitions/TypeOrValueSpecifier"
          },
          "markdownDescription": "Type/value specifiers that should be exempt from this rule."
        },
        "checkParameterProperties": {
          "description": "Whether to check constructor parameter properties.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check constructor parameter properties."
        },
        "ignoreInferredTypes": {
          "description": "Whether to ignore parameters without explicit type annotations.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore parameters without explicit type annotations."
        },
        "treatMethodsAsReadonly": {
          "description": "Whether mutable methods should be treated as readonly members.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether mutable methods should be treated as readonly members."
        }
      },
      "additionalProperties": false
    },
    "PreferRegexLiterals": {
      "$ref": "#/definitions/PreferRegexLiteralsConfig"
    },
    "PreferRegexLiteralsConfig": {
      "type": "object",
      "properties": {
        "disallowRedundantWrapping": {
          "description": "By default, this rule doesn’t check when a regex literal is unnecessarily wrapped in a `RegExp` constructor call.\nWhen the option `disallowRedundantWrapping` is set to `true`, the rule will also disallow such unnecessary patterns.\n\nExamples of **incorrect** code for `{ \"disallowRedundantWrapping\": true }`:\n```js\nnew RegExp(/abc/);\nnew RegExp(/abc/, 'u');\n```\n\nExamples of **correct** code for `{ \"disallowRedundantWrapping\": true }`:\n```js\n/abc/;\n/abc/u;\nnew RegExp(/abc/, flags);\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "By default, this rule doesn’t check when a regex literal is unnecessarily wrapped in a `RegExp` constructor call.\nWhen the option `disallowRedundantWrapping` is set to `true`, the rule will also disallow such unnecessary patterns.\n\nExamples of **incorrect** code for `{ \"disallowRedundantWrapping\": true }`:\n```js\nnew RegExp(/abc/);\nnew RegExp(/abc/, 'u');\n```\n\nExamples of **correct** code for `{ \"disallowRedundantWrapping\": true }`:\n```js\n/abc/;\n/abc/u;\nnew RegExp(/abc/, flags);\n```"
        }
      },
      "additionalProperties": false
    },
    "PreferSingleCallConfig": {
      "type": "object",
      "properties": {
        "ignore": {
          "description": "Methods to ignore.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Methods to ignore."
        }
      },
      "additionalProperties": false
    },
    "PreferStringStartsEndsWithConfig": {
      "type": "object",
      "properties": {
        "allowSingleElementEquality": {
          "description": "Whether equality checks against the first/last character are allowed.",
          "default": "never",
          "allOf": [
            {
              "$ref": "#/definitions/AllowSingleElementEquality"
            }
          ],
          "markdownDescription": "Whether equality checks against the first/last character are allowed."
        }
      },
      "additionalProperties": false
    },
    "PreferStructuredCloneConfig": {
      "type": "object",
      "properties": {
        "functions": {
          "description": "List of functions that are allowed to be used for deep cloning instead of structuredClone.",
          "default": [
            "cloneDeep",
            "utils.clone"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of functions that are allowed to be used for deep cloning instead of structuredClone."
        }
      },
      "additionalProperties": false
    },
    "PreferTernaryOption": {
      "oneOf": [
        {
          "description": "Always enforce ternary usage when the branches can be safely merged.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Always enforce ternary usage when the branches can be safely merged."
        },
        {
          "description": "Only enforce ternary usage when the condition and both branches are single-line.",
          "type": "string",
          "enum": [
            "only-single-line"
          ],
          "markdownDescription": "Only enforce ternary usage when the condition and both branches are single-line."
        }
      ]
    },
    "PreserveCaughtErrorOptions": {
      "type": "object",
      "properties": {
        "requireCatchParameter": {
          "description": "When set to `true`, requires that catch clauses always have a parameter.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set to `true`, requires that catch clauses always have a parameter."
        }
      },
      "additionalProperties": false
    },
    "PromiseFunctionAsyncConfig": {
      "type": "object",
      "properties": {
        "allowAny": {
          "description": "Whether to allow functions returning `any` type without requiring `async`.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow functions returning `any` type without requiring `async`."
        },
        "allowedPromiseNames": {
          "description": "A list of Promise type names that are allowed without requiring `async`.\nExample: `[\"SpecialPromise\"]` to allow functions returning `SpecialPromise` without `async`.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "A list of Promise type names that are allowed without requiring `async`.\nExample: `[\"SpecialPromise\"]` to allow functions returning `SpecialPromise` without `async`."
        },
        "checkArrowFunctions": {
          "description": "Whether to check arrow functions for missing `async` keyword.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check arrow functions for missing `async` keyword."
        },
        "checkFunctionDeclarations": {
          "description": "Whether to check function declarations for missing `async` keyword.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check function declarations for missing `async` keyword."
        },
        "checkFunctionExpressions": {
          "description": "Whether to check function expressions for missing `async` keyword.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check function expressions for missing `async` keyword."
        },
        "checkMethodDeclarations": {
          "description": "Whether to check method declarations for missing `async` keyword.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check method declarations for missing `async` keyword."
        }
      },
      "additionalProperties": false
    },
    "PropWithOptions": {
      "description": "A prop with optional `disallowedFor` DOM node list and custom `message`.",
      "type": "object",
      "required": [
        "propName"
      ],
      "properties": {
        "disallowedFor": {
          "description": "A list of DOM element names (e.g. `[\"div\", \"span\"]`) on which this\nprop is forbidden. If empty or omitted, the prop is forbidden on all\nDOM elements.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "A list of DOM element names (e.g. `[\"div\", \"span\"]`) on which this\nprop is forbidden. If empty or omitted, the prop is forbidden on all\nDOM elements."
        },
        "message": {
          "description": "A custom message to display when this prop is used.",
          "type": "string",
          "markdownDescription": "A custom message to display when this prop is used."
        },
        "propName": {
          "description": "The name of the prop to forbid.",
          "type": "string",
          "markdownDescription": "The name of the prop to forbid."
        }
      },
      "additionalProperties": false,
      "markdownDescription": "A prop with optional `disallowedFor` DOM node list and custom `message`."
    },
    "PropertyDetails": {
      "type": "object",
      "properties": {
        "allowObjects": {
          "description": "Objects where property access should be allowed. This must be used with `property` and\ncannot be used with `object`.",
          "default": null,
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Objects where property access should be allowed. This must be used with `property` and\ncannot be used with `object`."
        },
        "allowProperties": {
          "description": "Properties where property access should be allowed. This must be used with `object` and\ncannot be used with `property`.",
          "default": null,
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Properties where property access should be allowed. This must be used with `object` and\ncannot be used with `property`."
        },
        "message": {
          "description": "A custom message to display.",
          "default": null,
          "type": "string",
          "markdownDescription": "A custom message to display."
        },
        "object": {
          "description": "The object on which the property is being accessed.",
          "default": null,
          "type": "string",
          "markdownDescription": "The object on which the property is being accessed."
        },
        "property": {
          "description": "The property being accessed. If `object` is not specified, this applies to the named\nproperty on all objects.",
          "default": null,
          "type": "string",
          "markdownDescription": "The property being accessed. If `object` is not specified, this applies to the named\nproperty on all objects."
        }
      },
      "additionalProperties": false
    },
    "PropertyDetailsList": {
      "additionalItems": {
        "$ref": "#/definitions/PropertyDetails"
      }
    },
    "RadixType": {
      "oneOf": [
        {
          "description": "Always require the radix parameter when using `parseInt()`.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Always require the radix parameter when using `parseInt()`."
        },
        {
          "description": "Only require the radix parameter when necessary.",
          "type": "string",
          "enum": [
            "as-needed"
          ],
          "markdownDescription": "Only require the radix parameter when necessary."
        }
      ]
    },
    "ReactCompilerConfig": {
      "type": "object",
      "properties": {
        "reportAllBailouts": {
          "description": "Also report compiler bail-outs — places where React Compiler skipped a\ncomponent or hook (for example because of unsupported syntax) without\nfinding a rule violation. These do not indicate incorrect code, only\ncode that the compiler declined to optimize.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Also report compiler bail-outs — places where React Compiler skipped a\ncomponent or hook (for example because of unsupported syntax) without\nfinding a rule violation. These do not indicate incorrect code, only\ncode that the compiler declined to optimize."
        }
      },
      "additionalProperties": false
    },
    "ReactPerfConfig": {
      "type": "object",
      "properties": {
        "nativeAllowList": {
          "description": "Controls whether native elements (lowercase-first-letter tags such as `div`)\nare ignored by the rule. Set to `\"all\"` to ignore every attribute on native\nelements, or to an array of attribute names to ignore only those attributes\non native elements.",
          "allOf": [
            {
              "$ref": "#/definitions/NativeAllowList"
            }
          ],
          "markdownDescription": "Controls whether native elements (lowercase-first-letter tags such as `div`)\nare ignored by the rule. Set to `\"all\"` to ignore every attribute on native\nelements, or to an array of attribute names to ignore only those attributes\non native elements."
        }
      },
      "additionalProperties": false
    },
    "ReactPluginSettings": {
      "description": "Configure React plugin rules.\n\nDerived from [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react#configuration-legacy-eslintrc-)",
      "type": "object",
      "properties": {
        "componentWrapperFunctions": {
          "description": "Functions that wrap React components and should be treated as HOCs.\n\nExample:\n\n```jsonc\n{\n\"settings\": {\n\"react\": {\n\"componentWrapperFunctions\": [\"observer\", \"withRouter\"]\n}\n}\n}\n```",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Functions that wrap React components and should be treated as HOCs.\n\nExample:\n\n```jsonc\n{\n\"settings\": {\n\"react\": {\n\"componentWrapperFunctions\": [\"observer\", \"withRouter\"]\n}\n}\n}\n```"
        },
        "formComponents": {
          "description": "Components used as alternatives to `<form>` for forms, such as `<Formik>`.\n\nExample:\n\n```jsonc\n{\n\"settings\": {\n\"react\": {\n\"formComponents\": [\n\"CustomForm\",\n// OtherForm is considered a form component and has an endpoint attribute\n{ \"name\": \"OtherForm\", \"formAttribute\": \"endpoint\" },\n// allows specifying multiple properties if necessary\n{ \"name\": \"Form\", \"formAttribute\": [\"registerEndpoint\", \"loginEndpoint\"] }\n]\n}\n}\n}\n```",
          "default": [],
          "type": "array",
          "items": {
            "$ref": "#/definitions/CustomComponent"
          },
          "markdownDescription": "Components used as alternatives to `<form>` for forms, such as `<Formik>`.\n\nExample:\n\n```jsonc\n{\n\"settings\": {\n\"react\": {\n\"formComponents\": [\n\"CustomForm\",\n// OtherForm is considered a form component and has an endpoint attribute\n{ \"name\": \"OtherForm\", \"formAttribute\": \"endpoint\" },\n// allows specifying multiple properties if necessary\n{ \"name\": \"Form\", \"formAttribute\": [\"registerEndpoint\", \"loginEndpoint\"] }\n]\n}\n}\n}\n```"
        },
        "linkComponents": {
          "description": "Components used as alternatives to `<a>` for linking, such as `<Link>`.\n\nExample:\n\n```jsonc\n{\n\"settings\": {\n\"react\": {\n\"linkComponents\": [\n\"HyperLink\",\n// Use `linkAttribute` for components that use a different prop name\n// than `href`.\n{ \"name\": \"MyLink\", \"linkAttribute\": \"to\" },\n// allows specifying multiple properties if necessary\n{ \"name\": \"Link\", \"linkAttribute\": [\"to\", \"href\"] }\n]\n}\n}\n}\n```",
          "default": [],
          "type": "array",
          "items": {
            "$ref": "#/definitions/CustomComponent"
          },
          "markdownDescription": "Components used as alternatives to `<a>` for linking, such as `<Link>`.\n\nExample:\n\n```jsonc\n{\n\"settings\": {\n\"react\": {\n\"linkComponents\": [\n\"HyperLink\",\n// Use `linkAttribute` for components that use a different prop name\n// than `href`.\n{ \"name\": \"MyLink\", \"linkAttribute\": \"to\" },\n// allows specifying multiple properties if necessary\n{ \"name\": \"Link\", \"linkAttribute\": [\"to\", \"href\"] }\n]\n}\n}\n}\n```"
        },
        "version": {
          "description": "React version to use for version-specific rules.\n\nAccepts semver versions (e.g., \"18.2.0\", \"17.0\").\n\nExample:\n\n```jsonc\n{\n\"settings\": {\n\"react\": {\n\"version\": \"18.2.0\"\n}\n}\n}\n```",
          "default": null,
          "type": "string",
          "pattern": "^[1-9]\\d*(\\.(0|[1-9]\\d*))?(\\.(0|[1-9]\\d*))?$",
          "markdownDescription": "React version to use for version-specific rules.\n\nAccepts semver versions (e.g., \"18.2.0\", \"17.0\").\n\nExample:\n\n```jsonc\n{\n\"settings\": {\n\"react\": {\n\"version\": \"18.2.0\"\n}\n}\n}\n```"
        }
      },
      "markdownDescription": "Configure React plugin rules.\n\nDerived from [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react#configuration-legacy-eslintrc-)"
    },
    "ReadonlyArrayOption": {
      "oneOf": [
        {
          "description": "Enforce using `readonly T[]` for all readonly array types.\n\nExample of **incorrect** code for this option:\n```ts\nconst arr: ReadonlyArray<number> = [];\n```\n\nExample of **correct** code for this option:\n```ts\nconst arr: readonly number[] = [];\n```",
          "type": "string",
          "enum": [
            "array"
          ],
          "markdownDescription": "Enforce using `readonly T[]` for all readonly array types.\n\nExample of **incorrect** code for this option:\n```ts\nconst arr: ReadonlyArray<number> = [];\n```\n\nExample of **correct** code for this option:\n```ts\nconst arr: readonly number[] = [];\n```"
        },
        {
          "description": "Enforce using `readonly T[]` for simple types, and `ReadonlyArray<T>` for complex types.\n\nExample of **incorrect** code for this option:\n```ts\nconst a: readonly (string | number)[] = [];\nconst b: ReadonlyArray<number> = [];\n```\n\nExample of **correct** code for this option:\n```ts\nconst a: ReadonlyArray<string | number> = [];\nconst b: readonly number[] = [];\n```",
          "type": "string",
          "enum": [
            "array-simple"
          ],
          "markdownDescription": "Enforce using `readonly T[]` for simple types, and `ReadonlyArray<T>` for complex types.\n\nExample of **incorrect** code for this option:\n```ts\nconst a: readonly (string | number)[] = [];\nconst b: ReadonlyArray<number> = [];\n```\n\nExample of **correct** code for this option:\n```ts\nconst a: ReadonlyArray<string | number> = [];\nconst b: readonly number[] = [];\n```"
        },
        {
          "description": "Enforce using `ReadonlyArray<T>` for all readonly array types.\n\nExample of **incorrect** code for this option:\n```ts\nconst arr: readonly number[] = [];\nconst arr2: readonly (string | number)[] = [];\n```\n\nExample of **correct** code for this option:\n```ts\nconst arr: ReadonlyArray<number> = [];\nconst arr2: ReadonlyArray<string | number> = [];\n```",
          "type": "string",
          "enum": [
            "generic"
          ],
          "markdownDescription": "Enforce using `ReadonlyArray<T>` for all readonly array types.\n\nExample of **incorrect** code for this option:\n```ts\nconst arr: readonly number[] = [];\nconst arr2: readonly (string | number)[] = [];\n```\n\nExample of **correct** code for this option:\n```ts\nconst arr: ReadonlyArray<number> = [];\nconst arr2: ReadonlyArray<string | number> = [];\n```"
        }
      ]
    },
    "RelativeUrlStyleConfig": {
      "oneOf": [
        {
          "description": "Never use a `./` prefix.",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Never use a `./` prefix."
        },
        {
          "description": "Always add a `./` prefix to the relative URL when possible.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Always add a `./` prefix to the relative URL when possible."
        }
      ]
    },
    "RequireArraySortCompareConfig": {
      "type": "object",
      "properties": {
        "ignoreStringArrays": {
          "description": "Whether to ignore arrays in which all elements are strings.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to ignore arrays in which all elements are strings."
        }
      },
      "additionalProperties": false
    },
    "RequireDescription": {
      "type": "string",
      "enum": [
        "allow-with-description"
      ]
    },
    "RequireDirectExport": {
      "type": "object",
      "properties": {
        "disallowFunctionalComponentFunction": {
          "description": "When set `true`, disallow functional component functions.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When set `true`, disallow functional component functions."
        }
      },
      "additionalProperties": false
    },
    "RequireFlag": {
      "type": "string",
      "enum": [
        "u",
        "v"
      ]
    },
    "RequireHookConfig": {
      "type": "object",
      "properties": {
        "allowedFunctionCalls": {
          "description": "An array of function names that are allowed to be called outside of hooks.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "An array of function names that are allowed to be called outside of hooks."
        }
      },
      "additionalProperties": false
    },
    "RequireMockTypeParametersConfig": {
      "type": "object",
      "properties": {
        "checkImportFunctions": {
          "description": "Also require type parameters for `importActual` and `importMock`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Also require type parameters for `importActual` and `importMock`."
        }
      },
      "additionalProperties": false
    },
    "RequireParamDescriptionConfig": {
      "type": "object",
      "properties": {
        "defaultDestructuredRootDescription": {
          "description": "The description string to set by default for destructured roots. Defaults to \"The root object\".",
          "default": "The root object",
          "type": "string",
          "markdownDescription": "The description string to set by default for destructured roots. Defaults to \"The root object\"."
        },
        "setDefaultDestructuredRootDescription": {
          "description": "Whether to set a default destructured root description.\nFor example, you may wish to avoid manually having to set the description for a @param corresponding to a destructured root object as it should always be the same type of object.\nUses `defaultDestructuredRootDescription` for the description string. Defaults to `false`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to set a default destructured root description.\nFor example, you may wish to avoid manually having to set the description for a @param corresponding to a destructured root object as it should always be the same type of object.\nUses `defaultDestructuredRootDescription` for the description string. Defaults to `false`."
        }
      },
      "additionalProperties": false
    },
    "RequireParamTypeConfig": {
      "type": "object",
      "properties": {
        "defaultDestructuredRootType": {
          "description": "The type string to set by default for destructured roots. Defaults to \"object\".",
          "default": "object",
          "type": "string",
          "markdownDescription": "The type string to set by default for destructured roots. Defaults to \"object\"."
        },
        "setDefaultDestructuredRootType": {
          "description": "Whether to set a default destructured root type. For example, you may wish to avoid manually having to set the type for a `@param` corresponding to a destructured root object as it is always going to be an object. Uses `defaultDestructuredRootType` for the type string. Defaults to `false`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to set a default destructured root type. For example, you may wish to avoid manually having to set the type for a `@param` corresponding to a destructured root object as it is always going to be an object. Uses `defaultDestructuredRootType` for the type string. Defaults to `false`."
        }
      },
      "additionalProperties": false
    },
    "RequireReturnsConfig": {
      "type": "object",
      "properties": {
        "checkConstructors": {
          "description": "Whether to check constructor methods.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to check constructor methods."
        },
        "checkGetters": {
          "description": "Whether to check getter methods.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to check getter methods."
        },
        "exemptedBy": {
          "description": "Tags that exempt functions from requiring `@returns`.",
          "default": [
            "inheritdoc"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Tags that exempt functions from requiring `@returns`."
        },
        "forceRequireReturn": {
          "description": "Whether to require a `@returns` tag even if the function doesn't return a value.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to require a `@returns` tag even if the function doesn't return a value."
        },
        "forceReturnsWithAsync": {
          "description": "Whether to require a `@returns` tag for async functions.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to require a `@returns` tag for async functions."
        }
      },
      "additionalProperties": false
    },
    "RequireTopLevelDescribeConfig": {
      "type": "object",
      "properties": {
        "maxNumberOfTopLevelDescribes": {
          "description": "The maximum number of top-level `describe` blocks allowed in a test file.",
          "default": 4294967295,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "The maximum number of top-level `describe` blocks allowed in a test file."
        }
      },
      "additionalProperties": false
    },
    "RequireUnicodeRegexp": {
      "$ref": "#/definitions/RequireUnicodeRegexpConfig"
    },
    "RequireUnicodeRegexpConfig": {
      "type": "object",
      "properties": {
        "requireFlag": {
          "description": "The `u` flag may be preferred in environments that do not support the `v` flag.\n\nExamples of **incorrect** code for this rule with the `{ \"requireFlag\": \"u\" }` option:\n```js\nconst fooEmpty = /foo/;\nconst fooEmptyRegexp = new RegExp('foo');\nconst foo = /foo/v;\nconst fooRegexp = new RegExp('foo', 'v');\n```\n\nExamples of **correct** code for this rule with the `{ \"requireFlag\": \"u\" }` option:\n```js\nconst foo = /foo/u;\nconst fooRegexp = new RegExp('foo', 'u');\n```\n\nThe `v` flag may be a better choice when it is supported because it has more features than the `u` flag (e.g., the ability to test Unicode properties of strings).\nIt does have a stricter syntax, however (e.g., the need to escape certain characters within character classes).\n\nExamples of **incorrect** code for this rule with the `{ \"requireFlag\": \"v\" }` option:\n```js\nconst fooEmpty = /foo/;\nconst fooEmptyRegexp = new RegExp('foo');\nconst foo = /foo/u;\nconst fooRegexp = new RegExp('foo', 'u');\n```\n\nExamples of **correct** code for this rule with the `{ \"requireFlag\": \"v\" }` option:\n```js\nconst foo = /foo/v;\nconst fooRegexp = new RegExp('foo', 'v');\n```",
          "default": null,
          "allOf": [
            {
              "$ref": "#/definitions/RequireFlag"
            }
          ],
          "markdownDescription": "The `u` flag may be preferred in environments that do not support the `v` flag.\n\nExamples of **incorrect** code for this rule with the `{ \"requireFlag\": \"u\" }` option:\n```js\nconst fooEmpty = /foo/;\nconst fooEmptyRegexp = new RegExp('foo');\nconst foo = /foo/v;\nconst fooRegexp = new RegExp('foo', 'v');\n```\n\nExamples of **correct** code for this rule with the `{ \"requireFlag\": \"u\" }` option:\n```js\nconst foo = /foo/u;\nconst fooRegexp = new RegExp('foo', 'u');\n```\n\nThe `v` flag may be a better choice when it is supported because it has more features than the `u` flag (e.g., the ability to test Unicode properties of strings).\nIt does have a stricter syntax, however (e.g., the need to escape certain characters within character classes).\n\nExamples of **incorrect** code for this rule with the `{ \"requireFlag\": \"v\" }` option:\n```js\nconst fooEmpty = /foo/;\nconst fooEmptyRegexp = new RegExp('foo');\nconst foo = /foo/u;\nconst fooRegexp = new RegExp('foo', 'u');\n```\n\nExamples of **correct** code for this rule with the `{ \"requireFlag\": \"v\" }` option:\n```js\nconst foo = /foo/v;\nconst fooRegexp = new RegExp('foo', 'v');\n```"
        }
      },
      "additionalProperties": false
    },
    "RequireYieldsConfig": {
      "type": "object",
      "properties": {
        "exemptedBy": {
          "description": "Functions with these tags will be exempted from the lint rule.",
          "default": [
            "inheritdoc"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "Functions with these tags will be exempted from the lint rule."
        },
        "forceRequireYields": {
          "description": "When `true`, all generator functions must have a `@yields` tag, even if they don't yield a value or have an empty body.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `true`, all generator functions must have a `@yields` tag, even if they don't yield a value or have an empty body."
        },
        "withGeneratorTag": {
          "description": "When `true`, require `@yields` when a `@generator` tag is present.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `true`, require `@yields` when a `@generator` tag is present."
        }
      },
      "additionalProperties": false
    },
    "RestrictDefaultExports": {
      "type": "object",
      "properties": {
        "defaultFrom": {
          "description": "Whether to restrict `export { default } from` declarations.\n\nExample of **incorrect** code for `\"restrictDefaultExports\": { \"defaultFrom\": true }`:\n\n```js\nexport { default } from 'foo';\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to restrict `export { default } from` declarations.\n\nExample of **incorrect** code for `\"restrictDefaultExports\": { \"defaultFrom\": true }`:\n\n```js\nexport { default } from 'foo';\n```"
        },
        "direct": {
          "description": "Whether to restrict `export default` declarations.\n\nExample of **incorrect** code for `\"restrictDefaultExports\": { \"direct\": true }`:\n\n```js\nconst foo = 123;\nexport default foo;\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to restrict `export default` declarations.\n\nExample of **incorrect** code for `\"restrictDefaultExports\": { \"direct\": true }`:\n\n```js\nconst foo = 123;\nexport default foo;\n```"
        },
        "named": {
          "description": "Whether to restrict `export { foo as default }` declarations.\n\nExample of **incorrect** code for `\"restrictDefaultExports\": { \"named\": true }`:\n\n```js\nconst foo = 123;\nexport { foo as default };\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to restrict `export { foo as default }` declarations.\n\nExample of **incorrect** code for `\"restrictDefaultExports\": { \"named\": true }`:\n\n```js\nconst foo = 123;\nexport { foo as default };\n```"
        },
        "namedFrom": {
          "description": "Whether to restrict `export { foo as default } from` declarations.\n\nExample of **incorrect** code for `\"restrictDefaultExports\": { \"namedFrom\": true }`:\n\n```js\nexport { foo as default } from 'foo';\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to restrict `export { foo as default } from` declarations.\n\nExample of **incorrect** code for `\"restrictDefaultExports\": { \"namedFrom\": true }`:\n\n```js\nexport { foo as default } from 'foo';\n```"
        },
        "namespaceFrom": {
          "description": "Whether to restrict `export * as default from` declarations.\n\nExample of **incorrect** code for `\"restrictDefaultExports\": { \"namespaceFrom\": true }`:\n\n```js\nexport * as default from 'foo';\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to restrict `export * as default from` declarations.\n\nExample of **incorrect** code for `\"restrictDefaultExports\": { \"namespaceFrom\": true }`:\n\n```js\nexport * as default from 'foo';\n```"
        }
      },
      "additionalProperties": false
    },
    "RestrictPlusOperandsConfig": {
      "type": "object",
      "properties": {
        "allowAny": {
          "description": "Whether to allow `any` type in plus operations.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow `any` type in plus operations."
        },
        "allowBoolean": {
          "description": "Whether to allow `boolean` types in plus operations.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow `boolean` types in plus operations."
        },
        "allowNullish": {
          "description": "Whether to allow nullish types (`null` or `undefined`) in plus operations.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow nullish types (`null` or `undefined`) in plus operations."
        },
        "allowNumberAndString": {
          "description": "Whether to allow mixed number and string operands in plus operations.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow mixed number and string operands in plus operations."
        },
        "allowRegExp": {
          "description": "Whether to allow `RegExp` types in plus operations.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow `RegExp` types in plus operations."
        },
        "skipCompoundAssignments": {
          "description": "Whether to skip compound assignments (e.g., `a += b`).",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to skip compound assignments (e.g., `a += b`)."
        }
      },
      "additionalProperties": false
    },
    "RestrictTemplateExpressionsConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "An array of type or value specifiers for additional types that are allowed in template expressions.\nDefaults include Error, URL, and URLSearchParams from lib.",
          "default": [
            {
              "from": "lib",
              "name": [
                "Error",
                "URL",
                "URLSearchParams"
              ]
            }
          ],
          "type": "array",
          "items": {
            "$ref": "#/definitions/TypeOrValueSpecifier"
          },
          "markdownDescription": "An array of type or value specifiers for additional types that are allowed in template expressions.\nDefaults include Error, URL, and URLSearchParams from lib."
        },
        "allowAny": {
          "description": "Whether to allow `any` typed values in template expressions.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow `any` typed values in template expressions."
        },
        "allowArray": {
          "description": "Whether to allow array types in template expressions.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow array types in template expressions."
        },
        "allowBoolean": {
          "description": "Whether to allow boolean types in template expressions.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow boolean types in template expressions."
        },
        "allowNever": {
          "description": "Whether to allow `never` type in template expressions.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow `never` type in template expressions."
        },
        "allowNullish": {
          "description": "Whether to allow nullish types (`null` or `undefined`) in template expressions.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow nullish types (`null` or `undefined`) in template expressions."
        },
        "allowNumber": {
          "description": "Whether to allow number and bigint types in template expressions.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow number and bigint types in template expressions."
        },
        "allowRegExp": {
          "description": "Whether to allow RegExp values in template expressions.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow RegExp values in template expressions."
        }
      },
      "additionalProperties": false
    },
    "ReturnAwaitOption": {
      "oneOf": [
        {
          "description": "Require `await` when returning Promises inside try/catch/finally blocks.\nThis ensures proper error handling and stack traces.",
          "type": "string",
          "enum": [
            "in-try-catch"
          ],
          "markdownDescription": "Require `await` when returning Promises inside try/catch/finally blocks.\nThis ensures proper error handling and stack traces."
        },
        {
          "description": "Require `await` before returning Promises in all cases.\nExample: `return await Promise.resolve()` is required.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Require `await` before returning Promises in all cases.\nExample: `return await Promise.resolve()` is required."
        },
        {
          "description": "Require `await` only when it affects error handling correctness.\nOnly flags cases where omitting await would change error handling behavior.",
          "type": "string",
          "enum": [
            "error-handling-correctness-only"
          ],
          "markdownDescription": "Require `await` only when it affects error handling correctness.\nOnly flags cases where omitting await would change error handling behavior."
        },
        {
          "description": "Disallow `await` before returning Promises in all cases.\nExample: `return Promise.resolve()` is required (no await).",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Disallow `await` before returning Promises in all cases.\nExample: `return Promise.resolve()` is required (no await)."
        }
      ]
    },
    "ReturnInComputedProperty": {
      "$ref": "#/definitions/ReturnInComputedPropertyConfig"
    },
    "ReturnInComputedPropertyConfig": {
      "type": "object",
      "properties": {
        "treatUndefinedAsUnspecified": {
          "description": "When `true` (default), `return;` (without a value) is treated as a missing return.\nSet to `false` to allow bare `return;` as if it returned a value.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "When `true` (default), `return;` (without a value) is treated as a missing return.\nSet to `false` to allow bare `return;` as if it returned a value."
        }
      },
      "additionalProperties": false
    },
    "RuleNoConfig": {
      "anyOf": [
        {
          "$ref": "#/definitions/AllowWarnDeny"
        },
        {
          "type": "array",
          "items": [
            {
              "$ref": "#/definitions/AllowWarnDeny"
            }
          ],
          "additionalItems": false,
          "maxItems": 1,
          "minItems": 1
        }
      ]
    },
    "SelfClosingComp": {
      "type": "object",
      "properties": {
        "component": {
          "description": "Whether to enforce self-closing for custom components.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to enforce self-closing for custom components."
        },
        "html": {
          "description": "Whether to enforce self-closing for native HTML elements.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to enforce self-closing for native HTML elements."
        }
      },
      "additionalProperties": false
    },
    "ShorthandType": {
      "type": "string",
      "enum": [
        "always",
        "methods",
        "properties",
        "consistent",
        "consistent-as-needed",
        "never"
      ]
    },
    "SnapshotHintMode": {
      "oneOf": [
        {
          "description": "Require a hint to always be provided when using external snapshot matchers.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Require a hint to always be provided when using external snapshot matchers."
        },
        {
          "description": "Require a hint to be provided when there are multiple external snapshot matchers within the scope (meaning it includes nested calls).",
          "type": "string",
          "enum": [
            "multi"
          ],
          "markdownDescription": "Require a hint to be provided when there are multiple external snapshot matchers within the scope (meaning it includes nested calls)."
        }
      ]
    },
    "SortImportsOptions": {
      "type": "object",
      "properties": {
        "allowSeparatedGroups": {
          "description": "When `true`, the rule allows import groups separated by blank lines to be treated independently.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `true`, the rule allows import groups separated by blank lines to be treated independently."
        },
        "ignoreCase": {
          "description": "When `true`, the rule ignores case-sensitivity when sorting import names.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `true`, the rule ignores case-sensitivity when sorting import names."
        },
        "ignoreDeclarationSort": {
          "description": "When `true`, the rule ignores the sorting of import declarations (the order of `import` statements).",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `true`, the rule ignores the sorting of import declarations (the order of `import` statements)."
        },
        "ignoreMemberSort": {
          "description": "When `true`, the rule ignores the sorting of import members within a single import declaration.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `true`, the rule ignores the sorting of import members within a single import declaration."
        },
        "memberSyntaxSortOrder": {
          "description": "Specifies the sort order of different import syntaxes.\nMust include all 4 kinds!",
          "default": [
            "none",
            "all",
            "multiple",
            "single"
          ],
          "type": "array",
          "items": {
            "$ref": "#/definitions/ImportKind"
          },
          "markdownDescription": "Specifies the sort order of different import syntaxes.\nMust include all 4 kinds!"
        }
      },
      "additionalProperties": false
    },
    "SortKeysConfig": {
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/SortOrder"
        },
        {
          "$ref": "#/definitions/SortKeysOptions"
        }
      ],
      "maxItems": 2,
      "minItems": 2
    },
    "SortKeysOptions": {
      "type": "object",
      "properties": {
        "allowLineSeparatedGroups": {
          "description": "When true, groups of properties separated by a blank line are sorted independently.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When true, groups of properties separated by a blank line are sorted independently."
        },
        "caseSensitive": {
          "description": "Whether the sort comparison is case-sensitive (A < a when true).",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether the sort comparison is case-sensitive (A < a when true)."
        },
        "minKeys": {
          "description": "Minimum number of properties required in an object before sorting is enforced.",
          "default": 2,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "Minimum number of properties required in an object before sorting is enforced."
        },
        "natural": {
          "description": "Use natural sort order so that, for example, \"a2\" comes before \"a10\".",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Use natural sort order so that, for example, \"a2\" comes before \"a10\"."
        }
      },
      "additionalProperties": false
    },
    "SortOrder": {
      "description": "Sorting order for keys. Accepts \"asc\" for ascending or \"desc\" for descending.",
      "type": "string",
      "enum": [
        "desc",
        "asc"
      ],
      "markdownDescription": "Sorting order for keys. Accepts \"asc\" for ascending or \"desc\" for descending."
    },
    "SortVars": {
      "type": "object",
      "properties": {
        "ignoreCase": {
          "description": "When `true`, the rule ignores case-sensitivity when sorting variables.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `true`, the rule ignores case-sensitivity when sorting variables."
        }
      },
      "additionalProperties": false
    },
    "SpecOnlyConfig": {
      "type": "object",
      "properties": {
        "allowedMethods": {
          "description": "List of Promise static methods that are allowed to be used.",
          "default": null,
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true,
          "markdownDescription": "List of Promise static methods that are allowed to be used."
        }
      },
      "additionalProperties": false
    },
    "StrictBooleanExpressionsConfig": {
      "type": "object",
      "properties": {
        "allowAny": {
          "description": "Whether to allow `any` type in boolean contexts.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow `any` type in boolean contexts."
        },
        "allowNullableBoolean": {
          "description": "Whether to allow nullable boolean types (e.g., `boolean | null`) in boolean contexts.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow nullable boolean types (e.g., `boolean | null`) in boolean contexts."
        },
        "allowNullableEnum": {
          "description": "Whether to allow nullable enum types in boolean contexts.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow nullable enum types in boolean contexts."
        },
        "allowNullableNumber": {
          "description": "Whether to allow nullable number types (e.g., `number | null`) in boolean contexts.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow nullable number types (e.g., `number | null`) in boolean contexts."
        },
        "allowNullableObject": {
          "description": "Whether to allow nullable object types in boolean contexts.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow nullable object types in boolean contexts."
        },
        "allowNullableString": {
          "description": "Whether to allow nullable string types (e.g., `string | null`) in boolean contexts.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to allow nullable string types (e.g., `string | null`) in boolean contexts."
        },
        "allowNumber": {
          "description": "Whether to allow number types in boolean contexts (checks for non-zero numbers).",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow number types in boolean contexts (checks for non-zero numbers)."
        },
        "allowString": {
          "description": "Whether to allow string types in boolean contexts (checks for non-empty strings).",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow string types in boolean contexts (checks for non-empty strings)."
        }
      },
      "additionalProperties": false
    },
    "StrictVoidReturnConfig": {
      "type": "object",
      "properties": {
        "allowReturnAny": {
          "description": "Allow callbacks that return `any` in places that expect a `void` callback.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Allow callbacks that return `any` in places that expect a `void` callback."
        }
      },
      "additionalProperties": false
    },
    "Style": {
      "type": "string",
      "enum": [
        "expression",
        "declaration"
      ]
    },
    "StylePropObjectConfig": {
      "type": "object",
      "properties": {
        "allow": {
          "description": "List of component names on which to allow `style` prop values of any type.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of component names on which to allow `style` prop values of any type."
        }
      },
      "additionalProperties": false
    },
    "SwitchCaseBracesConfig": {
      "oneOf": [
        {
          "description": "Always require braces in case clauses (except empty cases).",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Always require braces in case clauses (except empty cases)."
        },
        {
          "description": "Allow braces only when needed for scoping (e.g., variable or function declarations).",
          "type": "string",
          "enum": [
            "avoid"
          ],
          "markdownDescription": "Allow braces only when needed for scoping (e.g., variable or function declarations)."
        }
      ]
    },
    "SwitchExhaustivenessCheckConfig": {
      "type": "object",
      "properties": {
        "allowDefaultCaseForExhaustiveSwitch": {
          "description": "Whether to allow default cases on switches that are not exhaustive.\nWhen false, requires exhaustive switch statements without default cases.",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to allow default cases on switches that are not exhaustive.\nWhen false, requires exhaustive switch statements without default cases."
        },
        "considerDefaultExhaustiveForUnions": {
          "description": "Whether to consider `default` cases exhaustive for union types.\nWhen true, a switch statement with a `default` case is considered exhaustive\neven if not all union members are handled explicitly.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to consider `default` cases exhaustive for union types.\nWhen true, a switch statement with a `default` case is considered exhaustive\neven if not all union members are handled explicitly."
        },
        "defaultCaseCommentPattern": {
          "description": "Regular expression pattern that when matched in a default case comment,\nwill suppress the exhaustiveness check.\nExample: `\"@skip-exhaustive-check\"` to allow `default: // @skip-exhaustive-check`",
          "type": "string",
          "markdownDescription": "Regular expression pattern that when matched in a default case comment,\nwill suppress the exhaustiveness check.\nExample: `\"@skip-exhaustive-check\"` to allow `default: // @skip-exhaustive-check`"
        },
        "requireDefaultForNonUnion": {
          "description": "Whether to require default cases on switches over union types that are not exhaustive.\nWhen true, switches with non-exhaustive union types must have a default case.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to require default cases on switches over union types that are not exhaustive.\nWhen true, switches with non-exhaustive union types must have a default case."
        }
      },
      "additionalProperties": false
    },
    "TagNamePreference": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "object",
          "required": [
            "message",
            "replacement"
          ],
          "properties": {
            "message": {
              "type": "string"
            },
            "replacement": {
              "type": "string"
            }
          }
        },
        {
          "type": "object",
          "required": [
            "message"
          ],
          "properties": {
            "message": {
              "type": "string"
            }
          }
        },
        {
          "type": "boolean"
        }
      ]
    },
    "Target": {
      "oneOf": [
        {
          "description": "Prefer default export when there is only one export in the module.",
          "type": "string",
          "enum": [
            "single"
          ],
          "markdownDescription": "Prefer default export when there is only one export in the module."
        },
        {
          "description": "Prefer default export in any module that has exports.",
          "type": "string",
          "enum": [
            "any"
          ],
          "markdownDescription": "Prefer default export in any module that has exports."
        }
      ]
    },
    "TerminationMethod": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "TestCaseName": {
      "type": "string",
      "enum": [
        "it",
        "test"
      ]
    },
    "TextEncodingIdentifierCase": {
      "type": "object",
      "properties": {
        "withDash": {
          "description": "If `true`, prefer `utf-8` over `utf8`.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If `true`, prefer `utf-8` over `utf8`."
        }
      },
      "additionalProperties": false
    },
    "TripleSlashReferenceConfig": {
      "type": "object",
      "properties": {
        "lib": {
          "description": "What to enforce for `/// <reference lib=\"...\" />` references.",
          "default": "always",
          "allOf": [
            {
              "$ref": "#/definitions/AlwaysNever"
            }
          ],
          "markdownDescription": "What to enforce for `/// <reference lib=\"...\" />` references."
        },
        "path": {
          "description": "What to enforce for `/// <reference path=\"...\" />` references.",
          "default": "never",
          "allOf": [
            {
              "$ref": "#/definitions/PathOption"
            }
          ],
          "markdownDescription": "What to enforce for `/// <reference path=\"...\" />` references."
        },
        "types": {
          "description": "What to enforce for `/// <reference types=\"...\" />` references.",
          "default": "prefer-import",
          "allOf": [
            {
              "$ref": "#/definitions/TypesOption"
            }
          ],
          "markdownDescription": "What to enforce for `/// <reference types=\"...\" />` references."
        }
      },
      "additionalProperties": false
    },
    "True": {
      "type": "boolean",
      "enum": [
        true
      ]
    },
    "TypeOrValueSpecifier": {
      "description": "Type or value specifier for matching specific declarations\n\nSupports four types of specifiers:\n\n1. **String specifier** (deprecated): Universal match by name\n```json\n\"Promise\"\n```\n\n2. **File specifier**: Match types/values declared in local files\n```json\n{ \"from\": \"file\", \"name\": \"MyType\" }\n{ \"from\": \"file\", \"name\": [\"Type1\", \"Type2\"] }\n{ \"from\": \"file\", \"name\": \"MyType\", \"path\": \"./types.ts\" }\n```\n\n3. **Lib specifier**: Match TypeScript built-in lib types\n```json\n{ \"from\": \"lib\", \"name\": \"Promise\" }\n{ \"from\": \"lib\", \"name\": [\"Promise\", \"PromiseLike\"] }\n```\n\n4. **Package specifier**: Match types/values from npm packages\n```json\n{ \"from\": \"package\", \"name\": \"Observable\", \"package\": \"rxjs\" }\n{ \"from\": \"package\", \"name\": [\"Observable\", \"Subject\"], \"package\": \"rxjs\" }\n```",
      "anyOf": [
        {
          "description": "Universal string specifier - matches all types and values with this name regardless of declaration source.\nNot recommended - will be removed in a future major version.",
          "type": "string",
          "markdownDescription": "Universal string specifier - matches all types and values with this name regardless of declaration source.\nNot recommended - will be removed in a future major version."
        },
        {
          "description": "Describes specific types or values declared in local files.",
          "allOf": [
            {
              "$ref": "#/definitions/FileSpecifier"
            }
          ],
          "markdownDescription": "Describes specific types or values declared in local files."
        },
        {
          "description": "Describes specific types or values declared in TypeScript's built-in lib.*.d.ts types.",
          "allOf": [
            {
              "$ref": "#/definitions/LibSpecifier"
            }
          ],
          "markdownDescription": "Describes specific types or values declared in TypeScript's built-in lib.*.d.ts types."
        },
        {
          "description": "Describes specific types or values imported from packages.",
          "allOf": [
            {
              "$ref": "#/definitions/PackageSpecifier"
            }
          ],
          "markdownDescription": "Describes specific types or values imported from packages."
        }
      ],
      "markdownDescription": "Type or value specifier for matching specific declarations\n\nSupports four types of specifiers:\n\n1. **String specifier** (deprecated): Universal match by name\n```json\n\"Promise\"\n```\n\n2. **File specifier**: Match types/values declared in local files\n```json\n{ \"from\": \"file\", \"name\": \"MyType\" }\n{ \"from\": \"file\", \"name\": [\"Type1\", \"Type2\"] }\n{ \"from\": \"file\", \"name\": \"MyType\", \"path\": \"./types.ts\" }\n```\n\n3. **Lib specifier**: Match TypeScript built-in lib types\n```json\n{ \"from\": \"lib\", \"name\": \"Promise\" }\n{ \"from\": \"lib\", \"name\": [\"Promise\", \"PromiseLike\"] }\n```\n\n4. **Package specifier**: Match types/values from npm packages\n```json\n{ \"from\": \"package\", \"name\": \"Observable\", \"package\": \"rxjs\" }\n{ \"from\": \"package\", \"name\": [\"Observable\", \"Subject\"], \"package\": \"rxjs\" }\n```"
    },
    "TypesOption": {
      "oneOf": [
        {
          "description": "Allow triple-slash `types` references.",
          "type": "string",
          "enum": [
            "always"
          ],
          "markdownDescription": "Allow triple-slash `types` references."
        },
        {
          "description": "Disallow triple-slash `types` references.",
          "type": "string",
          "enum": [
            "never"
          ],
          "markdownDescription": "Disallow triple-slash `types` references."
        },
        {
          "description": "Prefer ES module import declarations over triple-slash `types` references.\nThis option only reports when there is an existing `import` declaration for the same module.\n\nFor example, this would be reported as a lint violation with `prefer-import`:\n```ts\n/// <reference types=\"foo\" />\nimport { bar } from 'foo';\n```",
          "type": "string",
          "enum": [
            "prefer-import"
          ],
          "markdownDescription": "Prefer ES module import declarations over triple-slash `types` references.\nThis option only reports when there is an existing `import` declaration for the same module.\n\nFor example, this would be reported as a lint violation with `prefer-import`:\n```ts\n/// <reference types=\"foo\" />\nimport { bar } from 'foo';\n```"
        }
      ]
    },
    "UnboundMethodConfig": {
      "type": "object",
      "properties": {
        "ignoreStatic": {
          "description": "Whether to ignore unbound methods that are static.\nWhen true, static methods can be referenced without binding.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore unbound methods that are static.\nWhen true, static methods can be referenced without binding."
        }
      },
      "additionalProperties": false
    },
    "UnifiedSignaturesOptions": {
      "type": "object",
      "properties": {
        "ignoreDifferentlyNamedParameters": {
          "description": "Whether to ignore parameter name differences when comparing signatures. If `false`, signatures\nwill not be considered unifiable if they have parameters in the same position with different\nnames, even if the parameter types are the same.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore parameter name differences when comparing signatures. If `false`, signatures\nwill not be considered unifiable if they have parameters in the same position with different\nnames, even if the parameter types are the same."
        },
        "ignoreOverloadsWithDifferentJSDoc": {
          "description": "Whether to ignore JSDoc differences when comparing signatures. If `false`, signatures will not\nbe considered unifiable if the closest leading block comments for the signatures are different,\neven if the signatures themselves are identical.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to ignore JSDoc differences when comparing signatures. If `false`, signatures will not\nbe considered unifiable if the closest leading block comments for the signatures are different,\neven if the signatures themselves are identical."
        }
      },
      "additionalProperties": false
    },
    "UseIsnan": {
      "type": "object",
      "properties": {
        "enforceForIndexOf": {
          "description": "Whether to disallow NaN as arguments of `indexOf` and `lastIndexOf`",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to disallow NaN as arguments of `indexOf` and `lastIndexOf`"
        },
        "enforceForSwitchCase": {
          "description": "Whether to disallow NaN in switch cases and discriminants",
          "default": true,
          "type": "boolean",
          "markdownDescription": "Whether to disallow NaN in switch cases and discriminants"
        }
      },
      "additionalProperties": false
    },
    "ValidExpectConfig": {
      "type": "object",
      "properties": {
        "alwaysAwait": {
          "description": "When `true`, async assertions must be awaited in all contexts (not just return statements).",
          "default": false,
          "type": "boolean",
          "markdownDescription": "When `true`, async assertions must be awaited in all contexts (not just return statements)."
        },
        "asyncMatchers": {
          "description": "List of matchers that are considered async and therefore require awaiting (e.g. `toResolve`, `toReject`).",
          "default": [
            "toResolve",
            "toReject"
          ],
          "type": "array",
          "items": {
            "type": "string"
          },
          "markdownDescription": "List of matchers that are considered async and therefore require awaiting (e.g. `toResolve`, `toReject`)."
        },
        "maxArgs": {
          "description": "Maximum number of arguments `expect` should be called with.",
          "default": 1,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "Maximum number of arguments `expect` should be called with."
        },
        "minArgs": {
          "description": "Minimum number of arguments `expect` should be called with.",
          "default": 1,
          "type": "integer",
          "format": "uint32",
          "minimum": 0.0,
          "markdownDescription": "Minimum number of arguments `expect` should be called with."
        }
      },
      "additionalProperties": false
    },
    "ValidTypeof": {
      "type": "object",
      "properties": {
        "requireStringLiterals": {
          "description": "The `requireStringLiterals` option when set to `true`, allows the comparison of `typeof`\nexpressions with only string literals or other `typeof` expressions, and disallows\ncomparisons to any other value. Default is `false`.\n\nWith `requireStringLiterals` set to `true`, the following are examples of **incorrect** code:\n```js\ntypeof foo === undefined\ntypeof bar == Object\ntypeof baz === \"strnig\"\ntypeof qux === \"some invalid type\"\ntypeof baz === anotherVariable\ntypeof foo == 5\n```\n\nWith `requireStringLiterals` set to `true`, the following are examples of **correct** code:\n```js\ntypeof foo === \"undefined\"\ntypeof bar == \"object\"\ntypeof baz === \"string\"\ntypeof bar === typeof qux\n```",
          "default": false,
          "type": "boolean",
          "markdownDescription": "The `requireStringLiterals` option when set to `true`, allows the comparison of `typeof`\nexpressions with only string literals or other `typeof` expressions, and disallows\ncomparisons to any other value. Default is `false`.\n\nWith `requireStringLiterals` set to `true`, the following are examples of **incorrect** code:\n```js\ntypeof foo === undefined\ntypeof bar == Object\ntypeof baz === \"strnig\"\ntypeof qux === \"some invalid type\"\ntypeof baz === anotherVariable\ntypeof foo == 5\n```\n\nWith `requireStringLiterals` set to `true`, the following are examples of **correct** code:\n```js\ntypeof foo === \"undefined\"\ntypeof bar == \"object\"\ntypeof baz === \"string\"\ntypeof bar === typeof qux\n```"
        }
      },
      "additionalProperties": false
    },
    "Variant": {
      "oneOf": [
        {
          "description": "Classic means McCabe cyclomatic complexity",
          "type": "string",
          "enum": [
            "classic"
          ],
          "markdownDescription": "Classic means McCabe cyclomatic complexity"
        },
        {
          "description": "Modified means classic cyclomatic complexity but a switch statement increases\ncomplexity by 1 irrespective of the number of `case` statements",
          "type": "string",
          "enum": [
            "modified"
          ],
          "markdownDescription": "Modified means classic cyclomatic complexity but a switch statement increases\ncomplexity by 1 irrespective of the number of `case` statements"
        }
      ]
    },
    "VarsOption": {
      "oneOf": [
        {
          "description": "All variables are checked for usage, including those in the global scope.",
          "type": "string",
          "enum": [
            "all"
          ],
          "markdownDescription": "All variables are checked for usage, including those in the global scope."
        },
        {
          "description": "Checks only that locally-declared variables are used but will allow\nglobal variables to be unused.",
          "type": "string",
          "enum": [
            "local"
          ],
          "markdownDescription": "Checks only that locally-declared variables are used but will allow\nglobal variables to be unused."
        }
      ]
    },
    "VitestFnName": {
      "type": "string",
      "enum": [
        "vi",
        "vitest"
      ]
    },
    "VitestPluginSettings": {
      "description": "Configure Vitest plugin rules.\n\nSee [eslint-plugin-vitest](https://github.com/vitest-dev/eslint-plugin-vitest)'s\nconfiguration for a full reference.",
      "type": "object",
      "properties": {
        "typecheck": {
          "description": "Whether to enable typecheck mode for Vitest rules.\nWhen enabled, some rules will skip certain checks for describe blocks\nto accommodate TypeScript type checking scenarios.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "Whether to enable typecheck mode for Vitest rules.\nWhen enabled, some rules will skip certain checks for describe blocks\nto accommodate TypeScript type checking scenarios."
        }
      },
      "markdownDescription": "Configure Vitest plugin rules.\n\nSee [eslint-plugin-vitest](https://github.com/vitest-dev/eslint-plugin-vitest)'s\nconfiguration for a full reference."
    },
    "Yoda": {
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/AllowYoda"
        },
        {
          "$ref": "#/definitions/YodaOptions"
        }
      ],
      "maxItems": 2,
      "minItems": 2
    },
    "YodaOptions": {
      "type": "object",
      "properties": {
        "exceptRange": {
          "description": "If the `\"exceptRange\"` property is `true`, the rule *allows* yoda conditions\nin range comparisons which are wrapped directly in parentheses, including the\nparentheses of an `if` or `while` condition.\nA *range* comparison tests whether a variable is inside or outside the range\nbetween two literal values.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If the `\"exceptRange\"` property is `true`, the rule *allows* yoda conditions\nin range comparisons which are wrapped directly in parentheses, including the\nparentheses of an `if` or `while` condition.\nA *range* comparison tests whether a variable is inside or outside the range\nbetween two literal values."
        },
        "onlyEquality": {
          "description": "If the `\"onlyEquality\"` property is `true`, the rule reports yoda\nconditions *only* for the equality operators `==` and `===`. The `onlyEquality`\noption allows a superset of the exceptions which `exceptRange` allows, thus\nboth options are not useful together.",
          "default": false,
          "type": "boolean",
          "markdownDescription": "If the `\"onlyEquality\"` property is `true`, the rule reports yoda\nconditions *only* for the equality operators `==` and `===`. The `onlyEquality`\noption allows a superset of the exceptions which `exceptRange` allows, thus\nboth options are not useful together."
        }
      },
      "additionalProperties": false
    }
  },
  "markdownDescription": "Oxlint Configuration File\n\nThis configuration is aligned with ESLint v8's configuration schema (`eslintrc.json`).\n\nUsage: `oxlint -c oxlintrc.json`\n\nExample\n\n`.oxlintrc.json`\n\n```json\n{\n\"$schema\": \"./node_modules/oxlint/configuration_schema.json\",\n\"plugins\": [\"import\", \"typescript\", \"unicorn\"],\n\"env\": {\n\"browser\": true\n},\n\"globals\": {\n\"foo\": \"readonly\"\n},\n\"settings\": {\n\"react\": {\n\"version\": \"18.2.0\"\n},\n\"custom\": { \"option\": true }\n},\n\"rules\": {\n\"eqeqeq\": \"warn\",\n\"import/no-cycle\": \"error\",\n\"react/self-closing-comp\": [\"error\", { \"html\": false }]\n},\n\"overrides\": [\n{\n\"files\": [\"*.test.ts\", \"*.spec.ts\"],\n\"rules\": {\n\"@typescript-eslint/no-explicit-any\": \"off\"\n}\n}\n]\n}\n```\n\n`oxlint.config.ts`\n\n```ts\nimport { defineConfig } from \"oxlint\";\n\nexport default defineConfig({\nplugins: [\"import\", \"typescript\", \"unicorn\"],\nenv: {\n\"browser\": true\n},\nglobals: {\n\"foo\": \"readonly\"\n},\nsettings: {\nreact: {\nversion: \"18.2.0\"\n},\ncustom: { option: true }\n},\nrules: {\n\"eqeqeq\": \"warn\",\n\"import/no-cycle\": \"error\",\n\"react/self-closing-comp\": [\"error\", { \"html\": false }]\n},\noverrides: [\n{\nfiles: [\"*.test.ts\", \"*.spec.ts\"],\nrules: {\n\"@typescript-eslint/no-explicit-any\": \"off\"\n}\n}\n]\n});\n```"
}
