/**
 * Docker Execution Utilities
 *
 * Handles Docker container execution for CLI commands.
 */
import type { GlobalOptions } from '../types/global.js';
/**
 * Docker image for CLI/build tools (bundle, simulate)
 * Uses explicit version by default, can be overridden with env var
 */
export declare const CLI_DOCKER_IMAGE: string;
/**
 * Docker image for production runtime (run command)
 * Uses explicit version by default, can be overridden with env var
 */
export declare const RUNTIME_DOCKER_IMAGE: string;
/**
 * @deprecated Use CLI_DOCKER_IMAGE or RUNTIME_DOCKER_IMAGE instead
 */
export declare const DOCKER_IMAGE: string;
/**
 * Build common Docker arguments from CLI options
 *
 * Extracts common flags (config, json, verbose, silent) that are shared
 * across bundle and simulate commands. Command-specific flags should be
 * added after calling this function.
 *
 * @param options - CLI options containing common flags
 * @returns Array of command-line arguments starting with config path
 */
export declare function buildCommonDockerArgs(options: {
    config: string;
    json?: boolean;
    verbose?: boolean;
    silent?: boolean;
}): string[];
/**
 * Build Docker command for executing CLI commands
 *
 * @param command - CLI command (bundle, simulate, run)
 * @param args - Command arguments
 * @param options - Global options
 * @param configFile - Optional config file path to mount in Docker
 * @returns Docker command array
 */
export declare function buildDockerCommand(command: string, args: string[], options?: GlobalOptions, configFile?: string): string[];
/**
 * Execute command in Docker container
 *
 * @param command - CLI command
 * @param args - Command arguments
 * @param options - Global options
 * @param configFile - Optional config file path to mount in Docker
 * @returns Promise that resolves when command completes
 */
export declare function executeInDocker(command: string, args: string[], options?: GlobalOptions, configFile?: string): Promise<void>;
/**
 * Check if Docker is available
 *
 * @returns Promise resolving to true if Docker is available
 */
export declare function isDockerAvailable(): Promise<boolean>;
/**
 * Check if Docker image exists locally
 *
 * @param image - Docker image name
 * @returns Promise resolving to true if image exists
 */
export declare function imageExists(image?: string): Promise<boolean>;
/**
 * Build Docker command for run command (production runtime)
 *
 * @param mode - Run mode (collect | serve)
 * @param flowPath - Path to pre-built .mjs bundle (for collect mode) or custom file (for serve mode)
 * @param options - Runtime options
 * @returns Docker command array
 */
export declare function buildDockerRunCommand(mode: 'collect' | 'serve', flowPath: string | null, options?: {
    port?: number;
    host?: string;
    serveName?: string;
    servePath?: string;
}): string[];
/**
 * Execute run command in Docker container (production runtime)
 *
 * @param mode - Run mode (collect | serve)
 * @param flowPath - Path to pre-built .mjs bundle (for collect mode) or custom file (for serve mode)
 * @param options - Runtime and global options
 * @returns Promise that resolves when command completes
 */
export declare function executeRunInDocker(mode: 'collect' | 'serve', flowPath: string | null, options?: {
    port?: number;
    host?: string;
    serveName?: string;
    servePath?: string;
    silent?: boolean;
}): Promise<void>;
//# sourceMappingURL=docker.d.ts.map