import { type ElementType, type ReactNode } from 'react';
import type { CalendarGridItem } from '../../../../types/CalendarGridBuilder';
import type { CalendarGridItemDay } from '../../../../utils/date';
import { type UseDragAndDropHandlersParams } from './hooks';
type Item = CalendarGridItem<CalendarGridItemDay>;
export type UseLogicParams = {
    onClick?: (date: Date) => void;
    renderDayContent?: (item: Item) => ReactNode;
    onDayHover?: (date?: Date) => void;
    monthDay: number;
    date: Date;
} & UseDragAndDropHandlersParams;
export declare const useLogic: ({ onClick, renderDayContent, onDayHover, monthDay, date, isInSelectedRange, isSelected, isDisabled, dragAndDropProps, }: UseLogicParams) => {
    handleDragStart: import("react").DragEventHandler<HTMLButtonElement> | undefined;
    handleDragEnd: import("react").DragEventHandler<HTMLButtonElement> | undefined;
    handleDragEnter: import("react").DragEventHandler<HTMLButtonElement> | undefined;
    handleDragOver: import("react").DragEventHandler<HTMLButtonElement> | undefined;
    handleDrop: import("react").DragEventHandler<HTMLButtonElement> | undefined;
    isDraggable: true | undefined;
    handleMouseEnter: (() => void) | undefined;
    handleRenderDayContent: (item: Item) => ReactNode;
    handleOnClick: (() => void) | undefined;
    component: ElementType | undefined;
    isNotInteractable: boolean;
};
export {};
