import { type RuntimeCapabilityCatalogEntry, type RuntimeCapabilityCatalogSnapshot, type RuntimeCapabilityExposureFailure, type RuntimeCapabilityExposureGate } from "./runtimeCapabilityCatalog.js";
export type CapabilityAvailabilityStatus = "available" | "unavailable" | "denied";
export type CapabilityAvailabilityProbeRequest = {
    runtimeId?: string;
    capabilityId?: string;
    catalog?: RuntimeCapabilityCatalogSnapshot;
    requestedScopes?: readonly string[];
    runtimeReady?: boolean;
    contract?: RuntimeCapabilityExposureGate;
    governance?: RuntimeCapabilityExposureGate;
};
export type CapabilityAvailability = {
    runtimeId: string;
    capabilityId: string;
    kind: RuntimeCapabilityCatalogEntry["kind"];
    status: CapabilityAvailabilityStatus;
    reasons: readonly string[];
    requestedScopes: readonly string[];
    missingScopes: readonly string[];
    mounted: boolean;
    enabled: boolean;
    contractId?: string;
    probeSurface: "runtime.capabilityExposure.capabilityAvailabilityProbe";
    governanceChecked: true;
    contractChecked: true;
    unsafeSideEffects: false;
};
export type CapabilityAvailabilityProbeResult = {
    ok: true;
    availability: CapabilityAvailability;
    events: readonly string[];
} | RuntimeCapabilityExposureFailure;
export declare function probeCapabilityAvailability(request?: CapabilityAvailabilityProbeRequest): CapabilityAvailabilityProbeResult;
