import type { SandboxNetworkPolicy } from "#shared/sandbox-network-policy.js"; type NetworkPolicySandboxSession = SandboxSession & { setNetworkPolicy(policy: SandboxNetworkPolicy): Promise; }; import type { SandboxSession } from "#shared/sandbox-session.js"; import { type SandboxProviderImplementation } from "#shared/sandbox-provider.js"; import type { VercelSandboxRuntimeOptions } from "#public/sandbox/vercel-sandbox.js"; import { type CreateVercelSandbox } from "#execution/sandbox/bindings/vercel-create-sdk.js"; import type { VercelCreateOptions, VercelModule } from "#execution/sandbox/bindings/vercel-sdk-types.js"; export type VercelSandboxPreparedArtifact = { readonly snapshotId?: string; }; export type VercelSandboxSessionState = { readonly sandboxName: string; readonly version: 3; }; type VercelEnvironmentOptions = VercelCreateOptions & { readonly prepare?: (sandbox: SandboxSession) => Promise | void; }; export declare function createVercelSandboxProvider(environmentOptions: Readonly | undefined): SandboxProviderImplementation; interface CreateVercelSandboxInput { readonly createSandbox?: CreateVercelSandbox; readonly createOptions?: VercelCreateOptions; readonly loadDeleteSandboxModule?: () => Promise; readonly loadSandboxModule?: () => Promise; readonly prepare?: (sandbox: SandboxSession) => Promise | void; readonly skipEmptyPreparation?: boolean; } export declare function createVercelSandbox(input?: CreateVercelSandboxInput): SandboxProviderImplementation; export {};