@signalwire/js
Version:
52 lines • 2.55 kB
TypeScript
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