import { type ReactNode } from "react"; import { type StyleProp, type ViewStyle } from "../../style/index.js"; import type { RadioSkin } from "./radio.shared.js"; export interface RadioGroupProps { /** The selected option's value (CONTROLLED). Omit for uncontrolled use. */ value?: string | number; /** Initial selected value for uncontrolled use (a bare group selects on press). */ defaultValue?: string | number; /** Fired with the newly selected option's value. */ onChange?: (value: string | number) => void; /** Disable every radio in the group. */ disabled?: boolean; /** * Lay the options out in a wrapping row instead of the default column. * * iOS keeps its * checkmark list vertical (a list has no row form); `card` options still sit in a row * there. * */ row?: boolean; /** * With `row`: the options share the row equally and never wrap, a tile picker's even * columns (card tiles 10 apart, plain options 20). */ equal?: boolean; /** * With `row` and a `label`: the label sits at the start of the row, before the options * and centred on them, in the 500 13 px muted ink (a short setting's inline choice: * "Digest ( ) Daily (o) Weekly"), instead of as a heading above. The `description` is * not shown inline. */ inlineLabel?: boolean; /** * The group's name, rendered as a heading above the options. It also becomes the * radiogroup's accessible name, so a screen reader announces what the set of * options is about before reading them. The group owns this label anatomy; never * hand-compose a heading Text beside a bare group. */ label?: string; /** Optional muted supporting line rendered under the label. */ description?: ReactNode; /** The `` options that make up the group. */ children?: ReactNode; /** E2E hook forwarded to the group container. */ testID?: string; /** Outer layout composition only (width/flex within a parent), never a restyle hook. */ style?: StyleProp; } /** Build a RadioGroup from the platform's Radio skin (its `list` decides whether the options form a list section). */ export declare function createRadioGroup(skin: RadioSkin): (props: RadioGroupProps) => import("react").JSX.Element; //# sourceMappingURL=radio-group.shared.d.ts.map