import { PromptVersion, PromptVersionManager, TestExecution } from './prompt-versioning';
import { PromptAnalytics } from './prompt-analytics';
import { OpenRouterClient } from './openrouter-client';
import { SupportedModel } from './types';
/**
 * Configuration for auto-optimization
 */
export interface AutoOptimizationConfig {
    optimizationModel: SupportedModel;
    targetMetrics: {
        successRate?: {
            target: number;
            weight: number;
        };
        responseTime?: {
            target: number;
            weight: number;
        };
        cost?: {
            target: number;
            weight: number;
        };
        tokenUsage?: {
            target: number;
            weight: number;
        };
    };
    optimizationStrategies: OptimizationStrategy[];
    maxIterations: number;
    minSampleSize: number;
    confidenceThreshold: number;
    enableContinuousOptimization: boolean;
    optimizationInterval: number;
}
/**
 * Different optimization strategies
 */
export type OptimizationStrategy = 'clarity_improvement' | 'conciseness_optimization' | 'specificity_enhancement' | 'instruction_refinement' | 'context_optimization' | 'format_standardization' | 'error_reduction' | 'performance_tuning';
/**
 * Result of an optimization attempt
 */
export interface OptimizationResult {
    originalVersion: PromptVersion;
    optimizedVersion: PromptVersion;
    strategy: OptimizationStrategy;
    changes: {
        description: string;
        reasoning: string;
        expectedImpact: string;
    };
    confidence: number;
    estimatedImprovement: {
        successRate?: number;
        responseTime?: number;
        cost?: number;
        tokenUsage?: number;
    };
    testPlan: {
        sampleSize: number;
        duration: number;
        successCriteria: string[];
    };
}
/**
 * Optimization recommendation
 */
export interface OptimizationRecommendation {
    promptVersionId: string;
    priority: 'low' | 'medium' | 'high' | 'critical';
    strategy: OptimizationStrategy;
    description: string;
    reasoning: string;
    expectedBenefit: string;
    estimatedEffort: 'low' | 'medium' | 'high';
    confidence: number;
    suggestedChanges: string[];
}
/**
 * Auto-Prompt Optimization System
 */
export declare class AutoPromptOptimizer {
    private config;
    private versionManager;
    private analytics;
    private client?;
    private completion?;
    private optimizationHistory;
    constructor(versionManager: PromptVersionManager, analytics: PromptAnalytics, config?: Partial<AutoOptimizationConfig>, client?: OpenRouterClient);
    /**
     * Analyze a prompt version and generate optimization recommendations
     */
    analyzeForOptimization(promptVersionId: string): Promise<OptimizationRecommendation[]>;
    /**
     * Automatically optimize a prompt version using AI
     */
    optimizePrompt(promptVersionId: string, strategy: OptimizationStrategy, customInstructions?: string): Promise<OptimizationResult>;
    /**
     * Run continuous optimization for all active prompt versions
     */
    runContinuousOptimization(): Promise<OptimizationResult[]>;
    /**
     * Get optimization history for a prompt version
     */
    getOptimizationHistory(promptVersionId: string): OptimizationResult[];
    /**
     * Evaluate the success of an optimization
     */
    evaluateOptimization(optimizationResult: OptimizationResult, testExecutions: TestExecution[]): Promise<{
        success: boolean;
        actualImprovement: {
            successRate: number;
            responseTime: number;
            cost: number;
            tokenUsage: number;
        };
        confidence: number;
        recommendation: 'adopt' | 'reject' | 'continue_testing';
    }>;
    private generateRecommendationFromInsight;
    private generateGeneralRecommendations;
    private buildOptimizationPrompt;
    private parseOptimizationResponse;
    private generateSuccessCriteria;
}
//# sourceMappingURL=auto-prompt-optimizer.d.ts.map