import { Logger, Currency, PaymentMaker, AccountId, PaymentIdentifier, Destination } from '@atxp/common'; import BigNumber from 'bignumber.js'; import { SpendPermission } from './types.js'; import { type EphemeralSmartWallet } from './smartWalletHelpers.js'; /** * Configuration for transaction confirmation delays */ export interface ConfirmationDelays { /** Network propagation delay in milliseconds (must be >= 0) */ networkPropagationMs: number; /** Confirmation failed delay in milliseconds (must be >= 0) */ confirmationFailedMs: number; } /** * Options for configuring WorldchainPaymentMaker */ export interface WorldchainPaymentMakerOptions { /** Logger instance for debug output */ logger?: Logger; /** Chain ID (defaults to World Chain Mainnet) */ chainId?: number; /** Custom RPC URL for the chain */ customRpcUrl?: string; /** Custom confirmation delays (defaults to production values) */ confirmationDelays?: ConfirmationDelays; } /** * Gets default confirmation delays based on environment */ export declare const getDefaultConfirmationDelays: () => ConfirmationDelays; /** * Payment maker for World Chain transactions using smart wallets and spend permissions * * @example * ```typescript * // For production use (default delays) * const paymentMaker = new WorldchainPaymentMaker(permission, wallet); * * // For testing (fast delays) * const paymentMaker = new WorldchainPaymentMaker(permission, wallet, { * confirmationDelays: { networkPropagationMs: 10, confirmationFailedMs: 20 } * }); * * // With custom configuration * const paymentMaker = new WorldchainPaymentMaker(permission, wallet, { * chainId: 480, // World Chain Mainnet * customRpcUrl: 'https://my-rpc.com', * logger: myLogger * }); * ``` */ export declare class WorldchainPaymentMaker implements PaymentMaker { private logger; private spendPermission; private smartWallet; private chainId; private customRpcUrl?; private confirmationDelays; /** * Creates a new WorldchainPaymentMaker instance * * @param spendPermission - The spend permission for transactions * @param smartWallet - The smart wallet instance to use * @param options - Optional configuration */ constructor(spendPermission: SpendPermission, smartWallet: EphemeralSmartWallet, options?: WorldchainPaymentMakerOptions); getSourceAddress(_params: { amount: BigNumber; currency: Currency; receiver: string; memo: string; }): string; generateJWT({ paymentRequestId, codeChallenge, accountId }: { paymentRequestId: string; codeChallenge: string; accountId?: AccountId | null; }): Promise; makePayment(destinations: Destination[], memo: string, _paymentRequestId?: string): Promise; } //# sourceMappingURL=worldchainPaymentMaker.d.ts.map