import { BigNumber, Contract, ContractInterface, ContractTransaction, Overrides, Signer, ethers, providers } from "ethers"; import type { UserAddress } from "../interfaces"; import type { ChainName } from "../wormhole"; declare const ERC20_INTERFACE: ContractInterface; interface ERC20Contract extends Contract { allowance: (owner: string, spender: string, overrides?: Overrides) => Promise; approve: (spender: string, value: BigNumber, overrides?: Overrides) => Promise; balanceOf: (owner: string) => Promise; decimals: () => Promise; transfer: (to: string, value: BigNumber, overrides?: Overrides) => Promise; } declare class ERC20Readonly { tokenAddress: string; provider: providers.Provider | Signer; protected decimals: number | undefined; protected contract: ERC20Contract; constructor(tokenAddress: string, provider: providers.Provider | Signer); getAddressTokenBalance(userAddress: UserAddress): Promise; getTokenAddressDecimal(): Promise; getAllowedAmountToSpendFromOwner(tokenOwner: UserAddress, spenderAddress: UserAddress): Promise; } declare class ERC20 extends ERC20Readonly { private signer; constructor(tokenAddress: string, signer: Signer); getAllowedAmountToSpend(destAddress: string): Promise; approveAmountToSpend(destAddress: string, amount: BigNumber, overrides?: ethers.Overrides): Promise; getBalance(): Promise; transferTokens(destAddress: string, amount: BigNumber, overrides?: Overrides): Promise; } interface EVMGasLimit { wormhole_transfer_with_payload: number; wormhole_redeem: number; erc20_approve: number; erc20_transfer: number; } declare const getEvmGasLimitByChain: (chain: ChainName) => EVMGasLimit | undefined; export { ERC20, ERC20Readonly, ERC20_INTERFACE, getEvmGasLimitByChain, }; //# sourceMappingURL=ethers.d.ts.map