@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
TypeScript
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;