/**
 * 配置管理模块
 *
 * 提供统一的配置读取、设置和管理功能
 */
/**
 * 配置接口定义
 */
export interface ConversionConfig {
    /** HTTP服务器配置 */
    httpserver?: {
        port: number;
        host: string;
    };
    /** 虚拟路由器配置 */
    virtualrouter?: {
        inputProtocol?: string;
        outputProtocol?: string;
        providers?: Record<string, ProviderConfig>;
        routing?: {
            default?: string[];
            [key: string]: string[];
        };
    };
    /** 服务工具配置 */
    serverTools?: {
        replace?: Record<string, {
            enabled: boolean;
        }>;
        enabled?: boolean;
    };
    /** 转换配置（V2/V3 版本切换相关） */
    conversion?: {
        /** 默认使用的转换版本 */
        defaultVersion?: 'v2' | 'v3' | 'auto';
        /** 允许附加自定义配置字段 */
        [key: string]: unknown;
    };
}
/**
 * Provider 配置接口
 */
export interface ProviderConfig {
    id: string;
    enabled: boolean;
    type: 'openai' | 'anthropic' | 'responses' | 'gemini' | 'custom';
    baseUrl?: string;
    apiKey?: string[];
    auth?: {
        type: 'apikey' | 'oauth';
        apiKey?: string;
    };
    models?: Record<string, ModelConfig>;
}
/**
 * 模型配置接口
 */
export interface ModelConfig {
    supportsStreaming?: boolean;
    compatibility?: {
        type?: string;
        config?: any;
    };
}
/**
 * 配置管理器类
 */
export declare class ConfigManager {
    private static instance;
    private config;
    private constructor();
    /**
     * 获取单例实例
     */
    static getInstance(): ConfigManager;
    /**
     * 设置配置
     *
     * @param config 要设置的配置
     * @param options 选项
     */
    static setConfig(config: Partial<ConversionConfig>, options?: {
        merge?: boolean;
        validate?: boolean;
        save?: boolean;
        source?: string;
    }): void;
    /**
     * 获取配置
     *
     * @param path 指定配置路径（可选）
     * @returns 配置对象
     */
    static getConfig(path?: string): Promise<ConversionConfig>;
    /**
     * 重新加载配置
     */
    static reloadConfig(): Promise<ConversionConfig>;
    /**
     * 验证配置
     */
    private validateConfig;
    /**
     * 深度合并对象（仅在内存中操作，不做任何持久化）
     */
    private deepMerge;
    /**
     * 获取配置摘要
     */
    static getConfigSummary(): {
        totalProviders: number;
        enabledProviders: string[];
        outputProtocol: string;
        inputProtocol: string;
        routingDefaults: string[];
        hasConversionConfig: boolean;
    };
    /**
     * 获取 provider 配置
     */
    static getProviderConfig(providerName: string): ProviderConfig | null;
    /**
     * 检查 provider 是否可用
     */
    static isProviderEnabled(providerName: string): boolean;
    /**
     * 设置 provider 启用状态
     */
    static setProviderEnabled(providerName: string, enabled: boolean): void;
    /**
    /**
     * 获取输出协议
     */
    static getOutputProtocol(): string;
    /**
     * 设置输出协议
     */
    static setOutputProtocol(protocol: string): void;
    /**
     * 获取输入协议
     */
    static getInputProtocol(): string;
    /**
     * 设置输入协议
     */
    static setInputProtocol(protocol: string): void;
    /**
   * 获取路由配置
     */
    static getRoutingConfig(): any;
    /**
   * 设置路由配置
     */
    static setRoutingConfig(routing: any): void;
    /**
   * 获取 V3 转换配置
     */
    static getConversionConfig(): any;
    /**
    * 设置 V3 转换配置
     */
    static setConversionConfig(conversion: any): void;
}
/**
 * 便捷函数：设置配置
 */
export declare function setConfig(config: Partial<ConversionConfig>, options?: {
    merge?: boolean;
    validate?: boolean;
    save?: boolean;
    source?: string;
}): void;
/**
 * 便捷函数：获取配置
 */
export declare function getConfig(path?: string): Promise<ConversionConfig>;
/**
 * 便捷函数：重新加载配置
 */
export declare function reloadConfig(): Promise<ConversionConfig>;
/**
 * 便捷函数：获取配置摘要
 */
export declare function getConfigSummary(): ReturnType<typeof ConfigManager.getConfigSummary>;
/**
 * 便捷函数：获取 Provider 配置
 */
export declare function getProviderConfig(providerName: string): ProviderConfig | null;
/**
 * 便捷函数：检查 Provider 状态
 */
export declare function isProviderEnabled(providerName: string): boolean;
/**
 * 便捷函数：设置 Provider 状态
 */
export declare function setProviderEnabled(providerName: string, enabled: boolean): void;
/**
 * 便捷函数：获取输出协议
 */
export declare function getOutputProtocol(): string;
/**
 * 便捷函数：设置输出协议
 */
export declare function setOutputProtocol(protocol: string): void;
/**
 * 便捷函数：获取输入协议
 */
export declare function getInputProtocol(): string;
/**
 * 便捷函数：设置输入协议
 */
export declare function setInputProtocol(protocol: string): void;
