/**
 * @file StatusDot.tsx
 * @input Uses React
 * @output Exports StatusDot component, StatusDotProps, StatusDotVariant types
 * @position Core implementation; consumed by index.ts
 *
 * SYNC: When modified, update these files to stay in sync:
 * - /packages/core/src/StatusDot/StatusDot.doc.mjs (props table, features, implementation notes)
 * - /packages/core/src/StatusDot/StatusDot.test.tsx (tests for new/changed behavior)
 * - /packages/core/src/StatusDot/index.ts (exports if types change)
 * - /apps/storybook/stories/StatusDot.stories.tsx (storybook stories)
 * - /packages/cli/assets/templates/blocks/components/StatusDot/ (showcase blocks)
 */
import type { ReactNode } from 'react';
import type { BaseProps } from '../BaseProps';
import type { StatusDotVariantMap } from './index';
/**
 * Status dot variant type derived from StatusDotVariantMap.
 * Extensible via module augmentation of StatusDotVariantMap.
 */
export type StatusDotVariant = keyof StatusDotVariantMap;
export interface StatusDotProps extends BaseProps<HTMLSpanElement> {
    /** Ref forwarded to the root element */
    ref?: React.Ref<HTMLSpanElement>;
    /**
     * The semantic color variant.
     */
    variant: StatusDotVariant;
    /**
     * Accessible label describing the status. Required for a11y — it is the
     * dot's `aria-label`, so the status reaches screen readers without hover.
     */
    label: string;
    /**
     * Whether the dot should pulse to indicate activity.
     * Respects `prefers-reduced-motion`.
     * @default false
     */
    isPulsing?: boolean;
    /**
     * Tooltip text shown on hover to explain the status meaning.
     * When omitted, no tooltip is rendered.
     */
    tooltip?: string;
    /**
     * Optional icon to render centered inside the dot. Accepts any ReactNode
     * (typically an SVG icon), painted in the dot's `currentColor` ink. Same
     * contract as `AvatarStatusDot`'s `icon`.
     *
     * By default the dot is a colour-only signal; an icon gives the status a
     * non-colour mark, so use a different icon per status — the same icon on
     * every variant leaves the statuses distinguishable by colour alone
     * (WCAG 2.1 SC 1.4.1). Booleans and empty strings are ignored (safe for
     * `cond && <Icon />`).
     *
     * @example
     * ```
     * <StatusDot variant="success" label="Verified" icon={<CheckIcon />} />
     * ```
     */
    icon?: ReactNode;
}
/**
 * A small colored dot indicator for status display (online/offline, severity, etc).
 *
 * Fixed 8px size. By default the dot conveys status by colour only, which is
 * not accessible in isolation (WCAG 2.1 SC 1.4.1) — treat it as a signal the
 * surrounding UI must make accessible: use it as a binary present/absent
 * signal, pair it with a visible label, pass `icon` so the status carries a
 * non-colour mark, or convey the status accessibly elsewhere. See the usage
 * guidance in the component docs.
 *
 * Renders as a non-focusable `<span>` with `role="img"` and
 * `aria-label` for accessibility. Styles use Astryx theme tokens via StyleX.
 * Wrap your app in `<Theme>` to apply a theme.
 *
 * @example
 * ```
 * <StatusDot variant="success" label="Online" />
 * <StatusDot variant="error" label="Offline" />
 * <StatusDot variant="success" label="Live" isPulsing />
 * <StatusDot variant="success" label="Online" tooltip="Online" />
 * <StatusDot variant="success" label="Verified" icon={<CheckIcon />} />
 * ```
 */
export declare function StatusDot({ variant, label, isPulsing, tooltip, icon, xstyle, className, style, ref, ...props }: StatusDotProps): import("react").JSX.Element;
export declare namespace StatusDot {
    var displayName: string;
}
//# sourceMappingURL=StatusDot.d.ts.map