/**
 * @file AvatarStatusDot.tsx
 * @input Uses React, StyleX, theme tokens, and AvatarSizeContext
 * @output Exports AvatarStatusDot component and AvatarStatusDotProps type
 * @position Sub-component of Avatar; renders a size-aware status indicator
 *
 * SYNC: When modified, update these files to stay in sync:
 * - /packages/core/src/Avatar/Avatar.doc.mjs (features, files table)
 * - /packages/core/src/Avatar/index.ts (exports)
 * - /apps/storybook/stories/Avatar.stories.tsx (storybook stories)
 * - /packages/cli/assets/templates/blocks/components/Avatar/ (showcase blocks)
 */
import React, { type ReactNode } from 'react';
import type { BaseProps } from '../BaseProps';
import type { AvatarStatusDotVariantMap } from './index';
/**
 * AvatarStatusDot variant type. Extensible via module augmentation of AvatarStatusDotVariantMap.
 */
export type AvatarStatusDotVariant = keyof AvatarStatusDotVariantMap;
export interface AvatarStatusDotProps extends BaseProps<HTMLDivElement> {
    ref?: React.Ref<HTMLDivElement>;
    /**
     * The semantic variant of the dot. Each variant pairs a colour with a
     * distinct built-in shape so status is never conveyed by colour alone
     * (WCAG 2.1 SC 1.4.1):
     * - `success` — filled green dot (e.g. online, accepted)
     * - `neutral` — grey ring (e.g. away, offline, pending)
     * - `error` — red dot with a minus bar (e.g. busy, do not disturb)
     *
     * Matches the `variant` naming convention from `StatusDot`.
     * @default 'success'
     */
    variant?: AvatarStatusDotVariant;
    /**
     * Accessible label for the status dot.
     * Describes the meaning of the indicator for screen readers
     * (e.g. "Online", "Accepted", "John Doe is busy").
     *
     * Note: inside an Avatar the dot sits in the avatar's `role="img"`
     * subtree, where descendant semantics are pruned — the dot is never its
     * own stop there. Instead, Avatar reads this `label` and composes it into
     * its own accessible name (e.g. "Jane Doe, Online"), which is how the
     * status reaches assistive tech (WCAG 4.1.2). Standalone dots (outside an
     * Avatar) expose `role="img"` with this label directly.
     */
    label?: string;
    /**
     * Optional icon to render centered inside the dot.
     * Accepts any ReactNode (typically an SVG icon).
     * The icon is automatically sized to fit the dot and hidden
     * at the smallest avatar sizes where there isn't enough room.
     *
     * A rendered icon replaces the variant's built-in shape glyph, so use a
     * different icon per status — the same icon on every variant leaves the
     * statuses distinguishable by colour alone (WCAG 1.4.1). At the smallest
     * avatar sizes the built-in glyph still shows instead of the icon.
     * Booleans and empty strings are ignored (safe for `cond && <Icon />`),
     * but a component that renders nothing still counts as an icon and
     * suppresses the glyph.
     *
     * @example
     * ```
     * <AvatarStatusDot variant="success" label="Verified" icon={<CheckIcon />} />
     * ```
     */
    icon?: ReactNode;
}
/**
 * A status indicator dot that automatically scales to match the parent
 * Avatar's size.
 *
 * Each variant pairs a colour with a distinct built-in shape (filled dot,
 * ring, minus bar) so status stays distinguishable without colour
 * perception (WCAG 2.1 SC 1.4.1). Themes can target the shape glyph via
 * the `astryx-avatar-status-dot-glyph` class and its `data-shape`
 * attribute.
 *
 * Must be used inside an Avatar's `status` prop so it can read
 * the avatar size from context.
 *
 * @example
 * ```
 * <Avatar
 *   name="John Doe"
 *   size="lg"
 *   status={<AvatarStatusDot variant="success" label="Online" />}
 * />
 * <Avatar
 *   name="Jane Smith"
 *   size="xl"
 *   status={<AvatarStatusDot variant="success" label="Verified" icon={<CheckIcon />} />}
 * />
 * ```
 */
export declare function AvatarStatusDot({ ref, variant, label, icon, xstyle, className, style, ...props }: AvatarStatusDotProps): React.JSX.Element;
export declare namespace AvatarStatusDot {
    var displayName: string;
}
//# sourceMappingURL=AvatarStatusDot.d.ts.map