import { DragEvent } from "react"; export interface UseMovableProps { /** * initial left component property */ left: number; /** * initial top component property */ top: number; /** * React.Dispatch function for set left state */ setLeft: React.Dispatch>; /** * React.Dispatch function for set top state */ setTop: React.Dispatch>; /** * toggle of movable component state */ isMovable: boolean; } export interface CreateDragMoveArgs { isMouseEvents?: boolean; isMovable?: boolean; isAxisX?: boolean; isAxisY?: boolean; } /** * @description hook makes an component moveable and/or draggable */ export declare const useMovable: (props: UseMovableProps) => readonly [({ isMouseEvents, isMovable, isAxisX, isAxisY }: CreateDragMoveArgs) => { onMouseDown: (event: React.MouseEvent | DragEvent) => void; onMouseMove: (event: React.MouseEvent | MouseEvent) => void; onMouseUp: () => void; draggable?: undefined; onDrag?: undefined; onDragStart?: undefined; onDragEnd?: undefined; } | { draggable: boolean; onDrag: (event: React.MouseEvent | MouseEvent) => void; onDragStart: (event: DragEvent) => void; onDragEnd: () => void; onMouseDown?: undefined; onMouseMove?: undefined; onMouseUp?: undefined; }, boolean, boolean, boolean]; export default useMovable;