/// import React from 'react'; type ReactProps = Object; type DroppableType = string | symbol | Array | ((props: ReactProps) => string | symbol | Array); type DroppableSpec = { drop?: ( props: ReactProps, monitor: DroppableMonitor, component: React.ReactNode ) => null | Object; hover?: ( props: ReactProps, monitor: DroppableMonitor, component?: React.ReactNode ) => void; canDrop?: ( props: ReactProps, monitor: DroppableMonitor ) => boolean; }; type DroppableOptions = { arePropsEqual?: (Object, Object) => boolean }; type DroppableConnector = { dropTarget: () => (elementOrNode: HTMLElement | React.ReactNode) => React.ReactNode, } type Offset = { x: number, y: number }; type DroppableMonitor = { canDrag: () => boolean; isOver: (options?: { shallow?: boolean }) => boolean; getItemType: () => null | DroppableType; getItem: () => null | Object; getDropResult: () => null | Object; didDrop: () => boolean; getInitialClientOffset: () => null | Offset; getInitialSourceClientOffset: () => null | Offset; getClientOffset: () => null | Offset; getDifferenceFromInitialOffset: () => null | Offset; getSourceClientOffset: () => null | Offset; } export interface DroppableProps { acceptTypes: DroppableType; spec?: DroppableSpec; collect?: (connect: DroppableConnector, monitor: DroppableMonitor) => Object; options?: DroppableOptions; render?: ({ item: Object, canDrop: boolean, isOver: boolean, isDragIn: boolean, isDragOut: boolean, otherDragProps }) => React.ReactNode; } export default class Droppable extends React.Component{ render(): JSX.Element; }