import type { StreamableHTTPClientTransportOptions } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
import type { Account } from "viem";
import { evm } from "x402/types";
import { type PaymentRequirementsSelector } from "../x402";
/**
 * Configuration options for payment handling in the PaymentTransport.
 */
export interface PaymentTransportOptions extends StreamableHTTPClientTransportOptions {
    /**
     * The maximum allowed payment amount in base units (defaults to 0.1 USDC)
     */
    maxPaymentValue?: bigint;
    /**
     * A function that selects the payment requirements from the response
     */
    paymentRequirementsSelector?: PaymentRequirementsSelector;
}
/**
 * PaymentTransport extends StreamableHTTPClientTransport to handle 402 Payment Required responses
 * by automatically creating and sending payment headers using the x402 payment protocol.
 *
 * This implementation uses the x402-fetch library to automatically handle payments.
 */
export declare class PaymentTransport extends StreamableHTTPClientTransport {
    private _walletClient;
    private _maxPaymentValue;
    private _paymentRequirementsSelector;
    private _paymentUrl;
    private _customRequestInit?;
    private _paymentFetch;
    constructor(url: URL, walletClient: typeof evm.SignerWallet | Account, opts: PaymentTransportOptions);
    /**
     * Override the send method to use our payment-enabled fetch
     */
    private _overrideSendMethod;
    /**
     * Extract payment requirements from an error message
     */
    private _extractPaymentRequirementsFromError;
    /**
     * Handle a 402 Payment Required response by creating and sending a payment header
     */
    private _handlePaymentRequired;
}
/**
 * Creates a PaymentTransport instance that automatically handles 402 Payment Required responses
 * by creating and sending payment headers using the x402 payment protocol.
 */
export declare function createPaymentTransport(url: URL, walletClient: typeof evm.SignerWallet | Account, options?: Omit<PaymentTransportOptions, 'walletClient'>): PaymentTransport;
//# sourceMappingURL=payment-http-transport.d.ts.map