import { FC } from 'react';
import './index.css';
export interface User {
    userId: string;
    userName: string;
    avatar?: string;
    hasVideo: boolean;
    hasAudio: boolean;
    isHost: boolean;
    isMe?: boolean;
    isScreenSharing?: boolean;
    audioDeviceType: 'none' | 'computer-mic' | 'phone-mic';
    videoDeviceType: 'none' | 'computer-cam';
    userType: 'normal' | 'phone' | 'meeting-system';
    hideAudioConnectIcon: boolean;
    volume?: number;
    userRole?: number;
    isSpotlight?: boolean;
    isBoardActive?: boolean;
    allowedOperations?: string[];
    isPin?: boolean;
    isClientRecording?: boolean;
    hasClientRecordingPermission?: boolean;
    /** When true, the user is forbidden from chat (show "allow chat"); when false/undefined, show "forbid chat" */
    isChatForbidden?: boolean;
}
export declare enum ParticipantActionType {
    MUTE_AUDIO = "MUTE_AUDIO",
    UNMUTE_AUDIO = "UNMUTE_AUDIO",
    MUTE_VIDEO = "MUTE_VIDEO",
    UNMUTE_VIDEO = "UNMUTE_VIDEO",
    PRIVATE_CHAT = "PRIVATE_CHAT",
    KICK_OUT = "KICK_OUT",
    FORBID_CHAT = "FORBID_CHAT",
    ALLOW_CHAT = "ALLOW_CHAT",
    ADD_PIN = "ADD_PIN",
    REMOVE_PIN = "REMOVE_PIN",
    SET_AS_HOST = "SET_AS_HOST",
    SET_AS_CO_HOST = "SET_AS_CO_HOST",
    SET_AS_ATTENDEE = "SET_AS_ATTENDEE",
    SET_AS_AUDIENCE = "SET_AS_AUDIENCE",
    RENAME = "RENAME",
    ALLOW_RECORDING_CLIENT_VIDEO = "ALLOW_RECORDING_CLIENT_VIDEO",
    DISALLOW_RECORDING_CLIENT_VIDEO = "DISALLOW_RECORDING_CLIENT_VIDEO",
    PUT_IN_WAITING_ROOM = "PUT_IN_WAITING_ROOM",
    STOP_RAISE_HAND = "STOP_RAISE_HAND",
    /** 主持人/联席对指定成员拒绝举手（放下手） */
    HANDS_DOWN = "HANDS_DOWN",
    SET_MAIN_SPEAKER = "SET_MAIN_SPEAKER",
    MERGE_VIDEO = "MERGE_VIDEO",
    RENAME_IN_MEETING = "RENAME_IN_MEETING"
}
export declare const enum FcrUserRole {
    HOST = 1,
    COHOST = 2,
    PARTICIPANT = 3,
    AUDIENCE = 4,
    OBSERVER = 5,
    ROBOT = 6
}
export type FcrUserRoleValue = 1 | 2 | 3 | 4 | 5 | 6;
export interface ParticipantsMoreActionsProps {
    user: Omit<User, 'videoDeviceType'>;
    onParticipantsButtonClick: (action: ParticipantActionType, userId: string) => void;
    hasPinnedStream: boolean;
    hideActions: string[];
    isLocalCameraInSecondaryWindow: boolean;
}
export interface IFcrParticipantItemProps {
    user: User;
    hasPinnedStream: boolean;
    hideActions?: string[];
    onParticipantsButtonClick?: (action: ParticipantActionType, userId: string) => void;
    isLocalCameraInSecondaryWindow: boolean;
}
export declare const FcrParticipant: FC<IFcrParticipantItemProps>;
