/**
 * 动态模型发现系统
 * 通过API获取模型列表并验证可用性
 */
import { ProviderConfig } from '@/types';
export interface ModelInfo {
    id: string;
    name: string;
    description?: string;
    created?: number;
    owned_by?: string;
    capabilities?: {
        text: boolean;
        vision: boolean;
        tools: boolean;
        streaming: boolean;
    };
    pricing?: {
        prompt: number;
        completion: number;
    };
}
export interface ModelAvailabilityResult {
    modelId: string;
    isAvailable: boolean;
    responseTime: number;
    error?: string;
    statusCode?: number;
    testTimestamp: number;
    retryCount: number;
}
export interface ModelDiscoveryConfig {
    provider: ProviderConfig;
    providerId: string;
    maxRetries: number;
    retryDelay: number;
    requestTimeout: number;
    testPrompt: string;
    maxTokens: number;
}
export interface DiscoveryResult {
    providerId: string;
    totalModels: number;
    availableModels: string[];
    unavailableModels: string[];
    averageResponseTime: number;
    discoveryTimestamp: number;
    errors: string[];
}
/**
 * 模型发现和验证核心类
 */
export declare class DynamicModelDiscovery {
    private config;
    private cache;
    private availabilityCache;
    private cacheExpiry;
    private readonly CACHE_DURATION;
    constructor(config: ModelDiscoveryConfig);
    /**
     * 获取可用的模型列表
     */
    fetchAvailableModels(): Promise<ModelInfo[]>;
    /**
     * 从提供商API获取模型列表
     */
    private fetchModelsFromAPI;
    /**
     * 获取OpenAI兼容的模型列表
     */
    private fetchOpenAICompatibleModels;
    /**
     * 获取Anthropic模型列表
     */
    private fetchAnthropicModels;
    /**
     * 获取Gemini模型列表
     */
    private fetchGeminiModels;
    /**
     * 测试模型可用性（多次测试避免流控误判）
     */
    testModelAvailability(modelId: string, testCount?: number): Promise<ModelAvailabilityResult>;
    /**
     * 分析测试结果，避免流控误判
     */
    private analyzeTestResults;
    /**
     * 执行完整的模型发现流程
     */
    discoverModels(): Promise<DiscoveryResult>;
    /**
     * 发送测试请求
     */
    private sendTestRequest;
    /**
     * 获取模型列表端点
     */
    private getModelsEndpoint;
    /**
     * 获取聊天端点
     */
    private getChatEndpoint;
    /**
     * 获取认证头
     */
    private getAuthHeaders;
    /**
     * 获取API密钥
     */
    private getAPIKey;
    /**
     * 推断模型能力
     */
    private inferCapabilities;
    /**
     * 获取默认模型列表
     */
    private getDefaultModels;
    /**
     * 检查缓存是否有效
     */
    private isCacheValid;
    /**
     * 延迟函数
     */
    private delay;
    /**
     * 清除缓存
     */
    clearCache(): void;
    /**
     * 获取缓存统计
     */
    getCacheStats(): {
        modelCacheSize: number;
        availabilityCacheSize: number;
        cacheKeys: string[];
    };
}
/**
 * 工厂函数创建动态模型发现实例
 */
export declare function createDynamicModelDiscovery(config: ModelDiscoveryConfig): DynamicModelDiscovery;
//# sourceMappingURL=dynamic-model-discovery.d.ts.map