export type InterfaceCapabilityKind = "text" | "image" | "audio" | "video" | "tool" | "structured-output" | "custom";
export type InterfaceCapabilitySignal = {
    name?: string;
    kind?: InterfaceCapabilityKind | string;
    required?: boolean;
    aliases?: readonly string[];
    limits?: Readonly<Record<string, string | number | boolean>>;
    sourceField?: string;
};
export type InterfaceCapabilityExtractionTrace = {
    correlationId?: string;
    carrierId?: string;
};
export type InterfaceCapabilityExtractionGate = {
    accepted: boolean;
    reason?: string;
};
export type InterfaceCapabilityExtractionRequest = {
    providerId?: string;
    interfaceId?: string;
    capabilitySignals?: readonly InterfaceCapabilitySignal[];
    dslIntentCapabilities?: readonly string[];
    governance?: InterfaceCapabilityExtractionGate;
    trace?: InterfaceCapabilityExtractionTrace;
};
export type InterfaceCapabilityDescriptor = {
    id: string;
    name: string;
    kind: InterfaceCapabilityKind | "unknown";
    required: boolean;
    aliases: readonly string[];
    limits: Readonly<Record<string, string | number | boolean>>;
    sourceField?: string;
    matchedDslIntent: boolean;
};
export type InterfaceCapabilityExtractionErrorCode = "MISSING_PROVIDER_ID" | "MISSING_INTERFACE_ID" | "MISSING_CAPABILITY_SIGNALS" | "EMPTY_CAPABILITY_NAME" | "GOVERNANCE_REJECTED";
export type InterfaceCapabilityExtractionError = {
    code: InterfaceCapabilityExtractionErrorCode;
    message: string;
    boundary: "input" | "contract" | "governance";
    publicSafe: true;
};
export type InterfaceCapabilityExtractionResult = {
    ok: true;
    providerId: string;
    interfaceId: string;
    capabilities: readonly InterfaceCapabilityDescriptor[];
    requestedDslCapabilities: readonly string[];
    trace: InterfaceCapabilityExtractionTrace;
    unsafeSideEffects: false;
    events: readonly string[];
} | {
    ok: false;
    error: InterfaceCapabilityExtractionError;
    events: readonly string[];
};
export declare function extractInterfaceCapabilities(request?: InterfaceCapabilityExtractionRequest): InterfaceCapabilityExtractionResult;
