import { CSSProperties, ElementType, HTMLAttributes, ReactNode } from 'react';
type StyledBadgeSize = 'medium' | 'small';
/**
* @figmaNode wXrXt5uKNNzV2DnQCgyYZH#15181-43817
* Figma "Badge". Number badge = solid gama-500 pill, white Helper-Semibold 14px (h20/px6/r20);
* `dot` variant = 8px dot (Unread/Filters). `color` selects the badge palette (primary→teal number
* badge, error→soft error-100/error-600); other colors are app extensions with no Figma type.
*/
interface BadgeProps extends Omit, 'color'> {
/** @figmaProp Badge content (the number/label) */
badgeContent?: ReactNode;
/** @figmaProp Type/colour = primary→number badge (gama-500) | error→error-100/600 | others = app */
color?: string;
max?: number;
showZero?: boolean;
/** @figmaProp Type = dot→"Unread/Filters" (8px) | standard→number badge */
variant?: 'standard' | 'dot';
invisible?: boolean;
anchorOrigin?: {
vertical: 'top' | 'bottom';
horizontal: 'left' | 'right';
};
overlap?: 'rectangular' | 'circular';
component?: ElementType;
classes?: Record;
slots?: Record;
slotProps?: {
badge?: {
className?: string;
style?: CSSProperties;
};
};
sx?: unknown;
}
type StyledBadgeProps = BadgeProps & {
dataTest: string;
size?: StyledBadgeSize;
};
/**
* Native, MUI-free reimplementation of the previous `Badge` passthrough. Reproduces MUI v9 badge
* metrics/positioning via Tailwind, this library's custom `primary` green, and the `small` size.
* The established styling API `sx={{ '& .MuiBadge-badge': {...} }}` is preserved by extracting that
* slot and applying `resolveSx` to the badge span (DEC-007 slot-sx). Signature unchanged (DEC-003).
*/
export declare const StyledBadge: ({ color, dataTest, size, badgeContent, max, showZero, variant, invisible, anchorOrigin, children, className, sx, overlap: _overlap, classes: _classes, slots: _slots, slotProps, component: _component, ...props }: StyledBadgeProps) => JSX.Element;
export {};