///
import type { JsonRpcSigner, TransactionRequest, Web3Provider } from "@ethersproject/providers";
import BigNumber from "bignumber.js";
import type { Tx, CurrencyConfig } from "../../common/types";
import BaseWebCurrency from "../currency";
import { InjectedTypedEthereumSigner } from "arbundles/web";
export default class EthereumConfig extends BaseWebCurrency {
protected signer: InjectedTypedEthereumSigner;
protected wallet: Web3Provider;
protected w3signer: JsonRpcSigner;
protected providerInstance: Web3Provider;
readonly inheritsRPC = true;
constructor(config: CurrencyConfig);
getTx(txId: string): Promise;
ownerToAddress(owner: any): string;
sign(data: Uint8Array): Promise;
getSigner(): InjectedTypedEthereumSigner;
verify(pub: any, data: Uint8Array, signature: Uint8Array): Promise;
getCurrentHeight(): Promise;
getFee(amount: BigNumber.Value, to?: string): Promise;
sendTx(data: TransactionRequest): Promise;
createTx(amount: BigNumber.Value, to: string, _fee?: string): Promise<{
txId: string | undefined;
tx: any;
}>;
getPublicKey(): Promise;
ready(): Promise;
}