import * as React from 'react'; import { BlockNode, BlockNodeType } from '../data'; import { BlockEditorValue } from '../components/editor/BlockEditorProps'; export interface DraggedInfo { startLeft: number; startTop: number; } export declare function parseTypes(types: Array): { draggedNodeId: string; draggedNodeType: BlockNodeType | null; }; export declare function getDragPositionRelativeToTarget(e: React.DragEvent, targetRect: ClientRect | null): { left: number; top: number; width: number; height: number; } | null; export declare function getDragPositionRelativeToTarget2({ clientX, clientY }: { clientX: number; clientY: number; }, targetRect: ClientRect | null): { left: number; top: number; width: number; height: number; } | null; export declare function onDragStart(e: React.DragEvent, draggedNode: BlockNode, getBoundingRect: () => any): void; export interface MoveOpts { beforeItemId?: string; afterItemId?: string; isPlaceHolder?: boolean; absolutePos?: { left: number; top: number; }; } export declare function onDropped(types: Array, targetNodeId: string, opts?: MoveOpts): (value: BlockEditorValue) => BlockEditorValue; export declare function onDropped2(draggedNodeId: string, targetNodeId: string, opts?: MoveOpts): (value: BlockEditorValue) => BlockEditorValue;