export type ExecEngineRuntimeBoundary = "input" | "contract" | "governance" | "runtime-state" | "binding";
export type ExecEngineRuntimeCallerKind = "application" | "official-module" | "runtime-surface" | "test";
export type ExecEngineRuntimeCaller = {
    kind: ExecEngineRuntimeCallerKind;
    id: string;
    moduleId?: string;
    sessionId?: string;
};
export type ExecEngineRuntimeGate = {
    accepted: boolean;
    reason?: string;
};
export type ExecEngineRuntimeSurface = "promptPack" | "invocationBridge" | "stateBridge" | "coreLogic" | "ioTransceiver" | "basicToolLayer" | "eventExposurePlane" | (string & {});
export type ExecEngineRuntimeBindingInput = {
    surface?: ExecEngineRuntimeSurface;
    bindingId?: string;
    ready?: boolean;
    capabilities?: readonly string[];
    metadata?: Readonly<Record<string, unknown>>;
};
export type ExecEngineRuntimeErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CALLER" | "MISSING_BINDINGS" | "MISSING_BINDING_SURFACE" | "MISSING_BINDING_ID" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "BINDING_NOT_READY";
export type ExecEngineRuntimeError = {
    code: ExecEngineRuntimeErrorCode;
    message: string;
    boundary: ExecEngineRuntimeBoundary;
    publicSafe: true;
};
export type ExecEngineRuntimeBinding = {
    surface: ExecEngineRuntimeSurface;
    bindingId: string;
    ready: boolean;
    capabilities: readonly string[];
    metadata: Readonly<Record<string, unknown>>;
};
export type ExecEngineRuntimeHandle = {
    runtimeId: string;
    caller: ExecEngineRuntimeCaller;
    route: "runtime.execEngine";
    phase: "bound";
    bindings: readonly ExecEngineRuntimeBinding[];
    bindingIds: readonly string[];
    surfaces: readonly ExecEngineRuntimeSurface[];
    governanceChecked: true;
    contractChecked: true;
    dryRun: true;
    unsafeSideEffects: false;
};
export type ExecEngineRuntimeRequest = {
    runtimeId?: string;
    caller?: ExecEngineRuntimeCaller;
    bindings?: readonly ExecEngineRuntimeBindingInput[];
    runtimeReady?: boolean;
    contract?: ExecEngineRuntimeGate;
    governance?: ExecEngineRuntimeGate;
};
export type ExecEngineRuntimeResult = {
    ok: true;
    runtime: ExecEngineRuntimeHandle;
    events: readonly string[];
} | {
    ok: false;
    error: ExecEngineRuntimeError;
    events: readonly string[];
};
export declare function createExecEngineRuntime(request?: ExecEngineRuntimeRequest): ExecEngineRuntimeResult;
