export interface ModelProfile {
    modelId: string;
    name: string;
    provider: string;
    costPerToken: number;
    contextWindow: number;
    suitableFor: string[];
    avgLatencyMs: number;
    qualityScore: number;
}
export interface TaskProfile {
    taskType: 'code_gen' | 'code_review' | 'explain' | 'refactor' | 'test_gen' | 'debug' | 'simple_edit';
    complexity: 'low' | 'medium' | 'high';
    estimatedTokens: number;
    language?: string;
}
export interface RoutingDecision {
    recommendedModel: string;
    reason: string;
    estimatedCost: number;
    estimatedLatencyMs: number;
    alternatives: Array<{
        modelId: string;
        cost: number;
        qualityDelta: number;
    }>;
}
export interface CostStats {
    totalCost: number;
    totalTokens: number;
    totalRequests: number;
    perModel: Array<{
        modelId: string;
        requests: number;
        cost: number;
        tokens: number;
    }>;
    savingsEstimate: number;
}
export interface CloudBenchmarkEntry extends BenchmarkEntry {
    id?: number;
}
export declare function getAvailableModels(): ModelProfile[];
export declare function registerCustomModel(model: ModelProfile): void;
export declare function routeTask(task: TaskProfile, budget?: 'balanced' | 'cheapest' | 'best'): RoutingDecision;
export declare function logModelCall(modelId: string, tokens: number, taskType: string): void;
export declare function getCostStats(): CostStats;
export declare function clearCostLog(): void;
export interface BenchmarkEntry {
    modelId: string;
    taskType: string;
    tokensUsed: number;
    latencyMs: number;
    quality: number;
    cost: number;
}
export declare function recordBenchmark(entry: BenchmarkEntry): void;
export declare function getBestModelForTask(taskType: string, prioritize?: 'cost' | 'quality' | 'speed'): {
    modelId: string;
    avgQuality: number;
    avgCost: number;
    avgLatency: number;
    samples: number;
} | null;
export declare function getBenchmarkStats(): {
    totalBenchmarks: number;
    perTask: Array<{
        taskType: string;
        count: number;
        bestModel: string;
    }>;
};
export declare function smartRouteTask(task: TaskProfile): RoutingDecision;
export declare function ensureCostTable(): void;
export declare function recordCloudBenchmark(entry: BenchmarkEntry): void;
export declare function getCloudBestModelForTask(taskType: string, prioritize?: string): object | null;
export declare function getCloudBenchmarkStats(): object;
//# sourceMappingURL=cost-optimizer.d.ts.map