import { type DraggablePayload } from './useDraggable';
export interface UseDropZoneOptions {
    /** Which payload kinds this zone accepts. */
    accepts: DraggablePayload['kind'][];
    /** Called when a valid payload is dropped. */
    onDrop: (payload: DraggablePayload, position: {
        x: number;
        y: number;
    }) => void;
    /** When true the zone rejects all drops. */
    disabled?: boolean;
}
export interface UseDropZoneResult {
    /** Spread these onto the drop-target element. */
    dropProps: {
        onDragOver: (e: React.DragEvent) => void;
        onDragLeave: (e: React.DragEvent) => void;
        onDrop: (e: React.DragEvent) => void;
    };
    /** True while a valid drag payload is hovering over this zone. */
    isOver: boolean;
}
export declare function useDropZone({ accepts, onDrop, disabled }: UseDropZoneOptions): UseDropZoneResult;
