import type { Client } from "../kernel.js";
import type { ProjectSnapshotCreateOptions, ProjectSnapshotDto, ProjectSnapshotsListOptions, ProjectSnapshotsListResult, SnapshotRestoreConfirmOptions, SnapshotRestoreHandle, SnapshotRestoreOptions, SnapshotRestorePlanEnvelope, SnapshotRestoreResult, SnapshotRestoreStatus } from "./snapshots.types.js";
export declare class Snapshots {
    private readonly client;
    constructor(client: Client);
    /**
     * Create a manual snapshot. `label` and `metadata` are immutable and live
     * outside the tenant schema, so a restore never rewinds them: the snapshot
     * list is a ledger of restore points that survives restores.
     */
    create(projectId: string, opts?: ProjectSnapshotCreateOptions): Promise<ProjectSnapshotDto>;
    list(projectId: string, opts?: ProjectSnapshotsListOptions): Promise<ProjectSnapshotsListResult>;
    get(projectId: string, snapshotId: string): Promise<ProjectSnapshotDto>;
    delete(projectId: string, snapshotId: string): Promise<void>;
    /**
     * Plan a restore without mutating anything. Pass the same `release` and
     * `includeAuth` to `restore` that you plan with; the confirm token binds them.
     */
    restorePlan(projectId: string, snapshotId: string, opts?: SnapshotRestoreOptions): Promise<SnapshotRestorePlanEnvelope>;
    /**
     * Confirm a restore. By default this resolves with the terminal result: it
     * starts the restore in the background (`wait: false` on the wire) and
     * polls the restore status read, so a long restore never hits an HTTP
     * timeout. A `failed` restore rejects with the gateway's error code. Pass
     * `{ wait: false }` to resolve immediately with the `202` handle and poll
     * `getRestore` yourself.
     */
    restore(projectId: string, snapshotId: string, confirm: string, opts: SnapshotRestoreConfirmOptions & {
        wait: false;
    }): Promise<SnapshotRestoreHandle>;
    restore(projectId: string, snapshotId: string, confirm: string, opts?: SnapshotRestoreConfirmOptions): Promise<SnapshotRestoreResult>;
    /** Status and outcome of one restore, including a background (`wait: false`) restore. */
    getRestore(projectId: string, snapshotId: string, restoreId: string): Promise<SnapshotRestoreStatus>;
}
//# sourceMappingURL=snapshots.d.ts.map