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<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>, Pick<CalendarDayProps, 'renderDayContent'>, CalendarDaysTestsProps {
    /**
     * Выбранная дата или диапазон дат.
     */
    value?: Date | Array<Date | null> | 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