UNPKG

@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

62 lines (61 loc) 2.2 kB
import { HMSException } from './error'; import { HMSMessage, HMSMessageID } from './message'; import { HMSPeer, HMSPeerID, HMSSpeaker, HMSTrack, HMSTrackID } from './peer'; import { HMSPlaylist } from './playlist'; import { HMSRoleChangeStoreRequest } from './requests'; import { HMSRole } from './role'; import { HMSRoom } from './room'; import { HMSMediaSettings } from './settings'; import { DeviceMap, HMSConnectionQuality, HMSPeerStats, HMSPoll, HMSTrackStats, HMSWhiteboard } from '../interfaces'; export interface HMSGenericTypes { sessionStore: Record<string, any>; } export interface HMSStore<T extends HMSGenericTypes = { sessionStore: Record<string, any>; }> { room: HMSRoom; peers: Record<HMSPeerID, HMSPeer>; speakers: Record<HMSTrackID, HMSSpeaker>; connectionQualities: Record<HMSPeerID, HMSConnectionQuality>; tracks: Record<HMSTrackID, HMSTrack>; playlist: HMSPlaylist<any>; messages: { byID: Record<HMSMessageID, HMSMessage>; allIDs: HMSMessageID[]; }; settings: HMSMediaSettings; devices: DeviceMap; roles: Record<string, HMSRole>; templateAppData: Record<string, string>; appData?: Record<string, any>; roleChangeRequests: HMSRoleChangeStoreRequest[]; /** @deprecated use `sessionStore` instead */ sessionMetadata?: any; preview?: { localPeer?: HMSPeerID; asRole?: string; videoTrack?: HMSTrackID; audioTrack?: HMSTrackID; }; errors: HMSException[]; sessionStore: T['sessionStore']; polls: Record<string, HMSPoll>; /** @internal */ hideLocalPeer: boolean; whiteboards: Record<string, HMSWhiteboard>; } export interface HMSStatsStore { remoteTrackStats: Record<HMSTrackID, HMSTrackStats | undefined>; localTrackStats: Record<HMSTrackID, HMSTrackStats[] | undefined>; peerStats: Record<HMSPeerID, HMSPeerStats | undefined>; localPeer: { id: HMSPeerID; videoTrack?: HMSTrackID; audioTrack?: HMSTrackID; }; } /** * @internal */ export declare const createDefaultStoreState: <T extends HMSGenericTypes>() => HMSStore<T>; export declare const createDefaultStatsStore: () => HMSStatsStore;