import Subject from '../../rx/Subject'; import ChannelState from '../channels/ChannelState'; import Dimension from '../../video/Dimension'; import EndPoint, { IStream, SubscribeStatus } from '../discovery/EndPoint'; import { IOnRealTimeSubscribeRequestCallback } from '../channels/IOnRealTimeSubscribeRequestCallback'; import { IOnRealTimeSubscribeResponseCallback } from '../channels/IOnRealTimeSubscribeResponseCallback'; import VideoTelemetry from '../../video/VideoTelemetry'; import { IRtcMonitorStatistic, IRtcStatistic } from '../../rtc/RtcConnectionMonitor'; import DisposableList from '../../lang/DisposableList'; import { BitsPerSecond, Millisecond } from '../../units/Units'; export type ChannelContextOptions = { targetLag?: number; onRealTimeSubscribeRequestCallback?: IOnRealTimeSubscribeRequestCallback; onRealTimeSubscribeResponseCallback?: IOnRealTimeSubscribeResponseCallback; }; export default class ChannelContext { channelInitialization: Date; disposables: DisposableList; channelDisposables: DisposableList; rendererDisposables: DisposableList; videoElement: Subject; state: Subject; exists: Subject; autoMuted: Subject; autoPaused: Subject; authorized: Subject; online: Subject; loading: Subject; playing: Subject; standby: Subject; stopped: Subject; targetLag: Subject; lag: Subject; bitrateLimit: Subject; resolution: Subject; failureCount: Subject; endPoint: Subject; onRealTimeSubscribeRequestCallback: IOnRealTimeSubscribeRequestCallback | null; onRealTimeSubscribeResponseCallback: IOnRealTimeSubscribeResponseCallback | null; stream: Subject; rtcStatistics: Subject; videoTelemetry: VideoTelemetry | null; rtcAudioStatistic: IRtcStatistic | null; rtcVideoStatistic: IRtcStatistic | null; clearFailureCountTimeout: number; constructor(options?: ChannelContextOptions); get streamId(): string; applyStatus(status: SubscribeStatus): void; applySessionAndStreamPropertiesToVideoElement(): void; mapSubscribeStatusToChannelStatus(status: SubscribeStatus): ChannelState; mapSubscribeStatusToExists(status: SubscribeStatus): boolean | null; }