import React from "react";
export type BadgeVariant = "default" | "primary" | "secondary" | "success" | "warning" | "danger" | "error" | "info" | "neutral";
export type BadgeSize = "sm" | "md" | "lg";
export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
    /** Additional CSS classes applied to the root element. */
    className?: string;
    variant?: BadgeVariant;
    size?: BadgeSize;
    /** Numeric count or amount to display in badge */
    amount?: number;
    /** Badge label text (alternative to children for schema-driven rendering).
     *  Numeric values are auto-coerced to string for rendering — common case
     *  is unread counts, error counts, status codes, etc. */
    label?: string | number;
    /** Icon name (Lucide icon string) or React node */
    icon?: React.ReactNode;
    /** When set, renders a small X button on the right of the badge that
     *  invokes this handler — turns the badge into a removable chip.
     *  Used by the TagInput molecule and other "list of removable values"
     *  surfaces. */
    onRemove?: () => void;
    /** Accessible label for the remove button. Defaults to "Remove". */
    removeLabel?: string;
}
export declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
