import { HTMLAttributes, ReactNode, ReactElement } from 'react';
import { CSSObject } from 'styled-components';
export declare enum AvatarV2Size {
SM = "sm",
REGULAR = "regular",
MD = "md",
LG = "lg",
XL = "xl"
}
export declare enum AvatarV2Shape {
CIRCULAR = "circular",
ROUNDED = "rounded"
}
export declare enum AvatarV2StatusPosition {
TOP_RIGHT = "topRight",
BOTTOM_RIGHT = "bottomRight",
TOP_LEFT = "topLeft",
BOTTOM_LEFT = "bottomLeft"
}
export declare enum AvatarV2Status {
NONE = "none",
ONLINE = "online",
OFFLINE = "offline",
AWAY = "away",
BUSY = "busy"
}
export declare enum AvatarV2Variant {
IMAGE = "image",
TEXT = "text",
ICON = "icon"
}
export type AvatarV2SkeletonConfig = {
show: boolean;
variant?: 'pulse' | 'wave';
};
export type AvatarV2StatusConfig = {
type: AvatarV2Status;
position?: AvatarV2StatusPosition;
};
export type AvatarV2Dimensions = {
width?: CSSObject['width'];
height?: CSSObject['height'];
};
export type AvatarV2Props = {
src?: string;
alt?: string;
fallbackText?: string;
size?: AvatarV2Size;
shape?: AvatarV2Shape;
status?: AvatarV2StatusConfig;
leftSlot?: ReactElement;
rightSlot?: ReactElement;
skeleton?: AvatarV2SkeletonConfig;
backgroundColor?: string;
disabled?: boolean;
onImageError?: (error: Error) => void;
onImageLoad?: () => void;
} & Omit, 'children' | 'className' | 'style'> & AvatarV2Dimensions;
export type AvatarV2ImageProps = {
src: string;
alt: string;
onError: () => void;
onLoad?: () => void;
};
export type AvatarV2FallbackProps = {
children: ReactNode;
backgroundColor?: string;
};
export type AvatarV2StatusIndicatorProps = {
status: AvatarV2Status;
position: AvatarV2StatusPosition;
size: AvatarV2Size;
};
export type AvatarV2GroupProps = {
avatars: Omit[];
max?: number;
size?: AvatarV2Size;
spacing?: 'tight' | 'normal' | 'loose';
} & Omit, 'children'>;