import * as React from 'react';
import { type UseFocusTrapProps } from '../../hooks/useFocusTrap';
import type { PlacementWithAuto } from '../../lib/floating';
import type { HasRootRef } from '../../types';
import { type CalendarProps, type CalendarTestsProps } from '../Calendar/Calendar';
import { type FormFieldProps } from '../FormField/FormField';
import '../InputLike/InputLike.module.css';
export type DateInputPropsTestsProps = {
    /**
     * Передает атрибут `data-testid` для поля ввода дня.
     */
    dayFieldTestId?: string;
    /**
     * Передает атрибут `data-testid` для поля ввода месяца.
     */
    monthFieldTestId?: string;
    /**
     * Передает атрибут `data-testid` для поля ввода года.
     */
    yearFieldTestId?: string;
    /**
     * Передает атрибут `data-testid` для поля ввода часа.
     */
    hourFieldTestId?: string;
    /**
     * Передает атрибут `data-testid` для поля ввода минут.
     */
    minuteFieldTestId?: string;
    /**
     * Передает атрибут `data-testid` для кнопки показа календаря.
     */
    showCalendarButtonTestId?: string;
    /**
     * Передает атрибут `data-testid` для кнопки очистки даты.
     */
    clearButtonTestId?: string;
};
export interface DateInputProps extends Omit<React.InputHTMLAttributes<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange' | 'size'>, Pick<CalendarProps, 'disablePast' | 'disableFuture' | 'enableTime' | 'shouldDisableDate' | 'onChange' | 'value' | 'defaultValue' | 'doneButtonText' | 'DoneButton' | 'weekStartsOn' | 'disablePickers' | 'changeHoursLabel' | 'changeMinutesLabel' | 'prevMonthLabel' | 'nextMonthLabel' | 'changeMonthLabel' | 'changeYearLabel' | 'showNeighboringMonth' | 'size' | 'viewDate' | 'onHeaderChange' | 'onNextMonth' | 'onPrevMonth' | 'prevMonthIcon' | 'nextMonthIcon' | 'minDateTime' | 'maxDateTime' | 'renderDayContent'>, Pick<UseFocusTrapProps, 'restoreFocus'>, HasRootRef<HTMLDivElement>, Omit<FormFieldProps, 'maxHeight'>, DateInputPropsTestsProps {
    /**
     * Передает атрибуты `data-testid` для интерактивных элементов в календаре.
     */
    calendarTestsProps?: CalendarTestsProps;
    /**
     * Расположение календаря относительно поля ввода.
     */
    calendarPlacement?: PlacementWithAuto;
    /**
     * Автоматически закрывать календарь при изменениях.
     */
    closeOnChange?: boolean;
    /**
     * `aria-label` для календаря.
     */
    calendarLabel?: string;
    /**
     * Label для кнопки очистки. Делает доступным для ассистивных технологий.
     */
    clearFieldLabel?: string;
    /**
     * Label для кнопки открытия календаря. Делает доступным для ассистивных технологий.
     */
    showCalendarLabel?: string;
    /**
     * Отключение открытия календаря.
     */
    disableCalendar?: boolean;
    /**
     * Обработчик изменения состояния открытия календаря.
     */
    onCalendarOpenChanged?: (opened: boolean) => void;
    /**
     * `aria-label` для поля изменения дня.
     */
    changeDayLabel?: string;
    /**
     * Обработчик нажатия на кнопку `"Done"`. Используется совместно с флагом `enableTime`.
     */
    onApply?: (value?: Date) => void;
    /**
     * Функция для кастомного форматирования отображаемого значения даты.
     * Позволяет переопределить стандартное отображение даты и вернуть собственное представление.
     */
    renderCustomValue?: (date: Date | undefined) => React.ReactNode;
    /**
     * Часовой пояс для отображения даты.
     */
    timezone?: string;
    /**
     * Включает режим в котором DateInput доступен
     * для ассистивных технологий.
     * В этом режиме:
     * - календарь больше не открывает при фокусе на DateInput;
     * - иконка календаря видна всегда, чтобы пользователи
     * ассистивных технологий могли открыть календарь по клику на иконку;
     * - календарь при открытии получает фокус, клавиатурный
     * фокус зациклен и не выходит за пределы календаря пока календарь не закрыт.
     */
    accessible?: boolean;
    /**
     * Позволяет отключить захват фокуса при появлении календаря.
     */
    disableFocusTrap?: UseFocusTrapProps['disabled'];
}
/**
 * @see https://vkui.io/components/date-input
 */
export declare const DateInput: ({ enableTime, shouldDisableDate, disableFuture, disablePast, minDateTime, maxDateTime, "value": valueProp, defaultValue, onChange, "calendarPlacement": calendarPlacementProp, style, className, doneButtonText, DoneButton, closeOnChange, disablePickers, getRootRef, name, autoFocus, disabled, accessible, calendarLabel, prevMonthLabel, nextMonthLabel, changeDayLabel, changeMonthLabel, changeYearLabel, changeHoursLabel, changeMinutesLabel, clearFieldLabel, showCalendarLabel, showNeighboringMonth, size, viewDate, onHeaderChange, onNextMonth, onPrevMonth, prevMonthIcon, nextMonthIcon, renderDayContent, onCalendarOpenChanged, calendarTestsProps, dayFieldTestId, monthFieldTestId, yearFieldTestId, hourFieldTestId, minuteFieldTestId, showCalendarButtonTestId, clearButtonTestId, id, onApply, renderCustomValue, timezone, restoreFocus, disableFocusTrap, readOnly, "disableCalendar": disableCalendarProp, "aria-label": ariaLabel, before, ...props }: DateInputProps) => React.ReactNode;
//# sourceMappingURL=DateInput.d.ts.map