import { SchemeNetworkClient, PaymentRequirements, PaymentPayloadContext, PaymentPayloadResult } from '@x402/core/types'; import { C as ClientEvmSigner } from './signer-B127taDR.js'; import { E as ExactEvmSchemeOptions } from './rpc-DULZzRne.js'; /** * EVM client implementation for the Exact payment scheme. * Supports both EIP-3009 (transferWithAuthorization) and Permit2 flows. * * Routes to the appropriate authorization method based on * `requirements.extra.assetTransferMethod`. Defaults to EIP-3009 * for backward compatibility with older facilitators. * * When the server advertises `eip2612GasSponsoring` and the asset transfer * method is `permit2`, the scheme automatically signs an EIP-2612 permit * if the user lacks Permit2 approval. This requires `readContract` on the signer. */ declare class ExactEvmScheme implements SchemeNetworkClient { private readonly signer; private readonly options?; readonly scheme = "exact"; /** * Creates a new ExactEvmClient instance. * * @param signer - The EVM signer for client operations. * Base flow only requires `address` + `signTypedData`. * Extension enrichment (EIP-2612 / ERC-20 approval sponsoring) additionally * requires optional capabilities like `readContract` and tx signing helpers. * @param options - Optional RPC configuration used to backfill extension capabilities. */ constructor(signer: ClientEvmSigner, options?: ExactEvmSchemeOptions | undefined); /** * Creates a payment payload for the Exact scheme. * Routes to EIP-3009 or Permit2 based on requirements.extra.assetTransferMethod. * * For Permit2 flows, if the server advertises `eip2612GasSponsoring` and the * signer supports `readContract`, automatically signs an EIP-2612 permit * when Permit2 allowance is insufficient. * * @param x402Version - The x402 protocol version * @param paymentRequirements - The payment requirements * @param context - Optional context with server-declared extensions * @returns Promise resolving to a payment payload result (with optional extensions) */ createPaymentPayload(x402Version: number, paymentRequirements: PaymentRequirements, context?: PaymentPayloadContext): Promise; } export { ExactEvmScheme as E };