import { AvatarData } from '../atoms/avatar.tsx'; /** * Props for the RoomInfo component */ export interface RoomInfoProps { /** * Optional avatar data for the room to override context-managed avatar. * When provided, bypasses the AvatarContext and uses this data directly. * Useful for scenarios with external avatar management or testing. * If not provided, automatically fetches or creates avatar via useRoomAvatar hook. * * @example * // Using context-managed avatar (recommended) * * * @example * // Providing custom avatar data * */ roomAvatar?: AvatarData; /** * Position coordinates for rendering the participant list dropdown. * Defines where the participant list appears relative to the viewport. * Adjust based on component placement to prevent edge overflow. * * @default { top: 0, left: 150 } * * @example * // Position for sidebar placement * * */ position?: { top: number; left: number; }; /** * Additional CSS class names to apply to the root container element. * Use for spacing, sizing, positioning, and theme customizations. * * @example * // Custom spacing and background * * * @example * // Compact mobile layout * * * @example * // Fixed positioning for overlays * * * @example * // Responsive design patterns * */ className?: string; } /** * RoomInfo component displays comprehensive information about a chat room with interactive features. * It must be used within the context of a ChatRoomProvider and AvatarProvider to function correctly. * * Features: * - Room avatar display * - Live presence count badge showing active participants * - Interactive hover tooltip with participant preview * - Expandable participant list with detailed user information * - In-place avatar editing with color and image customization * - Presence and typing indicators built-in * - Accessibility support with ARIA roles and keyboard navigation * - Customizable positioning * * Presence: * - Live participant count with visual badge * - Hover tooltip showing recent participants * - Detailed participant list with status indicators * - Current user highlighting and status * * Typing Indicators: * - Typing activity display * - Smart user exclusion (doesn't show own typing) * - Configurable display limits * * @example * // Sidebar room list item * const SidebarRoomItem = ({ roomName, isActive }) => { * return ( *
* *
* ); * }; * * * @example * // Custom avatar with external management * const ExternalAvatarRoom = ({ roomName, externalAvatar }) => { * return ( * * ); * }; * */ export declare const RoomInfo: ({ roomAvatar: propRoomAvatar, position, className, }: RoomInfoProps) => import("react/jsx-runtime").JSX.Element;