import type { ModelAdapterRuntimeCaller, ModelAdapterRuntimeGate } from "./modelAdapterRuntime.js";
export type RuntimeModelCapabilityKind = "text-generation" | "tool-call" | "embedding" | "multimodal" | "streaming" | (string & {});
export type ModelCapabilityBridgeBoundary = "input" | "contract" | "governance" | "runtime-state" | "bridge" | "scope";
export type ModelCapabilityBridgeErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CALLER" | "MISSING_CAPABILITIES" | "MISSING_CAPABILITY_ID" | "MISSING_CAPABILITY_KIND" | "MISSING_BRIDGE_REF" | "DUPLICATE_CAPABILITY_ID" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED";
export type ModelCapabilityBridgeError = {
    code: ModelCapabilityBridgeErrorCode;
    message: string;
    boundary: ModelCapabilityBridgeBoundary;
    publicSafe: true;
};
export type RuntimeModelCapabilityInput = {
    capabilityId?: string;
    kind?: RuntimeModelCapabilityKind;
    bridgeRef?: string;
    invocationSurface?: "modelInvocationRuntime" | (string & {});
    scopes?: readonly string[];
    metadata?: Readonly<Record<string, unknown>>;
};
export type ModelCapabilityBridgeRequest = {
    runtimeId?: string;
    caller?: ModelAdapterRuntimeCaller;
    capabilities?: readonly RuntimeModelCapabilityInput[];
    runtimeReady?: boolean;
    allowedScopes?: readonly string[];
    contract?: ModelAdapterRuntimeGate;
    governance?: ModelAdapterRuntimeGate;
};
export type RuntimeModelCapabilityRef = {
    capabilityId: string;
    kind: RuntimeModelCapabilityKind;
    bridgeRef: string;
    invocationSurface: "modelInvocationRuntime" | (string & {});
    scopes: readonly string[];
    metadata: Readonly<Record<string, unknown>>;
};
export type ModelCapabilityBridge = {
    bridgeId: string;
    runtimeId: string;
    caller: ModelAdapterRuntimeCaller;
    route: "runtime.modelAdapter.modelCapabilityBridge";
    capabilities: readonly RuntimeModelCapabilityRef[];
    capabilityIds: readonly string[];
    capabilityKinds: readonly RuntimeModelCapabilityKind[];
    grantedScopes: readonly string[];
    contractChecked: true;
    governanceChecked: true;
    dryRun: true;
    unsafeSideEffects: false;
};
export type ModelCapabilityBridgeResult = {
    ok: true;
    bridge: ModelCapabilityBridge;
    events: readonly string[];
} | {
    ok: false;
    error: ModelCapabilityBridgeError;
    events: readonly string[];
};
export declare function bridgeModelCapabilities(request?: ModelCapabilityBridgeRequest): ModelCapabilityBridgeResult;
