import { FC, ChangeEventHandler, RefObject, MouseEventHandler, KeyboardEventHandler, ReactNode, FocusEventHandler } from 'react';
import './Tumbler.css';
export declare const CHECKED_KEYS: number[];
export declare const UNCHECKED_KEYS: number[];
export declare type TumblerProps = {
    /**
     * Состояние переключателя
     */
    checked: boolean;
    /**
     * Дополнительный класс у корневого DOM-элемента
     */
    className?: string;
    /**
     * Ссылка на нативный DOM-элемент нативного инпута
     */
    controlRef?: RefObject<HTMLInputElement>;
    /**
     * Неактивное состояние переключателя
     */
    disabled?: boolean;
    /**
     * Уникальный id компонента
     */
    id?: string;
    /**
     * Ссылка на корневой DOM-элемент компонента
     */
    innerRef?: RefObject<HTMLSpanElement>;
    /**
     * Подпись после переключателя
     */
    labelAfter?: ReactNode;
    /**
     * Подпись перед переключателем
     */
    labelBefore?: ReactNode;
    /**
     * Имя переключателя в форме
     */
    name?: string;
    /**
     * Обработчик, который вызывается при потере фокуса переключателем
     */
    onBlur?: FocusEventHandler<HTMLButtonElement>;
    /**
     * Обработчик, который вызывается при изменении состояния
     */
    onChange: ChangeEventHandler<HTMLInputElement>;
    /**
     * Обработчик, который вызывается при нажатии на переключатель
     */
    onClick?: MouseEventHandler<HTMLButtonElement>;
    /**
     * Обработчик, который вызывается при получении фокуса переключателем
     */
    onFocus?: FocusEventHandler<HTMLButtonElement>;
    /**
     * Обработчик, который вызывается при нажатии клавиши на клавиатуре (при этом переключатель должен быть в фокусе)
     */
    onKeyDown?: KeyboardEventHandler<HTMLButtonElement>;
    /**
     * Обработчик, который вызывается при отжатии клавиши на клавиатуре (при этом переключатель должен быть в фокусе)
     */
    onKeyUp?: KeyboardEventHandler<HTMLButtonElement>;
    /**
     * Целое число, определяющее должен ли переключатель участвовать
     * в последовательной навигации по всей странице с помощью клавиатуры
     */
    tabIndex?: number;
    /**
     * Всплывающая подсказка
     */
    title?: string;
    /**
     * Устанавливает фокус в компонент при монтировании
     */
    autoFocus?: boolean;
    /**
     * Устанавливает в компоненте обязательное состояние
     */
    required?: boolean;
};
export declare const cnTumbler: import("@bem-react/classname").ClassNameFormatter;
/**
 * Компонент, предназначенный для создания переключателя.
 *
 * @param {TumblerProps} props Свойства компонента.
 */
export declare const Tumbler: FC<TumblerProps>;
