import { TNode, Value } from '@tempots/dom'; import { ThemeColorName } from '../../tokens'; import { AvatarSize } from './avatar'; /** * Configuration options for the {@link AvatarGroup} component. */ export interface AvatarGroupOptions { /** Size of avatars in the group. @default 'md' */ size?: Value; /** Spacing between avatars: 'tight' for overlap, 'normal' for standard gap. @default 'tight' */ spacing?: Value<'tight' | 'normal'>; } /** * Configuration options for the {@link AvatarGroupOverflow} component. */ export interface AvatarGroupOverflowOptions { /** Number to display in the overflow indicator (e.g., +5). */ count: Value; /** Size matching the avatar group. @default 'md' */ size?: Value; /** Theme color for the overflow indicator background. @default 'base' */ color?: Value; } /** * Renders a container for grouping multiple Avatar components with overlapping or spaced layout. * * The AvatarGroup component provides a styled container for displaying multiple avatars * in a row. It supports two spacing modes: * - **tight**: Avatars overlap with negative margin for a compact, stacked appearance * - **normal**: Avatars are spaced with standard gap * * The group automatically applies consistent sizing to all child avatars via CSS classes. * For displaying overflow (e.g., "+5 more"), use the {@link AvatarGroupOverflow} component. * * @param options - Configuration for size and spacing * @param children - Avatar components to display in the group * @returns A div element containing the avatar group * * @example * ```typescript * AvatarGroup({ size: 'lg', spacing: 'tight' }, * Avatar({ src: 'user1.jpg', name: 'Alice' }), * Avatar({ src: 'user2.jpg', name: 'Bob' }), * Avatar({ src: 'user3.jpg', name: 'Charlie' }), * AvatarGroupOverflow({ count: 5 }) * ) * ``` */ export declare function AvatarGroup({ size, spacing }: AvatarGroupOptions, ...children: TNode[]): import("@tempots/dom").Renderable; /** * Renders an overflow indicator for AvatarGroup showing the count of hidden avatars. * * This component displays a styled avatar-like element with a "+N" label indicating * how many additional avatars are not shown in the group. It should be used as the * last child of an {@link AvatarGroup}. * * The overflow indicator inherits the styling of the avatar group and matches the * size of other avatars in the group. * * @param options - Configuration for count, size, and color * @returns A div element styled as an avatar showing the overflow count * * @example * ```typescript * AvatarGroup({ size: 'md', spacing: 'tight' }, * Avatar({ name: 'Alice' }), * Avatar({ name: 'Bob' }), * Avatar({ name: 'Charlie' }), * AvatarGroupOverflow({ count: 7, color: 'primary' }) * ) * // Displays: [A] [B] [C] [+7] * ``` */ export declare function AvatarGroupOverflow({ count, size, color, }: AvatarGroupOverflowOptions): import("@tempots/dom").Renderable;