import Logger from '../logger/Logger'; import MediaRecordingFactory from '../mediarecording/MediaRecordingFactory'; import MediaStreamBroker from '../mediastreambroker/MediaStreamBroker'; import PromisedWebSocket from '../promisedwebsocket/PromisedWebSocket'; import ScreenShareStreamFactory from '../screensharestreaming/ScreenShareStreamFactory'; import ScreenSharingMessageSerialization from '../screensharingmessageserialization/ScreenSharingMessageSerialization'; import ScreenSharingSession from './ScreenSharingSession'; import ScreenSharingSessionObserver from './ScreenSharingSessionObserver'; export default class DefaultScreenSharingSession implements ScreenSharingSession { private webSocket; private constraintsProvider; private timeSliceMs; private messageSerialization; private mediaStreamBroker; private screenShareStreamFactory; private mediaRecordingFactory; private logger; private observerQueue; private stream; constructor(webSocket: PromisedWebSocket, constraintsProvider: (sourceId?: string) => MediaStreamConstraints, timeSliceMs: number, messageSerialization: ScreenSharingMessageSerialization, mediaStreamBroker: MediaStreamBroker, screenShareStreamFactory: ScreenShareStreamFactory, mediaRecordingFactory: MediaRecordingFactory, logger: Logger); open(timeoutMs: number): Promise; close(timeoutMs: number): Promise; start(sourceId?: string): Promise; stop(): Promise; registerObserver(observer: ScreenSharingSessionObserver): ScreenSharingSession; deregisterObserver(observer: ScreenSharingSessionObserver): ScreenSharingSession; private didReceiveMessageEvent; private didReceiveKeyRequest; private didReceiveStreamStopMessage; private didReceiveUnknownMessage; private didReceiveHeartbeatRequestMessage; private send; }