import * as react_jsx_runtime from 'react/jsx-runtime';
import * as react from 'react';
import { ComponentPropsWithoutRef } from 'react';

interface AvatarImageProps$1 extends React.ImgHTMLAttributes<HTMLImageElement> {
    asChild?: boolean;
}
declare const AvatarImage: {
    ({ className, asChild, src, ...props }: AvatarImageProps$1): react_jsx_runtime.JSX.Element;
    displayName: string;
};

interface AvatarActionProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
    asChild?: boolean;
    angle?: number;
    ariaLabel: string;
}
declare const AvatarAction: {
    ({ className, children, asChild, angle, ariaLabel, ...props }: AvatarActionProps): react_jsx_runtime.JSX.Element;
    displayName: string;
};

interface AvatarOnlineBadgeProps extends ComponentPropsWithoutRef<'div'> {
    angle?: number;
}
declare const AvatarOnlineBadge: {
    ({ angle, ...props }: AvatarOnlineBadgeProps): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

interface AvatarImageProps extends React.ImgHTMLAttributes<HTMLDivElement> {
    asChild?: boolean;
}
declare const AvatarUser: {
    ({ asChild, children, className, ...props }: AvatarImageProps): react_jsx_runtime.JSX.Element;
    displayName: string;
};

interface AvatarPlaceholderProps extends React.ImgHTMLAttributes<HTMLDivElement> {
    className?: string;
    children?: React.ReactNode;
}
declare const AvatarPlaceholder: {
    ({ className, children, ...props }: AvatarPlaceholderProps): react_jsx_runtime.JSX.Element;
    displayName: string;
};

interface AvatarProps extends react.HTMLAttributes<HTMLDivElement> {
    size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
    isOnline?: boolean;
    onlineText?: string;
    username: string;
    asChild?: boolean;
    design?: 'circle' | 'square';
}

interface AvatarComponent extends React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLDivElement>> {
    Image: typeof AvatarImage;
    Action: typeof AvatarAction;
    OnlineBadge: typeof AvatarOnlineBadge;
    User: typeof AvatarUser;
    Placeholder: typeof AvatarPlaceholder;
}
declare const AvatarComponent: AvatarComponent;

export { AvatarComponent as Avatar, AvatarComponent };
