import { Severity } from './Severity.js';
export interface RuleConfig {
    enabled: boolean;
    severity?: 'error' | 'warning' | 'info';
    options?: Record<string, unknown>;
}
export interface PluginConfig {
    name: string;
    enabled: boolean;
    options?: Record<string, unknown>;
}
export interface CclintConfig {
    rules: {
        'file-size'?: RuleConfig & {
            options?: {
                maxSize?: number;
            };
        };
        structure?: RuleConfig & {
            options?: {
                requiredSections?: string[];
            };
        };
        content?: RuleConfig & {
            options?: {
                requiredPatterns?: string[];
            };
        };
        format?: RuleConfig;
        'code-blocks'?: RuleConfig & {
            options?: {
                languages?: string[];
                strict?: boolean;
            };
        };
        'skill-structure'?: RuleConfig & {
            options?: {
                requireDescription?: boolean;
                maxDescriptionLength?: number;
            };
        };
        'subagent-structure'?: RuleConfig & {
            options?: {
                allowDangerousTools?: boolean;
            };
        };
        'hook-configuration'?: RuleConfig & {
            options?: {
                dangerousCommands?: string[];
            };
        };
        [key: string]: RuleConfig | undefined;
    };
    plugins?: PluginConfig[];
    /**
     * One or more built-in preset names to inherit configuration from, applied
     * left-to-right before the user's own config (defaults ← preset(s) ← user).
     * See {@link file://./presets.ts} for the available presets.
     */
    extends?: string | string[];
    ignore?: string[];
}
export declare const defaultConfig: CclintConfig;
/**
 * Build the per-rule severity overrides the engine applies, from a resolved
 * config. A rule with a configured `severity` has all its violations emitted
 * at that level (the standard linter model). Shared by every entry point so
 * `config.rules.<id>.severity` behaves identically via CLI, MCP, and Action.
 */
export declare function buildSeverityOverrides(config: CclintConfig): Map<string, Severity>;
//# sourceMappingURL=Config.d.ts.map