import * as React from 'react';
import type { HTMLAttributesWithRootRef } from '../../types';
import { type CalendarDaysProps, type CalendarDaysTestsProps } from '../CalendarDays/CalendarDays';
import { type CalendarHeaderProps, type CalendarHeaderTestsProps } from '../CalendarHeader/CalendarHeader';
import { type CalendarDoneButtonProps, type CalendarTimeProps, type CalendarTimeTestsProps } from '../CalendarTime/CalendarTime';
export type CalendarTestsProps = CalendarDaysTestsProps & CalendarHeaderTestsProps & CalendarTimeTestsProps;
export interface CalendarProps extends Omit, 'onChange' | 'defaultValue'>, Pick, Pick, Pick, CalendarDoneButtonProps, CalendarTestsProps {
/**
* Текущая выбранная дата.
*/
value?: Date | null;
/**
* Начальная дата при монтировании.
*/
defaultValue?: Date | null;
/**
* Запрещает выбор даты в прошлом.
* Применяется, если не заданы `shouldDisableDate` и `disableFuture`.
*/
disablePast?: boolean;
/**
* Запрещает выбор даты в будущем.
* Применяется, если не задано `shouldDisableDate`.
*/
disableFuture?: boolean;
/**
* Включает выбор времени.
*/
enableTime?: boolean;
/**
* Отключает селекторы выбора месяца/года.
*/
disablePickers?: boolean;
/**
* `aria-label` для изменения дня.
*
* @deprecated Будет удалeно в **VKUI v8**.
* Использовалось для задания aria-label для контейнера дней в календаре.
* Теперь этот контейнер является таблицей (с помощью role="grid") и
* в aria-label рендерится текущий открытый в календаре месяц и год.
*/
changeDayLabel?: string;
/**
* День недели, с которого начинается неделя.
*/
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
/**
* Показывать дни соседних месяцев.
*/
showNeighboringMonth?: boolean;
/**
* Размер календаря.
*/
size?: 's' | 'm';
/**
* Обработчик изменения выбранной даты.
*/
onChange?: (value?: Date) => void;
/**
* Функция для проверки запрета выбора даты.
*/
shouldDisableDate?: (value: Date) => boolean;
/**
* Дата отображаемого месяца.
* При использовании обновление даты должно происходить вне компонента.
*/
viewDate?: Date;
/**
* Обработчик изменения даты в шапке календаря.
*/
onHeaderChange?: (value: Date) => void;
/**
* Минимальные дата и время, которые можно выбрать.
* Применяется, если не заданы `shouldDisableDate` и `disablePast`/`disableFuture`.
*/
minDateTime?: Date;
/**
* Максимальные дата и время, которые можно выбрать.
* Применяется, если не заданы `shouldDisableDate` и `disablePast`/`disableFuture`.
*/
maxDateTime?: Date;
/**
* Часовой пояс для отображения даты.
*/
timezone?: string;
}
/**
* @see https://vkui.io/components/calendar
*/
export declare const Calendar: ({ getRootRef, "value": valueProp, defaultValue, onChange, disablePast, disableFuture, shouldDisableDate, onDoneButtonClick, enableTime, doneButtonText, doneButtonDisabled, doneButtonShow, DoneButton, weekStartsOn, disablePickers, "aria-label": ariaLabel, changeHoursLabel, changeMinutesLabel, prevMonthLabel, nextMonthLabel, changeMonthLabel, changeYearLabel, showNeighboringMonth, size, "viewDate": externalViewDate, onHeaderChange, onNextMonth, onPrevMonth, prevMonthIcon, nextMonthIcon, prevMonthProps, nextMonthProps, dayProps, listenDayChangesForUpdate, renderDayContent, minDateTime, maxDateTime, timezone, minutesTestId, hoursTestId, doneButtonTestId, prevMonthButtonTestId, nextMonthButtonTestId, monthDropdownTestId, yearDropdownTestId, dayTestId, ...props }: CalendarProps) => React.ReactNode;
//# sourceMappingURL=Calendar.d.ts.map