import * as React from 'react'; /** * The full upstream variant set. Exported as a value, not just a type, so * stories and tests can enumerate it and a new variant cannot be added without * the coverage following. */ export declare const BADGE_VARIANTS: readonly ["default", "feature", "neutral", "success", "decorative10", "decorative20", "decorative30", "decorative40", "warning", "error", "new", "subaccount", "brand10", "brand20", "brand30", "code"]; export type BadgeVariant = (typeof BADGE_VARIANTS)[number]; export type BadgeSize = 'small' | 'default'; declare const badgeStyles: (props?: ({ variant?: "code" | "default" | "error" | "neutral" | "success" | "warning" | "feature" | "decorative10" | "decorative20" | "decorative30" | "decorative40" | "new" | "subaccount" | "brand10" | "brand20" | "brand30" | null | undefined; size?: "small" | "default" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface BadgeProps extends React.HTMLAttributes { /** Badge text. */ label: React.ReactNode; /** * Color variant. * @default 'default' */ variant?: BadgeVariant; /** * Size. The `code` variant ignores this. * @default 'default' */ size?: BadgeSize; /** Optional leading icon. Auto-sized to 12×12 via `[&>svg]:size-3`. */ icon?: React.ReactNode; /** Show a small success dot in the top-right corner. */ hasIndicator?: boolean; /** * Breathe the surface fill in and out, for a transient working state. * * From Figma's `.badge-animation`, whose two frames fade the tint from 20% alpha to 0. * Only the fill animates — the label ink is deliberately left alone, because fading the * whole badge would take the text through ~1:1 against the page at the midpoint. * @default false */ pulse?: boolean; } /** * Compact status or category label. * * @example * @example * @example */ export declare const Badge: React.ForwardRefExoticComponent>; export { badgeStyles }; //# sourceMappingURL=badge.d.ts.map