import { BigNumber } from 'bignumber.js'; import { IRpcWallet, TransactionReceipt } from "../wallet"; import { ITokenObject } from '../types'; export declare const getERC20Allowance: (wallet: IRpcWallet, token: ITokenObject, spenderAddress: string) => Promise; export interface IERC20ApprovalEventOptions { sender: any; payAction: () => Promise; onToBeApproved: (token: ITokenObject, data?: any) => Promise; onToBePaid: (token: ITokenObject, data?: any) => Promise; onApproving: (token: ITokenObject, receipt?: string, data?: any) => Promise; onApproved: (token: ITokenObject, data?: any, receipt?: TransactionReceipt) => Promise; onPaying: (receipt?: string, data?: any) => Promise; onPaid: (data?: any, receipt?: TransactionReceipt) => Promise; onApprovingError: (token: ITokenObject, err: Error) => Promise; onPayingError: (err: Error) => Promise; } export interface IERC20ApprovalOptions extends IERC20ApprovalEventOptions { spenderAddress: string; } export interface IERC20ApprovalAction { doApproveAction: (token: ITokenObject, inputAmount: string, data?: any) => Promise; doPayAction: (data?: any) => Promise; checkAllowance: (token: ITokenObject, inputAmount: string, data?: any) => Promise; } export declare class ERC20ApprovalModel { private wallet; private options; constructor(wallet: IRpcWallet, options: IERC20ApprovalOptions); set spenderAddress(value: string); private checkAllowance; private doApproveAction; private doPayAction; getAction: () => IERC20ApprovalAction; }