import { GetStylesApi } from '@mantine/core'; import { ScheduleLabelsOverride } from '../../labels'; import { DateStringValue, DateTimeStringValue, DayOfWeek, ScheduleMode } from '../../types'; import { BusinessHoursValue, DayTimeInterval } from '../../utils'; import type { WeekViewControlsRef } from './handle-week-view-key-down'; import type { WeekViewFactory } from './WeekView'; export interface WeekViewDayProps { /** Date to display */ day: Date | DateStringValue; /** Index of this day in the week */ dayIndex: number; /** Slots intervals */ slots: DayTimeInterval[]; /** Number of minutes for each interval, used to calculate slot height */ intervalMinutes: number; /** `useStyles` return value of `WeekView` */ getStyles: GetStylesApi; /** Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday. The default value is defined by `DatesProvider`. */ weekendDays?: DayOfWeek[]; /** Events list */ children?: React.ReactNode; /** Labels override */ labels?: ScheduleLabelsOverride; /** If set to true, highlights business hours with white background */ highlightBusinessHours?: boolean; /** Business hours range in `HH:mm:ss` format, or per-day record keyed by day of the week */ businessHours?: BusinessHoursValue; /** If true, slots are drop targets for drag and drop */ withEventsDragAndDrop?: boolean; /** Called when dragging over day slots container */ onDaySlotsDragOver?: (e: React.DragEvent, day: string, dayIndex: number) => void; /** Called when dragging leaves day slots container */ onDaySlotsDragLeave?: () => void; /** Called when dropping on day slots container */ onDaySlotsDrop?: (e: React.DragEvent, day: string, dayIndex: number) => void; /** Called when slot is clicked */ onSlotClick?: (day: string, slotTime: string, event: React.MouseEvent) => void; /** Index of the slot that is currently a drop target */ dropTargetSlotIndex?: number; /** Interaction mode: 'default' allows all interactions, 'static' disables event interactions */ mode?: ScheduleMode; /** Ref for keyboard navigation */ slotsRef?: WeekViewControlsRef; /** Index of the first focusable slot */ firstSlotIndex?: { dayIndex: number; slotIndex: number; }; /** Keyboard event handler for slots */ onSlotKeyDown?: (event: React.KeyboardEvent, dayIndex: number, slotIndex: number) => void; /** Called when Arrow Up is pressed on the first slot, used to navigate to all-day slot */ onFirstSlotArrowUp?: (dayIndex: number) => void; /** If set, enables drag-to-select time slot ranges */ withDragSlotSelect?: boolean; /** Called when pointer down on a slot for drag selection */ onSlotPointerDown?: (event: React.PointerEvent, index: number, group: string) => void; /** Function to check if a slot is drag-selected */ isSlotDragSelected?: (index: number, group: string) => boolean; /** Ref callback for the day slots container */ daySlotsContainerRef?: (node: HTMLDivElement | null) => void; /** Function to get additional props for each time slot */ getTimeSlotProps?: (data: { start: DateTimeStringValue; end: DateTimeStringValue; }) => Record | undefined; } export declare function WeekViewDay({ day, dayIndex, slots, intervalMinutes, getStyles, weekendDays, children, labels, highlightBusinessHours, businessHours, withEventsDragAndDrop, onDaySlotsDragOver, onDaySlotsDragLeave, onDaySlotsDrop, onSlotClick, dropTargetSlotIndex, mode, slotsRef, firstSlotIndex, onSlotKeyDown, onFirstSlotArrowUp, withDragSlotSelect, onSlotPointerDown, isSlotDragSelected, daySlotsContainerRef, getTimeSlotProps, }: WeekViewDayProps): import("react/jsx-runtime").JSX.Element;