import { type DragEventHandler } from 'react';
type DragHandler = DragEventHandler<HTMLButtonElement> | undefined;
export type UseDragAndDropHandlersParams = {
    /**
     * Пропс позволяющий организовать логику dragAndDrop для изменяемого интервала
     */
    dragAndDropProps?: {
        /**
         * Метод вызываемый при в самом начале перемещения, передает дату начала перемещения
         */
        onRangeDayDragStart: (draggableDate: Date) => void;
        /**
         * Метод вызываемый в самом конце, после onDayDrop, передает дату, с которой началось перемещение
         */
        onRangeDayDragEnd: (draggableDate: Date) => void;
        /**
         * Метод вызываемый в момент когда пользователь бросил перемещаемый элемент на выбранное место, передает выбранную дату
         */
        onDayDrop: (date: Date) => void;
        /**
         * Метод аналог ховера/mouseenter, вызываемый в момент, когда перемещаемый элемент попал на какую либо дату, передает дату на которую навелись
         */
        onDayDragEnter: (date: Date) => void;
    };
    isSelected: boolean;
    isInSelectedRange: boolean;
    isDisabled: boolean;
    date: Date;
};
export declare const useDragAndDropHandlers: ({ date, isInSelectedRange, isSelected, isDisabled, dragAndDropProps, }: UseDragAndDropHandlersParams) => {
    handleDragStart: DragHandler;
    handleDragEnd: DragHandler;
    handleDragEnter: DragHandler;
    handleDragOver: DragHandler;
    handleDrop: DragHandler;
    isDraggable: true | undefined;
};
export {};
