import type { ReactNode, FC } from "react";
/**
* The sizes defined by the design system. Their actual dimensions come
* from the semantic size tokens in `avatarSizeTokens`, so they follow
* the design whenever the tokens are re-exported.
*/
type AvatarSize = "xs" | "s" | "m";
/**
* Union to prevent both "initials" and "children" to be used at the same time.
*/
type BaseProps = {
initials: string;
children?: never;
} | {
children: ReactNode;
initials?: never;
};
type Props = {
src?: string;
/**
* Put the name of the person here, so less sighted
* users can know who the avatar belongs to.
*
* In case of rendering the default image or the
* initials, this will also be used as the `alt` text.
*/
alt?: string;
/**
* @default "m"
*/
size?: AvatarSize;
/**
* Whether the avatar belongs to the current user. Self avatars are
* rendered in the brand color, everyone else in neutral.
*
* @default false
*/
isSelf?: boolean;
/**
* URL to an image to be used as the default image.
* If this is set, the image provided via `src` will never render.
*/
defaultImage?: string;
className?: string;
/**
* Sometimes avatars are rendered in a group. Setting this to `true`
* makes it so that the avatars overlap each other a bit, as designed.
*/
applyGroupOffset?: boolean;
} & BaseProps;
/**
* Displays a badge-style avatar. Keep in mind that
* you can only use `initials` or `children`, not both.
*
* @example
* // Using initials
*
*
* @example
* // Using children
*
*
*
*/
export declare const Avatar: FC;
export {};