import { KeyValue } from "@angular/common"; export type DragHandlerEvents = "dragstart" | "dragenter" | "dragleave" | "drop"; export type DragEventListener = (ev: DragEvent) => boolean | void; export declare class DragDropHandler { protected el: HTMLElement; protected static handlers: Map; protected readonly onDragStart: DragEventListener; protected readonly onDragEnter: DragEventListener; protected readonly onDragOver: DragEventListener; protected readonly onDragLeave: DragEventListener; protected readonly onDrop: DragEventListener; protected first: boolean; protected second: boolean; protected dropEffect: "none" | "copy" | "link" | "move"; protected effectAllowed: "none" | "copy" | "copyLink" | "copyMove" | "link" | "linkMove" | "move" | "all" | "uninitialized"; protected listeners: Array>; static get(el: HTMLElement): DragDropHandler; protected static add(el: HTMLElement, inst: DragDropHandler): void; protected constructor(el: HTMLElement); addListener(key: DragHandlerEvents, value: DragEventListener): void; removeListener(type: DragHandlerEvents, listener: DragEventListener): void; protected fireEvent(type: DragHandlerEvents, ev: DragEvent): void; protected destroy(): void; }