import * as i0 from "@angular/core"; export interface DropEvent { data: T; sourceElement: HTMLElement; targetElement: HTMLElement; x: number; y: number; } export declare class DragDropService { private readonly _drop$; private readonly _dragEnter$; private readonly _dragLeave$; readonly drop$: import("rxjs").Observable>; readonly dragEnter$: import("rxjs").Observable; readonly dragLeave$: import("rxjs").Observable; private readonly droppableEls; private activeDroppableEl; private sourceEl; registerDroppable(el: HTMLElement): void; unregisterDroppable(el: HTMLElement): void; startDrag(sourceEl: HTMLElement): void; /** Called on every mousemove — detects enter/leave transitions. */ updateDragPosition(x: number, y: number): void; /** Called on mouseup — emits the drop event and resets state. */ endDrag(x: number, y: number, data: unknown): void; /** * Uses elementsFromPoint to find the topmost registered droppable at (x, y), * skipping the element being dragged itself. */ private findDroppableAt; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }