// This file is generated by scripts/generate-types.ts
// Do not edit this file directly.

import type {RulesConfig} from '@eslint/core'
import type {Linter} from 'eslint'
import type {FlatConfigComposer, ResolvableFlatConfig} from 'eslint-flat-config-utils'
import type {Rules} from './rules'

export type {FlatConfigComposer, ResolvableFlatConfig}

/**
 * Represents the configuration for the linter.
 * This interface extends the {@link Linter.Config} interface, expanding {@link Rules} to include the rules defined in all configurations.
 *
 * @see https://eslint.org/docs/latest/use/configure/configuration-files#configuration-objects
 */
export type Config<R extends RulesConfig = Rules & RulesConfig> = Linter.Config<R>

/**
 * Defines the names of the available ESLint configurations.
 */
export type ConfigNames =
  | '@bfra.me/astro/setup'
  | '@bfra.me/astro/rules'
  | '@bfra.me/command'
  | '@bfra.me/epilogue/cli'
  | '@bfra.me/epilogue/configs'
  | '@bfra.me/epilogue/scripts'
  | '@bfra.me/epilogue/commonjs'
  | '@bfra.me/epilogue/dts'
  | '@bfra.me/epilogue'
  | '@bfra.me/eslint-comments/rules'
  | '@bfra.me/gitignore'
  | '@bfra.me/ignores'
  | '@bfra.me/imports'
  | '@bfra.me/javascript/options'
  | '@bfra.me/javascript/rules'
  | '@bfra.me/jsdoc'
  | '@bfra.me/jsonc/json-schema/plugins'
  | '@bfra.me/jsonc/json-schema/unnamed1'
  | '@bfra.me/jsonc/json-schema'
  | '@bfra.me/jsonc'
  | '@bfra.me/jsx'
  | '@bfra.me/markdown/plugin'
  | '@bfra.me/markdown/processor'
  | '@bfra.me/markdown/parser'
  | '@bfra.me/markdown/disabled'
  | '@bfra.me/markdown/overrides'
  | '@bfra.me/markdown/code-blocks/typescript-javascript'
  | '@bfra.me/markdown/code-blocks/json'
  | '@bfra.me/markdown/code-blocks/yaml'
  | '@bfra.me/nextjs/setup'
  | '@bfra.me/nextjs/rules'
  | '@bfra.me/node'
  | '@bfra.me/package-json/plugins'
  | '@bfra.me/package-json/unnamed1'
  | '@bfra.me/package-json/json-schema/plugins'
  | '@bfra.me/package-json/json-schema'
  | '@bfra.me/perfectionist'
  | '@bfra.me/pnpm/package-json'
  | '@bfra.me/pnpm/pnpm-workspace-yaml'
  | '@bfra.me/prettier'
  | '@bfra.me/prettier/markdown'
  | '@bfra.me/prettier/toml'
  | '@bfra.me/prettier/overrides'
  | '@bfra.me/react/setup'
  | '@bfra.me/react/rules'
  | '@bfra.me/regexp'
  | '@bfra.me/sort/package-json'
  | '@bfra.me/sort/renovate-config'
  | '@bfra.me/renovate-config/json-schema/plugins'
  | '@bfra.me/renovate-config/json-schema'
  | '@bfra.me/sort/tsconfig'
  | '@bfra.me/tsconfig/json-schema/plugins'
  | '@bfra.me/tsconfig/json-schema'
  | '@bfra.me/stylistic'
  | '@bfra.me/toml/plugins'
  | '@bfra.me/toml/unnamed1'
  | '@bfra.me/toml/unnamed2'
  | '@bfra.me/toml/json-schema/plugins'
  | '@bfra.me/toml/json-schema/unnamed1'
  | '@bfra.me/toml/json-schema'
  | '@bfra.me/toml'
  | '@bfra.me/typescript/plugins'
  | '@bfra.me/typescript/parser'
  | '@bfra.me/typescript/type-aware-parser'
  | '@bfra.me/typescript/rules'
  | '@bfra.me/typescript/type-aware-rules'
  | '@bfra.me/typescript/erasable-syntax-only'
  | '@bfra.me/unicorn'
  | '@bfra.me/vitest/plugins'
  | '@bfra.me/vitest'
  | '@bfra.me/yaml/plugins'
  | '@bfra.me/yaml/unnamed1'
  | '@bfra.me/yaml/unnamed2'
  | '@bfra.me/yaml/json-schema/plugins'
  | '@bfra.me/yaml/json-schema/unnamed1'
  | '@bfra.me/yaml/json-schema'
  | '@bfra.me/yaml'
