import { HtmlElementSensor } from "./HtmlElementSensor.js";
import { KeyboardModifiers } from "./KeyboardSensor.js";
import { WindowSensor } from "./WindowSensor.js";
export type DragEffectAllowed = "none" | "copy" | "copyLink" | "copyMove" | "link" | "linkMove" | "move" | "all" | "uninitialized";
export type DropEffect = "none" | "copy" | "link" | "move";
export declare class HtmlDragSensor extends HtmlElementSensor {
    draggable: unknown;
    dragSource: unknown;
    dragTarget: unknown;
    dragTargetWindow: unknown;
    previousDragTarget: unknown;
    dragStarted: boolean;
    dragFinished: boolean;
    startX: number;
    startY: number;
    private dataByFormat;
    private draggingImage;
    private draggingImageX;
    private draggingImageY;
    dropEffect: DropEffect;
    dataTypesAllowed: string[];
    effectAllowed: DragEffectAllowed;
    dropAllowed: boolean;
    draggingOver: boolean;
    draggingDataTypes: string[];
    positionX: number;
    positionY: number;
    modifiers: KeyboardModifiers;
    dropX: number;
    dropY: number;
    dropped: boolean;
    immediatePositionX: number;
    immediatePositionY: number;
    immediateModifiers: KeyboardModifiers;
    constructor(element: HTMLElement | SVGElement, windowSensor: WindowSensor);
    getData(format: string): unknown;
    setData(format: string, value: unknown): void;
    clearData(format?: string): void;
    setDragImage(value: HTMLElement, x: number, y: number): void;
    listen(enabled?: boolean): void;
    protected onDragStart(e: DragEvent): void;
    protected onDrag(e: DragEvent): void;
    protected onDragEnter(e: DragEvent): void;
    protected onDragLeave(e: DragEvent): void;
    protected onDragOver(e: DragEvent): void;
    protected onDrop(e: DragEvent): void;
    protected onDragEnd(e: DragEvent): void;
    protected startDragging(e: DragEvent): void;
    protected dragging(e: DragEvent): void;
    protected finishDragging(e: DragEvent): void;
    protected enterTarget(e: DragEvent): void;
    protected leaveTarget(e: DragEvent): void;
    protected dragOver(e: DragEvent): void;
    protected drop(e: DragEvent): void;
    protected updateEventOnDragStart(e: DragEvent): void;
    protected updateEventOnDropAllowed(e: DragEvent): void;
    protected reset(): void;
    protected updateDragTarget(e: DragEvent): void;
    protected whenDragging(): void;
}
