import * as react_jsx_runtime from 'react/jsx-runtime';
import * as class_variance_authority_types from 'class-variance-authority/types';
import * as React from 'react';
import { Avatar as Avatar$1 } from 'radix-ui';
import { VariantProps } from 'class-variance-authority';

/** Maps to Shadcn Studio avatar demos (shape / ring / stack). Uses theme tokens only. */
declare const avatarRootVariants: (props?: ({
    size?: "default" | "sm" | "lg" | null | undefined;
    shape?: "circle" | "square" | "rounded-sm" | "rounded-md" | "rounded-lg" | "rounded-xl" | null | undefined;
    variant?: "default" | "group" | "ring" | "ring-offset" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
type AvatarProps = React.ComponentProps<typeof Avatar$1.Root> & VariantProps<typeof avatarRootVariants> & {
    /**
     * Subtle inner hairline on the avatar edge (token `border-border`).
     * Default **false** — full-bleed circle for photos/logos (Shadcn Studio–style profile look).
     */
    insetBorder?: boolean;
};
declare function Avatar({ className, size, shape, variant, insetBorder, ...props }: AvatarProps): react_jsx_runtime.JSX.Element;
declare function AvatarImage({ className, referrerPolicy, ...props }: React.ComponentProps<typeof Avatar$1.Image>): react_jsx_runtime.JSX.Element;
declare function AvatarFallback({ className, ...props }: React.ComponentProps<typeof Avatar$1.Fallback>): react_jsx_runtime.JSX.Element;
declare function AvatarBadge({ className, ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
/**
 * A row of avatars with an overflow counter — **never overlapping**.
 *
 * Overlapping face piles (Slack / GitHub style) have known UX problems in
 * dense product chrome: ring-on-background contrast is fragile in dark mode,
 * click targets stack, and screen readers announce ambiguous groupings.
 * `AvatarGroup` therefore renders children side-by-side with a small inline
 * gap. See `.cursor/rules/exxat-person-identity-display.mdc` (MUST NOT —
 * overlapping avatars) and the `PageHeader` collaboration variant which
 * uses the same gapped row.
 */
declare function AvatarGroup({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
declare function AvatarGroupCount({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
type AvatarShape = NonNullable<VariantProps<typeof avatarRootVariants>["shape"]>;
type AvatarVariant = NonNullable<VariantProps<typeof avatarRootVariants>["variant"]>;
type AvatarSize = NonNullable<VariantProps<typeof avatarRootVariants>["size"]>;
type AvatarInitialsProps = Omit<AvatarProps, "children"> & {
    initials: string;
    /** When true, initials are hidden from accessibility tree (pair with visible name). Default true. */
    decorative?: boolean;
    /** Extra classes on `AvatarFallback` (e.g. font weight). */
    fallbackClassName?: string;
};
/** Initials-only chip using `--avatar-initials-bg` / `--avatar-initials-fg` (Exxat tokens). */
declare function AvatarInitials({ initials, decorative, fallbackClassName, className, ...avatarProps }: AvatarInitialsProps): react_jsx_runtime.JSX.Element;
type AvatarStatusTone = "online" | "busy" | "away";
/** Presence dot (Studio avatars 7–9). Wraps a single `Avatar`. */
declare function AvatarStatus({ children, status, label, className, position, }: {
    children: React.ReactNode;
    status: AvatarStatusTone;
    /** Announced to screen readers (e.g. "Busy"). */
    label: string;
    className?: string;
    /** `bottom-end` matches `AvatarBadge`; `top-end` matches some Studio away demos. */
    position?: "bottom-end" | "top-end";
}): react_jsx_runtime.JSX.Element;
/** Numeric badge overlay (Studio avatar 11). */
declare function AvatarNotificationCount({ children, count, className, badgeClassName, }: {
    children: React.ReactNode;
    count: number | string;
    className?: string;
    badgeClassName?: string;
}): react_jsx_runtime.JSX.Element;
/** Verified check overlay (Studio avatar 12) — primary token fill. */
declare function AvatarVerified({ children, label, className, }: {
    children: React.ReactNode;
    label?: string;
    className?: string;
}): react_jsx_runtime.JSX.Element;
/** Leo assistant mark — centralized; same icon treatment as Ask Leo sidebar. */
declare function AvatarLeoAssistant({ className, size, ...props }: Omit<AvatarProps, "children" | "shape">): react_jsx_runtime.JSX.Element;
/** “Add profile” affordance (Studio avatar 10). `onClick` on the button. */
declare function AvatarPlusAction({ children, actionLabel, onClick, className, buttonClassName, }: {
    children: React.ReactNode;
    actionLabel: string;
    onClick?: () => void;
    className?: string;
    buttonClassName?: string;
}): react_jsx_runtime.JSX.Element;

export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, AvatarInitials, type AvatarInitialsProps, AvatarLeoAssistant, AvatarNotificationCount, AvatarPlusAction, type AvatarProps, type AvatarShape, type AvatarSize, AvatarStatus, type AvatarStatusTone, type AvatarVariant, AvatarVerified, avatarRootVariants };
