import { z } from 'zod';
export declare const SessionHandoffPhaseSchema: z.ZodEnum<{
    preparing: "preparing";
    negotiating_transport: "negotiating_transport";
    staging_target: "staging_target";
    cutover: "cutover";
    transferring: "transferring";
    importing: "importing";
    resuming: "resuming";
    finalizing: "finalizing";
}>;
export type SessionHandoffPhase = z.infer<typeof SessionHandoffPhaseSchema>;
export declare const SessionHandoffStatusCodeSchema: z.ZodEnum<{
    failed: "failed";
    pending: "pending";
    ready_for_cutover: "ready_for_cutover";
    in_progress: "in_progress";
    awaiting_recovery: "awaiting_recovery";
    completed: "completed";
    aborted: "aborted";
}>;
export type SessionHandoffStatusCode = z.infer<typeof SessionHandoffStatusCodeSchema>;
export declare const SessionHandoffProgressCheckpointSchema: z.ZodEnum<{
    plan: "plan";
    scan_source: "scan_source";
    transfer_blobs: "transfer_blobs";
    stage_target: "stage_target";
    apply: "apply";
    import_session: "import_session";
    finalize: "finalize";
}>;
export type SessionHandoffProgressCheckpoint = z.infer<typeof SessionHandoffProgressCheckpointSchema>;
export declare const SESSION_HANDOFF_PROGRESS_FULL_TIMELINE: readonly ["plan", "transfer_blobs", "stage_target", "apply", "import_session", "finalize"];
export declare const SESSION_HANDOFF_PROGRESS_FULL_TIMELINE_WITH_SOURCE_SCAN: readonly ["scan_source", "plan", "transfer_blobs", "stage_target", "apply", "import_session", "finalize"];
export declare const SESSION_HANDOFF_PROGRESS_MINIMAL_TIMELINE: readonly ["stage_target", "import_session", "finalize"];
export declare function resolveSessionHandoffProgressTimeline(checkpoint: SessionHandoffProgressCheckpoint | null | undefined): readonly SessionHandoffProgressCheckpoint[];
export declare const SessionHandoffProgressWarningCodeSchema: z.ZodEnum<{
    blocking_divergence_detected: "blocking_divergence_detected";
    problematic_source_entries: "problematic_source_entries";
    resumed_existing_job: "resumed_existing_job";
}>;
export type SessionHandoffProgressWarningCode = z.infer<typeof SessionHandoffProgressWarningCodeSchema>;
export declare const SessionHandoffProgressSchema: z.ZodObject<{
    updatedAtMs: z.ZodNumber;
    checkpoint: z.ZodEnum<{
        plan: "plan";
        scan_source: "scan_source";
        transfer_blobs: "transfer_blobs";
        stage_target: "stage_target";
        apply: "apply";
        import_session: "import_session";
        finalize: "finalize";
    }>;
    planned: z.ZodObject<{
        totalFiles: z.ZodOptional<z.ZodNumber>;
        totalBytes: z.ZodOptional<z.ZodNumber>;
        added: z.ZodOptional<z.ZodNumber>;
        changed: z.ZodOptional<z.ZodNumber>;
        removed: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>;
    transferred: z.ZodObject<{
        files: z.ZodOptional<z.ZodNumber>;
        bytes: z.ZodOptional<z.ZodNumber>;
        blobs: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>;
    applied: z.ZodOptional<z.ZodObject<{
        files: z.ZodOptional<z.ZodNumber>;
        bytes: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
    remaining: z.ZodOptional<z.ZodObject<{
        files: z.ZodOptional<z.ZodNumber>;
        bytes: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
    current: z.ZodOptional<z.ZodObject<{
        relativePath: z.ZodOptional<z.ZodString>;
        digest: z.ZodOptional<z.ZodString>;
        phaseDetail: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>;
    resumable: z.ZodBoolean;
    warnings: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodEnum<{
        blocking_divergence_detected: "blocking_divergence_detected";
        problematic_source_entries: "problematic_source_entries";
        resumed_existing_job: "resumed_existing_job";
    }>>>>;
}, z.core.$strict>;
export type SessionHandoffProgress = z.infer<typeof SessionHandoffProgressSchema>;
export declare const SessionHandoffWorkspacePreflightSummarySchema: z.ZodObject<{
    addedPathsCount: z.ZodNumber;
    changedPathsCount: z.ZodNumber;
    removedPathsCount: z.ZodNumber;
    totalBytes: z.ZodOptional<z.ZodNumber>;
}, z.core.$strict>;
export type SessionHandoffWorkspacePreflightSummary = z.infer<typeof SessionHandoffWorkspacePreflightSummarySchema>;
export declare const SessionHandoffStatusSchema: z.ZodObject<{
    handoffId: z.ZodString;
    status: z.ZodEnum<{
        failed: "failed";
        pending: "pending";
        ready_for_cutover: "ready_for_cutover";
        in_progress: "in_progress";
        awaiting_recovery: "awaiting_recovery";
        completed: "completed";
        aborted: "aborted";
    }>;
    phase: z.ZodEnum<{
        preparing: "preparing";
        negotiating_transport: "negotiating_transport";
        staging_target: "staging_target";
        cutover: "cutover";
        transferring: "transferring";
        importing: "importing";
        resuming: "resuming";
        finalizing: "finalizing";
    }>;
    jobId: z.ZodOptional<z.ZodString>;
    progress: z.ZodOptional<z.ZodObject<{
        updatedAtMs: z.ZodNumber;
        checkpoint: z.ZodEnum<{
            plan: "plan";
            scan_source: "scan_source";
            transfer_blobs: "transfer_blobs";
            stage_target: "stage_target";
            apply: "apply";
            import_session: "import_session";
            finalize: "finalize";
        }>;
        planned: z.ZodObject<{
            totalFiles: z.ZodOptional<z.ZodNumber>;
            totalBytes: z.ZodOptional<z.ZodNumber>;
            added: z.ZodOptional<z.ZodNumber>;
            changed: z.ZodOptional<z.ZodNumber>;
            removed: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>;
        transferred: z.ZodObject<{
            files: z.ZodOptional<z.ZodNumber>;
            bytes: z.ZodOptional<z.ZodNumber>;
            blobs: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>;
        applied: z.ZodOptional<z.ZodObject<{
            files: z.ZodOptional<z.ZodNumber>;
            bytes: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>;
        remaining: z.ZodOptional<z.ZodObject<{
            files: z.ZodOptional<z.ZodNumber>;
            bytes: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strict>>;
        current: z.ZodOptional<z.ZodObject<{
            relativePath: z.ZodOptional<z.ZodString>;
            digest: z.ZodOptional<z.ZodString>;
            phaseDetail: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>>;
        resumable: z.ZodBoolean;
        warnings: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodEnum<{
            blocking_divergence_detected: "blocking_divergence_detected";
            problematic_source_entries: "problematic_source_entries";
            resumed_existing_job: "resumed_existing_job";
        }>>>>;
    }, z.core.$strict>>;
    workspacePreflightSummary: z.ZodOptional<z.ZodObject<{
        addedPathsCount: z.ZodNumber;
        changedPathsCount: z.ZodNumber;
        removedPathsCount: z.ZodNumber;
        totalBytes: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>;
    transportStrategy: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
        direct_peer: "direct_peer";
        server_routed_stream: "server_routed_stream";
    }>>>;
    recoveryActions: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodEnum<{
        restart_on_source: "restart_on_source";
        keep_stopped: "keep_stopped";
    }>>>>;
}, z.core.$strict>;
export type SessionHandoffStatus = z.infer<typeof SessionHandoffStatusSchema>;
//# sourceMappingURL=handoffStatus.d.ts.map