import { ChoiceProps as ChoiceComponentProps } from './Choice';
import type * as React from 'react';
import { UseLabelPropsProps } from '../Label/useLabelProps';
import { UseHintProps } from '../Hint/useHint';
import { UseInlineErrorProps } from '../InlineError/useInlineError';
export type ChoiceListSize = 'small';
export type ChoiceListType = 'checkbox' | 'radio';
type OmitChoiceProp = 'inversed' | 'name' | 'onBlur' | 'onChange' | 'size' | 'type';
export type ChoiceProps = Omit<ChoiceComponentProps, OmitChoiceProp>;
export interface BaseChoiceListProps {
    /**
     * Array of objects representing the props for each Choice in the ChoiceList
     */
    choices: Omit<ChoiceProps, 'name' | 'type'>[];
    /**
     * Additional classes to be added to the root element.
     */
    className?: string;
    /**
     * Disables the entire field.
     */
    disabled?: boolean;
    /**
     * A unique ID for this element. A unique ID will be generated if one isn't provided.
     */
    id?: string;
    /**
     * Set to `true` to apply the "inverse" color scheme
     */
    inversed?: boolean;
    /**
     * The field's `name` attribute
     */
    name: string;
    /**
     * Called anytime any choice is blurred
     */
    onBlur?: (...args: any[]) => any;
    /**
     * Called when any choice is blurred and the focus does not land on one
     * of the other choices inside this component (i.e., when the whole
     * component loses focus)
     */
    onComponentBlur?: (...args: any[]) => any;
    onChange?: (...args: any[]) => any;
    /**
     * Sets the size of the checkbox or radio button
     */
    size?: ChoiceListSize;
    /**
     * Sets the type to render `checkbox` fields or `radio` buttons
     */
    type: ChoiceListType;
}
export type ChoiceListProps = BaseChoiceListProps & Omit<React.ComponentPropsWithRef<'fieldset'>, keyof BaseChoiceListProps> & Omit<UseLabelPropsProps & UseHintProps & UseInlineErrorProps, 'id' | 'inversed'>;
/**
 * For information about how and when to use this component, refer to the
 * [checkbox](https://design.cms.gov/components/checkbox/) and
 * [radio](https://design.cms.gov/components/radio/) documentation pages.
 *
 * Checkboxes and radios can be managed as a group using `<ChoiceList>` or
 * individually using `<Choice>`. Note that each of the items in the `choices`
 * array represents props that will be passed to an individual `<Choice>`
 * component. You can therefore define any of the props listed in the `<Choice>`
 * props table below, including all valid attributes of the
 * [HTML input element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input).
 */
export declare const ChoiceList: React.FC<ChoiceListProps>;
export default ChoiceList;
