import React, { CSSProperties, DetailedHTMLProps } from 'react'; import { OnDragHandler, OnDragEndHandler, OnResizeHandler, OnRotateHandler, OnDragStartHandler, OnResizeStartHandler, OnResizeEndHandler, OnRotateStartHandler, OnRotateEndHandler } from '../types'; export interface ResizableBoxProps extends Omit, HTMLDivElement>, 'onDrag' | 'onDragEnd' | 'onResize' | 'onResizeEnd' | 'onRotate' | 'onRotateEnd'> { /** * The width of the box. */ width: number; /** * The height of the box. */ height: number; /** * The left position of the box. */ left: number; /** * The top position of the box. */ top: number; /** * The rotation of the box in degrees. */ rotationDeg?: number; /** * The scale to use for dragging and resizing the box. Defaults to 1. */ scale?: number; /** * The color of the box. */ color?: CSSProperties['color']; /** * Whether the box is draggable. */ draggable?: boolean; /** * Whether to show the drag handler. */ dragHandler?: boolean; /** * Custom styles for the drag handler. */ dragHandlerStyles?: CSSProperties; /** * The absolute position of the drag handler in degrees. * If relativeHandlers is true, the position is measured relative to the box vertical axis. */ dragHandlerDeg?: number; /** * Whether the box is resizable. */ resizable?: boolean; /** * Custom styles for the resize handlers. */ resizeHandlerStyles?: CSSProperties; /** * The aspect ratio of the box. */ aspectRatio?: boolean | number; /** * Whether the box is rotatable. */ rotatable?: boolean; /** * Custom styles for the rotate handler. */ rotateHandlerStyles?: CSSProperties; /** * The snap angle in degrees. */ snapAngle?: number | boolean; /** * The absolute position of the rotate handler in degrees. * If relativeHandlers is true, the position is measured relative to the box vertical axis. */ rotateHandlerDeg?: number; /** * The minimum width of the box. */ minWidth?: number; /** * The minimum height of the box. */ minHeight?: number; /** * The offset between the move and rotate handlers to the edges of the box. */ handlersOffset?: number; /** * The minimum distance where all the handlers will start to space out. * * If the width or height of the box is less than this value, the handlers will * keep the distance as if the box where this value. */ handlersSpaceOut?: number; /** * Whether the handlers are relative to the box vertical axis. * Defaults to true. */ relativeHandlers?: boolean; /** * The callback fired when the box starts to be dragged. */ onDragStart?: OnDragStartHandler; /** * The callback fired when the box is being dragged. */ onDrag?: OnDragHandler; /** * The callback fired when the box stops being dragged. */ onDragEnd?: OnDragEndHandler; /** * The callback fired when the box starts to be resized. */ onResizeStart?: OnResizeStartHandler; /** * The callback fired when the box is being resized. */ onResize?: OnResizeHandler; /** * The callback fired when the box stops being resized. */ onResizeEnd?: OnResizeEndHandler; /** * The callback fired when the box starts to be rotated. */ onRotateStart?: OnRotateStartHandler; /** * The callback fired when the box is being rotated. */ onRotate?: OnRotateHandler; /** * The callback fired when the box stops being rotated. */ onRotateEnd?: OnRotateEndHandler; } export declare const ResizableBox: (props: ResizableBoxProps) => React.JSX.Element;