@100mslive/hms-video-store
Version:
@100mslive Core SDK which abstracts the complexities of webRTC while providing a reactive store for data management with a unidirectional data flow
48 lines (47 loc) • 2.13 kB
TypeScript
import { EventBus } from '../events/EventBus';
import { HMSAudioListener, HMSConnectionQualityListener, HMSUpdateListener } from '../interfaces';
import { HMSRemoteTrack } from '../media/tracks';
import { Store } from '../sdk/store';
import HMSTransport from '../transport';
export declare class NotificationManager {
private store;
private transport;
private listener?;
private audioListener?;
private connectionQualityListener?;
private readonly TAG;
private trackManager;
private peerManager;
private peerListManager;
private activeSpeakerManager;
private connectionQualityManager;
private broadcastManager;
private policyChangeManager;
private requestManager;
private roomUpdateManager;
private sessionMetadataManager;
private pollsManager;
private whiteboardManager;
/**
* room state can be sent before join in preview stage as well but that is outdated, based on
* eventual consistency and doesn't have all data. If we get at least one consistent room update
* from that point onwards we can rely on live server updates and ignore periodic room state messages
*/
private hasConsistentRoomStateArrived;
constructor(store: Store, eventBus: EventBus, transport: HMSTransport, listener?: HMSUpdateListener | undefined, audioListener?: HMSAudioListener | undefined, connectionQualityListener?: HMSConnectionQualityListener | undefined);
setListener(listener?: HMSUpdateListener): void;
setAudioListener(audioListener?: HMSAudioListener): void;
setConnectionQualityListener(qualityListener?: HMSConnectionQualityListener): void;
handleNotification(message: {
method: string;
params: any;
}, isReconnecting?: boolean): void;
handleIsolatedMethods(method: string, notification: any): void;
ignoreNotification: (method: string) => boolean;
handleTrackAdd: (track: HMSRemoteTrack) => void;
handleTrackRemove: (track: HMSRemoteTrack) => void;
updateLocalPeer: ({ name, metadata }: {
name?: string | undefined;
metadata?: string | undefined;
}) => void;
}