import type { TaskContext, FailureType, LearnResult } from "../../types/index.js";
export { FailureClassifier } from "./failure_classifier.js";
/**
 * 自进化引擎 — 从任务执行结果中提取经验知识，写入知识库实现持续改进。
 *
 * 核心流程:
 * - 跳过 passthrough 任务
 * - 从失败中提取决策规则（确定性失败 → 规则升级，范围不足 → 范围模式，可修复 → prompt 优化）
 * - 从成功中提取重复模式
 * - 基于置信度决定知识处理方式:
 *   - confidence < 0.3: 跳过（信息不足）
 *   - 0.3 <= confidence < 0.8: 暂存（等待人工审核）
 *   - confidence >= 0.8: 直接采纳
 * - 持续同模式学习: 每重复 3 次同一模式，置信度 +0.1
 *
 * 机制 5: 知识防漂移自愈 — 定期对比代码库现状与 patterns 文件夹，
 * 若 30% 以上实现偏离既定规范，主动发起"规范同步任务"。
 */
/** 漂移检测结果 */
export interface DriftDetectionResult {
    /** 检测的模式总数 */
    total_patterns: number;
    /** 偏离规范的模式数 */
    drifted_patterns: number;
    /** 偏离率 (0-1) */
    drift_ratio: number;
    /** 是否触发同步任务（偏离率 >= 0.3） */
    sync_required: boolean;
    /** 偏离详情 */
    drift_details: Array<{
        pattern_name: string;
        expected_rule: string;
        detected_violation: string;
        severity: "warning" | "critical";
    }>;
    /** 建议动作 */
    recommendation: string;
    /** 根因分析结果（防死锁: 判断是代码变坏还是业务进化） */
    root_cause_analysis?: {
        /** 分析结论 */
        conclusion: "code_degradation" | "business_evolution" | "unknown";
        /** 判断依据 */
        evidence: string;
        /** 允许更新知识库 */
        allow_pattern_update: boolean;
    };
}
/**
 * 模式漂移检测 — 对比代码实现与知识库模式规则，检测偏离度。
 * 使用静态规则匹配扫描代码库，不依赖 AI。
 * @param patterns - 知识库中的模式条目
 * @param codeFiles - 代码文件内容映射（文件路径 → 文件内容）
 * @returns 漂移检测结果
 */
export declare function detectPatternDrift(patterns: Array<{
    name: string;
    body?: string;
}>, codeFiles: Record<string, string>): DriftDetectionResult;
/** 自进化输入参数 */
export interface EvolverInput {
    taskContext: TaskContext;
    result: "success" | "failure";
    verifyOutput?: {
        build_passed: boolean;
        tests_passed: boolean;
        acceptance_results?: Record<string, boolean>;
    };
    failureType?: FailureType;
    retryCount?: number;
}
/**
 * 从任务执行结果中提取知识并写入知识库。
 * @param input - 进化输入，包含任务上下文、执行结果和验证输出
 * @param projectPath - 项目路径，用于知识文件写入
 * @returns 学习结果，包含是否采纳、置信度、暂存路径等
 */
export declare function evolve(input: EvolverInput, projectPath: string): Promise<LearnResult>;
//# sourceMappingURL=evolver.d.ts.map