import type { AriaAttributes } from 'react';
import React from 'react';
import type { Override } from '../../typings/utility-types.js';
import type { CommonProps } from '../../internal/CommonWrapper/index.js';
import type { TGetRootNode } from '../../lib/rootNode/index.js';
import type { SizeProp } from '../../lib/types/props.js';
export interface CheckboxProps extends CommonProps, Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>, Override<React.InputHTMLAttributes<HTMLInputElement>, {
    /** @ignore */
    children?: React.ReactNode;
    /** Переводит контрол в состояние валидации "ошибка". */
    error?: boolean;
    /** Переводит контрол в состояние валидации "предупреждение". */
    warning?: boolean;
    /** Задает размер. */
    size?: SizeProp;
    /** Задает HTML-событие `onmouseenter`.
     * @ignore */
    onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;
    /** Задает HTML-событие `onmouseleave`.
     * @ignore */
    onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;
    /** Задает HTML-событие `onmouseover`.
     * @ignore */
    onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;
    /** Задает функцию, вызывающуюся при изменении value. */
    onValueChange?: (value: boolean) => void;
    /** Задает HTML-событие `onblur`.
     * @ignore */
    onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;
    /** Устанавливает начальное [неопределенное состояние чекбокса](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate). */
    initialIndeterminate?: boolean;
}> {
}
export interface CheckboxState {
    focusedByTab: boolean;
    indeterminate: boolean;
    isShiftPressed: boolean;
}
export declare const CheckboxDataTids: {
    readonly root: "Checkbox__root";
};
/**
 * `Checkbox` используется для управления параметром с двумя состояниями.
 *
 * Чекбокс не запускает действие немедленно. Как правило, для этого нужно нажать подтверждающую кнопку.
 * Для немедленного включения какого-то режима в интерфейсе лучше подходит Toggle.
 */
export declare class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {
    static __KONTUR_REACT_UI__: string;
    static displayName: string;
    private getRootSizeClassName;
    private getBoxWrapperSizeClassName;
    private getCheckboxBoxSize;
    state: {
        focusedByTab: boolean;
        indeterminate: boolean;
        isShiftPressed: boolean;
    };
    private size;
    private globalObject;
    private emotion;
    private cx;
    private styles;
    private theme;
    private input;
    private getProps;
    private keyListener;
    private handleShiftPress;
    private handleShiftRelease;
    componentDidMount: () => void;
    componentWillUnmount: () => void;
    getRootNode: TGetRootNode;
    private setRootNode;
    componentDidUpdate(prevProps: CheckboxProps): void;
    render(): React.JSX.Element;
    /**
     * Программная установка фокуса чекбоксу.
     * @public
     */
    focus(): void;
    /**
     * Программное снятие фокуса с чекбокса.
     * @public
     */
    blur(): void;
    /**
     * Устанавливает чекбокс в HTML-состояние `indeterminate`.
     * @public
     */
    setIndeterminate: () => void;
    /**
     * Снимает с чекбокса HTML-состояние `indeterminate`.
     * @public
     */
    resetIndeterminate: () => void;
    private renderMain;
    private handleFocus;
    private resetFocus;
    private handleBlur;
    private handleChange;
    private handleLabelClick;
    private handleInputClick;
}
