export type ModelAdapterRuntimeBoundary = "input" | "contract" | "governance" | "runtime-state" | "binding" | "scope";
export type ModelAdapterRuntimeCallerKind = "application" | "official-module" | "runtime-surface" | "inspection" | "debug" | "test";
export type ModelAdapterRuntimeCaller = {
    kind: ModelAdapterRuntimeCallerKind;
    id: string;
    moduleId?: string;
    sessionId?: string;
};
export type ModelAdapterRuntimeGate = {
    accepted: boolean;
    reason?: string;
};
export type ModelAdapterRuntimeSurface = "actualInvocationLayer" | "abstractionLayer" | "bridgingLayer" | "promptLoweringRuntime" | "modelInvocationRuntime" | "providerCarrierRegistry" | "modelCapabilityBridge" | (string & {});
export type ModelAdapterRuntimeBindingInput = {
    surface?: ModelAdapterRuntimeSurface;
    bindingId?: string;
    ready?: boolean;
    capabilities?: readonly string[];
    metadata?: Readonly<Record<string, unknown>>;
};
export type ModelAdapterRuntimeErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CALLER" | "MISSING_BINDINGS" | "MISSING_BINDING_SURFACE" | "MISSING_BINDING_ID" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "BINDING_NOT_READY" | "SCOPE_DENIED";
export type ModelAdapterRuntimeError = {
    code: ModelAdapterRuntimeErrorCode;
    message: string;
    boundary: ModelAdapterRuntimeBoundary;
    publicSafe: true;
};
export type ModelAdapterRuntimeBinding = {
    surface: ModelAdapterRuntimeSurface;
    bindingId: string;
    ready: true;
    capabilities: readonly string[];
    metadata: Readonly<Record<string, unknown>>;
};
export type ModelAdapterRuntimeHandle = {
    runtimeId: string;
    caller: ModelAdapterRuntimeCaller;
    route: "runtime.modelAdapter";
    phase: "bound";
    bindings: readonly ModelAdapterRuntimeBinding[];
    bindingIds: readonly string[];
    surfaces: readonly ModelAdapterRuntimeSurface[];
    requestedScopes: readonly string[];
    grantedScopes: readonly string[];
    governanceChecked: true;
    contractChecked: true;
    dryRun: true;
    unsafeSideEffects: false;
};
export type ModelAdapterRuntimeRequest = {
    runtimeId?: string;
    caller?: ModelAdapterRuntimeCaller;
    bindings?: readonly ModelAdapterRuntimeBindingInput[];
    runtimeReady?: boolean;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    contract?: ModelAdapterRuntimeGate;
    governance?: ModelAdapterRuntimeGate;
};
export type ModelAdapterRuntimeResult = {
    ok: true;
    runtime: ModelAdapterRuntimeHandle;
    events: readonly string[];
} | {
    ok: false;
    error: ModelAdapterRuntimeError;
    events: readonly string[];
};
export declare function createModelAdapterRuntime(request?: ModelAdapterRuntimeRequest): ModelAdapterRuntimeResult;
