UNPKG

mediasfu-reactjs

Version:

MediaSFU Prebuilt ReactJS SDK - Compatible with React 18 & 19, TypeScript & JavaScript

68 lines 2.66 kB
import { Socket } from "socket.io-client"; import { ShowAlert } from "../../@types/types"; /** * Configuration for what each permission level can do. * Each capability can be: "allow" | "approval" | "disallow" */ export interface PermissionCapabilities { useMic: "allow" | "approval" | "disallow"; useCamera: "allow" | "approval" | "disallow"; useScreen: "allow" | "approval" | "disallow"; useChat: "allow" | "disallow"; } /** * Permission configuration for all levels. * Level "2" (host) always has full permissions - not configurable. */ export interface PermissionConfig { level0: PermissionCapabilities; level1: PermissionCapabilities; } export interface UpdatePermissionConfigOptions { socket: Socket; config: PermissionConfig; member: string; islevel: string; roomName: string; showAlert?: ShowAlert; } export type UpdatePermissionConfigType = (options: UpdatePermissionConfigOptions) => Promise<void>; /** * Default permission configuration. */ export declare const getDefaultPermissionConfig: () => PermissionConfig; /** * Creates a PermissionConfig from event settings. * This is useful when permissionConfig is not yet set, extracting initial values * from the room's event settings. Both level0 and level1 will have the same initial permissions. * * @param audioSetting - 'allow' | 'approval' | 'disallow' * @param videoSetting - 'allow' | 'approval' | 'disallow' * @param screenshareSetting - 'allow' | 'approval' | 'disallow' * @param chatSetting - 'allow' | 'disallow' * @returns PermissionConfig with both levels set to the same permissions */ export declare const getPermissionConfigFromEventSettings: (audioSetting?: string, videoSetting?: string, screenshareSetting?: string, chatSetting?: string) => PermissionConfig; /** * Updates the permission configuration for the room. * Only hosts (islevel === "2") can update the configuration. * * @param {UpdatePermissionConfigOptions} options - Options for updating permission config. * * @example * ```typescript * await updatePermissionConfig({ * socket, * config: { * level0: { useMic: "disallow", useCamera: "disallow", useScreen: "disallow", useChat: "allow" }, * level1: { useMic: "allow", useCamera: "allow", useScreen: "allow", useChat: "allow" }, * }, * member: "currentUser", * islevel: "2", * roomName: "room123", * showAlert: (alert) => console.log(alert.message), * }); * ``` */ export declare const updatePermissionConfig: ({ socket, config, islevel, roomName, showAlert, }: UpdatePermissionConfigOptions) => Promise<void>; //# sourceMappingURL=updatePermissionConfig.d.ts.map