import React from 'react'; /** * Props for the PresenceList component */ export interface PresenceListProps extends React.HTMLAttributes { /** * Positioning of the tooltip relative to its trigger element. * - `above`: Tooltip appears above trigger with downward-pointing arrow * - `below`: Tooltip appears below trigger with upward-pointing arrow */ tooltipPosition: 'above' | 'below'; /** * Absolute viewport coordinates (in pixels) where the tooltip should be * rendered. Calculated by the parent component. */ coords?: { top: number; left: number; } | null; /** * Optional CSS classes to apply to the Tooltip component. * Allows customization of the tooltip's background, padding, shadows, etc. * Merged with default tooltip styling using clsx. */ tooltipClassName?: string; /** * Optional CSS classes to apply to the tooltip text content. * Allows customization of font size, weight, color, alignment, etc. * Merged with default text styling (centered, truncated) using clsx. */ textClassName?: string; } /** * PresenceList component displays a tooltip with detailed information about room participants * * Core Features: * - Human-readable participant list with smart truncation and formatting * - Flexible positioning (above/below) with proper arrow orientation * - Accessible tooltip with ARIA attributes and live region updates * - Customizable styling through multiple className props * - Theme-aware styling supporting both light and dark modes * - Maximum width constraint (max-w-96) with text truncation for long lists * * * @example * // Basic usage within RoomInfo hover interaction * * * @example * // With custom styling * * * * @example * // Different presence scenarios and generated text * // presenceData = [] → "No one is currently present" * // presenceData = [{ clientId: "Alice" }] → "Alice is present" * // presenceData = [{ clientId: "Alice" }, { clientId: "Bob" }] → "Alice, Bob are present" * // presenceData = [5 members] → "Alice, Bob, Charlie and 2 more participants are present" */ export declare const PresenceList: ({ tooltipPosition, coords, tooltipClassName, textClassName, ...rest }: PresenceListProps) => React.ReactPortal | undefined;