@signalwire/realtime-api
Version:
SignalWire RealTime SDK for Node.js
54 lines • 2.66 kB
TypeScript
import { VideoRoomEventParams, Optional } from '@signalwire/core';
import { RealTimeRoomEvents, RealTimeRoomListeners, RealtimeRoomListenersEventsMapping, VideoRoomSessionContract } from '../types';
import { RoomSessionMember } from './RoomSessionMember';
import { BaseVideo } from './BaseVideo';
import { Video } from './Video';
export interface RoomSessionFullState extends Omit<RoomSession, 'members'> {
/** List of members that are part of this room session */
members?: RoomSessionMember[];
}
export interface RoomSession extends VideoRoomSessionContract, BaseVideo<RealTimeRoomListeners, RealTimeRoomEvents> {
/**
* Returns a list of members currently in the room.
*
* @example
* ```typescript
* await room.getMembers()
* ```
*/
getMembers(): Promise<{
members: RoomSessionMember[];
}>;
/** @internal */
setPayload(payload: Optional<VideoRoomEventParams, 'room'>): void;
}
type RoomSessionPayload = Optional<VideoRoomEventParams, 'room'>;
export interface RoomSessionOptions {
video: Video;
payload: RoomSessionPayload;
}
export declare class RoomSession extends BaseVideo<RealTimeRoomListeners, RealTimeRoomEvents> {
private _payload;
protected _eventMap: RealtimeRoomListenersEventsMapping;
constructor(options: RoomSessionOptions);
get id(): string;
get roomSessionId(): string;
get roomId(): string;
get name(): string;
get displayName(): string;
get hideVideoMuted(): boolean;
get layoutName(): string;
get meta(): Record<string, unknown> | undefined;
get previewUrl(): string | undefined;
get recording(): boolean;
get streaming(): boolean;
get locked(): boolean;
get eventChannel(): string;
get prioritizeHandraise(): boolean;
get updated(): VideoRoomSessionContract["updated"];
/** @internal */
protected getSubscriptions(): ("room.started" | "room.ended" | "room.subscribed" | "room.updated" | "member.joined" | "member.left" | "member.updated" | "layout.changed" | "recording.started" | "recording.updated" | "recording.ended" | "playback.started" | "playback.updated" | "playback.ended" | "stream.started" | "stream.ended" | "member.updated.deaf" | "member.updated.visible" | "member.updated.audioMuted" | "member.updated.videoMuted" | "member.updated.inputVolume" | "member.updated.outputVolume" | "member.updated.inputSensitivity" | import("@signalwire/core").MemberTalkingEventNames | "memberList.updated" | "room.audienceCount")[];
}
export declare const RoomSessionAPI: import("@signalwire/core").ConstructableType<RoomSession>;
export {};
//# sourceMappingURL=RoomSession.d.ts.map