/** Sandbox container lifecycle: create, exec, health check, teardown. */ import { type SandboxEngineType } from "./sandbox-engine"; export type SandboxMode = "off" | "light" | "standard" | "max"; export type SandboxState = "uninitialized" | "initializing" | "ready" | "degraded" | "stopping" | "stopped" | "recovering"; export interface SandboxManagerConfig { /** Sandbox mode. */ mode: SandboxMode; /** Docker image for sandbox containers. */ image?: string; /** Container name prefix. */ containerPrefix?: string; /** Container workdir mount path. */ workdir?: string; /** Run rootfs read-only. */ readOnlyRoot?: boolean; /** Container network mode. */ network?: string; /** Container user (uid:gid). */ user?: string; /** Drop Linux capabilities. */ capDrop?: string[]; /** Environment variables for sandbox. */ env?: Record; /** Container memory limit. */ memory?: string; /** Container CPU limit. */ cpus?: number; /** PIDs limit. */ pidsLimit?: number; /** Root directory for sandbox workspaces. */ workspaceRoot?: string; /** Additional bind mounts. */ binds?: string[]; /** DNS servers. */ dns?: string[]; /** Container engine type: "docker", "apple-container", or "auto" (default). */ engineType?: SandboxEngineType; /** Browser sandbox settings. */ browser?: { enabled?: boolean; image?: string; cdpPort?: number; vncPort?: number; noVncPort?: number; headless?: boolean; enableNoVnc?: boolean; autoStart?: boolean; autoStartTimeoutMs?: number; }; } export interface SandboxExecOptions { command: string; workdir?: string; env?: Record; timeoutMs?: number; stdin?: string; } export interface SandboxExecResult { exitCode: number; stdout: string; stderr: string; durationMs: number; executedInSandbox: boolean; } export interface SandboxEvent { timestamp: number; type: "state_change" | "exec" | "exec_denied" | "container_start" | "container_stop" | "health_check" | "error"; detail: string; metadata?: Record; } export declare class SandboxManager { private state; private config; private engine; private containerId; private browserContainerId; private eventLog; constructor(config: SandboxManagerConfig); getState(): SandboxState; getMode(): SandboxMode; isReady(): boolean; private getMainContainerConfig; private createMainContainer; private cleanupContainer; private setState; start(): Promise; recover(): Promise; stop(): Promise; exec(options: SandboxExecOptions): Promise; getBrowserCdpEndpoint(): string | null; getBrowserWsEndpoint(): string | null; getBrowserNoVncEndpoint(): string | null; private createBrowserContainer; private healthCheck; private emitEvent; getEventLog(): SandboxEvent[]; getStatus(): { state: SandboxState; mode: SandboxMode; containerId: string | null; browserContainerId: string | null; }; } //# sourceMappingURL=sandbox-manager.d.ts.map