/// <reference types="node" />
import { ethers, Signer, Wallet } from "ethers";
import Web3 from "web3";
import { EvmGatewayConfig, IWeb3Gateway } from "../common/interfaces";
import { APP_NETWORK } from "../common/constants";
export declare class EvmGateway implements IWeb3Gateway {
    protected config: EvmGatewayConfig;
    protected web3: Web3;
    protected keepAliveInterval: NodeJS.Timeout;
    protected logger: import("pino").Logger<never>;
    provider: ethers.providers.JsonRpcProvider;
    wallet: Wallet;
    network: APP_NETWORK;
    constructor(config: EvmGatewayConfig);
    protected checkConnection(): Promise<void>;
    connect(): void;
    get signer(): Promise<Signer>;
    getGasPrice(): Promise<string>;
    isValidTxFormat(txHash: string): boolean;
    getBlock(blockNumber: number): Promise<any>;
    recoverSigner(message: string, signedMessage: string): Promise<string>;
    getCurrentBlock(): Promise<number>;
    getSignerAddress(): Promise<string>;
    getTransactionByID(txID: string): Promise<any>;
}
