import { PeerManager } from './PeerManager';
import { TrackManager } from './TrackManager';
import { HMSUpdateListener } from '../../interfaces';
import { Store } from '../../sdk/store';
/**
 * Handles:
 * - Initial Peer List - get peer and track meta-data for peers who are already in the room when you join
 * - Reconnect Peer List - Handle peer and track changes in the room missed out due to reconnection
 *
 * Cases to handle in reconnect peer list:
 * - Add additional peers as peer join
 * - Remove missing peers as peer leave
 * - For existing peers:
 *    - Add new tracks as track add
 *    - Remove missing tracks as track remove
 *    - Track state change(enabled) as track update
 */
export declare class PeerListManager {
    private store;
    private peerManager;
    private trackManager;
    listener?: HMSUpdateListener | undefined;
    private readonly TAG;
    constructor(store: Store, peerManager: PeerManager, trackManager: TrackManager, listener?: HMSUpdateListener | undefined);
    handleNotification(method: string, notification: any, isReconnecting: boolean): void;
    private handleInitialPeerList;
    private handleReconnectPeerList;
    private handlePreviewRoomState;
    private handleRepeatedPeerList;
    private removePeerTrack;
}
