import BrowserBehavior from '../browserbehavior/BrowserBehavior'; 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 browserBehavior; private observerQueue; private stream; constructor(webSocket: PromisedWebSocket, constraintsProvider: (sourceId?: string) => MediaStreamConstraints, timeSliceMs: number, messageSerialization: ScreenSharingMessageSerialization, mediaStreamBroker: MediaStreamBroker, screenShareStreamFactory: ScreenShareStreamFactory, mediaRecordingFactory: MediaRecordingFactory, logger: Logger, browserBehavior?: BrowserBehavior); open(timeoutMs: number): Promise; close(timeoutMs: number): Promise; start(sourceId?: string, timeoutMs?: number): Promise; stop(): Promise; pause(): Promise; unpause(): Promise; ping(timeoutMs: number): Promise; registerObserver(observer: ScreenSharingSessionObserver): ScreenSharingSession; deregisterObserver(observer: ScreenSharingSessionObserver): ScreenSharingSession; private didReceiveMessageEvent; private didReceiveHeartbeatResponseMessage; private didReceiveKeyRequest; private didReceiveStreamStopMessage; private didReceiveUnknownMessage; private didReceiveHeartbeatRequestMessage; private send; }