/** * 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; /** * Load configuration from .aiwgrc.json file */ loadFromFile(filePath: string): Promise | null>; /** * Load configuration from package.json "aiwg" field */ loadFromPackageJson(pkgPath: string): Promise | null>; /** * Find config file by walking up directory tree */ findConfigFile(startDir: string): Promise | null>; /** * Merge multiple partial configs into one complete config */ merge(configs: Partial[]): 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; } //# sourceMappingURL=config-loader.d.ts.map