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