import { EventEmitter } from 'eventemitter3';
import { DappPortalSDKConfig } from '../config/config';
import { WalletType } from '../enum/WalletType';
import { RpcSuccessResponse } from '../message/RpcMessage';
import NoticeService from '../service/NoticeService';
import { RequestArguments } from './interface';
import { InternalEventProvider } from './InternalEventProvider';
import { WalletProvider } from './WalletProvider';
export declare class SdkWalletProvider extends EventEmitter implements WalletProvider {
    private readonly config;
    private handler;
    private readonly chainNodeRpcClient;
    private readonly metricApiClient;
    private readonly balanceApiClient;
    private readonly sdkLocalStorage;
    private isProcessingRequestToWallet;
    private readonly trackingId;
    private readonly internalEventProvider;
    private readonly noticeService;
    host: string;
    connected: boolean;
    timeout: number;
    initializePromise: Promise<void>;
    constructor(config: DappPortalSDKConfig, trackingId: string, internalEventProvider: InternalEventProvider, noticeService: NoticeService);
    private initialize;
    private initializeHandler;
    getWalletType(): WalletType | null;
    disconnectWallet(): Promise<void>;
    request(requestArgs: RequestArguments): Promise<unknown>;
    getErc20TokenBalance(contractAddress: string, walletAddress: string): Promise<string>;
    getErc20TokenBalanceWithDepositedBalance(contractAddress: string, walletAddress: string): Promise<string>;
    private requestToWallet;
    private connectWallet;
    private connectAndSign;
    private initializeWalletType;
    private selectProviderType;
    private getLatestWalletTypeFromStorage;
    private getLatestProviderTypeFromStorage;
    private validateTxType;
    private validateSignTransaction;
    send(payload: object, callback?: (error: Error | null, result: RpcSuccessResponse | undefined) => void): Promise<void>;
    supportsSubscriptions(): boolean;
    disconnect(): boolean;
    private sendWalletConnectMetric;
    setProviderConfig(_dappPortalApiBaseUrl: string, _isLiff: boolean): void;
}
export default SdkWalletProvider;
