/**
 * Auto-Sandbox Router
 *
 * Automatically routes dangerous commands to Docker sandbox when available.
 * Configurable via environment variable or runtime flag.
 *
 * When enabled:
 * 1. Parses the command to extract base commands
 * 2. Checks if any are classified as "should-sandbox"
 * 3. If Docker is available, routes to DockerSandbox
 * 4. Falls back to normal execution if Docker unavailable
 */
export interface AutoSandboxConfig {
    /** Enable auto-sandboxing (default: from AUTO_SANDBOX env) */
    enabled: boolean;
    /** Commands that should always be sandboxed */
    alwaysSandbox: Set<string>;
    /** Commands that should never be sandboxed (override) */
    neverSandbox: Set<string>;
    /** Docker image to use */
    image: string;
    /** Memory limit */
    memoryLimit: string;
    /** CPU limit */
    cpuLimit: string;
    /** Enable networking in sandbox */
    networkEnabled: boolean;
}
export declare class AutoSandboxRouter {
    private config;
    private dockerAvailable;
    constructor(config?: Partial<AutoSandboxConfig>);
    /**
     * Check if a command should be routed to the sandbox.
     */
    shouldSandbox(command: string): {
        sandbox: boolean;
        reason?: string;
    };
    /**
     * Check if Docker is available on this system.
     * Result is cached after first check.
     */
    isDockerAvailable(): Promise<boolean>;
    /**
     * Route a command: returns 'sandbox' or 'direct' with reason.
     */
    route(command: string): Promise<{
        mode: 'sandbox' | 'direct';
        reason: string;
    }>;
    /**
     * Update configuration at runtime.
     */
    setEnabled(enabled: boolean): void;
    isEnabled(): boolean;
    getConfig(): Readonly<AutoSandboxConfig>;
}
export declare function getAutoSandboxRouter(): AutoSandboxRouter;
