import { TransactionRequest } from '@ethersproject/providers';
import { ethers } from 'ethers';
import { EthereumWallet } from './interface';
export default class extends ethers.Signer implements EthereumWallet {
    provider: ethers.providers.StaticJsonRpcProvider;
    private _metamaskProviderPromise;
    constructor(config: {
        providerUrl: string;
        chainId: number;
        ensAddress?: string;
        name?: string;
    });
    getAddress(): Promise<string>;
    signMessage(message: string | ethers.Bytes): Promise<string>;
    signTransaction(): Promise<string>;
    sendTransaction(transaction: TransactionRequest): Promise<ethers.providers.TransactionResponse>;
    sendTransactionOutHash(transaction: TransactionRequest): Promise<string>;
    sendCustomRequest(method: string, params: any[]): Promise<any>;
    connect(): ethers.Signer;
    isAvailable(): Promise<boolean>;
    isConnected(): Promise<boolean>;
    connectWallet(): Promise<void>;
    disconnectWallet(): Promise<void>;
    getMeta(): Promise<{
        name: string;
        description: string;
        icon: any;
    }>;
    getLastUsage(): Promise<any>;
    private _prepareNetwork;
    private _getWalletChainId;
    private _getMetamaskProvider;
    private _getMetaMaskId;
}
