import { CSSProperties, HTMLAttributes, ReactNode } from 'react';
import { DragItem, DropPosition, DropResult } from './core/types';
export type DropIndicator = 'highlight' | 'line' | 'none';
export type DropOrientation = 'vertical' | 'horizontal';
export type DndRefCallback = ((node: T | null) => void) | null;
export interface DroppableRenderProps {
dropRef: DndRefCallback;
canDrop: boolean;
isOver: boolean;
isOverCurrent: boolean;
position: DropPosition | undefined;
}
export interface DroppableProps {
containerId: string;
index: number;
id?: string | number;
args?: unknown;
accept?: string | string[];
className?: string;
style?: CSSProperties;
dropIndicator?: DropIndicator;
linePosition?: 'start' | 'end';
orientation?: DropOrientation;
dropPosition?: DropPosition | 'auto';
edgeThreshold?: number;
acceptFiles?: boolean;
greedy?: boolean;
dropEffect?: 'move' | 'copy' | 'link' | 'none';
testId?: string;
canDrop?: boolean | ((item: DragItem) => boolean);
onDrop?: (source: DragItem, target: DropResult) => void;
onDragEnter?: (item: DragItem) => void;
onDragLeave?: (item: DragItem) => void;
onHover?: (item: DragItem, position: DropPosition | undefined) => void;
domProps?: HTMLAttributes & Record<`data-${string}`, string | number | boolean | undefined>;
children: ReactNode | ((props: DroppableRenderProps) => ReactNode);
}
declare function Droppable(props: DroppableProps): import("react").JSX.Element;
export default Droppable;