import { type HTMLAttributes } from 'react'; import { type OverrideClassName } from "../types/OverrideClassName"; export type AvatarSizes = 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge'; type BaseAvatarProps = { /** * We use this for the alt text of the avatar, and to derive intials when user has no avatar image. */ fullName?: string; /** * There are 5 fixed avatar sizes. `"small"` will remove border and box shadow to save space. */ size?: AvatarSizes; /** * Src for the avatar img tag - if not passed we will derive initials from the full name. * Note that the fullName prop will be used as the alt text. */ avatarSrc?: string; /** * Default behaviour when an avatarSrc is not provided is to generate initials from the username. * This disables this feature and shows the generic avatar. * Enable this prop when there is no specific individual or group identified. */ disableInitials?: boolean; /** * Renders Company Avatar variant - If true `fullName` and `avatarSrc` will be strictly typed. */ isCompany?: boolean; /** * Control of the alt property on the img (or title when initials are rendered) * Defaults to the fullName if provided, otherwise an empty string */ alt?: string; } & OverrideClassName>; export type GenericAvatarProps = BaseAvatarProps & { isCompany?: false; /** * Shows a different background colour if the avatar is the current user and does not have a avatar img. * @default "true" */ isCurrentUser?: boolean; }; export type CompanyAvatarProps = BaseAvatarProps & { fullName: string; avatarSrc: string; disableInitials?: undefined; isCompany: true; isCurrentUser?: undefined; }; export type AvatarProps = GenericAvatarProps | CompanyAvatarProps; /** * {@link https://cultureamp.atlassian.net/wiki/spaces/DesignSystem/pages/3064857475/Avatar Guidance} | * {@link https://cultureamp.design/?path=/docs/components-avatar-avatar--docs Storybook} */ export declare const Avatar: ({ fullName, size, avatarSrc, disableInitials, isCompany, isCurrentUser, alt, classNameOverride, ...restProps }: AvatarProps) => JSX.Element; export {};