@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
121 lines (120 loc) • 2.96 kB
TypeScript
import { ServerError } from './internal';
import { HMSException } from '../error/HMSException';
export declare enum HMSRecordingState {
NONE = "none",
INITIALISED = "initialised",
STARTED = "started",
PAUSED = "paused",
RESUMED = "resumed",
STOPPED = "stopped",
FAILED = "failed"
}
export declare enum HMSStreamingState {
NONE = "none",
INITIALISED = "initialised",
STARTED = "started",
STOPPED = "stopped",
FAILED = "failed"
}
export interface HMSRoom {
id: string;
name?: string;
sessionId?: string;
joinedAt?: Date;
startedAt?: Date;
recording: HMSRecording;
rtmp: HMSRTMP;
hls: HMSHLS;
peerCount?: number;
templateId?: string;
description?: string;
max_size?: number;
large_room_optimization?: boolean;
isEffectsEnabled?: boolean;
disableNoneLayerRequest?: boolean;
isVBEnabled?: boolean;
effectsKey?: string;
isHipaaEnabled?: boolean;
isNoiseCancellationEnabled?: boolean;
transcriptions?: HMSTranscriptionInfo[];
}
export interface HMSRecording {
browser: HMSBrowserRecording;
server: HMSSFURecording;
hls: HMSHLSRecording;
}
export interface HMSBrowserRecording {
running: boolean;
startedAt?: Date;
state?: HMSRecordingState;
error?: HMSException;
}
export interface HMSSFURecording {
running: boolean;
startedAt?: Date;
state?: HMSRecordingState;
error?: HMSException;
}
export interface HMSHLSRecording {
running: boolean;
initialisedAt?: Date;
startedAt?: Date;
state?: HMSRecordingState;
error?: ServerError;
/**
* if the final output is one file or one file per hls layer
*/
singleFilePerLayer?: boolean;
/**
* if video on demand needs to be turned on, false by default
*/
hlsVod?: boolean;
}
export interface HMSRTMP {
running: boolean;
startedAt?: Date;
state?: HMSStreamingState;
error?: HMSException;
}
export interface HMSHLS {
running: boolean;
variants: Array<HLSVariant>;
error?: HMSException;
}
export declare enum HLSPlaylistType {
DVR = "dvr",
NO_DVR = "no-dvr"
}
export declare enum HLSStreamType {
REGULAR = "regular",
SCREEN = "screen",
COMPOSITE = "composite"
}
export interface HLSVariant {
url: string;
playlist_type?: HLSPlaylistType;
meetingURL?: string;
metadata?: string;
startedAt?: Date;
initialisedAt?: Date;
state?: HMSStreamingState;
stream_type?: HLSStreamType;
}
export declare enum HMSTranscriptionState {
INITIALISED = "initialised",
STARTED = "started",
STOPPED = "stopped",
FAILED = "failed"
}
export declare enum HMSTranscriptionMode {
CAPTION = "caption"
}
export interface HMSTranscriptionInfo {
state?: HMSTranscriptionState;
mode?: HMSTranscriptionMode;
initialised_at?: Date;
started_at?: Date;
updated_at?: Date;
stopped_at?: Date;
error?: HMSException;
}