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 FilesystemArchiveRuntime {
    create(root: string, paths: string[], excludes: string[]): Promise<Buffer>;
    extract(body: Uint8Array, target: string): Promise<void>;
    inspect(body: Uint8Array): Promise<{
        entries: string[];
        bytes: number;
    }>;
}
export declare function compressBackup(body: Uint8Array, compression: BackupPolicy['compression']): Buffer;
export declare function decompressBackup(body: Uint8Array, compression: BackupPolicy['compression']): Buffer;
export declare class BunFilesystemArchiveRuntime implements FilesystemArchiveRuntime {
    create(root: string, paths: string[], excludes: string[]): Promise<Buffer>;
    extract(body: Uint8Array, target: string): Promise<void>;
    inspect(body: Uint8Array): Promise<{
        entries: string[];
        bytes: number;
    }>;
}
export declare class FilesystemBackupSource implements BackupSourceAdapter {
    private readonly runtime;
    private readonly root;
    private readonly restoreRoot;
    constructor(root: string, runtime?: FilesystemArchiveRuntime, restoreRoot?: string);
    private paths;
    create(policy: BackupPolicy, context: QueueExecutionContext): Promise<BackupSourceResult>;
    restore(point: RecoveryPoint, body: Uint8Array | undefined, target: Record<string, JsonValue>, _context: QueueExecutionContext): Promise<Record<string, JsonValue>>;
    verify(point: RecoveryPoint, body: Uint8Array, _context: QueueExecutionContext): Promise<Record<string, JsonValue>>;
    validateHealth(target: Record<string, JsonValue>, _context: QueueExecutionContext): Promise<Record<string, JsonValue>>;
    cleanup(target: Record<string, JsonValue>, _context: QueueExecutionContext): Promise<void>;
}
