export type MigrationCategory = "A" | "B" | "C" | "D"; export interface MigrationCandidateResult { eligible: boolean; category: MigrationCategory; reasons: string[]; /** 已交付产物数(passed artifact_structure + run 绑定,验证通过)。 */ evidence_count: number; /** 该 task 迁移将生成的 RequirementContract 数(A=1;其余=0)。 */ estimated_requirements: number; } /** * 只读验证 migration 候选资格。 * A = done + 前 cutoff + 0 req + 有 delivered evidence → eligible * B = active + 前 cutoff + 0 req + 有 evidence → 须人工确认(REQUIRE_MANUAL_REQUIREMENT) * C = 后 cutoff(新项目)/ 已迁移 / 已有 req / 无 evidence → reject * D = cancelled 等其他状态 → 不迁移 */ export declare function validateMigrationCandidate(taskId: string, projectRoot: string, cutoff: number): Promise;