/// export declare type ShapeId = string; export interface Point { readonly x: number; readonly y: number; } export interface Rectangle { readonly x: number; readonly y: number; readonly width: number; readonly height: number; } export interface ConstrainMoveFunc { (args: Readonly<{ x: number; y: number; width: number; height: number; originalX: number; originalY: number; vectorWidth: number; vectorHeight: number; }>): Point; } export interface ConstrainResizeFunc { (args: Readonly<{ originalMovingCorner: Point; startCorner: Point; movingCorner: Point; lockedDimension: 'x' | 'y' | null; vectorWidth: number; vectorHeight: number; }>): Point; } export declare type ShapeEditorProps = { children: any; focusOnAdd?: boolean; focusOnDelete?: boolean; padding?: number | { top?: number; right?: number; bottom?: number; left?: number; }; scale?: number; style?: React.CSSProperties; vectorHeight: number; vectorWidth: number; }; export declare type DrawLayerProps = { constrainMove?: ConstrainMoveFunc; constrainResize?: ConstrainResizeFunc; DrawPreviewComponent?: any; onAddShape: (newRect: Rectangle) => void; onDraw?: (args: Readonly<{ startCorner: Point; movingCorner: Point; }>) => void; onDrawEnd?: (args: Readonly<{ startCorner: Point; movingCorner: Point; canceled: boolean; }>) => void; onDrawStart?: (args: Readonly<{ startCorner: Point; }>) => void; }; declare type ResizeComponentHandleProps = { active: boolean; nativeActive: boolean; cursor: ResizeCursor; isBeingChanged: boolean; isInSelectionGroup: boolean; name: HandleName; onMouseDown: (event: React.MouseEvent) => void; recommendedSize: number; scale: number; x: number; y: number; }; export declare type ResizeHandleComponentType = React.ComponentType; declare type WrappedShapePassthroughProps = { active?: boolean; disabled?: boolean; height: number; width: number; x: number; y: number; isInSelectionGroup?: boolean; shapeId: ShapeId; extraShapeProps?: { readonly [key: string]: any; }; }; export declare type WrappedShapeProps = { constrainMove?: ConstrainMoveFunc; constrainResize?: ConstrainResizeFunc; isInternalComponent?: boolean; keyboardTransformMultiplier?: number; onBlur?: (event: React.FocusEvent, props: WrappedShapePropsInActions) => void; onChange?: (nextRect: Rectangle, props: WrappedShapePropsInActions) => void; onDelete?: (event: React.KeyboardEvent, props: WrappedShapePropsInActions) => void; onFocus?: (event: React.FocusEvent, props: WrappedShapePropsInActions) => void; onKeyDown?: (event: React.KeyboardEvent, props: WrappedShapePropsInActions) => void; onIntermediateChange?: (intermediateRect: Rectangle) => void; ResizeHandleComponent?: ResizeHandleComponentType; wrapperProps?: React.SVGProps; } & WrappedShapePassthroughProps; export declare type WrappedShapePropsInActions = Required; export declare type WrappedShapeReceivedProps = Required & { isBeingChanged: boolean; nativeActive: boolean; scale: number; }; export declare type GetSelectionChildUpdatedRect = (selectionStartRect: Rectangle, selectionEndRect: Rectangle) => Rectangle; export interface ShapeActions { props: WrappedShapePropsInActions; forceFocus: () => void; getSelectionChildUpdatedRect: GetSelectionChildUpdatedRect; simulateTransform: (nextRect: Rectangle | null) => void; } export declare type CornerHandleName = 'nw' | 'ne' | 'sw' | 'se'; export declare type HandleName = 'w' | 'n' | 's' | 'e' | CornerHandleName; export declare type ResizeCursor = 'ns-resize' | 'ew-resize' | 'nesw-resize' | 'nwse-resize'; export declare type CoordinateGetterType = React.MutableRefObject<(event: React.MouseEvent | MouseEvent, offsets?: { x?: number; y?: number; }) => Point>; export declare type ShapeActionRefsArrayRef = React.MutableRefObject[]>; export declare type ShapeActionRefsDictRef = React.MutableRefObject<{ [shapeId: string]: React.MutableRefObject; }>; export {};