import { type CapabilityAvailability } from "./capabilityAvailabilityProbe.js";
import { type ExposedCapabilityContract } from "./capabilityContractExposer.js";
import { type RuntimeCapabilityAudience, type RuntimeCapabilityCatalogSnapshot, type RuntimeCapabilityDescriptor, type RuntimeCapabilityExposureError, type RuntimeCapabilityExposureFailure, type RuntimeCapabilityExposureGate } from "./runtimeCapabilityCatalog.js";
export type CapabilityExposureRuntimeRequest = {
    runtimeId?: string;
    capabilities?: readonly RuntimeCapabilityDescriptor[];
    capabilityIds?: readonly string[];
    audience?: RuntimeCapabilityAudience;
    requestedScopes?: readonly string[];
    runtimeReady?: boolean;
    contract?: RuntimeCapabilityExposureGate;
    governance?: RuntimeCapabilityExposureGate;
};
export type CapabilityExposureRuntimeSnapshot = {
    runtimeId: string;
    catalog: RuntimeCapabilityCatalogSnapshot;
    availability: readonly CapabilityAvailability[];
    contracts: readonly ExposedCapabilityContract[];
    contractErrors: readonly RuntimeCapabilityExposureError[];
    runtimeSurface: "runtime.capabilityExposure";
    governanceChecked: true;
    contractChecked: true;
    unsafeSideEffects: false;
};
export type CapabilityExposureRuntimeResult = {
    ok: true;
    exposure: CapabilityExposureRuntimeSnapshot;
    events: readonly string[];
} | RuntimeCapabilityExposureFailure;
export declare function createCapabilityExposureRuntimeSnapshot(request?: CapabilityExposureRuntimeRequest): CapabilityExposureRuntimeResult;
