import type { ExecEngineRuntimeCaller, ExecEngineRuntimeGate } from "./execEngineRuntime.js";
export type ExecEngineStateBridgeBoundary = "input" | "contract" | "governance" | "runtime-state" | "state";
export type ExecEngineStatePhase = "unbound" | "bound" | "ready" | "running" | "paused" | "failed";
export type ExecEngineStateBridgeErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CALLER" | "MISSING_STATE" | "MISSING_STATE_ID" | "MISSING_PHASE" | "UNKNOWN_PHASE" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED";
export type ExecEngineStateBridgeError = {
    code: ExecEngineStateBridgeErrorCode;
    message: string;
    boundary: ExecEngineStateBridgeBoundary;
    publicSafe: true;
};
export type ExecEngineStateInput = {
    stateId?: string;
    phase?: ExecEngineStatePhase | string;
    cursor?: string;
    revision?: number;
    updatedAt?: string;
    metadata?: Readonly<Record<string, unknown>>;
};
export type ExecEngineStateBridgeRequest = {
    runtimeId?: string;
    caller?: ExecEngineRuntimeCaller;
    state?: ExecEngineStateInput;
    runtimeReady?: boolean;
    contract?: ExecEngineRuntimeGate;
    governance?: ExecEngineRuntimeGate;
};
export type ExecEngineStateSnapshot = {
    bridgeId: string;
    runtimeId: string;
    caller: ExecEngineRuntimeCaller;
    stateId: string;
    phase: ExecEngineStatePhase;
    cursor?: string;
    revision: number;
    updatedAt?: string;
    metadata: Readonly<Record<string, unknown>>;
    route: "runtime.execEngine.stateBridge";
    readonly: true;
    contractChecked: true;
    governanceChecked: true;
    dryRun: true;
    unsafeSideEffects: false;
};
export type ExecEngineStateBridgeResult = {
    ok: true;
    snapshot: ExecEngineStateSnapshot;
    events: readonly string[];
} | {
    ok: false;
    error: ExecEngineStateBridgeError;
    events: readonly string[];
};
export declare function bridgeExecEngineState(request?: ExecEngineStateBridgeRequest): ExecEngineStateBridgeResult;
