mediasfu-angular
Version:
MediaSFU Prebuilt Angular SDK
135 lines (134 loc) • 8.14 kB
TypeScript
import { BreakoutParticipant, BreakoutRoomUpdatedData, OnScreenChangesParameters, OnScreenChangesType, Participant, RePortParameters, RePortType } from '../../@types/types';
import * as i0 from "@angular/core";
export interface BreakoutRoomUpdatedParameters extends OnScreenChangesParameters, RePortParameters {
breakOutRoomStarted: boolean;
breakOutRoomEnded: boolean;
breakoutRooms: BreakoutParticipant[][];
hostNewRoom: number;
islevel: string;
participantsAll: Participant[];
participants: Participant[];
meetingDisplayType: string;
prevMeetingDisplayType: string;
updateBreakoutRooms: (rooms: BreakoutParticipant[][]) => void;
updateBreakOutRoomStarted: (started: boolean) => void;
updateBreakOutRoomEnded: (ended: boolean) => void;
updateHostNewRoom: (room: number) => void;
updateMeetingDisplayType: (type: string) => void;
updateParticipantsAll: (participants: Participant[]) => void;
updateParticipants: (participants: Participant[]) => void;
onScreenChanges: OnScreenChangesType;
rePort: RePortType;
getUpdatedAllParams: () => BreakoutRoomUpdatedParameters;
[key: string]: any;
}
export interface BreakoutRoomUpdatedOptions {
data: BreakoutRoomUpdatedData;
parameters: BreakoutRoomUpdatedParameters;
}
export type BreakoutRoomUpdatedType = (options: BreakoutRoomUpdatedOptions) => Promise<void>;
/**
* Updates the state of breakout rooms based on the provided data and parameters.
*
* This method handles changes in breakout rooms, updates the relevant state variables,
* and triggers necessary UI updates based on the current status of the breakout rooms.
*
* @param {BreakoutRoomUpdatedOptions} options - The options object containing the data and parameters.
* @param {BreakoutRoomUpdatedData} options.data - The data object containing information about the breakout rooms.
* @param {BreakoutRoomUpdatedParameters} options.parameters - The parameters object containing various state update functions and other parameters.
* @param {boolean} options.parameters.breakOutRoomStarted - Indicates if the breakout room has started.
* @param {boolean} options.parameters.breakOutRoomEnded - Indicates if the breakout room has ended.
* @param {Array<BreakoutParticipant[]>} options.parameters.breakoutRooms - The list of current breakout rooms.
* @param {number} options.parameters.hostNewRoom - The ID of the new room for the host.
* @param {string} options.parameters.islevel - The level of the breakout room (e.g., '2' for host).
* @param {Array<Participant>} options.parameters.participantsAll - The list of all participants.
* @param {Array<Participant>} options.parameters.participants - The list of participants who are not banned.
* @param {string} options.parameters.meetingDisplayType - The current display type of the meeting.
* @param {string} options.parameters.prevMeetingDisplayType - The previous display type of the meeting.
* @param {Function} options.parameters.updateBreakoutRooms - Function to update the breakout rooms.
* @param {Function} options.parameters.updateBreakOutRoomStarted - Function to update the breakout room started state.
* @param {Function} options.parameters.updateBreakOutRoomEnded - Function to update the breakout room ended state.
* @param {Function} options.parameters.updateHostNewRoom - Function to update the host's new room.
* @param {Function} options.parameters.updateMeetingDisplayType - Function to update the meeting display type.
* @param {Function} options.parameters.updateParticipantsAll - Function to update the list of all participants.
* @param {Function} options.parameters.updateParticipants - Function to update the list of participants who are not banned.
* @param {Function} options.parameters.onScreenChanges - Function to handle screen changes.
* @param {Function} options.parameters.rePort - Function to handle reporting.
*
* @returns {Promise<void>} A promise that resolves when the breakout room state has been updated.
*
* @throws Will throw an error if the update process fails.
*
* @example
* ```typescript
* const options = {
* data: {
* forHost: true,
* newRoom: 3,
* status: 'started',
* members: [
* { name: 'user1', isBanned: false, audioID: 'audio1', videoID: 'video1' },
* { name: 'user2', isBanned: true, audioID: 'audio2', videoID: 'video2' },
* ],
* breakoutRooms: [[{ name: 'user1' }, { name: 'user2' }]],
* },
* parameters: {
* socket: socketInstance,
* roomName: 'mainRoom',
* screenStates: [{ mainScreenPerson: 'user1', mainScreenFilled: true, adminOnMainScreen: false }],
* participants: [{ name: 'admin', islevel: '2' }],
* breakOutRoomStarted: false,
* breakOutRoomEnded: false,
* hostNewRoom: 0,
* islevel: '2',
* participantsAll: [],
* updateBreakoutRooms: (rooms) => {},
* updateBreakOutRoomStarted: (started) => {},
* updateBreakOutRoomEnded: (ended) => {},
* updateHostNewRoom: (room) => {},
* updateMeetingDisplayType: (type) => {},
* updateParticipantsAll: (participants) => {},
* updateParticipants: (participants) => {},
* onScreenChanges: async () => {},
* rePort: async () => {},
* },
* };
*
* const breakoutRoomService = new BreakoutRoomUpdated();
* await breakoutRoomService.breakoutRoomUpdated(options);
* ```
*/
export declare class BreakoutRoomUpdated {
/**
* Updates the state of breakout rooms based on the provided data and parameters.
*
* @param {Object} options - The options object.
* @param {Object} options.data - The data object containing information about the breakout rooms.
* @param {Object} options.parameters - The parameters object containing various state update functions and other parameters.
* @param {boolean} options.parameters.breakOutRoomStarted - Indicates if the breakout room has started.
* @param {boolean} options.parameters.breakOutRoomEnded - Indicates if the breakout room has ended.
* @param {Array} options.parameters.breakoutRooms - The list of current breakout rooms.
* @param {number} options.parameters.hostNewRoom - The ID of the new room for the host.
* @param {string} options.parameters.islevel - The level of the breakout room.
* @param {Array} options.parameters.participantsAll - The list of all participants.
* @param {Array} options.parameters.participants - The list of participants who are not banned.
* @param {string} options.parameters.meetingDisplayType - The current display type of the meeting.
* @param {string} options.parameters.prevMeetingDisplayType - The previous display type of the meeting.
* @param {Function} options.parameters.updateBreakoutRooms - Function to update the breakout rooms.
* @param {Function} options.parameters.updateBreakOutRoomStarted - Function to update the breakout room started state.
* @param {Function} options.parameters.updateBreakOutRoomEnded - Function to update the breakout room ended state.
* @param {Function} options.parameters.updateHostNewRoom - Function to update the host's new room.
* @param {Function} options.parameters.updateMeetingDisplayType - Function to update the meeting display type.
* @param {Function} options.parameters.updateParticipantsAll - Function to update the list of all participants.
* @param {Function} options.parameters.updateParticipants - Function to update the list of participants who are not banned.
* @param {Function} options.parameters.onScreenChanges - Function to handle screen changes.
* @param {Function} options.parameters.rePort - Function to handle reporting.
*
* @returns {Promise<void>} A promise that resolves when the breakout room state has been updated.
*
* @throws Will throw an error if the update process fails.
*/
breakoutRoomUpdated: ({ data, parameters }: BreakoutRoomUpdatedOptions) => Promise<void>;
static ɵfac: i0.ɵɵFactoryDeclaration<BreakoutRoomUpdated, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<BreakoutRoomUpdated>;
}