import type { ReactNode } from 'react'; export interface RadioOption { readonly value: string; readonly label: string; readonly disabled?: boolean; /** Mark rendered alongside the label. Decorative — the label carries the name. */ readonly icon?: ReactNode; /** Render the label for screen readers only; it stays the option's accessible name. */ readonly visuallyHiddenLabel?: boolean; } export interface RadioGroupProps { readonly options: readonly RadioOption[]; readonly value?: string; readonly defaultValue?: string; readonly onValueChange?: (value: string) => void; readonly disabled?: boolean; readonly name?: string; /** Visible group label, rendered above the options and wired as the group's name. */ readonly label?: string; /** * Accessible group name when `label` supplies none. `label` wins where both are * given — it names the group from visible text, and emitting both would leave * this string computed by nothing. */ readonly 'aria-label'?: string; /** * Layout, and — when given — the arrow-key axis. Omitted, the options stack * and BOTH axes move between them, which is what Radix does with no * orientation and what every caller that never passed one already had. Pass a * value only to pin the axis as well. */ readonly orientation?: 'horizontal' | 'vertical'; /** `list` is a stack of labelled radios; `segmented` is a compact segment strip. */ readonly variant?: 'list' | 'segmented'; } export declare function RadioGroup({ options, value, defaultValue, onValueChange, disabled, name, label, 'aria-label': ariaLabel, orientation, variant, }: RadioGroupProps): import("react").JSX.Element; //# sourceMappingURL=radio-group.d.ts.map