import type { SandboxAdapter } from "../sandbox.js"; export interface E2BSandboxOptions { /** E2B API key. When omitted, the SDK reads E2B_API_KEY. */ apiKey?: string; /** Provider machine lifetime and reconnect timeout, in milliseconds. When * omitted, the operator knobs below decide, then DEFAULT_TIMEOUT_MS. */ timeoutMs?: number; /** @internal Which module the install probe asks about. Tests name a package * that genuinely is not installed, so the refusal below is exercised over the * real module resolver rather than by stubbing the probe. */ specifier?: string; } /** True when the optional `e2b` SDK is actually loadable from this runtime, so callers can avoid wiring an adapter whose first create() would die on a missing module. Because loadE2b routes through a mutable specifier, NO bundler ever inlines the SDK — the runtime's own module resolution is the only truth — so the probe must test USABILITY, not importability: ask Node's require.resolve first (authoritative even inside a server bundle, where the emulated `import.meta` carries no `resolve` — Turbopack's shim made the old "no resolve ⇒ bundler inlined it ⇒ available" fallback claim e2b on hosts without the SDK, flipping the venue ladder away from the Cloud sandbox: 0.4.4 defect C), then real `import.meta.resolve` (pure-ESM Node without process.getBuiltinModule), and read an unverifiable runtime as NOT installed — a dynamic import of the bare specifier would fail there anyway. The specifier parameter exists for tests. */ export declare const e2bInstalled: (specifier?: string) => boolean; /** * execution-v2 — adapt an E2B sandbox to Vendo's provider-neutral seam. * * Seam mapping: create() boots from an optional E2B template (point-in-time * snapshot ids double as templates); request() proxies HTTPS to the box's * $PORT host (or an explicit port); snapshot() takes a reusable point-in-time * checkpoint while the source keeps running; stop() is E2B's snapshot- * preserving pause; destroy() kills the machine (paused or running) for good. * allowedDomains rides E2B's provider-native network allowlist plus an * all-traffic deny rule; undefined means unrestricted egress. * * `files` is part of the public seam (sandbox.ts). The machine object also * carries adapter-private exec used for bootstrap, diagnostics, and the dying * v1 compat paths — NOT part of the seam (the in-box agent owns the inside of * the box). The optional SDK is imported only when create/resume is called. */ export declare const e2bSandbox: (options?: E2BSandboxOptions) => SandboxAdapter; //# sourceMappingURL=index.d.ts.map