import { type RuntimeCapabilityAudience, type RuntimeCapabilityCatalogEntry, type RuntimeCapabilityCatalogSnapshot, type RuntimeCapabilityExposureFailure, type RuntimeCapabilityExposureGate } from "./runtimeCapabilityCatalog.js";
export type ExposedCapabilityContract = {
    runtimeId: string;
    capabilityId: string;
    kind: RuntimeCapabilityCatalogEntry["kind"];
    contractId: string;
    version?: string;
    surfaceId?: string;
    scopes: readonly string[];
    audiences: readonly RuntimeCapabilityAudience[];
    inputBoundary: readonly string[];
    outputBoundary: readonly string[];
    errorCodes: readonly string[];
    contractSurface: "runtime.capabilityExposure.capabilityContractExposer";
    governanceRequired: true;
    rawProviderFieldsExposed: false;
    unsafeSideEffects: false;
};
export type CapabilityContractExposerRequest = {
    runtimeId?: string;
    capabilityId?: string;
    catalog?: RuntimeCapabilityCatalogSnapshot;
    audience?: RuntimeCapabilityAudience;
    runtimeReady?: boolean;
    contract?: RuntimeCapabilityExposureGate;
    governance?: RuntimeCapabilityExposureGate;
};
export type CapabilityContractExposerResult = {
    ok: true;
    exposedContract: ExposedCapabilityContract;
    events: readonly string[];
} | RuntimeCapabilityExposureFailure;
export declare function exposeCapabilityContract(request?: CapabilityContractExposerRequest): CapabilityContractExposerResult;
