import type { BaseContract } from '../abstracts'; import type { ITransactionRequestConfig, ITransactionReceipt, ITransactionData, IBlock, IBlockWithTransaction, IJsonRpcRequestPayload, IJsonRpcResponse, ITransactionWriteResult } from '../interfaces'; import type { Logger } from '../utils'; export declare abstract class BaseWeb3Client { logger: Logger; abstract name: string; constructor(logger: Logger); abstract getContract(address: string, abi: any): BaseContract; abstract read(config: ITransactionRequestConfig): Promise; abstract write(config: ITransactionRequestConfig): ITransactionWriteResult; abstract getGasPrice(): Promise; abstract estimateGas(config: ITransactionRequestConfig): Promise; abstract getChainId(): Promise; abstract getTransactionCount(address: string, blockNumber: any): Promise; abstract getTransaction(transactionHash: string): Promise; abstract getTransactionReceipt(transactionHash: string): Promise; abstract getBlock(blockHashOrBlockNumber: any): Promise; abstract getBlockWithTransaction(blockHashOrBlockNumber: any): Promise; abstract hexToNumber(value: any): number; abstract hexToNumberString(value: any): string; abstract getBalance(address: string): Promise; abstract getAccounts(): Promise; abstract signTypedData(signer: string, typedData: object): Promise; getRootHash?(startBlock: number, endBlock: number): Promise; getAccountsUsingRPC_(): Promise; abstract sendRPCRequest(request: IJsonRpcRequestPayload): Promise; abstract encodeParameters(params: any[], types: any[]): string; abstract decodeParameters(hexString: string, types: any[]): any[]; abstract etheriumSha3(...value: any[]): string; }