import React, { PropsWithChildren } from 'react'; import './index.css'; /** Room type (copied from core for ui-foundation independence). */ export declare enum FcrRoomType { Mainroom = 0, Subroom = 1, Waitingroom = 2, Interpreterroom = 3, JoinBeforeHostWaitingRoom = 4, Infinityroom = 5 } /** Target user role for privilege (copied from core). */ export declare enum FcrTargetUserType { SELF = 1, HOST = 2, COHOST = 4, PARTICIPANT = 8, AUDIENCE = 16 } /** Private chat privilege config (copied from core). */ export interface FcrChatPrivilegePrivateConfig { host: boolean; cohost: boolean; participant: boolean; } /** Chat privilege config (copied from core). */ export interface FcrChatPrivilegeConfig { public: boolean; private: FcrChatPrivilegePrivateConfig; } /** Single chat permission level (used for one panel or legacy single-level mode). */ export type AllowChatLevelType = 'everyone' | 'public' | 'private_to_manager' | 'no_one'; /** Role key for per-role chat level (e.g. webinar guest vs audience). */ export type ChatLevelRoleKey = 'participant' | 'audience'; /** Chat level conditions by role. Use when room shows separate guest/audience menus. */ export type AllowChatLevelByRole = Partial>; export interface ChatManagerProps { isManager?: boolean; setAllowChat?: (allowChat: boolean) => void; setAllowChatWithPayload?: (type: 'public' | 'private_to_manager') => void; /** 按用户角色设置聊天权限(公聊/私聊配置 + 目标角色列表) */ setAllowChatByUserRole?: (config: FcrChatPrivilegeConfig, targetRoles: FcrTargetUserType[]) => Promise; allowChatLevel: AllowChatLevelType; showArrow?: boolean; /** 房间类型 */ roomType?: number | undefined; /** 按角色的聊天档位 */ allowChatLevelByRole?: AllowChatLevelByRole; /** 展示聊天气泡开关 */ showChatBubbles?: boolean; onShowChatBubblesChange?: (value: boolean) => void; } export declare const ChatManager: React.FC>;