import type * as VercelSandboxSdk from "#compiled/@vercel/sandbox/index.js";
import type { Sandbox as SdkSandbox } from "#compiled/@vercel/sandbox/index.js";
import type { SandboxBackend } from "#public/definitions/sandbox-backend.js";
import type { VercelSandboxBootstrapUseOptions, VercelSandboxSessionUseOptions } from "#public/sandbox/vercel-sandbox.js";
type VercelSandboxModule = typeof VercelSandboxSdk;
/**
 * User-controllable subset of `Sandbox.create` parameters.
 */
export type VercelSandboxCreateOptions = Omit<NonNullable<Parameters<typeof SdkSandbox.create>[0]>, "name" | "onResume" | "persistent" | "signal">;
/**
 * Construction input for {@link createVercelSandboxBackend}. Internal —
 * the public surface is the `vercelBackend()` factory under
 * `eve/sandbox`.
 */
export interface CreateVercelSandboxBackendInput {
    readonly createOptions?: VercelSandboxCreateOptions;
    readonly loadSandboxModule?: () => Promise<VercelSandboxModule>;
}
/**
 * Creates the Vercel-backed sandbox backend.
 *
 * Any author-supplied `createOptions` are forwarded to the Vercel SDK
 * `Sandbox.create(...)` for every fresh sandbox the framework creates
 * (template at prewarm time, session at first-time session-create). On
 * resume (`Sandbox.get`) no create happens, so they are not re-applied.
 */
export declare function createVercelSandboxBackend(input?: CreateVercelSandboxBackendInput): SandboxBackend<VercelSandboxBootstrapUseOptions, VercelSandboxSessionUseOptions>;
export {};
