import type { TransactionMeta } from '../types.js'; /** * Returns the effective recipient of a transaction. * For ERC-20/ERC-721/ERC-1155 token transfer methods, the recipient is decoded * from the calldata since `txParams.to` is the token contract rather than the * address receiving the tokens. For all other transaction types, `txParams.to` * is returned as-is. * * Address poisoning should use {@link getSendRecipients} instead. This helper * is for first-time interaction and similar "who are we calling" checks, where * the contract `to` is the right address for approves and contract calls. * * @param transactionMeta - Transaction meta with txParams and type. * @returns Effective recipient address, or undefined. */ export declare function getEffectiveRecipient(transactionMeta: TransactionMeta): string | undefined; /** * Returns user-chosen send payees for a transaction. * * Address poisoning compares a candidate against prior recipients the user * actually sent to. Protocol addresses (token, Permit2, router, spender) are * dapp-supplied and must not be treated as payees. * * Included: * - `simpleSend` `to`, preferring `txParamsOriginal` when present * - Decoded `to` / `_to` for ERC-20/721/1155 transfer methods * - Decoded `to` for ERC-1155 `safeBatchTransferFrom` * - `swapAndSendRecipient` whenever set (only ever a user-entered payee) * - Nested batch calls that themselves are sends or token transfers * - Untyped transactions with no calldata, treated as legacy native sends * - Speed-up transactions (`type: retry`), classified using `originalType`, * since `txParams` are otherwise unchanged from the transaction being sped * up. * - Cancellations and retries of cancellations return no payees. Their * original params, nested transactions, and swap-and-send recipient can * remain on the metadata even though none of those sends executed. * - A native transfer with no calldata to an address that happens to be a * contract. `determineTransactionType` only returns `simpleSend` when `to` * is not a contract, so these are typed `contractInteraction` even though * the user chose that address as a plain payee. * * @param transactionMeta - Transaction meta with txParams and type. * @returns Deduplicated send recipient addresses, possibly empty. */ export declare function getSendRecipients(transactionMeta: TransactionMeta): string[]; //# sourceMappingURL=recipient.d.ts.map