/**
 * Every payment a 402 offers, whichever protocol states it: x402 entries from
 * `PAYMENT-REQUIRED`, MPP challenges from `WWW-Authenticate: Payment`. The
 * wrong-rail error lists these and names the rail switch that would pay the
 * first one (spec `tenant-x402-payment-client-surface`).
 *
 * Parsed without the paid stack: an x402-only install has no `mppx`, and the
 * error still has to say what the seller wanted.
 */
export type PaymentRail = "x402" | "mpp" | "lightning";
export interface PaymentOffer {
    protocol: "x402" | "mpp";
    /** x402 scheme (`exact`), or the MPP method (`tempo`, `lightning`). */
    method: string;
    /** MPP intent (`charge`); absent for x402. */
    intent?: string;
    /** CAIP-2 network id, when the offer names one. */
    network: string | null;
}
export declare function paymentOffers(response: Response): PaymentOffer[];
export declare function x402Offers(response: Response): PaymentOffer[];
export interface MppChallengeParams {
    id?: string;
    method: string;
    intent: string;
    request: Record<string, unknown> | null;
}
/** The `Payment` challenges in `WWW-Authenticate`, with their decoded `request`. */
export declare function mppChallenges(response: Response): MppChallengeParams[];
export declare function mppOffers(response: Response): PaymentOffer[];
/** The rail that pays an offer: x402 EVM entries, MPP Tempo, and Lightning (either protocol). */
export declare function railForOffer(offer: PaymentOffer): PaymentRail | null;
/** The first offer's rail, when it is not the configured one. */
export declare function switchRailFor(offers: readonly PaymentOffer[], configured: PaymentRail | undefined): PaymentRail | null;
//# sourceMappingURL=payment-offers.d.ts.map