import { ReactNode } from "react";
export type AvatarSize = "xs" | "sm" | "md" | "lg" | "xl";
export type AvatarStatus = "online" | "offline" | "busy" | "away" | "none";
export interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
    /**
     * The source URL for the avatar image
     */
    src?: string;
    /**
     * The name of the person or entity represented by the avatar.
     * Used to generate initials for the fallback and as alt text for the image.
     * Accepts `null` for compatibility with nullable data sources.
     */
    name?: string | null;
    /**
     * The size of the avatar
     * @default "md"
     */
    size?: AvatarSize;
    /**
     * Optional status indicator
     * @default "none"
     */
    status?: AvatarStatus;
    /**
     * Fallback content to display when image fails to load or no src is provided.
     * Overrides the default placeholder icon and auto-generated initials.
     */
    fallback?: ReactNode;
    /**
     * ARIA role for the avatar
     * Use "presentation" for purely decorative avatars
     */
    role?: string;
    /**
     * Whether to enable lazy loading for the image
     * @default true
     */
    lazyLoad?: boolean;
    /**
     * Maximum number of times to retry loading the image if it fails
     * @default 0
     */
    retryCount?: number;
    /**
     * Delay in milliseconds between retry attempts
     * @default 1000
     */
    retryDelay?: number;
    /**
     * Additional contextual information about the avatar
     * Useful for avatar groups or when more context is needed
     */
    contextualLabel?: string;
    /**
     * CSS class for the group positioning
     * e.g. "-mr-3 ring-2 ring-white" for overlapping avatars
     */
    groupPosition?: string;
    /**
     * Whether to show a tooltip with the person's name on hover
     * @default false
     */
    showTooltip?: boolean;
    /**
     * Number of initials to display in the fallback
     * @default 2
     */
    initialsCount?: number;
    /**
     * Title text displayed next to the avatar.
     * Defaults to `name` if not provided.
     */
    title?: string;
    /**
     * Subtitle text displayed below the title (e.g., email, role).
     */
    subtitle?: string;
}
