/** * Model Configuration Loader * Loads and merges model configurations from multiple sources with proper precedence * * @implements @.aiwg/architecture/ADR-015-enhanced-model-selection.md * @architecture @.aiwg/architecture/enhanced-model-selection-design.md */ import type { ModelConfigV1, UserProjectConfig, MergedModelConfig, ProviderDefinition } from './types.js'; /** * Configuration file locations */ export interface ConfigLocations { aiwgDefault: string; userConfig: string; projectConfig: string; } /** * Loads and merges model configurations */ export declare class ConfigLoader { private cache; private readonly locations; constructor(projectPath?: string); /** * Load and merge all configurations * Precedence: project > user > AIWG default */ load(): Promise; /** * Load AIWG default configuration */ private loadAiwgDefault; /** * Load user configuration (optional) */ private loadUserConfig; /** * Load project configuration (optional) */ private loadProjectConfig; /** * Merge configurations with proper precedence */ private merge; /** * Deep clone providers to avoid mutation */ private deepCloneProviders; /** * Load v1 config for backwards compatibility */ loadV1Config(path: string): Promise; /** * Convert v1 config to v2 compatible structure */ convertV1ToV2(_v1Config: ModelConfigV1): UserProjectConfig; /** * Resolve provider inheritance */ resolveProviderInheritance(provider: ProviderDefinition, providers: { [provider: string]: ProviderDefinition; }): ProviderDefinition; /** * Clear cache (useful for testing) */ clearCache(): void; /** * Get configuration file locations */ getLocations(): ConfigLocations; } //# sourceMappingURL=config-loader.d.ts.map