import { ParticipantActionType, User } from './attendee';
import './index.css';
export type ParticipantListTabType = 'host' | 'audience';
/** Sentinel for a divider row in the list (e.g. between "me" and host/guest when viewer is audience) */
export declare const PARTICIPANT_LIST_DIVIDER: {
    readonly _divider: true;
};
export declare const PARTICIPANT_LIST_FOOTER: {
    readonly _footer: true;
};
export type ParticipantListDisplayItem = User | typeof PARTICIPANT_LIST_DIVIDER | typeof PARTICIPANT_LIST_FOOTER;
export interface ParticipantProps {
    type: 'window' | 'modal';
    userList: User[];
    header?: React.ReactNode;
    applicationApplyingTips?: React.ReactNode;
    footer?: React.ReactNode;
    userRenderer?: (user: User) => React.ReactNode;
    toggleParticipantAction?: (action: ParticipantActionType, userId: string) => void;
    toggleRoomControlAction?: (action: string, userId?: string) => void;
    onSearch: (value: string) => void;
    searchText?: string;
    onInvite?: () => void;
    hasPinnedStream: boolean;
    isLocalCameraInSecondaryWindow: boolean;
    hasInvite?: boolean;
    emptyContent?: React.ReactNode;
    /** 是否显示主持人/观众 Tab（如 webinar 场景） */
    showParticipantListTab?: boolean;
    /** 受控：当前 Tab，与 onParticipantListTabChange 一起使用以便父组件根据 tab 隐藏 attendee user-media 等 */
    participantListTab?: ParticipantListTabType;
    /** Tab 切换回调 */
    onParticipantListTabChange?: (key: ParticipantListTabType) => void;
    /** Webinar：房间同步的观众总数；本地为观众时用于 footer 等，与 userList 合并逻辑无关 */
    audienceCountFromRoom?: number;
    /** 当前举手用户列表；长度 > 0 时在观众 Tab 标签旁展示举手图标 */
    raiseHandUserList?: ReadonlyArray<unknown>;
    /** 为 false 时不展示 Tab / 列表中的参会人数（如房间禁止观众查看总人数） */
    showParticipantListCounts?: boolean;
}
export declare const FcrParticipants: (props: ParticipantProps) => import("react").JSX.Element;
