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; /** * 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} 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} - A promise that resolves when the response has been processed. */ respondToWaiting({ participantId, participantName, updateWaitingList, waitingList, type, roomName, socket, }: RespondToWaitingOptions): Promise; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }