/** * RadioGroup — one choice from a set. * * The group owns the value and hands each item its selected state through * context, so an item is a thin pressable that reports its own value up and * reads selection back down. * * Two shapes, chosen on the group and inherited by every item: `dot` is the * classic label-beside-a-disc row; `card` turns the whole surface into the * target — for pickable options where the disc is a confirmation rather than * the thing you aim at. The card is the same treatment `Checkbox` offers, so a * form mixing single- and multi-select choices reads as one family. * * ```tsx * * * * * ``` */ import { type ReactNode } from 'react'; import { View, type ViewProps } from 'react-native'; type RadioVariant = 'dot' | 'card'; type RadioOrientation = 'vertical' | 'horizontal'; export interface RadioGroupProps extends ViewProps { className?: string; value?: string; onValueChange: (value: string) => void; disabled?: boolean; /** * `dot` is the label-beside-a-disc row. `card` makes the whole surface the * target and highlights the selected option — for a plan picker or a * settings choice where each option carries a description. */ variant?: RadioVariant; /** * `horizontal` lays the options out along a row that wraps — for two or * three short choices, where a stacked list wastes the width and reads as * longer than it is. */ orientation?: RadioOrientation; children: ReactNode; } export interface RadioGroupItemProps { className?: string; value: string; label?: string; /** Secondary line under the label. Most at home in the `card` variant. */ description?: string; disabled?: boolean; /** Hide the disc entirely — for a card whose selected fill is enough. */ hideIndicator?: boolean; children?: ReactNode; } export declare const RadioGroup: import("react").ForwardRefExoticComponent> & { Item: import("react").ForwardRefExoticComponent>; }; export type { RadioVariant }; //# sourceMappingURL=index.d.ts.map