UNPKG

@signalwire/js

Version:
52 lines 2.55 kB
import { BaseComponentContract, BaseConnectionState, EventEmitter } from '@signalwire/core'; import { BaseConnection, BaseConnectionOptions, MediaEventNames } from '@signalwire/webrtc'; import { LocalVideoOverlay, OverlayMap } from './VideoOverlays'; import { AudioElement, BaseRoomSessionContract, StartScreenShareOptions } from './utils/interfaces'; import { RoomSessionScreenShare } from './RoomSessionScreenShare'; export interface BaseRoomSession<EventTypes extends EventEmitter.ValidEventTypes = BaseRoomSessionEvents> extends BaseRoomSessionContract, BaseConnection<EventTypes>, BaseComponentContract { } export interface BaseRoomSessionOptions extends BaseConnectionOptions { } export declare class BaseRoomSessionConnection<EventTypes extends EventEmitter.ValidEventTypes = BaseRoomSessionEvents> extends BaseConnection<EventTypes> implements BaseRoomSessionContract { private _screenShareList; private _audioEl; private _overlayMap; private _localVideoOverlay; get audioEl(): AudioElement; set overlayMap(map: OverlayMap); get overlayMap(): OverlayMap; set localVideoOverlay(overlay: LocalVideoOverlay); get localVideoOverlay(): LocalVideoOverlay; get screenShareList(): RoomSessionScreenShare[]; private _attachSpeakerTrackListener; /** @internal */ protected _finalize(): void; /** @internal */ hangup(id?: string): Promise<void>; leave(): Promise<void>; /** * This method will be called by `join()` right before the * `connect()` happens and it's a way for us to control * exactly when the workers are attached. * @internal */ attachPreConnectWorkers(): void; /** @internal */ getAudioEl(): AudioElement; getMemberOverlay(memberId: string): import("./VideoOverlays").UserOverlay | undefined; /** * Allow sharing the screen within the room. */ startScreenShare(opts?: StartScreenShareOptions): Promise<RoomSessionScreenShare>; updateSpeaker({ deviceId }: { deviceId: string; }): Promise<undefined>; } type BaseRoomSessionEventsHandlerMap = Record<BaseConnectionState, (params: BaseRoomSession<BaseRoomSessionEvents>) => void> & Record<MediaEventNames, () => void>; export type BaseRoomSessionEvents = { [k in keyof BaseRoomSessionEventsHandlerMap]: BaseRoomSessionEventsHandlerMap[k]; }; /** @internal */ export declare const createBaseRoomSessionObject: (params: BaseRoomSessionOptions) => BaseRoomSession<BaseRoomSessionEvents>; export {}; //# sourceMappingURL=BaseRoomSession.d.ts.map