import type { AriaAttributes, HTMLAttributes } from 'react';
import React from 'react';
import { InternalDateComponentType } from '../../lib/date/types';
import type { CommonProps } from '../../internal/CommonWrapper';
import type { TGetRootNode } from '../../lib/rootNode';
import type { SizeProp } from '../../lib/types/props';
export interface DateInputState {
    selected: InternalDateComponentType | null;
    valueFormatted: string;
    inputMode: boolean;
    focused: boolean;
    dragged: boolean;
}
export declare const DateInputDataTids: {
    readonly root: "DateInput__root";
    readonly icon: "DateInput__icon";
};
export interface DateInputProps extends CommonProps, Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>, Pick<HTMLAttributes<HTMLElement>, 'id'> {
    /** Устанавливает фокус на контроле после окончания загрузки страницы. */
    autoFocus?: boolean;
    /** Устанавливает значение датаинпута. */
    value?: string;
    /** Переводит контрол в состояние валидации "ошибка". */
    error?: boolean;
    /** Переводит контрол в состояние валидации "предупреждение". */
    warning?: boolean;
    /** Делает компонент недоступным. */
    disabled?: boolean;
    /** Задает минимальную возможную дату в формате `dd.mm.yyyy`. */
    minDate?: string;
    /** Задает максимальную возможную дату в формате `dd.mm.yyyy` */
    maxDate?: string;
    /** Задает ширину поля. */
    width?: string | number;
    /** Добавляет иконку календаря. */
    withIcon?: boolean;
    /** Задает размер поля. */
    size?: SizeProp;
    /** Задает функцию, которая вызывается при потере датаинпутом фокуса. */
    onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;
    /** Задает функцию, которая вызывается при клике на датаинпут. */
    onClick?: (x0: React.MouseEvent<HTMLElement>) => void;
    /** Задает функцию, которая вызывается при получении датаинпутом фокуса. */
    onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;
    /** Задает функцию, которая вызывается при изменении value.
     * @param value - строка в формате `dd.mm.yyyy`. */
    onValueChange?: (value: string) => void;
    /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */
    onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;
}
type DefaultProps = Required<Pick<DateInputProps, 'value' | 'minDate' | 'maxDate' | 'width'>>;
/**
 * Компонент поля `DateInput` из DatePicker'а помогает выбирать дату с клавиатуры.
 */
export declare class DateInput extends React.Component<DateInputProps, DateInputState> {
    static __KONTUR_REACT_UI__: string;
    static displayName: string;
    static defaultProps: DefaultProps;
    private size;
    private getProps;
    private iDateMediator;
    private inputLikeText;
    private dateFragmentsView;
    private isMouseDown;
    private isMouseFocus;
    private ignoringDelimiter;
    private locale;
    private blurEvent;
    private theme;
    getRootNode: TGetRootNode;
    private setRootNode;
    private conditionalHandler;
    private featureFlags;
    constructor(props: DateInputProps);
    componentDidUpdate(prevProps: DateInputProps): void;
    selectNode: () => void;
    componentDidMount(): void;
    blur(): void;
    focus(): void;
    blink(): void;
    render(): React.JSX.Element;
    private renderMain;
    private renderIcon;
    private handleFocus;
    private resetFocus;
    private handleBlur;
    private handleMouseDownCapture;
    private handleSelectDateComponent;
    private handleMouseDragStart;
    private handleMouseDragEnd;
    private handleKeyDown;
    private handlePaste;
    private handleDoubleClick;
    private inputLikeTextRef;
    private dateFragmentsViewRef;
    private selectDateComponent;
    private updateValue;
    private updateFromProps;
    private fullSelection;
    private pressDelimiter;
    private emitChange;
    private clearSelected;
    private clearOneChar;
    private shiftDateComponent;
    private shiftSelection;
    private inputValue;
}
export {};
