/**
 * Auto-Correction Tool
 * 根据历史对比数据自动学习修正规则
 * Project owner: Jason Zhang
 */
import { BaseRequest, BaseResponse } from '@/types';
import { ComparisonAnalysisEngine } from './analysis-engine';
import { CorrectionEngine, CorrectionResult } from './correction-engine';
export interface LearningData {
    patterns: CorrectionPattern[];
    statistics: LearningStatistics;
    rules: LearnedRule[];
    confidence: number;
    lastUpdated: Date;
}
export interface CorrectionPattern {
    id: string;
    type: 'content' | 'structure' | 'tools' | 'metadata' | 'formatting';
    triggerConditions: PatternCondition[];
    correctionAction: CorrectionAction;
    successRate: number;
    frequency: number;
    confidence: number;
    examples: PatternExample[];
}
export interface PatternCondition {
    field: string;
    operator: 'equals' | 'contains' | 'length_gt' | 'length_lt' | 'missing' | 'differs';
    value: any;
    weight: number;
}
export interface CorrectionAction {
    method: string;
    parameters: Record<string, any>;
    expectedImpact: number;
}
export interface PatternExample {
    originalValue: any;
    correctedValue: any;
    context: string;
    success: boolean;
    confidence: number;
}
export interface LearnedRule {
    id: string;
    name: string;
    description: string;
    conditions: RuleCondition[];
    actions: RuleAction[];
    priority: number;
    confidence: number;
    applicableScenarios: string[];
    performance: RulePerformance;
}
export interface RuleCondition {
    type: 'content_similarity' | 'length_ratio' | 'structure_diff' | 'token_ratio' | 'tool_presence';
    threshold: number;
    operator: 'gt' | 'lt' | 'eq' | 'between';
    value: number | [number, number];
}
export interface RuleAction {
    type: 'replace_content' | 'merge_content' | 'fix_structure' | 'correct_tools' | 'normalize_metadata';
    strategy: string;
    parameters: Record<string, any>;
    confidence: number;
}
export interface RulePerformance {
    totalApplications: number;
    successfulApplications: number;
    averageImprovement: number;
    averageConfidence: number;
    lastUsed: Date;
}
export interface LearningStatistics {
    totalComparisons: number;
    totalCorrections: number;
    averageSuccessRate: number;
    patternCount: number;
    ruleCount: number;
    mostCommonIssues: Array<{
        issue: string;
        frequency: number;
    }>;
    improvementTrends: Array<{
        date: Date;
        score: number;
    }>;
}
export interface AutoCorrectionConfig {
    learningEnabled: boolean;
    minimumDataPoints: number;
    confidenceThreshold: number;
    patternDetectionThreshold: number;
    ruleGenerationThreshold: number;
    maxPatternsPerType: number;
    maxRules: number;
    dataStoragePath: string;
    autoSaveInterval: number;
}
export declare class AutoCorrectionTool {
    private config;
    private analysisEngine;
    private correctionEngine;
    private learningData;
    private autoSaveTimer?;
    constructor(analysisEngine: ComparisonAnalysisEngine, correctionEngine: CorrectionEngine, config: AutoCorrectionConfig);
    /**
     * 从历史数据学习并生成修正规则
     */
    learnFromHistory(): Promise<void>;
    /**
     * 应用学习到的规则进行自动修正
     */
    applyAutomaticCorrection(request: BaseRequest, codewhispererResponse: BaseResponse, openaiReference: BaseResponse): Promise<{
        correctedResponse: BaseResponse;
        appliedRules: string[];
        confidence: number;
        improvements: string[];
    }>;
    /**
     * 评估修正效果并更新学习数据
     */
    evaluateAndUpdateLearning(correctionResult: CorrectionResult, actualPerformance: {
        userSatisfaction?: number;
        correctnessScore?: number;
        usabilityScore?: number;
    }): Promise<void>;
    /**
     * 获取修正建议
     */
    getRecommendations(request: BaseRequest, codewhispererResponse: BaseResponse, openaiReference: BaseResponse): Promise<{
        urgentRecommendations: string[];
        improvementSuggestions: string[];
        preventiveMeasures: string[];
        confidence: number;
    }>;
    private detectCorrectionPatterns;
    private generateLearnedRules;
    private generateContentRules;
    private generateStructureRules;
    private generateToolRules;
    private generateMetadataRules;
    private performQuickAnalysis;
    private extractTextContent;
    private extractToolCalls;
    private calculateContentSimilarity;
    private calculateStructuralDifference;
    private shouldApplyRule;
    private shouldApplyPattern;
    private applyRule;
    private applyPattern;
    private patternMatches;
    private getAnalysisValue;
    private evaluateCondition;
    private initializeStatistics;
    private updateLearningStatistics;
    private calculateOverallConfidence;
    private saveLearningData;
    private loadLearningData;
    private startAutoSave;
    /**
     * 清理资源
     */
    destroy(): void;
    /**
     * 获取学习数据统计
     */
    getLearningStatistics(): LearningStatistics;
    /**
     * 获取学习到的模式
     */
    getLearnedPatterns(): CorrectionPattern[];
    /**
     * 获取学习到的规则
     */
    getLearnedRules(): LearnedRule[];
}
//# sourceMappingURL=auto-correction.d.ts.map