import { ERC20InputBody, Transaction, GetAllowanceParams } from '@moonup/moon-api';

declare const useMoonErc20: () => {
    approveErc20: (payload: {
        accountName: string;
        transaction: ERC20InputBody;
    }) => Promise<Transaction>;
    transferErc20: (payload: {
        accountName: string;
        transaction: ERC20InputBody;
    }) => Promise<Transaction>;
    transferFromErc20: (payload: {
        accountName: string;
        transaction: {
            from: string;
            to: string;
            value: string;
            contract_address: string;
            chain_id: string;
        };
    }) => Promise<Transaction>;
    balanceOfErc20: (payload: {
        accountName: string;
        transaction: {
            chain_id: string;
            contract_address: string;
        };
    }) => Promise<{
        balance: string;
    }>;
    allowanceErc20: (payload: GetAllowanceParams) => Promise<string>;
    approveTokenSpendIfNeeded: (owner: string, spender: string, tokenAddress: string, amountDecimal: number, chainId: string) => Promise<unknown>;
};

export { useMoonErc20 };
