mediasfu-reactjs
Version:
MediaSFU Prebuilt ReactJS SDK - Compatible with React 18 & 19, TypeScript & JavaScript
68 lines • 2.66 kB
TypeScript
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