export type UpgradePlanItemStatus = "safe_pending" | "manual_required" | "blocked"; export interface UpgradePlanItem { id: string; introducedIn: string; description: string; scope: string; status: UpgradePlanItemStatus; message: string; path?: string; } export interface UpgradePlan { safe_pending: UpgradePlanItem[]; manual_required: UpgradePlanItem[]; blocked: UpgradePlanItem[]; } export type ReleaseUpdateMode = "sync-only" | "upgrade-required" | "manual-required"; export interface Migration { id: string; introducedIn: string; description: string; scope: string; risk: "safe" | "manual"; manualMessage: string; detect(projectRoot: string, root: string, migrationId: string): Promise; apply?(projectRoot: string, root: string, report: MigrationReport): Promise; verify(projectRoot: string, root: string): Promise; } export interface MigrationReport { changed: string[]; skipped: string[]; manualRequired: UpgradePlanItem[]; blocked: UpgradePlanItem[]; } export declare const migrations: Migration[]; export declare function createUpgradePlan(projectRoot: string): Promise; export declare function hasUpgradePlanWork(plan: UpgradePlan): boolean; export declare function updateModeForPlan(plan: UpgradePlan): ReleaseUpdateMode; export declare function formatUpgradePlan(plan: UpgradePlan): string[]; export declare function runMigrations(projectRoot: string, existingPlan?: UpgradePlan): Promise;