import { BytesLike, TypedDataField } from 'ethers';
import { DynamicWalletProvider } from './dynamic.wallet-provider';
declare const window: Window & {
    ethereum: {
        isMetaMask: boolean;
        autoRefreshOnNetworkChange: boolean;
        networkVersion: string;
        selectedAddress: string;
        enable(): Promise<string[]>;
        on<T>(event: string, callback: (data: T) => any): void;
        request<T = any>(args: {
            method: string;
            params?: any[];
        }): Promise<T>;
    };
};
export declare class MetaMaskWalletProvider extends DynamicWalletProvider {
    static get ethereum(): typeof window['ethereum'];
    static detect(): boolean;
    static connect(): Promise<MetaMaskWalletProvider>;
    private static instance;
    protected constructor();
    signMessage(message: BytesLike): Promise<string>;
    signTypedData(typedData: TypedDataField[], message: any, accountAddress: string): Promise<string>;
    protected connect(): Promise<void>;
    protected sendRequest<T = any>(method: string, params?: any): Promise<T>;
}
export {};
