import { PublicClient } from 'viem'; import type { AuthorizedAccount, ReadOnlyAccount } from './account'; import { Activity } from './activities'; import { BundlerConfig } from './bundler'; import { EvmAddress, GasCostEstimate, TransactionValue } from './types'; /** * Configuration for sending a transfer */ export interface SendTransferConfig { /** The authorized account to send from */ authorizedAccount: AuthorizedAccount; /** The amount to transfer */ amount: TransactionValue; /** The destination address */ to: EvmAddress; /** Optional ERC-20 token address (omit for native token) */ token?: EvmAddress; /** Public client for chain interactions */ publicClient: PublicClient; /** Bundler config for sending user operations */ bundlerConfig: BundlerConfig; /** Pre-computed gas limits; when provided, bypasses eth_estimateUserOperationGas */ gasLimits?: GasCostEstimate; } /** * Result of a completed transfer (ENG-170). */ export type SendTransferResult = { activity: Activity; txHash: `0x${string}`; userOpHash: `0x${string}`; }; /** * Sends a transfer transaction * * Handles both native token transfers and ERC-20 token transfers. * * @param config The transfer configuration * @returns The transfer result with activity and on-chain tx identifiers * * @throws {Error} If the transaction fails to send */ export declare function sendTransfer({ authorizedAccount, amount, to, token, publicClient, bundlerConfig, gasLimits }: SendTransferConfig): Promise; type TransferGasCostEstimateParams = { /** The read-only account to use for estimation */ readOnlyAccount: ReadOnlyAccount; /** The destination address or domain name */ to: EvmAddress; /** Optional ERC-20 token address (omit for native token) */ token?: EvmAddress; /** The amount to transfer */ amount: TransactionValue; /** Public client for chain interactions */ publicClient: PublicClient; /** Bundler config for sending user operations */ bundlerConfig: BundlerConfig; }; /** * Get the estimated gas cost for a transfer * * @param config The gas cost estimate configuration * @returns The gas cost estimate */ export declare function getTransferGasCostEstimate({ readOnlyAccount, to, token, amount, publicClient, bundlerConfig }: TransferGasCostEstimateParams): Promise; export {};