import { type RuntimeModeDescriptor, type RuntimeModeDescriptorInput, type RuntimeModeExposureFailure, type RuntimeModeExposureGate } from "./modeDescriptor.js";
export type ExecutionModeRegistryRequest = {
    runtimeId?: string;
    modes?: readonly RuntimeModeDescriptorInput[];
    defaultModeId?: string;
    activeModeId?: string;
    runtimeReady?: boolean;
    contract?: RuntimeModeExposureGate;
    governance?: RuntimeModeExposureGate;
};
export type ExecutionModeRegistrySnapshot = {
    runtimeId: string;
    modes: readonly RuntimeModeDescriptor[];
    defaultModeId: string;
    activeModeId: string;
    registrySurface: "runtime.modeExposure.executionModeRegistry";
    governanceChecked: true;
    contractChecked: true;
    unsafeSideEffects: false;
};
export type ExecutionModeRegistryResult = {
    ok: true;
    registry: ExecutionModeRegistrySnapshot;
    events: readonly string[];
} | RuntimeModeExposureFailure;
export declare const executionModeRegistryCapability: {
    readonly surface: "runtime.modeExposure";
    readonly capability: "executionModeRegistry";
    readonly purpose: "build a readonly registry of runtime execution modes without touching execution engine internals";
    readonly unsafeSideEffects: false;
};
export declare function buildExecutionModeRegistry(request?: ExecutionModeRegistryRequest): ExecutionModeRegistryResult;
