import React from 'react';
import { Theme } from '../cn';
export declare type CheckBoxGroupProps = ({
    /**
     * Тип компонента
     */
    type: 'button';
    /**
     * Управление шириной группы кнопок для типа 'button'. При значении
     * 'available' растягивает группу на ширину родителя
     */
    width?: 'default' | 'available';
} | {
    /**
     * Тип компонента
     */
    type?: 'normal' | 'line';
}) & {
    /**
     * Выбранные чекбокс-кнопки
     */
    value?: ReadonlyArray<string | number>;
    /**
     * Уникальное имя блока
     */
    name?: string;
    /**
     * Управление возможностью изменения состояния 'checked' дочерних компонентов `CheckBox`
     */
    disabled?: boolean;
    /**
     * Дочерние элементы `CheckBoxGroup`, как правило, компоненты `CheckBox`
     */
    children?: React.ReactNode;
    /**
     * Тема компонента
     */
    theme?: Theme;
    /**
     * Дополнительный класс
     */
    className?: string;
    /**
     * Идентификатор компонента в DOM
     */
    id?: string;
    /**
     * Лейбл для группы
     */
    label?: React.ReactNode;
    /**
     * Обработчик фокуса радиогруппы
     */
    onFocus?: (event?: React.FocusEvent<any>) => void;
    /**
     * Обработчик снятия фокуса с радиогруппы
     */
    onBlur?: (event?: React.FocusEvent<any>) => void;
    /**
     * Обработчик изменения значения 'checked' одного из дочерних радио-кнопок
     */
    onChange?: (value?: any[], event?: React.ChangeEvent<any>) => void;
    /**
     * Идентификатор для систем автоматизированного тестирования
     */
    'data-test-id'?: string;
};
/**
 * Компонент группы чекбоксов.
 */
export declare class CheckBoxGroup extends React.PureComponent<CheckBoxGroupProps> {
    protected cn: (this: void | {
        props?: Record<string, unknown>;
    }, elementNameOrMods?: string | {
        [key: string]: string | number | boolean;
    }, mods?: {
        [key: string]: string | number | boolean;
    }) => string;
    static defaultProps: Partial<CheckBoxGroupProps>;
    state: {
        value: any[];
    };
    private checkboxes;
    render(): JSX.Element;
    private handleCheckboxChange;
    private handleFocus;
    private handleBlur;
    /**
     * Устанавливает фокус на первую чекбокс-кнопку в группе.
     */
    focus(): void;
    /**
     * Убирает фокус с группы чекбокс-кнопок.
     */
    blur(): void;
}
declare const _default: React.ForwardRefExoticComponent<({
    /**
     * Тип компонента
     */
    type: "button";
    /**
     * Управление шириной группы кнопок для типа 'button'. При значении
     * 'available' растягивает группу на ширину родителя
     */
    width?: "default" | "available";
} & {
    /**
     * Выбранные чекбокс-кнопки
     */
    value?: readonly React.Key[];
    /**
     * Уникальное имя блока
     */
    name?: string;
    /**
     * Управление возможностью изменения состояния 'checked' дочерних компонентов `CheckBox`
     */
    disabled?: boolean;
    /**
     * Дочерние элементы `CheckBoxGroup`, как правило, компоненты `CheckBox`
     */
    children?: React.ReactNode;
    /**
     * Тема компонента
     */
    theme?: Theme;
    /**
     * Дополнительный класс
     */
    className?: string;
    /**
     * Идентификатор компонента в DOM
     */
    id?: string;
    /**
     * Лейбл для группы
     */
    label?: React.ReactNode;
    /**
     * Обработчик фокуса радиогруппы
     */
    onFocus?: (event?: React.FocusEvent<any>) => void;
    /**
     * Обработчик снятия фокуса с радиогруппы
     */
    onBlur?: (event?: React.FocusEvent<any>) => void;
    /**
     * Обработчик изменения значения 'checked' одного из дочерних радио-кнопок
     */
    onChange?: (value?: any[], event?: React.ChangeEvent<any>) => void;
    /**
     * Идентификатор для систем автоматизированного тестирования
     */
    'data-test-id'?: string;
} & React.RefAttributes<CheckBoxGroup>) | ({
    /**
     * Тип компонента
     */
    type?: "line" | "normal";
} & {
    /**
     * Выбранные чекбокс-кнопки
     */
    value?: readonly React.Key[];
    /**
     * Уникальное имя блока
     */
    name?: string;
    /**
     * Управление возможностью изменения состояния 'checked' дочерних компонентов `CheckBox`
     */
    disabled?: boolean;
    /**
     * Дочерние элементы `CheckBoxGroup`, как правило, компоненты `CheckBox`
     */
    children?: React.ReactNode;
    /**
     * Тема компонента
     */
    theme?: Theme;
    /**
     * Дополнительный класс
     */
    className?: string;
    /**
     * Идентификатор компонента в DOM
     */
    id?: string;
    /**
     * Лейбл для группы
     */
    label?: React.ReactNode;
    /**
     * Обработчик фокуса радиогруппы
     */
    onFocus?: (event?: React.FocusEvent<any>) => void;
    /**
     * Обработчик снятия фокуса с радиогруппы
     */
    onBlur?: (event?: React.FocusEvent<any>) => void;
    /**
     * Обработчик изменения значения 'checked' одного из дочерних радио-кнопок
     */
    onChange?: (value?: any[], event?: React.ChangeEvent<any>) => void;
    /**
     * Идентификатор для систем автоматизированного тестирования
     */
    'data-test-id'?: string;
} & React.RefAttributes<CheckBoxGroup>)> & CheckBoxGroup;
export default _default;
