import React from 'react';
import { FieldSetProps } from '../FieldSet/FieldSet';
import { FormFieldProps } from '../Form';
import { FormFieldSetProps } from '../Form/FormFieldSet';
import { RadioButtonProps } from '../RadioButton/RadioButton';
export declare type RadioOption = Omit<RadioButtonProps, 'name'> & {
    expansion?: React.ReactNode;
};
export declare type RadioOptionInForm<TData> = Omit<FormFieldProps<TData, RadioOption, any>, 'inputComponent' | 'onChange'>;
declare type CommonRadioGroupProps = {
    inputName: string;
    defaultSelectedItemId?: string;
};
/**
 * Props for InternalRadioButtonGroup
 */
declare type InternalRadioButtonGroupProps = CommonRadioGroupProps & {
    options: RadioOption[];
    inForm?: boolean;
};
declare type PropsForGroupInForm<TData> = CommonRadioGroupProps & {
    options: RadioOptionInForm<TData>[];
    inForm: true;
};
/**
 * Props for RadioButtonGroup, which includes props for InternalRadioButtonGroup,
 * props for the wrapping field set(FieldSet or FormFieldSet),
 * and conditionally a flag to indicate when FormFieldSet is used
 */
export declare type RadioButtonGroupProps<TData> = (InternalRadioButtonGroupProps & FieldSetProps) | (PropsForGroupInForm<TData> & FormFieldSetProps<TData>);
/**
 * Component for displaying a group of related RadioButtons.
 * Renders the radio button group in a FieldSet by default, or FormFieldSet
 * if FormFieldSetProps is provided as type param
 */
export declare const RadioButtonGroup: <TData extends {}>({ options, defaultSelectedItemId, inForm, inputName, ...props }: RadioButtonGroupProps<TData>) => JSX.Element;
export {};
