import { DragEventHandler } from 'react';

type DropZoneState = false | 'visible' | 'droppable';
/**
 * Shared drag-and-drop state management hook for file drop zones.
 * Manages global document event listeners and drop zone state.
 *
 * @param onFilesAdded - Callback invoked when files are dropped
 * @returns Object containing dropZoneState, dropZoneRef, and event handlers
 */
declare function useFileDropZone(onFilesAdded: (files: readonly File[]) => void): Readonly<{
    dropZoneState: DropZoneState;
    dropZoneRef: React.RefObject<HTMLDivElement>;
    handleDragOver: DragEventHandler<unknown>;
    handleDrop: DragEventHandler<HTMLDivElement>;
}>;

export { useFileDropZone as u };
export type { DropZoneState as D };
