/**
 * AgentController-side sandbox manager.
 *
 * Composes:
 * - SettingsManager → SandboxConfig (via toPackageConfig)
 * - resolveSandboxConfig → SandboxState (pure, cached WSL probes)
 * - wrapCommand → WrappedCommand (pure)
 * - ProxyManager → proxy socket paths (long-lived, injected per command)
 *
 * Settings are re-read on every wrapCommand() call, so /sandbox menu
 * changes (paths, domains) take effect immediately — no restart needed.
 */
import type { SettingsManager } from '../../app/settings-manager.js';
import { type SandboxState } from './lib/index.js';
import type { SandboxChoice } from './types.js';
/** Callback interface for prompting the user when the proxy encounters an unknown domain. */
interface DomainCheckHandler {
    onDomainCheck: (domain: string) => Promise<SandboxChoice>;
}
/**
 * Orchestrates sandbox state, proxy lifecycle, and command wrapping.
 *
 * Re-reads settings on every wrapCommand() call so that /sandbox menu
 * changes take effect without restarting the session.
 */
export declare class SandboxManager {
    private settingsManager;
    private cwd;
    private proxy;
    private networkModeOverride;
    private nextCommandNetworkModeOverride;
    private domainCheckHandler;
    constructor(cwd: string, settingsManager: SettingsManager);
    /** Read current settings → resolve into sandbox state. Fresh each call; WSL probes are cached. */
    private resolve;
    getState(): Readonly<SandboxState>;
    /** Override the network mode at runtime (e.g., fallback to 'none' on proxy failure). */
    setNetworkMode(mode: SandboxState['networkMode']): void;
    /** Register the callback invoked when the proxy encounters an unknown domain. */
    setDomainCheckHandler(handler: DomainCheckHandler | null): void;
    /** Start/restart the proxy if in proxy mode, or stop it otherwise. Must be awaited before the first command. */
    ensureReady(): Promise<void>;
    /** Resolve current settings and wrap a shell command for sandboxed execution. */
    wrapCommand(command: string, cwd?: string): import("./lib/types.js").WrappedCommand;
    stopProxy(): void;
}
export {};
//# sourceMappingURL=sandbox-manager.d.ts.map