import { EventBus } from '../events/EventBus';
import { HMSPeerStats, HMSTrackStats } from '../interfaces/webrtc-stats';
import { Store } from '../sdk/store';
export declare class HMSWebrtcStats {
    private store;
    private readonly eventBus;
    private publishConnection?;
    private subscribeConnection?;
    private readonly TAG;
    private localPeerID?;
    private peerStats;
    private remoteTrackStats;
    private localTrackStats;
    /**
     * Removed localPeerID check in other places as it will be present before
     * this is initialized
     */
    constructor(store: Store, eventBus: EventBus, publishConnection?: RTCPeerConnection | undefined, subscribeConnection?: RTCPeerConnection | undefined);
    setPeerConnections({ publish, subscribe }: {
        publish?: RTCPeerConnection;
        subscribe?: RTCPeerConnection;
    }): void;
    getPublishPeerConnection(): RTCPeerConnection | undefined;
    getSubscribePeerConnection(): RTCPeerConnection | undefined;
    getLocalPeerStats: () => HMSPeerStats | undefined;
    getRemoteTrackStats: (trackId: string) => HMSTrackStats | undefined;
    getAllRemoteTracksStats: () => Record<string, HMSTrackStats>;
    getLocalTrackStats: () => Record<string, Record<string, HMSTrackStats>>;
    /**
     * @internal
     */
    updateStats: () => Promise<void>;
    private updateLocalPeerStats;
    private updateRemoteTrackStats;
    private updateLocalTrackStats;
}
