import { MICROSANDBOX_METADATA_VERSION } from "#execution/sandbox/bindings/microsandbox-metadata.js";
import type { ResolvedMicrosandboxOptions } from "#execution/sandbox/bindings/microsandbox-options.js";
import type { MicrosandboxSandboxRuntimeOptions } from "#public/sandbox/microsandbox-sandbox.js";
import { type SandboxProviderSessionContext, type SandboxProviderHandle, type SandboxProviderPrepareContext } from "#shared/sandbox-provider.js";
import type { MutableNetworkSandboxSession } from "#shared/sandbox-session.js";
export type MicrosandboxPreparedArtifact = {
    readonly image: string | null;
    readonly optionsHash: string;
    readonly snapshotName: string;
    readonly version: typeof MICROSANDBOX_METADATA_VERSION;
};
export declare function prewarmMicrosandboxTemplate(input: {
    readonly providerName: string;
    readonly options: ResolvedMicrosandboxOptions;
    readonly optionsHash: string;
    readonly context: SandboxProviderPrepareContext;
    readonly dockerfile?: import("#execution/sandbox/dockerfile.js").SandboxDockerfile;
    readonly prepare?: (sandbox: import("#shared/sandbox-session.js").SandboxSession) => Promise<void> | void;
    readonly templateKey: string;
}): Promise<MicrosandboxPreparedArtifact>;
export declare function createMicrosandboxHandle(input: {
    readonly artifact: MicrosandboxPreparedArtifact;
    readonly context: SandboxProviderSessionContext;
    readonly createIfMissing?: boolean;
    readonly options: ResolvedMicrosandboxOptions;
    readonly optionsHash: string;
    readonly providerName: string;
    readonly runtimeOptions?: MicrosandboxSandboxRuntimeOptions;
    readonly sessionIdentity?: string;
}): Promise<{
    readonly handle: SandboxProviderHandle<MutableNetworkSandboxSession>;
    readonly state: {
        readonly optionsHash: string;
        readonly sessionIdentity: string;
        readonly version: 3;
    };
}>;
export declare function clearActiveMicrosandboxSessionHandlesForTest(): void;
