export declare const MUTATION_CHECKPOINT_PHASE_VALUES: readonly ["pending", "captured", "failed", "restored"];
export type MutationCheckpointPhase = (typeof MUTATION_CHECKPOINT_PHASE_VALUES)[number];
export declare const MUTATION_CHECKPOINT_ENTRY_KIND_VALUES: readonly ["file", "directory", "missing"];
export type MutationCheckpointEntryKind = (typeof MUTATION_CHECKPOINT_ENTRY_KIND_VALUES)[number];
export declare const MUTATION_CHECKPOINT_BACKEND_VALUES: readonly ["metadata-only", "workspace-copy", "shadow-git"];
export type MutationCheckpointBackend = (typeof MUTATION_CHECKPOINT_BACKEND_VALUES)[number];
export interface MutationCheckpointSnapshotEntryContract {
    relativePath: string;
    kind: MutationCheckpointEntryKind;
    snapshotSha256?: string;
}
export interface MutationCheckpointContract {
    checkpointId: string;
    runId: string;
    toolCallId?: string;
    sessionId?: string;
    toolName: string;
    actionFingerprint?: string;
    dedupeKey: string;
    workingDirectory: string;
    pathHints: string[];
    backend: MutationCheckpointBackend;
    phase: MutationCheckpointPhase;
    snapshotSha256: string;
    snapshotEntryCount: number;
    snapshotEntries: MutationCheckpointSnapshotEntryContract[];
    createdAtMs: number;
    updatedAtMs: number;
    error?: string;
}
export interface MutationCheckpointRestoreContract {
    restoreId: string;
    checkpointId: string;
    runId?: string;
    sessionId?: string;
    executionId?: string;
    rootExecutionId?: string;
    parentExecutionId?: string;
    sidechainId?: string;
    attemptId?: string;
    restoredAtMs: number;
    reason?: string;
}
export interface MutationCheckpointRestoreAckContract {
    restoreId: string;
    checkpointId: string;
    runId?: string;
    sessionId?: string;
    executionId?: string;
    rootExecutionId?: string;
    parentExecutionId?: string;
    sidechainId?: string;
    attemptId?: string;
    requestedAtMs: number;
    ackedAtMs: number;
    accepted: boolean;
    reason?: string;
}
export interface MutationCheckpointRollbackResultContract {
    restoreId: string;
    checkpointId: string;
    rollbackCheckpointId: string;
    runId?: string;
    sessionId?: string;
    executionId?: string;
    rootExecutionId?: string;
    parentExecutionId?: string;
    sidechainId?: string;
    attemptId?: string;
    completedAtMs: number;
    reason?: string;
}
