/**
 * SpecVerse AI Configuration System
 * Loads and manages .specverse configuration files for providers and workflows.
 */
import type { LLMProviderConfig } from '../providers/llm-provider.js';
export interface SpecVerseConfig {
    version?: string;
    providers?: {
        [name: string]: LLMProviderConfig & {
            type: 'openai' | 'anthropic' | 'azure' | 'local' | 'interactive';
            enabled?: boolean;
            default?: boolean;
            interface?: 'chatgpt' | 'claude' | 'gemini' | 'generic';
            outputFile?: string;
            waitForInput?: boolean;
            formatInstructions?: boolean;
        };
    };
    defaults?: {
        provider?: string;
        model?: string;
        temperature?: number;
        max_tokens?: number;
    };
    prompts?: {
        directory?: string;
        custom?: {
            [name: string]: string;
        };
    };
    outputs?: {
        directory?: string;
        format?: 'yaml' | 'json';
        diagrams?: {
            enabled?: boolean;
            types?: string[];
            output?: string;
        };
    };
    features?: {
        inference?: boolean;
        streaming?: boolean;
        caching?: boolean;
    };
}
export declare class ConfigLoader {
    private static readonly DEFAULT_CONFIG_NAMES;
    private config;
    private configPath?;
    loadConfig(searchPath?: string): Promise<SpecVerseConfig>;
    load(searchPath?: string): SpecVerseConfig;
    getConfig(): SpecVerseConfig;
    getConfigPath(): string | undefined;
    getProviderConfig(name?: string): (LLMProviderConfig & {
        type: string;
    }) | undefined;
    getEnabledProviders(): Array<{
        name: string;
        config: LLMProviderConfig & {
            type: string;
        };
    }>;
    private findConfigFile;
    private expandEnvironmentVariables;
    private validateConfig;
    private applyEnvironmentOverrides;
    private getDefaultConfig;
    private getDefaultModelForType;
}
export declare const configLoader: ConfigLoader;
//# sourceMappingURL=index.d.ts.map