import React, { PureComponent, ReactElement, ReactNode } from 'react'; import { DraggableEventHandler } from 'react-draggable'; import { RndResizeCallback, Props as RndProps } from 'react-rnd'; import { IPos, ISize, IDragItem } from './types'; interface IWithRndProps extends RndProps { init?: (dragItem: IDragItem) => void; dragging?: (dragItem: IDragItem) => void; dragged?: (dragItem?: IDragItem) => void; getCoordinateMap?: (dragItem: IDragItem) => Map; onAdsorb?: boolean; adsorbThreshold?: number; children: ReactElement; } interface IWithRndState extends ISize, IPos { mounted: boolean; dragging: boolean; } declare type TAdsorbResult = { x: number | null; y: number | null; }; export declare class DragItem extends PureComponent { state: { x: number; y: number; width: number; height: number; mounted: boolean; dragging: boolean; }; ref: React.RefObject; id: string; componentDidMount(): void; isAdsorb(dragItem: IDragItem): TAdsorbResult; onDrag: DraggableEventHandler; onDragStop: DraggableEventHandler; onResizeStop: RndResizeCallback; render(): ReactNode; } export {};