export type ApplicationRuntimeSandboxEffect = "filesystem" | "network" | "shell" | "provider" | "runtime-state";
export type ApplicationRuntimeSandboxErrorCode = "MISSING_RUNTIME_ID" | "MISSING_APPLICATION_ID" | "MISSING_EXTENSION_ID" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "INTERNAL_STATE_MUTATION_DENIED";
export type ApplicationRuntimeSandboxError = {
    code: ApplicationRuntimeSandboxErrorCode;
    message: string;
    boundary: "input" | "contract" | "governance" | "runtime-state";
};
export type ApplicationRuntimeSandboxGate = {
    accepted: boolean;
    reason?: string;
};
export type ApplicationRuntimeExtensionRequest = {
    extensionId: string;
    requestedCapabilities?: readonly string[];
    requestedEffects?: readonly ApplicationRuntimeSandboxEffect[];
    mutatesInternalState?: boolean;
};
export type ApplicationRuntimeSandboxRequest = {
    runtimeId: string;
    applicationId: string;
    extension?: ApplicationRuntimeExtensionRequest;
    allowedCapabilities?: readonly string[];
    contract?: ApplicationRuntimeSandboxGate;
    governance?: ApplicationRuntimeSandboxGate;
};
export type ApplicationRuntimeSandboxEnvelope = {
    sandboxId: string;
    runtimeId: string;
    applicationId: string;
    extensionId: string;
    grantedCapabilities: readonly string[];
    deniedCapabilities: readonly string[];
    blockedEffects: readonly ApplicationRuntimeSandboxEffect[];
    dryRun: true;
    unsafeSideEffects: false;
    internalStateMutable: false;
};
export type ApplicationRuntimeSandboxResult = {
    ok: true;
    envelope: ApplicationRuntimeSandboxEnvelope;
    events: readonly string[];
} | {
    ok: false;
    error: ApplicationRuntimeSandboxError;
    events: readonly string[];
};
export declare function createApplicationRuntimeSandbox(request: ApplicationRuntimeSandboxRequest): ApplicationRuntimeSandboxResult;
