mediasfu-reactjs
Version:
MediaSFU Prebuilt ReactJS SDK - Compatible with React 18 & 19, TypeScript & JavaScript
76 lines • 2.68 kB
TypeScript
/**
* Handler for permission-related socket events.
* Listens for:
* - permissionUpdated: When a user's permission level changes
* - permissionConfigUpdated: When the room's permission configuration changes
*/
import { ShowAlert } from '../../@types/types';
export interface PermissionUpdatedData {
newLevel: string;
message?: string;
}
export interface PermissionCapabilities {
useMic: 'allow' | 'approval' | 'disallow';
useCamera: 'allow' | 'approval' | 'disallow';
useScreen: 'allow' | 'approval' | 'disallow';
useChat: 'allow' | 'disallow';
}
export interface PermissionConfig {
level0: PermissionCapabilities;
level1: PermissionCapabilities;
}
export interface PermissionConfigUpdatedData {
config: PermissionConfig;
}
export interface PermissionUpdatedOptions {
data: PermissionUpdatedData;
showAlert?: ShowAlert;
updateIslevel?: (level: string) => void;
}
export interface PermissionConfigUpdatedOptions {
data: PermissionConfigUpdatedData;
updatePermissionConfig?: (config: PermissionConfig) => void;
}
export type PermissionUpdatedType = (options: PermissionUpdatedOptions) => Promise<void>;
export type PermissionConfigUpdatedType = (options: PermissionConfigUpdatedOptions) => Promise<void>;
/**
* Handles the permissionUpdated socket event.
* Called when the host changes a participant's permission level.
*
* @param options - The event options.
* @param options.data - The permission update data.
* @param options.showAlert - Optional alert function.
* @param options.updateIslevel - Function to update local islevel state.
*
* @example
* ```typescript
* socket.on("permissionUpdated", async (data: PermissionUpdatedData) => {
* await permissionUpdated({
* data,
* showAlert,
* updateIslevel,
* });
* });
* ```
*/
export declare const permissionUpdated: ({ data, showAlert, updateIslevel, }: PermissionUpdatedOptions) => Promise<void>;
/**
* Handles the permissionConfigUpdated socket event.
* Called when the host changes the room's permission configuration.
*
* @param options - The event options.
* @param options.data - The permission config update data.
* @param options.updatePermissionConfig - Function to update local permission config state.
*
* @example
* ```typescript
* socket.on("permissionConfigUpdated", async (data: PermissionConfigUpdatedData) => {
* await permissionConfigUpdated({
* data,
* updatePermissionConfig,
* });
* });
* ```
*/
export declare const permissionConfigUpdated: ({ data, updatePermissionConfig, }: PermissionConfigUpdatedOptions) => Promise<void>;
//# sourceMappingURL=permissionReceiveMethods.d.ts.map