import type { SandboxAdapter } from "./apps/index.js"; export interface CloudSandboxOptions { apiKey: string; /** Defaults to the Vendo console; the composition seam passes VENDO_CONSOLE_URL. */ baseUrl?: string; /** Per-request abort timeout, in milliseconds. */ timeoutMs?: number; fetch?: typeof fetch; } /** The Cloud sandbox adapter — the OSS side of the managed-sandbox seam: the * execution-v2 SandboxAdapter speaking HTTP to the console's /api/v1/sandboxes * routes (Vendo's pooled provider capacity, metered as sandbox_minutes). The * wire contract — the ARTIFACT model, verified live — lives in * sandbox-wire.ts. Cloned from cloudConnections' shape: behavior comes ONLY * from constructor arguments (adapter rule — see selectSandbox in server.ts); * the adapter never reads the environment. * * Provider particulars, versus the e2b reference port: * - Snapshots are persistent artifacts that survive the machine; resume * boots a NEW machine from one (fork when the source lives, wake when it * is gone) and inherits NO network config, so every resume sends the * applicable allowlist explicitly — the ref-recorded one bare, the * caller's SandboxResumePolicy when a wake re-polices (Lane E replace * semantics, native on the wire). * - stop() destroys the machine: Cloud has no pause, and with artifacts * surviving it, snapshot-then-destroy IS the sleep semantics; previously * minted refs stay valid through it (the seam law). * - Composite refs: the seam sees `vendo:v2:` carrying the * console artifact ref, the source machine id (destroy-by-ref reaps a * still-running source best-effort before the artifact GC), and the * snapshot-time allowlist a bare resume re-applies. * - `spec.template` is dropped from the wire: the create route takes none — * the pooled base image (Node + the in-box agent) is Cloud's own. * * `files` is part of the public seam (apps/sandbox.ts), and the console's * list route may answer any depth — the adapter folds it to the seam's one * level. The machine object also carries adapter-private exec used for * live-lane bootstrap and diagnostics — NOT part of the seam (the in-box agent * owns the inside of the box). */ export declare function cloudSandbox(options: CloudSandboxOptions): SandboxAdapter;