import { type PublicClient, type Chain, type Transport } from 'viem'; import { type AzethContractAddresses } from '@azeth/common'; import type { AzethSmartAccountClient } from '../utils/userop.js'; export interface TransferParams { to: `0x${string}`; token?: `0x${string}`; amount: bigint; } export interface TransferResult { txHash: `0x${string}`; from: `0x${string}`; to: `0x${string}`; amount: bigint; token: `0x${string}` | 'ETH'; } /** Transfer ETH or ERC-20 tokens via the smart account using ERC-4337 UserOperations. * * The SmartAccountClient builds a UserOperation that routes through EntryPoint v0.7, * which calls executeUserOp() on the AzethAccount. This is the ONLY authorized path * for state-changing operations on AzethAccount v12. * * When publicClient and addresses are provided, a pre-flight guardrail check is * performed via GuardianModule.checkOperation() to catch spending limit / whitelist * failures with descriptive errors instead of the opaque "AA24 signature error". * * M-12 fix (Audit #8): Rejects zero-amount transfers at the raw function level. */ export declare function transfer(smartAccountClient: AzethSmartAccountClient, smartAccount: `0x${string}`, params: TransferParams, publicClient?: PublicClient, addresses?: AzethContractAddresses, guardianCosignAvailable?: boolean): Promise; //# sourceMappingURL=transfer.d.ts.map