import type { ElementTarget } from "../use-target-element/index.cjs"; export interface UseDropZoneOptions { /** * The file types that are accepted by the drop zone. */ dataTypes?: string[] | ((types: readonly string[]) => boolean); /** * A callback that is called when the user drops files in the drop zone. */ onDrop?: (files: File[] | null, event: DragEvent) => void; /** * A callback that is called when the user drags files over the drop zone. */ onEnter?: (files: File[] | null, event: DragEvent) => void; /** * A callback that is called when the user drags files out of the drop zone. */ onLeave?: (files: File[] | null, event: DragEvent) => void; /** * A callback that is called when the user drags files over the drop zone. */ onOver?: (files: File[] | null, event: DragEvent) => void; } export interface UseDropZoneReturns { /** * The files that were dropped in the drop zone. */ files: File[] | null; /** * Whether the user is currently dragging files over the drop zone. */ isOverDropZone: boolean; } /** * A React Hook that allows you to create a dropzone. */ export declare function useDropZone(target: ElementTarget, options?: UseDropZoneOptions | UseDropZoneOptions['onDrop']): UseDropZoneReturns;