import { Context, Effect, Layer, Schema, Scope } from "effect"; import { type ProgramCapabilities } from "./program-capabilities.js"; /** @experimental */ export interface Request { readonly language: "javascript"; readonly source: string; readonly sourceDigest: string; readonly input: unknown; readonly signal: AbortSignal; readonly limits: { readonly wallTimeMillis: number; readonly outputBytes: number; }; } declare const SandboxUnavailable_base: Schema.Class; }>, import("effect/Cause").YieldableError>; /** @experimental */ export declare class SandboxUnavailable extends SandboxUnavailable_base { } declare const SandboxExecutionFailure_base: Schema.Class, import("effect/Cause").YieldableError>; /** @experimental */ export declare class SandboxExecutionFailure extends SandboxExecutionFailure_base { } declare const SandboxProtocolViolation_base: Schema.Class, import("effect/Cause").YieldableError>; /** @experimental */ export declare class SandboxProtocolViolation extends SandboxProtocolViolation_base { } /** @experimental Typed failures that may cross the sandbox capability protocol. */ export declare const ExecutionFailure: Schema.Union]>; /** @experimental */ export type ExecutionFailure = typeof ExecutionFailure.Type; /** * @experimental Immutable JSON identity of one executor implementation and its enforced limits. Hosts pin, * persist, and compare this value so an admitted Program can only run under the exact executor that admitted it. */ export declare const Identity: Schema.$Record>; /** @experimental */ export type Identity = typeof Identity.Type; /** @experimental */ export interface Interface { readonly identity: Identity; readonly execute: (request: Request) => Effect.Effect; } declare const SandboxExecutor_base: Context.ServiceClass; /** @experimental Host-supplied isolated source executor. Baton does not provide a production implementation. */ export declare class SandboxExecutor extends SandboxExecutor_base { } /** @experimental Identity carried by trusted fixture executors. No production host may claim it. */ export declare const testIdentity: Identity; /** @experimental Trusted fixture executor for tests only. */ export declare const makeTest: { (identity?: Identity): (execute: Interface["execute"]) => Interface; (execute: Interface["execute"], identity?: Identity): Interface; }; /** @experimental Trusted fixture Layer for tests only. It provides no source isolation. */ export declare const layerTest: { (identity?: Identity): (execute: Interface["execute"]) => Layer.Layer; (execute: Interface["execute"], identity?: Identity): Layer.Layer; }; export {};