import Big from 'big.js'; import { EthereumConfigAsset, NativeAsset } from '../types/config.js'; import { TxHash, WrapStatus } from '../lib/models.js'; import { Maybe } from '@avalabs/core-utils-sdk'; import { JsonRpcApiProvider, TransactionRequest } from 'ethers'; /** * Transfer an ERC20 asset. * When currentBlockchain is Avalanche the asset will be transferred to * Ethereum and vice versa. * * @param signAndSendEVM Required when the provider for the currentBlockchain * @param avalancheProvider This can accept either a JsonRpcProvider or BrowserProvider. If a signAndSendEVM param is provided, then this can be a JsonRpcProvider (i.e. a provider without signing capabilities), otherwise this should be a BrowserProvider, or other provider with signing capabilities (via the provider.getSigner method) * @param ethereumProvider Same comment as avalancheProvider^ * does not support signing transactions. */ declare function useTransferAssetEVM(asset: Maybe, account: Maybe, avalancheProvider: JsonRpcApiProvider, ethereumProvider: JsonRpcApiProvider, signAndSendEVM?: (txData: TransactionRequest) => Promise): { transferAsset: (amount: Big) => Promise | undefined; status: WrapStatus; txHash: string; }; export { useTransferAssetEVM };