import type { MigrationChecklistItem, MigrationChecklistOverallStatus, MigrationChecklistStatus } from "@superblocksteam/library-shared/types";
export declare const MIGRATION_CHECKLIST_FILE = "migration-checklist.json";
export declare const MIGRATION_CHECKLIST_VERSION = 1;
export type { MigrationChecklistItem };
export type ChecklistStatus = MigrationChecklistStatus;
export interface MigrationChecklistState {
    version: typeof MIGRATION_CHECKLIST_VERSION;
    overallStatus: MigrationChecklistOverallStatus;
    items: MigrationChecklistItem[];
    lastUpdated: string;
}
export declare function isMigrationChecklistActive(appRootDirPath: string): Promise<boolean>;
export declare function readMigrationChecklist(appRootDirPath: string): Promise<MigrationChecklistState | null>;
export declare function seedMigrationChecklist(args: {
    appRootDirPath: string;
    apiChecklist: Array<{
        name: string;
        stubPath: string;
    }>;
}): Promise<MigrationChecklistState>;
export declare function addMigrationChecklistItem(args: {
    appRootDirPath: string;
    content: string;
    status?: ChecklistStatus;
    origin?: MigrationChecklistItem["origin"];
}): Promise<{
    state: MigrationChecklistState;
    item: MigrationChecklistItem;
}>;
export declare function updateMigrationChecklistItem(args: {
    appRootDirPath: string;
    itemId: string;
    content?: string;
    status?: ChecklistStatus;
    failureReason?: string;
}): Promise<{
    state: MigrationChecklistState;
    item: MigrationChecklistItem;
}>;
/**
 * Flip every `seed_api` item currently in `failed` state back to
 * `pending`, bump its `attemptCount`, and preserve the prior
 * `failureReason` as `lastFailureReason` so the retry prompt can carry
 * it. Used by `/sb-migration-retry-unresolved` to let the user trigger
 * another pass once the auto-retry budget has been spent.
 *
 * Unlike `updateMigrationChecklistItem` this writes directly without
 * going through the auto-retry transform — the user has already
 * consented to an additional attempt, so budget enforcement doesn't
 * apply.
 */
export declare function retryFailedSeedApiItems(appRootDirPath: string): Promise<{
    state: MigrationChecklistState;
    retriedCount: number;
}>;
export declare function getMigrationChecklistPath(appRootDirPath: string): string;
export declare function markMigrationChecklistCompleted(args: {
    appRootDirPath: string;
}): Promise<MigrationChecklistState>;
//# sourceMappingURL=migration-checklist.d.ts.map