mediasfu-reactjs
Version:
MediaSFU Prebuilt ReactJS SDK - Compatible with React 18 & 19, TypeScript & JavaScript
71 lines • 2.6 kB
TypeScript
import { Socket } from "socket.io-client";
import { Participant, AutoAdjustType, ScreenState, EventType } from "../@types/types";
export interface TriggerParameters {
socket: Socket;
localSocket?: Socket;
roomName: string;
screenStates: ScreenState[];
participants: Participant[];
updateDateState?: number | null;
lastUpdate: number | null;
nForReadjust: number | null;
eventType: EventType;
shared: boolean;
shareScreenStarted: boolean;
whiteboardStarted: boolean;
whiteboardEnded: boolean;
updateUpdateDateState: (timestamp: number | null) => void;
updateLastUpdate: (lastUpdate: number | null) => void;
updateNForReadjust: (nForReadjust: number) => void;
autoAdjust: AutoAdjustType;
getUpdatedAllParams: () => TriggerParameters;
[key: string]: any;
}
export interface TriggerOptions {
ref_ActiveNames: string[];
parameters: TriggerParameters;
}
export type TriggerType = (options: TriggerOptions) => Promise<void>;
/**
* Triggers an update to the screen client based on the provided parameters.
*
* @param {TriggerOptions} options - The options for triggering the update.
* @param {string[]} options.ref_ActiveNames - Reference to the active names.
* @param {TriggerParameters} options.parameters - The parameters for the trigger.
*
* @returns {Promise<void>} A promise that resolves when the trigger is complete.
*
* @throws Will throw an error if the updateScreenClient operation fails.
*
* @remarks
* This function handles various conditions to determine the main screen person,
* adjusts the screen states, and emits an update to the screen client via socket.
*
* @example
* ```typescript
* await trigger({
* ref_ActiveNames: ["user1", "user2"],
* parameters: {
* socket: socketInstance,
* localSocket: localSocketInstance,
* roomName: "room1",
* screenStates: [{ mainScreenPerson: "user1", mainScreenFilled: true, adminOnMainScreen: false }],
* participants: [{ name: "admin", islevel: "2" }],
* updateDateState: 0,
* lastUpdate: null,
* nForReadjust: 0,
* eventType: "conference",
* shared: false,
* shareScreenStarted: false,
* whiteboardStarted: false,
* whiteboardEnded: false,
* updateUpdateDateState: (date) => {},
* updateLastUpdate: (date) => {},
* updateNForReadjust: (n) => {},
* autoAdjust: async ({ n, parameters }) => [n, 0],
* },
* });
* ```
*/
export declare function trigger({ ref_ActiveNames, parameters, }: TriggerOptions): Promise<void>;
//# sourceMappingURL=trigger.d.ts.map