import type { JsonValue } from '../control-plane';
import type { QueueExecutionContext } from '../queue';
import type { BackupPolicy, RecoveryPoint } from './model';
import type { BackupSourceAdapter, BackupSourceResult } from './service';
export interface DockerVolumeRuntime {
    exists(name: string): Promise<boolean>;
    export(name: string): Promise<Uint8Array>;
    import(name: string, archive: Uint8Array, replace?: boolean): Promise<void>;
    remove(name: string): Promise<void>;
    probe(name: string): Promise<{
        entries: number;
        bytes: number;
    }>;
}
export declare class BunDockerVolumeRuntime implements DockerVolumeRuntime {
    exists(name: string): Promise<boolean>;
    export(name: string): Promise<Uint8Array>;
    import(name: string, archive: Uint8Array, replace?: boolean): Promise<void>;
    remove(name: string): Promise<void>;
    probe(name: string): Promise<{
        entries: number;
        bytes: number;
    }>;
}
export declare class DockerVolumeBackupSource implements BackupSourceAdapter {
    private readonly runtime;
    constructor(runtime?: DockerVolumeRuntime);
    create(policy: BackupPolicy, context: QueueExecutionContext): Promise<BackupSourceResult>;
    restore(point: RecoveryPoint, body: Uint8Array | undefined, target: Record<string, JsonValue>, _context: QueueExecutionContext): Promise<Record<string, JsonValue>>;
    cleanup(target: Record<string, JsonValue>, _context: QueueExecutionContext): Promise<void>;
}
