import type { JsonValue } from '../control-plane';
import type { DataProviderTransport } from './adapters';
import type { DataAction } from './model';
type Input = Record<string, JsonValue>;
export interface DockerRuntime {
    ensureNetwork(name: string): Promise<void>;
    seedSecret(volume: string, content: string): Promise<void>;
    removeVolume(name: string): Promise<void>;
    inspect(name: string): Promise<Record<string, any> | undefined>;
    run(args: string[]): Promise<void>;
    exec(name: string, args: string[], stdin?: string): Promise<string>;
    update(name: string, args: string[]): Promise<void>;
    restart(name: string): Promise<void>;
    remove(name: string): Promise<void>;
    logs(name: string, lines: number): Promise<string>;
    stats(name: string): Promise<Record<string, JsonValue>>;
}
export declare class BunDockerRuntime implements DockerRuntime {
    ensureNetwork(name: string): Promise<void>;
    seedSecret(volume: string, content: string): Promise<void>;
    removeVolume(name: string): Promise<void>;
    inspect(name: string): Promise<Record<string, any> | undefined>;
    run(args: string[]): Promise<void>;
    exec(name: string, args: string[], stdin?: string): Promise<string>;
    update(name: string, args: string[]): Promise<void>;
    restart(name: string): Promise<void>;
    remove(name: string): Promise<void>;
    logs(name: string, lines: number): Promise<string>;
    stats(name: string): Promise<Record<string, JsonValue>>;
}
export declare class DockerDataTransport implements DataProviderTransport {
    private readonly runtime;
    private readonly backupRoot;
    constructor(runtime?: DockerRuntime, backupRoot?: string);
    observe(id: string): Promise<Input>;
    apply(input: Input, credential?: string): Promise<Input>;
    exportLogicalBackup(id: string): Promise<{
        body: Uint8Array;
        engine: 'postgres' | 'mysql' | 'mariadb';
        database: string;
        username: string;
        engineVersion?: string;
    }>;
    restoreLogicalBackup(input: {
        sourceId: string;
        targetId: string;
        body: Uint8Array;
        credential: string;
        inPlace?: boolean;
    }): Promise<Input>;
    removeRestoredService(id: string): Promise<void>;
    private backup;
    execute(id: string, action: DataAction, input: Input, credential?: string): Promise<Input>;
}
export {};
