export declare class ShockDragDrop { #private; constructor(params: Params); readonly dragzone: { draggable: () => string; dragstart: (grabbed: Grabbed) => (_: DragEvent) => void; dragend: () => (_: DragEvent) => void; }; readonly dropzone: { dragenter: () => (_: DragEvent) => void; dragleave: () => (event: DragEvent) => void; dragover: (hovering: Hovering) => (event: DragEvent) => void; drop: (hovering: Hovering) => (event: DragEvent) => void; }; get grabbed(): Grabbed | undefined; get hovering(): Hovering | undefined; } type Params = { handle_drop: (event: DragEvent, grabbed: Grabbed, hovering: Hovering) => void; out_of_band?: { predicate: (event: DragEvent, hovering: Hovering) => boolean; handle_drop: (event: DragEvent, hovering: Hovering) => void; }; }; export {};