import { type MigrationCategory } from "./migration_candidate_validator.js"; export interface BatchProjectInput { project_root: string; task_ids: string[]; } export interface MigrationCandidateEntry { task_id: string; project_root: string; category: MigrationCategory; decision: "APPROVED_MIGRATION"; reason: string; evidence_count: number; estimated_requirements: number; } export interface MigrationRejectedEntry { task_id: string; /** 多项目批次须知道被拒 task 属于哪个项目(spec 最小集 + project_root)。 */ project_root: string; category: MigrationCategory; reason: string; } export interface MigrationBatchPlan { /** 确定性 id(同输入 → 同 id),支撑幂等叙事。 */ batch_id: string; created_at: number; cutoff: number; /** A 类(eligible):可批量迁移。 */ candidates: MigrationCandidateEntry[]; /** B/C/D:须人工(B1)/ 拒绝 / 不迁移。 */ rejected: MigrationRejectedEntry[]; } /** * 构建批量迁移计划(只读)。projects 携带各自待评估 task_ids(发现由 audit 脚本完成)。 * A → candidates(APPROVED_MIGRATION);B/C/D → rejected。 */ export declare function buildMigrationBatchPlan(projects: BatchProjectInput[], cutoff: number): Promise;