/**
 * 动态模型配置管理器
 * 集成模型发现系统并管理模型配置更新
 */
import { ProviderConfig } from '@/types';
import { DiscoveryResult } from './dynamic-model-discovery';
export interface ModelConfig {
    id: string;
    name: string;
    description?: string;
    capabilities: {
        text: boolean;
        vision: boolean;
        tools: boolean;
        streaming: boolean;
    };
    isAvailable: boolean;
    lastChecked: number;
    responseTime: number;
    category: 'default' | 'background' | 'thinking' | 'longcontext' | 'search';
    priority: number;
}
export interface ProviderModelConfig {
    providerId: string;
    models: ModelConfig[];
    lastUpdated: number;
    isHealthy: boolean;
}
export interface ModelConfigManagerConfig {
    autoDiscovery: boolean;
    discoveryInterval: number;
    maxModelsPerProvider: number;
    testRetries: number;
    testTimeout: number;
    enableCaching: boolean;
    cacheExpiry: number;
}
export interface ModelUpdateEvent {
    providerId: string;
    type: 'model_added' | 'model_removed' | 'model_became_available' | 'model_became_unavailable';
    modelId: string;
    timestamp: number;
    details?: any;
}
/**
 * 动态模型配置管理器
 */
export declare class DynamicModelConfigManager {
    private config;
    private discoveries;
    private providerConfigs;
    private updateListeners;
    private discoveryIntervalId?;
    constructor(config: ModelConfigManagerConfig);
    /**
     * 注册提供商
     */
    registerProvider(providerId: string, providerConfig: ProviderConfig): Promise<void>;
    /**
     * 注销提供商
     */
    unregisterProvider(providerId: string): void;
    /**
     * 手动触发提供商模型发现
     */
    discoverProviderModels(providerId: string): Promise<DiscoveryResult>;
    /**
     * 测试特定模型可用性
     */
    testModelAvailability(providerId: string, modelId: string): Promise<boolean>;
    /**
     * 获取提供商的模型配置
     */
    getProviderModels(providerId: string): ModelConfig[];
    /**
     * 获取所有提供商的模型配置
     */
    getAllModels(): ModelConfig[];
    /**
     * 获取可用的模型（按类别筛选）
     */
    getAvailableModels(category?: string): ModelConfig[];
    /**
     * 获取模型配置
     */
    getModelConfig(providerId: string, modelId: string): ModelConfig | undefined;
    /**
     * 开始自动发现循环
     */
    startAutoDiscovery(): void;
    /**
     * 停止自动发现循环
     */
    stopAutoDiscovery(): void;
    /**
     * 添加模型更新监听器
     */
    addModelUpdateListener(listener: (event: ModelUpdateEvent) => void): void;
    /**
     * 移除模型更新监听器
     */
    removeModelUpdateListener(listener: (event: ModelUpdateEvent) => void): void;
    /**
     * 获取管理器状态
     */
    getStatus(): {
        registeredProviders: string[];
        totalModels: number;
        availableModels: number;
        isAutoDiscoveryRunning: boolean;
        cacheStats: any[];
        lastUpdateTime: number;
    };
    /**
     * 清除所有缓存
     */
    clearAllCaches(): void;
    /**
     * 自动发现循环
     */
    private runAutoDiscoveryCycle;
    /**
     * 更新提供商模型配置
     */
    private updateProviderModelConfig;
    /**
     * 从发现结果创建模型配置
     */
    private createModelConfigFromDiscovery;
    /**
     * 推断模型类别
     */
    private inferModelCategory;
    /**
     * 推断模型优先级
     */
    private inferModelPriority;
    /**
     * 通知模型更新监听器
     */
    private notifyModelUpdateListeners;
    /**
     * 通知单个模型更新
     */
    private notifySingleModelUpdate;
    /**
     * 延迟函数
     */
    private delay;
}
/**
 * 工厂函数创建动态模型配置管理器
 */
export declare function createDynamicModelConfigManager(config: ModelConfigManagerConfig): DynamicModelConfigManager;
/**
 * 默认配置
 */
export declare const DEFAULT_MODEL_CONFIG_MANAGER_CONFIG: ModelConfigManagerConfig;
//# sourceMappingURL=dynamic-model-config-manager.d.ts.map