import * as React from 'react'; export type UseDropZoneAccept = string[]; interface UseDropZoneBaseParams { accept: UseDropZoneAccept; disabled?: boolean; onDrop: (items: DataTransferItemList) => void; } export interface UseDropZoneParamsWithRef extends UseDropZoneBaseParams { ref: React.RefObject; } export interface UseDropZoneParamsWithoutRef extends UseDropZoneBaseParams { ref?: undefined; } export type UseDropZoneParams = UseDropZoneParamsWithRef | UseDropZoneParamsWithoutRef; declare const DROP_ZONE_BASE_ATTRIBUTES: { 'aria-dropeffect': DataTransfer["dropEffect"]; tabIndex: number; role: string; }; export interface UseDropZoneDroppableProps extends Required { onDragEnter: (e: React.DragEvent) => void; onDragOver: (e: React.DragEvent) => void; onDragLeave: (e: React.DragEvent) => void; onDrop: (e: React.DragEvent) => void; } export interface UseDropZoneStateWithRef { isDraggingOver: boolean; } export interface UseDropZoneStateWithoutRef { isDraggingOver: boolean; getDroppableProps: () => UseDropZoneDroppableProps; } export type UseDropZoneState = UseDropZoneStateWithRef | UseDropZoneStateWithoutRef; export declare function useDropZone(params: UseDropZoneParamsWithRef): UseDropZoneStateWithRef; export declare function useDropZone(params: UseDropZoneParamsWithoutRef): UseDropZoneStateWithoutRef; export {};