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; /** * @alpha */ isEffectsEnabled?: boolean; /** * @alpha */ effectsKey?: string; } 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; /** * @alpha **/ startedAt?: Date; state?: HMSStreamingState; error?: HMSException; } export interface HMSHLS { running: boolean; variants: Array; error?: HMSException; } export interface HLSVariant { url: string; meetingURL?: string; metadata?: string; startedAt?: Date; initialisedAt?: Date; state?: HMSStreamingState; }