import React from 'react'; import { StyleProp, ViewStyle, TextStyle, PressableProps, PressableStateCallbackType } from 'react-native'; import { Ux4gIconProp } from '../button/Button'; export type Ux4gRadioButtonSize = 'small' | 'medium' | 'large'; export type Ux4gRadioButtonDescriptionVariant = 'helper' | 'error' | 'warning' | 'success'; /** * Visual status for the radio circle itself (independent of selection). * Drives the ring color so callers can render error / warning / success * states consistently (e.g. validation errors on the parent form). */ export type Ux4gRadioButtonStatus = 'defaultStatus' | 'error' | 'warning' | 'success'; export interface Ux4gRadioButtonProps extends Omit { /** The value represented by this radio button */ value: T; /** The currently selected group value */ groupValue?: T | null; /** Callback triggered when the radio button or label is pressed (`(value: T) => void`) */ onChanged?: (value: T) => void; /** Primary label text displayed next to the radio circle */ label?: string; /** Secondary description/helper text displayed below the label */ description?: string; /** Size of the radio circle (`small` = 16pt, `medium` = 20pt, `large` = 24pt). Defaults to `medium`. */ size?: Ux4gRadioButtonSize; /** Whether the field is required. Appends a red asterisk (`*`) to the label. Defaults to `false`. */ isRequired?: boolean; /** Trailing icon rendered after the label */ trailingIcon?: Ux4gIconProp; /** Variant styling for the description text and icon (`helper`, `error`, `warning`, `success`). Defaults to `helper`. */ descriptionVariant?: Ux4gRadioButtonDescriptionVariant; /** Visual status for the radio circle (`defaultStatus`, `error`, `warning`, `success`). Defaults to `defaultStatus`. */ status?: Ux4gRadioButtonStatus; /** Optional override for the radio circle color. Takes precedence over `status` and primary color. */ color?: string; /** Custom label text foreground color */ labelColor?: string; /** Style override for the label `Text` */ labelStyle?: StyleProp; /** Style override for the description `Text` */ descriptionStyle?: StyleProp; /** Whether the radio button is interactive. Defaults to `true`. */ enabled?: boolean; /** Style for the outer row/container `Pressable` */ style?: StyleProp | ((state: PressableStateCallbackType) => StyleProp); } export declare function Ux4gRadioButton({ value, groupValue, onChanged, label, description, size, isRequired, trailingIcon, descriptionVariant, status, color, labelColor, labelStyle, descriptionStyle, enabled, style, testID, accessibilityLabel, accessibilityRole, ...restProps }: Ux4gRadioButtonProps): React.JSX.Element; //# sourceMappingURL=RadioButton.d.ts.map