///
import type { JsonRpcSigner, TransactionRequest, Web3Provider } from "@ethersproject/providers";
import BigNumber from "bignumber.js";
import type { Tx, TokenConfig } from "../../common/types";
import BaseWebToken from "./base";
import { InjectedTypedEthereumSigner, type InjectedTypedEthereumSignerMinimalSigner } from "arbundles/web";
export type MinimalSigner = InjectedTypedEthereumSignerMinimalSigner & Pick;
export type MinimalProvider = {
getSigner: () => MinimalSigner;
} & Pick;
export default class EthereumConfig extends BaseWebToken {
signer: InjectedTypedEthereumSigner;
wallet: MinimalProvider;
w3signer: MinimalSigner;
providerInstance: MinimalProvider;
readonly inheritsRPC = true;
constructor(config: TokenConfig);
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;
}