/**
 * Configuration Loader
 *
 * Manages loading, validating, and merging AIWG CLI configurations from multiple sources.
 * Supports .aiwgrc.json, package.json, and command-line overrides.
 */
export interface ValidationConfig {
    enabled: boolean;
    threshold: number;
    context?: 'academic' | 'technical' | 'executive' | 'casual';
    failOnCritical: boolean;
    rules?: string[];
}
export interface OptimizationConfig {
    enabled: boolean;
    autoApply: boolean;
    strategies: string[];
    createBackup: boolean;
}
export interface OutputConfig {
    format: 'text' | 'json' | 'html' | 'junit';
    destination?: string;
    verbose: boolean;
    colors: boolean;
}
export interface WatchConfig {
    enabled: boolean;
    patterns: string[];
    debounce: number;
    ignorePatterns?: string[];
}
export interface HooksConfig {
    preCommit: boolean;
    prePush: boolean;
    hookPath?: string;
}
export interface AiwgConfig {
    version: string;
    validation: ValidationConfig;
    optimization: OptimizationConfig;
    output: OutputConfig;
    watch: WatchConfig;
    hooks: HooksConfig;
}
export interface ConfigValidationResult {
    valid: boolean;
    errors: string[];
    warnings: string[];
}
/**
 * Configuration Loader class
 */
export declare class ConfigLoader {
    private configCache;
    /**
     * Load configuration from file or defaults
     */
    load(configPath?: string): Promise<AiwgConfig>;
    /**
     * Load configuration from .aiwgrc.json file
     */
    loadFromFile(filePath: string): Promise<Partial<AiwgConfig> | null>;
    /**
     * Load configuration from package.json "aiwg" field
     */
    loadFromPackageJson(pkgPath: string): Promise<Partial<AiwgConfig> | null>;
    /**
     * Find config file by walking up directory tree
     */
    findConfigFile(startDir: string): Promise<Partial<AiwgConfig> | null>;
    /**
     * Merge multiple partial configs into one complete config
     */
    merge(configs: Partial<AiwgConfig>[]): AiwgConfig;
    /**
     * Validate configuration object
     */
    validate(config: AiwgConfig): ConfigValidationResult;
    /**
     * Get default configuration
     */
    getDefaults(): AiwgConfig;
    /**
     * Generate example config file content
     */
    generateExample(): string;
    /**
     * Clear cached configuration
     */
    clearCache(): void;
    /**
     * Override specific config values
     */
    override(config: AiwgConfig, overrides: Partial<AiwgConfig>): AiwgConfig;
}
//# sourceMappingURL=config-loader.d.ts.map