import type { RuntimeAccessSession, RuntimeAccessSessionGate } from "./runtimeAccessSession.js";
import type { ManagementCommandEnvelope, ManagementPolicyDecision } from "./managementPolicyGate.js";
export type RuntimeGovernanceBridgeBoundary = "input" | "contract" | "governance" | "runtime-state" | "session" | "bridge";
export type RuntimeGovernanceBridgeErrorCode = "MISSING_SESSION" | "MISSING_COMMAND" | "MISSING_POLICY_DECISION" | "RUNTIME_MISMATCH" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED";
export type RuntimeGovernanceBridgeStatus = "ready" | "blocked" | "needs-approval" | "dry-run-only";
export type RuntimeGovernanceBridgeRequest = {
    session?: RuntimeAccessSession;
    command?: ManagementCommandEnvelope;
    policy?: ManagementPolicyDecision;
    targetGovernanceSurface?: string;
    runtimeReady?: boolean;
    contract?: RuntimeAccessSessionGate;
    governance?: RuntimeAccessSessionGate;
};
export type RuntimeGovernanceBridgeEnvelope = {
    runtimeId: string;
    commandId: string;
    action: string;
    sourceSurface: "runtime.managementPlane";
    targetGovernanceSurface: string;
    caller: {
        kind: RuntimeAccessSession["actor"]["kind"];
        id: string;
        moduleId?: string;
    };
    sessionId: string;
    requestedScopes: readonly string[];
    policyStatus: ManagementPolicyDecision["status"];
    bridgeStatus: RuntimeGovernanceBridgeStatus;
    governanceChecked: true;
    contractChecked: true;
    dryRun: true;
    unsafeSideEffects: false;
};
export type RuntimeGovernanceBridgeError = {
    code: RuntimeGovernanceBridgeErrorCode;
    message: string;
    boundary: RuntimeGovernanceBridgeBoundary;
    safeForApplication: true;
    internalDetailExposed: false;
};
export type RuntimeGovernanceBridgeResult = {
    ok: true;
    envelope: RuntimeGovernanceBridgeEnvelope;
    events: readonly string[];
} | {
    ok: false;
    error: RuntimeGovernanceBridgeError;
    events: readonly string[];
};
export declare const runtimeGovernanceBridgeDescriptor: {
    readonly surface: "runtime.managementPlane";
    readonly capability: "runtimeGovernanceBridge";
    readonly purpose: "convert management-plane command decisions into dry-run governance-plane envelopes";
    readonly mode: "dry-run";
    readonly unsafeSideEffects: false;
};
export declare function createRuntimeGovernanceBridgeEnvelope(request?: RuntimeGovernanceBridgeRequest): RuntimeGovernanceBridgeResult;
