import type { DockerSandboxEnvironmentOptions } from "#public/sandbox/docker-sandbox.js";
import type { JustBashSandboxCreateOptions } from "#public/sandbox/just-bash-sandbox.js";
import type { MicrosandboxSandboxCreateOptions } from "#public/sandbox/microsandbox-sandbox.js";
import type { VercelSandboxCreateOptions } from "#public/sandbox/vercel-sandbox.js";
import type { SandboxEnvironment } from "#shared/sandbox-environment.js";
import type { SandboxSession } from "#shared/sandbox-session.js";
export interface DefaultSandboxEnvironmentOptions {
    readonly docker?: DockerSandboxEnvironmentOptions;
    readonly justBash?: JustBashSandboxCreateOptions;
    readonly microsandbox?: MicrosandboxSandboxCreateOptions;
    readonly prepare?: (sandbox: SandboxSession) => Promise<void> | void;
    readonly vercel?: VercelSandboxCreateOptions;
}
export interface DefaultSandboxProbes {
    readonly isDeployedOnVercel: () => boolean;
    readonly isDockerAvailable: () => boolean;
    readonly isMicrosandboxSupported: () => boolean;
}
export declare const SANDBOX_PROVIDER_PROBES: DefaultSandboxProbes;
export declare const DefaultSandbox: {
    name: string;
    environment(options?: DefaultSandboxEnvironmentOptions): SandboxEnvironment<undefined>;
};
export declare function defineDefaultSandboxProvider(probes: DefaultSandboxProbes): {
    name: string;
    environment(options?: DefaultSandboxEnvironmentOptions): SandboxEnvironment<undefined>;
};
