/**
 * RecipeRelevanceAuditor — 基于代码证据验证 Recipe 当前相关性
 *
 * Rescan 时主动触发，检查每个保留 Recipe 的代码证据是否仍然存在：
 *   1. 触发模式匹配 (trigger 引用的文件类型/路径模式是否有匹配)
 *   2. 代码符号存活 (content.pattern 引用的类名/函数名是否在 AST 中)
 *   3. 依赖关系完整 (涉及模块依赖是否在依赖图中)
 *   4. 源代码文件存活 (reasoning.sources + content.codeChanges 的文件是否存在)
 *
 * 评分后驱动快速衰退：
 *   - healthy (80-100): 无操作
 *   - watch (60-79): 报告警告
 *   - decay (40-59): active → decaying (7d grace)
 *   - severe (20-39): active → decaying (3d grace)
 *   - dead (0-19): active → deprecated (immediate)
 *
 * 支持 Category 权重豁免：架构/规范类 Recipe 侧重触发模式而非具体符号。
 *
 * @module service/evolution/RecipeRelevanceAuditor
 */
import type { ProposalRepository } from '../../repository/evolution/ProposalRepository.js';
import type KnowledgeRepositoryImpl from '../../repository/knowledge/KnowledgeRepository.impl.js';
/** Logger 接口 */
interface AuditorLogger {
    info(msg: string, meta?: Record<string, unknown>): void;
    warn(msg: string, meta?: Record<string, unknown>): void;
}
/** 知识条目快照 (来自 CleanupService.snapshotRecipes) */
export interface RecipeSnapshotEntry {
    id: string;
    title: string;
    trigger: string;
    category: string;
    dimensionId?: string;
    sourceFile?: string;
    lifecycle: string;
}
/** Phase 1-4 分析数据 */
export interface AnalysisData {
    /** 项目所有文件的相对路径 */
    fileList: string[];
    /** AST 解析的代码实体 (类名/函数名/协议名等) */
    codeEntities: Array<{
        name: string;
        kind?: string;
        file?: string;
    }>;
    /** 依赖关系图 */
    dependencyGraph: Array<{
        from: string;
        to: string;
    }>;
}
/** 单个 Recipe 的审计结果 */
export interface RelevanceAuditResult {
    recipeId: string;
    title: string;
    relevanceScore: number;
    verdict: 'healthy' | 'watch' | 'decay' | 'severe' | 'dead';
    evidence: {
        triggerStillMatches: boolean;
        symbolsAlive: number;
        depsIntact: boolean;
        codeFilesExist: number;
    };
    decayReasons: string[];
}
/** 审计汇总 */
export interface RelevanceAuditSummary {
    totalAudited: number;
    healthy: number;
    watch: number;
    decay: number;
    severe: number;
    dead: number;
    results: RelevanceAuditResult[];
    proposalsCreated: number;
    immediateDeprecated: number;
}
export declare class RecipeRelevanceAuditor {
    #private;
    constructor(opts: {
        knowledgeRepo: KnowledgeRepositoryImpl;
        proposalRepo?: ProposalRepository;
        logger?: AuditorLogger;
    });
    /**
     * 审计所有保留 Recipe 的代码证据
     */
    audit(recipes: RecipeSnapshotEntry[], analysisData: AnalysisData): Promise<RelevanceAuditSummary>;
}
export {};
