/**
 * Sandbox selector — chooses the best available sandbox strategy.
 *
 * Selection logic:
 * 1. If task config specifies a strategy, use it
 * 2. If Docker is available, prefer Docker (better isolation)
 * 3. Fall back to TempDir (always available)
 *
 * CI environments (detected via CI env var) always prefer Docker.
 *
 * @see docs/archive/exec-plans/architecture-overhaul/phase-4-agent-harness.md
 */
import type { SandboxStrategy, SandboxType } from "./sandbox-strategy.js";
/** Result of sandbox selection */
export interface SandboxSelectionResult {
    /** The selected strategy */
    strategy: SandboxStrategy;
    /** Whether this was a fallback from the preferred strategy */
    isFallback: boolean;
    /** Warning message if fallback was used */
    warning?: string;
}
/**
 * Select the best available sandbox strategy.
 *
 * @param preferred - Preferred sandbox type from task config
 * @param log - Optional log function for diagnostics
 * @returns The selected strategy with fallback metadata
 */
export declare function selectSandboxStrategy(preferred?: SandboxType, log?: (msg: string) => void): Promise<SandboxSelectionResult>;
/**
 * Create a specific sandbox strategy by type.
 * Does NOT check availability — caller should verify first.
 */
export declare function createSandboxStrategy(type: SandboxType): SandboxStrategy;
