import { type CustomFormatCapabilityBoundary, type CustomFormatCapabilityGate, type CustomFormatReceivedCapability } from "./capabilityReceiver.js";
export type CustomFormatCapabilityAvailability = "available" | "unavailable" | "partial" | "needs-auth" | "needs-config";
export type CustomFormatCapabilityIndicatorRequest = {
    capability?: CustomFormatReceivedCapability;
    enabled?: boolean;
    authReady?: boolean;
    configurationReady?: boolean;
    providerReachable?: boolean;
    degradationReasons?: readonly string[];
    observedAt?: string;
    contract?: CustomFormatCapabilityGate;
    governance?: CustomFormatCapabilityGate;
};
export type CustomFormatCapabilitySignal = {
    providerId: string;
    endpointId: string;
    capabilityId: string;
    availability: CustomFormatCapabilityAvailability;
    reasons: readonly string[];
    observedAt: string;
    usableByAbstractionLayer: boolean;
    audit: {
        indicatedBy: "customFormat.capabilityIndicator";
        dryRun: true;
        unsafeSideEffects: false;
        rawProviderFieldsExposed: false;
    };
    capability: CustomFormatReceivedCapability;
};
export type CustomFormatCapabilityIndicatorErrorCode = "MISSING_CAPABILITY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED";
export type CustomFormatCapabilityIndicatorError = {
    code: CustomFormatCapabilityIndicatorErrorCode;
    message: string;
    boundary: CustomFormatCapabilityBoundary;
    safeForRuntimeInspection: true;
    rawProviderFieldsExposed: false;
};
export type CustomFormatCapabilityIndicatorResult = {
    ok: true;
    signal: CustomFormatCapabilitySignal;
    events: readonly string[];
} | {
    ok: false;
    error: CustomFormatCapabilityIndicatorError;
    events: readonly string[];
};
export declare const customFormatCapabilityIndicatorDescriptor: {
    readonly layer: "agent_modelAdapter.actualInvocationLayer.customFormat";
    readonly capability: "customFormat.capabilityIndicator";
    readonly purpose: "mark current availability of a received custom provider capability without probing the provider";
    readonly dryRun: true;
    readonly unsafeSideEffects: false;
};
export declare function indicateCustomFormatCapability(request?: CustomFormatCapabilityIndicatorRequest): CustomFormatCapabilityIndicatorResult;
