import * as React from 'react'; import { SchedulerEventId, TemporalSupportedObject } from "../../models/index.mjs"; import { useDragPreview } from "./useDragPreview.mjs"; import { useEvent } from "./useEvent.mjs"; export declare function useDraggableEvent(parameters: useDraggableEvent.Parameters): useDraggableEvent.ReturnValue; export declare namespace useDraggableEvent { interface State { /** * Whether the event is being dragged. */ dragging: boolean; /** * Whether the event is being resized. */ resizing: boolean; } interface PublicParameters extends useEvent.Parameters, Pick { /** * Whether the event can be dragged to change its start and end dates or times without changing the duration. * @default false */ isDraggable?: boolean; /** * The unique identifier of the event. */ eventId: SchedulerEventId; /** * The unique identifier of the event occurrence. */ occurrenceKey: string; } interface Parameters extends PublicParameters { /** * Gets the drag data. * @param {{ clientX: number, clientY: number }} input The input object provided by the drag and drop library for the current event. * @returns {any} The shared drag data. */ getDragData: (input: { clientX: number; clientY: number; }) => any; /** * The ref to the event's root element. */ ref: React.RefObject; /** * The start date of the collection the event belongs to. */ collectionStart: TemporalSupportedObject; /** * The end date of the collection the event belongs to. */ collectionEnd: TemporalSupportedObject; } interface ReturnValue { /** * The state to pass to the useRenderElement hook. */ state: State; /** * The context to access in useEventResizeHandler. */ contextValue: ContextValue; /** * The drag preview to render when the dragged event is not over a valid drop target. */ preview: useDragPreview.ReturnValue; } interface ContextValue { /** * Whether the event starts before the collection starts. */ doesEventStartBeforeCollectionStart: boolean; /** * Whether the event ends after the collection ends. */ doesEventEndAfterCollectionEnd: boolean; } }