import { ShowAlert, CoHostResponsibility } from '../../@types/types'; import { Socket } from 'socket.io-client'; import * as i0 from "@angular/core"; export interface ModifyCoHostSettingsOptions { roomName: string; showAlert?: ShowAlert; selectedParticipant: string; coHost: string; coHostResponsibility: CoHostResponsibility[]; updateIsCoHostModalVisible: (isVisible: boolean) => void; updateCoHostResponsibility: (coHostResponsibility: CoHostResponsibility[]) => void; updateCoHost: (coHost: string) => void; socket: Socket; } export type ModifyCoHostSettingsType = (options: ModifyCoHostSettingsOptions) => Promise; /** * Modifies the co-host settings for a given room. * * This method allows you to update the co-host for a chat room, set their responsibilities, * and emit the relevant changes to the server. It also handles demo mode restrictions. * * @param {ModifyCoHostSettingsOptions} options - The options for modifying co-host settings. * @param {string} options.roomName - The name of the room. * @param {Function} options.showAlert - Function to show an alert message. * @param {string} options.selectedParticipant - The participant selected to be co-host. * @param {string} options.coHost - The current co-host. * @param {Array} options.coHostResponsibility - The responsibilities assigned to the co-host. * @param {Function} options.updateIsCoHostModalVisible - Function to update the visibility of the co-host modal. * @param {Function} options.updateCoHostResponsibility - Function to update the co-host responsibility. * @param {Function} options.updateCoHost - Function to update the co-host. * @param {Socket} options.socket - The socket instance for emitting events. * * @returns {Promise} A promise that resolves when the co-host settings have been modified. * * @remarks * - If the room is in demo mode (room name starts with "d"), co-host cannot be added and an alert is shown. * - If a valid participant is selected, they are set as the new co-host. * - The co-host responsibility is updated. * - A socket event is emitted to update the co-host information. * - The co-host modal is closed after updating the settings. * * @example * ```typescript * const options: ModifyCoHostSettingsOptions = { * roomName: 'mainRoom', * showAlert: (alert) => console.log(alert.message), * selectedParticipant: 'JohnDoe', * coHost: 'No coHost', * coHostResponsibility: ['manage participants', 'start/stop recording'], * updateIsCoHostModalVisible: (isVisible) => console.log('Co-host modal visible:', isVisible), * updateCoHostResponsibility: (responsibility) => console.log('Updated co-host responsibility:', responsibility), * updateCoHost: (coHost) => console.log('New co-host:', coHost), * socket: socketInstance, * }; * * const modifyCoHostService = new ModifyCoHostSettings(); * await modifyCoHostService.modifyCoHostSettings(options); * ``` */ export declare class ModifyCoHostSettings { /** * Modifies the co-host settings for a given room. * * @param {Object} options - The options for modifying co-host settings. * @param {string} options.roomName - The name of the room. * @param {Function} options.showAlert - Function to show an alert message. * @param {string} options.selectedParticipant - The participant selected to be co-host. * @param {string} options.coHost - The current co-host. * @param {string} options.coHostResponsibility - The responsibility assigned to the co-host. * @param {Function} options.updateIsCoHostModalVisible - Function to update the visibility of the co-host modal. * @param {Function} options.updateCoHostResponsibility - Function to update the co-host responsibility. * @param {Function} options.updateCoHost - Function to update the co-host. * @param {Object} options.socket - The socket instance for emitting events. * @returns {Promise} A promise that resolves when the co-host settings have been modified. * * @remarks * - If the room is in demo mode (room name starts with "d"), co-host cannot be added and an alert is shown. * - If a valid participant is selected, they are set as the new co-host. * - The co-host responsibility is updated. * - A socket event is emitted to update the co-host information. * - The co-host modal is closed after updating the settings. */ modifyCoHostSettings({ roomName, selectedParticipant, coHost, coHostResponsibility, updateIsCoHostModalVisible, updateCoHostResponsibility, updateCoHost, socket, }: ModifyCoHostSettingsOptions): Promise; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }