export type InterfaceFormatDirection = "input" | "output" | "bidirectional";
export type InterfaceFormatSignal = {
    name?: string;
    direction?: InterfaceFormatDirection;
    mediaType?: string;
    schemaName?: string;
    fields?: readonly string[];
    sourceField?: string;
};
export type InterfaceFormatExtractionTrace = {
    correlationId?: string;
    carrierId?: string;
};
export type InterfaceFormatExtractionGate = {
    accepted: boolean;
    reason?: string;
};
export type InterfaceFormatExtractionRequest = {
    providerId?: string;
    interfaceId?: string;
    formatSignals?: readonly InterfaceFormatSignal[];
    dslIntentFormats?: readonly string[];
    governance?: InterfaceFormatExtractionGate;
    trace?: InterfaceFormatExtractionTrace;
};
export type InterfaceFormatDescriptor = {
    id: string;
    name: string;
    direction: InterfaceFormatDirection;
    mediaType?: string;
    schemaName?: string;
    fields: readonly string[];
    sourceField?: string;
    matchedDslIntent: boolean;
};
export type InterfaceFormatExtractionErrorCode = "MISSING_PROVIDER_ID" | "MISSING_INTERFACE_ID" | "MISSING_FORMAT_SIGNALS" | "EMPTY_FORMAT_NAME" | "GOVERNANCE_REJECTED";
export type InterfaceFormatExtractionError = {
    code: InterfaceFormatExtractionErrorCode;
    message: string;
    boundary: "input" | "contract" | "governance";
    publicSafe: true;
};
export type InterfaceFormatExtractionResult = {
    ok: true;
    providerId: string;
    interfaceId: string;
    formats: readonly InterfaceFormatDescriptor[];
    requestedDslFormats: readonly string[];
    trace: InterfaceFormatExtractionTrace;
    unsafeSideEffects: false;
    events: readonly string[];
} | {
    ok: false;
    error: InterfaceFormatExtractionError;
    events: readonly string[];
};
export declare function extractInterfaceFormats(request?: InterfaceFormatExtractionRequest): InterfaceFormatExtractionResult;
