mediasfu-reactjs
Version:
MediaSFU Prebuilt ReactJS SDK - Compatible with React 18 & 19, TypeScript & JavaScript
74 lines • 2.67 kB
TypeScript
import { Socket } from "socket.io-client";
import { Participant, ShowAlert } from "../../@types/types";
/**
* Permission level values:
* - "2": Host (full permissions, cannot be changed)
* - "1": Co-host/Elevated (extended permissions)
* - "0": Participant (basic permissions)
*/
export type PermissionLevel = "0" | "1" | "2";
export interface UpdateParticipantPermissionOptions {
socket: Socket;
participant: Participant;
newLevel: PermissionLevel;
member: string;
islevel: string;
roomName: string;
showAlert?: ShowAlert;
}
export interface BulkUpdateParticipantPermissionsOptions {
socket: Socket;
participants: Participant[];
newLevel: PermissionLevel;
member: string;
islevel: string;
roomName: string;
showAlert?: ShowAlert;
maxBatchSize?: number;
}
export type UpdateParticipantPermissionType = (options: UpdateParticipantPermissionOptions) => Promise<void>;
export type BulkUpdateParticipantPermissionsType = (options: BulkUpdateParticipantPermissionsOptions) => Promise<void>;
/**
* Updates a single participant's permission level.
* Only hosts (islevel === "2") can update permissions.
* Cannot change a host's permission level.
*
* @param {UpdateParticipantPermissionOptions} options - Options for updating permission.
*
* @example
* ```typescript
* await updateParticipantPermission({
* socket,
* participant: { id: "123", name: "John", islevel: "0" },
* newLevel: "1",
* member: "currentUser",
* islevel: "2",
* roomName: "room123",
* showAlert: (alert) => console.log(alert.message),
* });
* ```
*/
export declare const updateParticipantPermission: ({ socket, participant, newLevel, member: _member, islevel, roomName, showAlert, }: UpdateParticipantPermissionOptions) => Promise<void>;
/**
* Updates multiple participants' permission levels in bulk.
* Only hosts (islevel === "2") can update permissions.
* Processes in batches (default max 50 at a time).
*
* @param {BulkUpdateParticipantPermissionsOptions} options - Options for bulk updating permissions.
*
* @example
* ```typescript
* await bulkUpdateParticipantPermissions({
* socket,
* participants: [participant1, participant2],
* newLevel: "0",
* member: "currentUser",
* islevel: "2",
* roomName: "room123",
* showAlert: (alert) => console.log(alert.message),
* maxBatchSize: 50,
* });
* ```
*/
export declare const bulkUpdateParticipantPermissions: ({ socket, participants, newLevel, member: _member, islevel, roomName, showAlert, maxBatchSize, }: BulkUpdateParticipantPermissionsOptions) => Promise<void>;
//# sourceMappingURL=updateParticipantPermission.d.ts.map