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