import { ComponentPropsWithRef, MouseEventHandler as ReactMouseEventHandler } from 'react'; import type { CalendarViewType } from './types/shared-types.js'; /** @internal */ export interface CalendarButtonProps extends ComponentPropsWithRef<'div'> { /** Controls the disabled state. */ disabled?: boolean; /** Whether the calendar button is focused. */ focused?: boolean; } type CalendarDayButtonProps = { isCurrentMonthDay?: boolean; isOnlySelected?: boolean; }; /** @internal */ export interface ViewItem { /** The localized aria label of the view item. */ ariaLabel: string; /** The tabindex attribute of the view item. */ tabIndex: 0 | -1; /** Whether this is the current view item (i.e. today, current month, current year). */ isCurrent: boolean; /** Whether the item is disabled. */ isDisabled?: boolean; /** Color used for the highlighting. */ highlightColor?: 'neutral' | 'primary' | 'critical'; /** Whether the view item is actually selected. */ isSelected?: boolean; /** Whether a complete date or timeframe was selected. */ isIncompleteSelection?: boolean; /** Event listener for clicks on the view item. */ onClick: () => void; /** Event listener for complex hover styles on range selection. */ rangeInteractionProps?: { onMouseEnter?: ReactMouseEventHandler; onMouseLeave?: ReactMouseEventHandler; }; /** How the item should be highlighted. */ highlightType?: 'first' | 'last' | 'inbetween' | 'same'; /** What kind of selection outline should be used. */ selectionVariant?: 'absolute' | 'relative' | 'absolute-relative' | 'relative-absolute'; } /** @internal */ export type CalendarItemProps = ViewItem & CalendarButtonProps & { isInRange?: boolean; view: CalendarViewType; } & CalendarDayButtonProps; export declare const CalendarItem: (props: ViewItem & CalendarButtonProps & { isInRange?: boolean; view: CalendarViewType; } & CalendarDayButtonProps & import("react").RefAttributes) => React.ReactElement | null; export {};