import { AvatarProps } from '@heroui/react'; import { ReactNode } from 'react'; import { AuthUserView } from '../../../types/user.js'; type LooseUser = AuthUserView | { id?: string; name?: string | null; email?: string; image?: string | null; imageUrl?: string | null; emailVerified?: boolean; username?: string | null; displayUsername?: string | null; }; export interface UserAvatarProps { className?: string; fallback?: ReactNode; isPending?: boolean; size?: AvatarProps["size"]; /** * Stable presentation user. Prefer {@link AuthUserView}. * Raw BAUI/Athena users are mapped internally. */ user?: LooseUser; } /** * Render a user avatar that shows the user's image, initials, or a custom fallback; displays a circular skeleton while the session (or explicit pending flag) is pending. * * @param className - Additional CSS classes applied to the outer avatar container * @param fallback - Custom fallback content to render when no image or initials are available * @param isPending - When true, force rendering of the loading skeleton (unless an explicit `user` prop is provided) * @param user - Optional user object to display; when omitted the current session user is used if available * @param size - Visual size of the avatar; one of `"sm"`, `"md"`, or `"lg"` (default: `"sm"`) * @returns A React element that displays the user's avatar image, initials, or the provided fallback; renders a circular skeleton while loading */ export declare function UserAvatar({ className, fallback, isPending, user, size, style, ...props }: UserAvatarProps & AvatarProps): import("react").JSX.Element; export {};