/// <reference types="node" />
/// <reference types="bun-types" />
import { type DockerAssetPaths } from './docker-assets';
import type { DockerCommandResult, DockerCommandTarget, DockerConfigSummary, DockerLogsOptions, DockerStatusResult, DockerUpOptions } from './docker-types';
interface DockerSyncRunOptions {
    cwd?: string;
    env?: NodeJS.ProcessEnv;
    remote?: boolean;
    timeoutMs?: number;
}
interface DockerExecutorDeps {
    assets?: DockerAssetPaths;
    getInstalledCcsVersion?: () => string;
    resolveLocalComposePrefix?: () => string[];
    runSync?: (command: string, args: string[], options?: DockerSyncRunOptions) => DockerCommandResult;
    runStreaming?: (command: string, args: string[]) => Promise<void>;
}
export declare class DockerExecutor {
    private readonly deps;
    private readonly assets;
    constructor(deps?: DockerExecutorDeps);
    getConfig(options: {
        host?: string;
        port?: number;
        proxyPort?: number;
    }): DockerConfigSummary;
    up(options: DockerUpOptions): void;
    down(options: DockerCommandTarget): void;
    status(options: DockerCommandTarget): DockerStatusResult;
    update(options: DockerCommandTarget): void;
    logs(options: DockerLogsOptions): Promise<string | void>;
    showKey(options: DockerCommandTarget, full: boolean): string;
    finalizeKeyRotation(options: DockerCommandTarget): string;
    getKeyRotationBanner(options: DockerCommandTarget): string;
    private stageRemoteAssets;
    private runCompose;
    private runDocker;
    private runDockerStreaming;
    private getInstalledCcsVersion;
    private resolveLocalComposePrefix;
    private runSync;
    private runStreaming;
    private ensureSuccess;
}
export {};
//# sourceMappingURL=docker-executor.d.ts.map