export type RuntimeCapabilityKind = "agent" | "tool" | "model" | "interface" | "event" | "extension";
export type RuntimeCapabilityAudience = "application" | "official-module" | "management" | "inspection" | "debug";
export type RuntimeCapabilityExposureBoundary = "input" | "contract" | "governance" | "runtime-state" | "catalog" | "scope";
export type RuntimeCapabilityExposureErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CATALOG" | "MISSING_CAPABILITY_ID" | "MISSING_CAPABILITY_KIND" | "DUPLICATE_CAPABILITY_ID" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "CATALOG_RUNTIME_MISMATCH" | "CAPABILITY_NOT_REGISTERED" | "CAPABILITY_SCOPE_DENIED" | "CAPABILITY_NOT_VISIBLE" | "CONTRACT_NOT_DECLARED";
export type RuntimeCapabilityExposureGate = {
    accepted: boolean;
    reason?: string;
};
export type RuntimeCapabilityExposureError = {
    code: RuntimeCapabilityExposureErrorCode;
    message: string;
    boundary: RuntimeCapabilityExposureBoundary;
    safeForApplication: true;
    internalDetailExposed: false;
};
export type RuntimeCapabilityExposureFailure = {
    ok: false;
    error: RuntimeCapabilityExposureError;
    events: readonly string[];
};
export type RuntimeCapabilityContractSummary = {
    contractId: string;
    version?: string;
    inputBoundary?: readonly string[];
    outputBoundary?: readonly string[];
    errorCodes?: readonly string[];
};
export type RuntimeCapabilityDescriptor = {
    capabilityId?: string;
    kind?: RuntimeCapabilityKind;
    displayName?: string;
    summary?: string;
    surfaceId?: string;
    scopes?: readonly string[];
    audiences?: readonly RuntimeCapabilityAudience[];
    mounted?: boolean;
    enabled?: boolean;
    contract?: RuntimeCapabilityContractSummary;
    metadata?: Readonly<Record<string, unknown>>;
};
export type RuntimeCapabilityCatalogEntry = {
    capabilityId: string;
    kind: RuntimeCapabilityKind;
    displayName?: string;
    summary?: string;
    surfaceId?: string;
    scopes: readonly string[];
    audiences: readonly RuntimeCapabilityAudience[];
    mounted: boolean;
    enabled: boolean;
    contract?: RuntimeCapabilityContractSummary;
};
export type RuntimeCapabilityCatalogSnapshot = {
    runtimeId: string;
    capabilities: readonly RuntimeCapabilityCatalogEntry[];
    requestedAudience?: RuntimeCapabilityAudience;
    catalogSurface: "runtime.capabilityExposure";
    governanceChecked: true;
    contractChecked: true;
    unsafeSideEffects: false;
};
export type RuntimeCapabilityCatalogRequest = {
    runtimeId?: string;
    capabilities?: readonly RuntimeCapabilityDescriptor[];
    audience?: RuntimeCapabilityAudience;
    runtimeReady?: boolean;
    contract?: RuntimeCapabilityExposureGate;
    governance?: RuntimeCapabilityExposureGate;
};
export type RuntimeCapabilityCatalogResult = {
    ok: true;
    catalog: RuntimeCapabilityCatalogSnapshot;
    events: readonly string[];
} | RuntimeCapabilityExposureFailure;
export declare function cleanRuntimeCapabilityList(values: readonly string[] | undefined): readonly string[];
export declare function isRuntimeCapabilityBlank(value: string | undefined): boolean;
export declare function runtimeCapabilityExposureError(code: RuntimeCapabilityExposureErrorCode, message: string, boundary: RuntimeCapabilityExposureBoundary): RuntimeCapabilityExposureError;
export declare function rejectRuntimeCapabilityExposure(code: RuntimeCapabilityExposureErrorCode, message: string, boundary: RuntimeCapabilityExposureBoundary, event?: string): RuntimeCapabilityExposureFailure;
export declare function buildRuntimeCapabilityCatalog(request?: RuntimeCapabilityCatalogRequest): RuntimeCapabilityCatalogResult;
