import { Linter } from 'eslint';

/**
 * @fileoverview Shared types for ESLint Core.
 */

/**
 * The human readable severity level used in a configuration.
 */
type SeverityName = "off" | "warn" | "error";
/**
 * The numeric severity level for a rule.
 *
 * - `0` means off.
 * - `1` means warn.
 * - `2` means error.
 */
type SeverityLevel = 0 | 1 | 2;
/**
 * The severity of a rule in a configuration.
 */
type Severity = SeverityName | SeverityLevel;
/**
 * The configuration for a rule.
 */
type RuleConfig<RuleOptions extends unknown[] = unknown[]> = Severity | [Severity, ...Partial<RuleOptions>];
/**
 * A collection of rules and their configurations.
 */
interface RulesConfig {
    [key: string]: RuleConfig;
}

declare const config: Linter.Config<RulesConfig>[];

export { config as default };
