import React from 'react';
import { FieldSetProps } from '../FieldSet/FieldSet';
import { FormFieldProps } from '../Form';
import { FormFieldSetProps } from '../Form/FormFieldSet';
import { SingleCheckbox } from '../Checkbox/Checkbox';
export declare type CheckboxInGroup = SingleCheckbox & {
    expansion?: React.ReactNode;
};
export declare type CheckboxOptionInForm<TData> = Omit<FormFieldProps<TData, CheckboxInGroup, any>, 'inputComponent' | 'onChange'>;
/**
 * Props for InternalCheckboxGroup
 */
declare type InternalCheckboxGroupProps = {
    options: CheckboxInGroup[];
    inForm?: boolean;
    defaultSelectedItemsIds?: string | string[];
};
declare type PropsForGroupInForm<TData> = {
    options: CheckboxOptionInForm<TData>[];
    inForm: true;
    defaultSelectedItemsIds?: string | string[];
};
/**
 * Props for CheckboxGroup, which includes props for InternalCheckboxGroup,
 * props for the wrapping field set(FieldSet or FormFieldSet),
 * and conditionally a flag to indicate when FormFieldSet is used
 */
export declare type CheckboxGroupProps<TData> = (InternalCheckboxGroupProps & FieldSetProps) | (PropsForGroupInForm<TData> & FormFieldSetProps<TData>);
/**
 * Component for displaying a group of related Checkboxs.
 * Renders the radio button group in a FieldSet by default, or FormFieldSet
 * if FormFieldSetProps is provided as type param
 */
export declare const CheckboxGroup: <TData extends {}>({ options, defaultSelectedItemsIds, inForm, ...props }: CheckboxGroupProps<TData>) => JSX.Element;
export {};
