import { type CustomFormatCapabilityAvailability, type CustomFormatCapabilitySignal } from "./capabilityIndicator.js";
import { type CustomFormatCapabilityBoundary, type CustomFormatCapabilityFeatureFlags, type CustomFormatCapabilityGate } from "./capabilityReceiver.js";
export type CustomFormatCapabilityExposureRequest = {
    providerId?: string;
    signals?: readonly CustomFormatCapabilitySignal[];
    allowedCapabilityIds?: readonly string[];
    contract?: CustomFormatCapabilityGate;
    governance?: CustomFormatCapabilityGate;
    metadata?: Readonly<Record<string, unknown>>;
};
export type CustomFormatExposedCapability = {
    providerId: string;
    endpointId: string;
    capabilityId: string;
    label: string;
    availability: Extract<CustomFormatCapabilityAvailability, "available" | "partial">;
    inputChannels: readonly string[];
    outputChannels: readonly string[];
    featureFlags: CustomFormatCapabilityFeatureFlags;
    exposedTo: "agent_modelAdapter";
    next: "agent_modelAdapter.abstractionLayer";
    rawProviderFieldsExposed: false;
};
export type CustomFormatWithheldCapability = {
    capabilityId: string;
    availability: CustomFormatCapabilityAvailability;
    reasons: readonly string[];
};
export type CustomFormatCapabilityExposure = {
    providerId: string;
    exposed: readonly CustomFormatExposedCapability[];
    withheld: readonly CustomFormatWithheldCapability[];
    metadata: Readonly<Record<string, unknown>>;
    audit: {
        exposedBy: "customFormat.capabilityExposer";
        dryRun: true;
        unsafeSideEffects: false;
        customFormatPromotedToPraxisStandard: false;
    };
};
export type CustomFormatCapabilityExposureErrorCode = "MISSING_PROVIDER_ID" | "MISSING_SIGNALS" | "PROVIDER_MISMATCH" | "SCOPE_DENIED" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED";
export type CustomFormatCapabilityExposureError = {
    code: CustomFormatCapabilityExposureErrorCode;
    message: string;
    boundary: CustomFormatCapabilityBoundary | "scope";
    safeForRuntimeInspection: true;
    rawProviderFieldsExposed: false;
};
export type CustomFormatCapabilityExposureResult = {
    ok: true;
    exposure: CustomFormatCapabilityExposure;
    events: readonly string[];
} | {
    ok: false;
    error: CustomFormatCapabilityExposureError;
    events: readonly string[];
};
export declare const customFormatCapabilityExposerDescriptor: {
    readonly layer: "agent_modelAdapter.actualInvocationLayer.customFormat";
    readonly capability: "customFormat.capabilityExposer";
    readonly purpose: "expose confirmed custom provider capabilities to the model adapter without leaking raw provider fields";
    readonly dryRun: true;
    readonly unsafeSideEffects: false;
    readonly exposedTo: "agent_modelAdapter";
};
export declare function exposeCustomFormatCapabilities(request?: CustomFormatCapabilityExposureRequest): CustomFormatCapabilityExposureResult;
