import { DataAttributes, Factory, MantineSize, Primitive } from '../../../core'; import { InputWrapperProps, InputWrapperStylesNames } from '../../Input'; export interface RadioGroupContextValue { size: MantineSize | undefined; value: Value | null; onChange: (event: React.ChangeEvent | string) => void; name: string; disabled: boolean | undefined; } export declare const RadioGroupContext: import("react").Context | null>; export type RadioGroupStylesNames = InputWrapperStylesNames; export interface RadioGroupProps extends Omit { /** `Radio` components and any other elements */ children: React.ReactNode; /** Controlled component value */ value?: Value | null; /** Uncontrolled component default value */ defaultValue?: Value | null; /** Called when value changes */ onChange?: (value: Value) => void; /** Props passed down to the `Input.Wrapper` */ wrapperProps?: React.ComponentProps<'div'> & DataAttributes; /** Controls size of the `Input.Wrapper` @default 'sm' */ size?: MantineSize; /** `name` attribute of child radio inputs. By default, `name` is generated randomly. */ name?: string; /** If set, value cannot be changed */ readOnly?: boolean; /** Sets `disabled` attribute, prevents interactions */ disabled?: boolean; } export type RadioGroupFactory = Factory<{ props: RadioGroupProps; ref: HTMLDivElement; stylesNames: RadioGroupStylesNames; signature: (props: RadioGroupProps) => React.JSX.Element; }>; export declare const RadioGroup: ((props: RadioGroupProps) => React.JSX.Element) & import("../../..").ThemeExtend<{ props: RadioGroupProps; ref: HTMLDivElement; stylesNames: RadioGroupStylesNames; signature: (props: RadioGroupProps) => React.JSX.Element; }> & import("../../..").ComponentClasses<{ props: RadioGroupProps; ref: HTMLDivElement; stylesNames: RadioGroupStylesNames; signature: (props: RadioGroupProps) => React.JSX.Element; }> & Record & import("../../..").FactoryComponentWithProps<{ props: RadioGroupProps; ref: HTMLDivElement; stylesNames: RadioGroupStylesNames; signature: (props: RadioGroupProps) => React.JSX.Element; }> & { displayName?: string; };