mediasfu-angular
Version:
mediasfu-angular - Angular 17/18/19 WebRTC SDK for video conferencing, webinars, broadcasts, live streaming, chat, recording, whiteboard, and AI agents. Prebuilt rooms and fully custom UIs.
61 lines (60 loc) • 3.23 kB
TypeScript
import { Socket } from 'socket.io-client';
import { WaitingRoomParticipant } from '../../@types/types';
import * as i0 from "@angular/core";
export interface RespondToWaitingOptions {
participantId: string;
participantName: string;
updateWaitingList: (waitingList: WaitingRoomParticipant[]) => void;
waitingList: WaitingRoomParticipant[];
type: string | boolean;
roomName: string;
socket: Socket;
}
export type RespondToWaitingType = (options: RespondToWaitingOptions) => Promise<void>;
/**
* Handles the response to a participant in the waiting room, either allowing or denying their entry.
*
* @param {RespondToWaitingOptions} options - Options for handling the participant's entry request.
* @param {string} options.participantId - Unique identifier for the participant.
* @param {string} options.participantName - Name of the participant.
* @param {Function} options.updateWaitingList - Function to update the waiting list by removing the responded participant.
* @param {WaitingRoomParticipant[]} options.waitingList - Current list of participants in the waiting room.
* @param {boolean | string} options.type - Indicates whether to allow ("true") or deny ("false") the participant's entry.
* @param {string} options.roomName - The name of the room the participant is requesting to join.
* @param {Socket} options.socket - The socket instance used to emit the response event.
* @returns {Promise<void>} Resolves when the response has been processed.
*
* @example
* ```typescript
* const respondService = new RespondToWaiting();
* respondService.respondToWaiting({
* participantId: '12345',
* participantName: 'John Doe',
* updateWaitingList: (newList) => console.log('Updated Waiting List:', newList),
* waitingList: currentWaitingList,
* type: 'true',
* roomName: 'Room1',
* socket: io('http://localhost:3000'),
* });
* ```
*
* In this example, the participant 'John Doe' is allowed to join 'Room1', and the updated waiting list is logged.
*/
export declare class RespondToWaiting {
/**
* Responds to a participant waiting to join a room by either allowing or denying their entry.
*
* @param {Object} options - The options for responding to the waiting participant.
* @param {string} options.participantId - The ID of the participant.
* @param {string} options.participantName - The name of the participant.
* @param {Function} options.updateWaitingList - The function to update the waiting list.
* @param {Array} options.waitingList - The current waiting list of participants.
* @param {boolean | string} options.type - The type of response, either "true" or "false".
* @param {string} options.roomName - The name of the room.
* @param {Object} options.socket - The socket instance to emit events.
* @returns {Promise<void>} - A promise that resolves when the response has been processed.
*/
respondToWaiting({ participantId, participantName, updateWaitingList, waitingList, type, roomName, socket, }: RespondToWaitingOptions): Promise<void>;
static ɵfac: i0.ɵɵFactoryDeclaration<RespondToWaiting, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<RespondToWaiting>;
}