import { ElementType, Ref } from 'react'; import { Props } from '../../types.js'; import { RefProp, HasDisplayName } from '../../utils/render.js'; import { ComponentLabel } from '../../components/label/label.js'; import { ComponentDescription } from '../../components/description/description.js'; declare let DEFAULT_RADIO_GROUP_TAG: "div"; interface RadioGroupRenderPropArg { value: TType; } type RadioGroupPropsWeControl = 'role' | 'aria-labelledby' | 'aria-describedby'; export type RadioGroupProps = Props, RadioGroupPropsWeControl, { value?: TType; defaultValue?: TType; onChange?(value: TType): void; by?: (keyof TType & string) | ((a: TType, z: TType) => boolean); disabled?: boolean; form?: string; name?: string; }>; declare function RadioGroupFn(props: RadioGroupProps, ref: Ref): JSX.Element; declare let DEFAULT_OPTION_TAG: "div"; interface OptionRenderPropArg { checked: boolean; active: boolean; disabled: boolean; } type OptionPropsWeControl = 'aria-checked' | 'aria-describedby' | 'aria-lablledby' | 'role' | 'tabIndex'; export type RadioOptionProps = Props; declare function OptionFn[0]['value']>(props: RadioOptionProps, ref: Ref): JSX.Element; interface ComponentRadioGroup extends HasDisplayName { (props: RadioGroupProps & RefProp): JSX.Element; } interface ComponentRadioOption extends HasDisplayName { (props: RadioOptionProps & RefProp): JSX.Element; } interface ComponentRadioLabel extends ComponentLabel { } interface ComponentRadioDescription extends ComponentDescription { } declare let RadioGroupRoot: ComponentRadioGroup; export declare let RadioGroup: ComponentRadioGroup & { Option: ComponentRadioOption; Label: ComponentRadioLabel; Description: ComponentRadioDescription; }; export {};