import * as React from 'react';
import { type UseFocusTrapProps } from '../../hooks/useFocusTrap';
import type { PlacementWithAuto } from '../../lib/floating';
import type { HasRootRef } from '../../types';
import { type CalendarRangeProps, type CalendarRangeTestsProps } from '../CalendarRange/CalendarRange';
import { type FormFieldProps } from '../FormField/FormField';
type DateTestsProps = {
    /**
     * Передает атрибут `data-testid` для поля ввода дня.
     */
    day?: string;
    /**
     * Передает атрибут `data-testid` для поля ввода месяца.
     */
    month?: string;
    /**
     * Передает атрибут `data-testid` для поля ввода года.
     */
    year?: string;
};
export type DateRangeInputTestsProps = {
    /**
     * Передает атрибуты `data-testid` для полей ввода начальной даты.
     */
    startDateTestsProps?: DateTestsProps;
    /**
     * Передает атрибуты `data-testid` для полей ввода конечной даты.
     */
    endDateTestsProps?: DateTestsProps;
    /**
     * Передает атрибут `data-testid` для кнопки показа календаря.
     */
    showCalendarButtonTestId?: string;
    /**
     * Передает атрибут `data-testid` для кнопки очистки даты.
     */
    clearButtonTestId?: string;
};
export interface DateRangeInputProps extends Omit<React.InputHTMLAttributes<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'>, Pick<CalendarRangeProps, 'disablePast' | 'disableFuture' | 'shouldDisableDate' | 'onChange' | 'value' | 'defaultValue' | 'weekStartsOn' | 'disablePickers' | 'prevMonthLabel' | 'nextMonthLabel' | 'changeMonthLabel' | 'changeYearLabel' | 'changeDayLabel' | 'prevMonthIcon' | 'nextMonthIcon' | 'renderDayContent'>, Pick<UseFocusTrapProps, 'restoreFocus'>, HasRootRef<HTMLDivElement>, Omit<FormFieldProps, 'maxHeight'>, DateRangeInputTestsProps {
    /**
     * Передает атрибуты `data-testid` для интерактивных элементов в календаре.
     */
    calendarTestsProps?: CalendarRangeTestsProps;
    /**
     * Расположение календаря относительно поля ввода.
     */
    calendarPlacement?: PlacementWithAuto;
    /**
     * Автоматически закрывать календарь при изменениях.
     */
    closeOnChange?: boolean;
    /**
     * Обработчик изменения состояния открытия календаря.
     */
    onCalendarOpenChanged?: (opened: boolean) => void;
    /**
     * Label для календаря.
     */
    calendarLabel?: string;
    /**
     * Label для кнопки очистки. Делает доступным для ассистивных технологий.
     */
    clearFieldLabel?: string;
    /**
     * Label для кнопки открытия календаря. Делает доступным для ассистивных технологий.
     */
    showCalendarLabel?: string;
    /**
     * Label для ввода дня начальной даты. Делает доступным для ассистивных технологий.
     */
    changeStartDayLabel?: string;
    /**
     * Label для ввода месяца начальной даты. Делает доступным для ассистивных технологий.
     */
    changeStartMonthLabel?: string;
    /**
     * Label для ввода года начальной даты. Делает доступным для ассистивных технологий.
     */
    changeStartYearLabel?: string;
    /**
     * Label для ввода дня конечной даты. Делает доступным для ассистивных технологий.
     */
    changeEndDayLabel?: string;
    /**
     * Label для ввода месяца конечной даты. Делает доступным для ассистивных технологий.
     */
    changeEndMonthLabel?: string;
    /**
     * Label для ввода года конечной даты. Делает доступным для ассистивных технологий.
     */
    changeEndYearLabel?: string;
    /**
     * Отключение открытия календаря.
     */
    disableCalendar?: boolean;
    /**
     * Позволяет отключить захват фокуса при появлении календаря.
     */
    disableFocusTrap?: UseFocusTrapProps['disabled'];
    /**
     * Включает режим в котором DateRangeInput доступен
     * для ассистивных технологий.
     * В этом режиме:
     * - календарь больше не открывает при фокусе на DateRangeInput;
     * - иконка календаря видна всегда, чтобы пользователи
     * ассистивных технологий могли открыть календарь по клику на иконку;
     * - календарь при открытии получает фокус, клавиатурный
     * фокус зациклен и не выходит за пределы календаря пока календарь не закрыт.
     */
    accessible?: boolean;
}
/**
 * @see https://vkui.io/components/date-range-input
 */
export declare const DateRangeInput: ({ shouldDisableDate, disableFuture, disablePast, "value": valueProp, defaultValue, onChange, "calendarPlacement": calendarPlacementProp, style, className, closeOnChange, disablePickers, getRootRef, name, autoFocus, disabled, disableFocusTrap, restoreFocus, calendarLabel, prevMonthLabel, nextMonthLabel, changeMonthLabel, changeYearLabel, changeStartDayLabel, changeStartMonthLabel, changeStartYearLabel, changeEndDayLabel, changeEndMonthLabel, changeEndYearLabel, clearFieldLabel, showCalendarLabel, "aria-label": ariaLabel, prevMonthIcon, nextMonthIcon, onCalendarOpenChanged, renderDayContent, calendarTestsProps, startDateTestsProps, endDateTestsProps, clearButtonTestId, showCalendarButtonTestId, id, accessible, readOnly, "disableCalendar": disableCalendarProp, before, ...props }: DateRangeInputProps) => React.ReactNode;
export {};
//# sourceMappingURL=DateRangeInput.d.ts.map