import { type ReactNode } from "react"; import { type StyleProp, type ViewStyle, type TextStyle } from "../../style/index.js"; export type Tone = "default" | "secondary" | "outline" | "destructive"; export type Status = "success" | "warning" | "error" | "info" | "neutral"; export interface BadgeSkin { /** Metadata pill shape + padding (the tone fill/label color is supplied by shared). */ metaBase: ViewStyle; /** Status pill shape + padding + gap. */ statusBase: ViewStyle; /** Label type (size / line-height / weight / tracking) for both families. */ labelType: TextStyle; /** Status dot diameter. */ dotSize: number; } export interface BadgeProps { children?: ReactNode; status?: boolean; default?: boolean; secondary?: boolean; outline?: boolean; destructive?: boolean; mono?: boolean; success?: boolean; warning?: boolean; error?: boolean; info?: boolean; neutral?: boolean; /** * Accessible name for the badge. Most useful for the status family: the bare-dot status * form (`` with no children) is otherwise color-only and silent to * screen readers. When omitted on a childless status badge, the status tone word (e.g. * "error") is announced as a fallback. Mirrors the Spinner/Progress `accessibilityLabel` * contract. */ accessibilityLabel?: string; /** E2E hook forwarded to the root element. */ testID?: string; /** Outer layout composition only (width/flex within a parent), never a restyle hook. */ style?: StyleProp; } export declare function createBadge(skin: BadgeSkin): (props: BadgeProps) => import("react").JSX.Element; export type BadgeGap = "tight" | "snug" | "cozy"; export interface BadgeGroupProps { /** The Badge elements to lay out in a wrapping row. */ children?: ReactNode; tight?: boolean; snug?: boolean; cozy?: boolean; /** Accessible name for the whole group (e.g. "Rachel Chen's roles"). */ accessibilityLabel?: string; /** E2E hook forwarded to the root element. */ testID?: string; /** Outer layout composition only (width/flex within a parent), never a restyle hook. */ style?: StyleProp; } export declare function BadgeGroup(props: BadgeGroupProps): import("react").JSX.Element; //# sourceMappingURL=badge.shared.d.ts.map