import type { ProviderModelConfig } from "../types/index.js";
/**
 * Dynamic provider configurations for evaluation
 * Now uses configurable system instead of hardcoded values
 */
export declare const EVALUATION_PROVIDER_CONFIGS: Record<string, ProviderModelConfig>;
/**
 * Get provider configuration by name
 * Now uses the configurable system
 */
export declare function getProviderConfig(providerName: string): ProviderModelConfig | null;
/**
 * Get all available providers with required API keys present
 * Now uses the configurable system
 */
export declare function getAvailableProviders(): ProviderModelConfig[];
/**
 * Sort providers by preference (cost, speed, quality)
 */
export declare function sortProvidersByPreference(providers: ProviderModelConfig[], preferCheap?: boolean): ProviderModelConfig[];
/**
 * Estimate cost for a specific provider and token usage
 * Now uses the configurable system
 */
export declare function estimateProviderCost(providerName: string, input: number, output: number): number;
/**
 * Check if a provider is available (has required API keys)
 * Now uses the configurable system
 */
export declare function isProviderAvailable(providerName: string): boolean;
/**
 * Get the best available provider based on preference
 */
export declare function getBestAvailableProvider(preferCheap?: boolean): ProviderModelConfig | null;
/**
 Record actual provider performance for optimization
 */
export declare function recordProviderPerformanceFromMetrics(providerName: string, metrics: {
    responseTime: number;
    tokensGenerated: number;
    cost: number;
    success: boolean;
}): void;
/**
 * Get performance-optimized provider based on real metrics
 */
export declare function getPerformanceOptimizedProvider(priority?: "speed" | "cost" | "reliability"): ProviderModelConfig | null;
export declare function getProviderPerformanceAnalytics(): Record<string, {
    avgResponseTime: number;
    successRate: number;
    tokenThroughput: number;
    costEfficiency: number;
    recommendation: string;
    sampleCount: number;
}>;
/**
 * Reset performance metrics for a provider or all providers.
 * @param providerName - (Optional) The name of the provider to reset. If omitted, resets all providers.
 */
export declare function resetProviderMetrics(providerName?: string): void;
