import { EIP1193Provider, RequestArguments } from "./interface";
import { WalletType } from "../enum/WalletType";
import { DappPortalSDKConfig } from "../config/config";
import { EventEmitter } from "eventemitter3";
import { RpcSuccessResponse } from "../message/RpcMessage";
import { ProviderType } from "../enum/ProviderType";
export declare class WalletProvider extends EventEmitter implements EIP1193Provider {
    private readonly config;
    private walletType;
    private providerType;
    private handler;
    private readonly chainNodeRpcClient;
    private readonly metricApiClient;
    private readonly sdkLocalStorage;
    host: string;
    connected: boolean;
    timeout: number;
    private initializePromise;
    constructor(config: DappPortalSDKConfig);
    private initialize;
    private initializeHandler;
    getWalletType(): WalletType | null;
    getProviderType(): ProviderType | null;
    disconnectWallet(): void;
    request(requestArgs: RequestArguments): Promise<unknown>;
    private requestToWallet;
    private initializeWalletType;
    private selectWalletType;
    private validateTxType;
    private validateSignTransaction;
    send(payload: object, callback?: (error: Error | null, result: RpcSuccessResponse | undefined) => void): Promise<void>;
    supportsSubscriptions(): boolean;
    disconnect(): boolean;
    private sendWalletConnectMetric;
}
export default WalletProvider;
