import BigNumber from '@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber'; import { AirGapTransaction, AirGapTransactionsWithCursor, Amount, Balance, ExtendedPublicKey, PublicKey, SecretKey, TransactionDetails, TransactionFullConfiguration } from '@airgap/module-kit'; import { EthereumInfoClient } from '../../clients/info/EthereumInfoClient'; import { EthereumNodeClient } from '../../clients/node/EthereumNodeClient'; import { ERC20ProtocolOptions, EthereumProtocolNetwork, EthereumUnits } from '../../types/protocol'; import { EthereumSignedTransaction, EthereumTransactionCursor, EthereumUnsignedTransaction } from '../../types/transaction'; import { EthereumBaseProtocol, EthereumBaseProtocolImpl } from '../EthereumBaseProtocol'; export interface ERC20Protocol<_Units extends string, _ProtocolNetwork extends EthereumProtocolNetwork = EthereumProtocolNetwork> extends EthereumBaseProtocol<_Units, _ProtocolNetwork> { name(): Promise; symbol(): Promise; decimals(): Promise; } export declare abstract class ERC20ProtocolImpl<_Units extends string, _ProtocolNetwork extends EthereumProtocolNetwork = EthereumProtocolNetwork> extends EthereumBaseProtocolImpl<_Units, _ProtocolNetwork> implements ERC20Protocol<_Units, _ProtocolNetwork> { protected readonly contractAddress: string; constructor(nodeClient: EthereumNodeClient, infoClient: EthereumInfoClient, options: ERC20ProtocolOptions<_Units, _ProtocolNetwork>); getDetailsFromTransaction(transaction: EthereumSignedTransaction | EthereumUnsignedTransaction, publicKey: PublicKey | ExtendedPublicKey): Promise[]>; private getDetailsFromSignedContractTransaction; private getDetailsFromUnsignedContractTransaction; signTransactionWithSecretKey(transaction: EthereumUnsignedTransaction, secretKey: SecretKey): Promise; getTransactionsForPublicKey(publicKey: PublicKey | ExtendedPublicKey, limit: number, cursor?: EthereumTransactionCursor): Promise>; getTransactionsForAddress(address: string, limit: number, cursor?: EthereumTransactionCursor): Promise>; getTransactionsForAddresses(addresses: string[], limit: number, cursor?: EthereumTransactionCursor): Promise>; getBalanceOfPublicKey(publicKey: PublicKey | ExtendedPublicKey): Promise>; getBalanceOfAddress(address: string): Promise>; getBalanceOfAddresses(addresses: string[]): Promise>; getTransactionMaxAmountWithPublicKey(publicKey: PublicKey | ExtendedPublicKey, to: string[], configuration?: TransactionFullConfiguration): Promise>; prepareTransactionWithPublicKey(publicKey: PublicKey | ExtendedPublicKey, details: TransactionDetails<_Units>[], configuration?: TransactionFullConfiguration): Promise; name(): Promise; symbol(): Promise; decimals(): Promise; protected estimateGas(fromAddress: string, toAddress: string, amount: string | number | BigNumber | Amount, _data?: string): Promise; }