/**
 * Provider Comparison System - Main Entry Point
 * 整合对比分析、修正机制和自动化工具
 * Project owner: Jason Zhang
 */
import { BaseRequest, BaseResponse } from '@/types';
import { ComparisonAnalysisEngine, ComparisonResult } from './analysis-engine';
import { CorrectionEngine, CorrectionResult, CorrectionConfig } from './correction-engine';
import { AutoCorrectionTool, AutoCorrectionConfig } from './auto-correction';
export interface ComparisonSystemConfig {
    analysis: {
        enableContentAnalysis: boolean;
        enablePerformanceAnalysis: boolean;
        enableStructuralAnalysis: boolean;
        qualityThresholds: {
            critical: number;
            major: number;
            minor: number;
        };
    };
    correction: CorrectionConfig;
    autoCorrection: AutoCorrectionConfig;
    system: {
        enableRealTimeCorrection: boolean;
        enableLearning: boolean;
        autoSaveResults: boolean;
        resultStoragePath: string;
        maxConcurrentComparisons: number;
    };
}
export interface ComparisonSystemResult {
    comparisonAnalysis: ComparisonResult;
    correctionResult?: CorrectionResult;
    autoCorrection?: {
        correctedResponse: BaseResponse;
        appliedRules: string[];
        confidence: number;
        improvements: string[];
    };
    systemMetrics: {
        totalProcessingTime: number;
        analysisTime: number;
        correctionTime: number;
        autoLearningTime: number;
    };
    recommendations: {
        immediate: string[];
        longTerm: string[];
        technical: string[];
    };
}
export declare class ProviderComparisonSystem {
    private config;
    private analysisEngine;
    private correctionEngine;
    private autoCorrection;
    private activeComparisons;
    constructor(config: ComparisonSystemConfig);
    /**
     * 执行完整的提供商对比分析
     */
    compareProviders(request: BaseRequest, codewhispererResponse: BaseResponse, openaiResponse: BaseResponse, options?: {
        enableCorrection?: boolean;
        enableAutoCorrection?: boolean;
        saveResults?: boolean;
    }): Promise<ComparisonSystemResult>;
    /**
     * 批量对比多个响应对
     */
    batchCompareProviders(comparisons: Array<{
        request: BaseRequest;
        codewhispererResponse: BaseResponse;
        openaiResponse: BaseResponse;
    }>, options?: {
        enableCorrection?: boolean;
        enableAutoCorrection?: boolean;
        saveResults?: boolean;
        maxConcurrency?: number;
    }): Promise<ComparisonSystemResult[]>;
    /**
     * 获取实时修正建议
     */
    getRealtimeRecommendations(request: BaseRequest, codewhispererResponse: BaseResponse, openaiReference: BaseResponse): Promise<{
        urgentRecommendations: string[];
        improvementSuggestions: string[];
        preventiveMeasures: string[];
        confidence: number;
    }>;
    /**
     * 应用快速自动修正
     */
    applyQuickCorrection(request: BaseRequest, codewhispererResponse: BaseResponse, openaiReference: BaseResponse): Promise<{
        correctedResponse: BaseResponse;
        appliedRules: string[];
        confidence: number;
        improvements: string[];
    }>;
    /**
     * 学习和更新修正规则
     */
    learnAndUpdate(): Promise<void>;
    /**
     * 获取系统统计信息
     */
    getSystemStatistics(): {
        analysis: ReturnType<ComparisonAnalysisEngine['getQualityStatistics']>;
        correction: ReturnType<CorrectionEngine['getCorrectionStatistics']>;
        learning: ReturnType<AutoCorrectionTool['getLearningStatistics']>;
        system: {
            activeComparisons: number;
            totalProcessed: number;
            averageProcessingTime: number;
        };
    };
    /**
     * 导出学习数据
     */
    exportLearningData(): Promise<{
        patterns: ReturnType<AutoCorrectionTool['getLearnedPatterns']>;
        rules: ReturnType<AutoCorrectionTool['getLearnedRules']>;
        statistics: ReturnType<AutoCorrectionTool['getLearningStatistics']>;
        exportTime: Date;
    }>;
    /**
     * 清理资源
     */
    destroy(): void;
    private executeComparison;
    private generateSystemRecommendations;
    private saveComparisonResult;
    private ensureStorageDirectories;
}
export declare function createComparisonSystem(config: ComparisonSystemConfig): ProviderComparisonSystem;
export declare const defaultComparisonConfig: ComparisonSystemConfig;
export type { ComparisonResult, ResponseDifference, CorrectionRecommendation } from './analysis-engine';
export type { CorrectionResult, AppliedCorrection, CorrectionMetrics } from './correction-engine';
//# sourceMappingURL=index.d.ts.map