import * as React from 'react';
import type { HTMLAttributesWithRootRef } from '../../types';
import { type CalendarDayElementProps, type CalendarDayProps, type CalendarDayTestsProps } from '../CalendarDay/CalendarDay';
export type CalendarDaysTestsProps = {
/**
* Передает атрибут `data-testid` для дня в календаре.
*/
dayTestId?: CalendarDayTestsProps['testId'];
};
export interface CalendarDaysProps extends Omit, 'onChange'>, Pick, CalendarDaysTestsProps {
/**
* Выбранная дата или диапазон дат.
*/
value?: Date | Array | null;
/**
* Дата, определяющая отображаемый месяц.
*/
viewDate: Date;
/**
* День недели, с которого начинается неделя (0 - воскресенье, 6 - суббота).
*/
weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6;
/**
* Показывать дни соседних месяцев.
*/
showNeighboringMonth?: boolean;
/**
* Размер календаря.
*/
size?: 's' | 'm';
/**
* Дополнительные свойства для элементов дней.
*/
dayProps?: CalendarDayElementProps;
/**
* Следить за изменениями дней для обновления UI.
*/
listenDayChangesForUpdate?: boolean;
/**
* Обработчик изменения выбранного дня.
*/
onDayChange: (value: Date) => void;
/**
* Проверяет, заблокирован ли день для выбора.
*/
isDayDisabled: (value: Date) => boolean;
/**
* Определяет, является ли день началом выделенного диапазона.
*/
isDaySelectionStart: (value: Date, dayOfWeek: number) => boolean;
/**
* Определяет, является ли день концом выделенного диапазона.
*/
isDaySelectionEnd: (value: Date, dayOfWeek: number) => boolean;
/**
* Определяет начало диапазона при наведении (подсветка).
*/
isHintedDaySelectionStart?: (value: Date, dayOfWeek: number) => boolean;
/**
* Определяет конец диапазона при наведении (подсветка).
*/
isHintedDaySelectionEnd?: (value: Date, dayOfWeek: number) => boolean;
/**
* Проверяет, является ли день активным (текущая дата).
*/
isDayActive: (value: Date) => boolean;
/**
* Проверяет, подсвечен ли день (при наведении).
*/
isDayHinted?: (value: Date) => boolean;
/**
* Проверяет, возможно ли сфокусироваться на дне с клавиатуры.
*/
isDayFocusable?: (value: Date) => boolean;
/**
* Проверяет, выбран ли день.
*/
isDaySelected?: (value: Date) => boolean;
/**
* Проверяет, находится ли день в фокусе.
*/
isDayFocused: (value: Date) => boolean;
/**
* Обработчик события 'pointerenter' на элементе дня.
*/
onDayEnter?: (value: Date) => void;
/**
* Обработчик события 'pointerleave' на элементе дня.
*/
onDayLeave?: (value: Date) => void;
/**
* Обработчик события `focus` на элементе дня.
*/
onDayFocus?: (value: Date) => void;
}
export declare const CalendarDays: ({ viewDate, value, weekStartsOn, onDayChange, isDaySelected, isDayActive, isDaySelectionEnd, isDaySelectionStart, onDayEnter, onDayLeave, onDayFocus, isDayHinted, isHintedDaySelectionStart, isHintedDaySelectionEnd, isDayFocused, isDayFocusable, isDayDisabled, size, showNeighboringMonth, dayProps, listenDayChangesForUpdate, getRootRef, renderDayContent, dayTestId, ...props }: CalendarDaysProps) => React.ReactNode;
//# sourceMappingURL=CalendarDays.d.ts.map