import React, { Ref, FocusEventHandler, MouseEventHandler, ReactNode } from 'react';
import { Omit } from '../typings/utility-types';
import { IWithControlProps } from '../withControl/withControl';
import { IWithControlProps as IWithControlDesktopProps } from '../withControl/withControl@desktop';
import { ICheckboxControlProps } from './Control/Checkbox-Control';
import './Checkbox.css';
export declare const cnCheckbox: import("@bem-react/classname").ClassNameFormatter;
export declare type CheckboxControlProps = Omit<ICheckboxControlProps, 'size'>;
export interface ICheckboxProps extends IWithControlProps<HTMLInputElement>, IWithControlDesktopProps<HTMLInputElement>, CheckboxControlProps {
    /**
     * Событие, которое вызывается при потере фокуса компонентом. Например, при клике на другом месте экрана
     */
    onBlur?: FocusEventHandler<HTMLElement>;
    /**
     * Событие, которое вызывается при нажатии на компонент
     */
    onClick?: MouseEventHandler<HTMLElement>;
    /**
     * Событие, которое возникает при получении компонентом фокуса
     */
    onFocus?: FocusEventHandler<HTMLElement>;
    /**
     * Событие по своему действию похоже на `onClick` и возникает в момент нажатия кнопки мыши.
     * `onClick` в каком-то смысле является комбинацией событий `onMouseDown` и `onMouseUp`
     */
    onMouseDown?: MouseEventHandler<HTMLElement>;
    /**
     * Событие по своему действию противоположно событию `onMouseDown` и происходит при отпускании кнопки мыши.
     * Курсор должен находится в пределах HTML-элемента, к которому добавлен атрибут `onmouseup`
     */
    onMouseUp?: MouseEventHandler<HTMLElement>;
    /**
     * Обработчик события `onMouseLeave`
     */
    onMouseLeave?: MouseEventHandler<HTMLElement>;
    /**
     * Обработчик события `onMouseEnter`
     */
    onMouseEnter?: MouseEventHandler<HTMLElement>;
    /**
     * Состояние фокуса на компоненте
     */
    focused?: boolean;
    /**
     * Неактивное состояние компонента.
     * Состояние, при котором компонент отображается, но недоступен для действий пользователя
     */
    disabled?: boolean;
    /**
     * Состояние нажатия на компоненте
     */
    pressed?: boolean;
    /**
     * Состояние, которое возникает при наведении на компонент курсором
     */
    hovered?: boolean;
    /**
     * Ссылка на корневой DOM-элемент компонента
     */
    innerRef?: Ref<HTMLElement>;
    /**
     * Текст подписи к чекбоксу
     */
    label?: ReactNode;
    /**
     * Визуально переводит чекбокс в неопределенное состояние. Не влияет на состояние, указанное в `checked`.
     *
     * Может использоваться в дереве чекбоксов, чтобы показать состояние родительского чекбокса,
     * когда хотя бы один вложенный чекбокс отмечен, но не все.
     *
     * Если свойство задано родительскому чекбоксу,
     * то в `aria-controls` необходимо добавить `id` всех вложенных чекбоксов
     */
    indeterminate?: boolean;
    /**
     * Состояние переключателя: включен или выключен
     */
    checked?: boolean;
    /**
     * Всплывающая подсказка
     */
    title?: string;
    /**
     * Устанавливает фокус в компонент при монтировании
     */
    autoFocus?: boolean;
}
export declare const Checkbox: React.ComponentClass<ICheckboxProps, any>;
