export type DraggableElementFlags = number;
export namespace DraggableElementFlags {
    let BeingDragged: number;
}
export class Draggable {
    /**
     *
     * @param {View} view
     * @param {DropTarget} parent
     * @constructor
     */
    constructor(view: View, parent: DropTarget);
    id: number;
    view: View;
    parent: DropTarget;
    on: {
        dragInitialized: Signal<any, any, any, any, any, any, any, any>;
        dragFinalized: Signal<any, any, any, any, any, any, any, any>;
    };
    /**
     * Bit Field of {@link DraggableElementFlags}
     * @type {number}
     */
    flags: number;
    __eventHandlers: {
        drop: (event: any) => void;
        dragOver: (event: any) => void;
        dragStart: (event: any) => void;
        dragExit(event: any): void;
        dragEnd: (event: any) => void;
        dragEnter: (event: any) => void;
        dragLeave: (event: any) => void;
        stopPropagation: (event: any) => void;
    };
    /**
     *
     * @param {number|DraggableElementFlags} flag
     */
    setFlag(flag: number | DraggableElementFlags): void;
    /**
     *
     * @param {number|DraggableElementFlags} flag
     */
    clearFlag(flag: number | DraggableElementFlags): void;
    /**
     *
     * @param {number|DraggableElementFlags} flag
     */
    getFlag(flag: number | DraggableElementFlags): boolean;
    link(): void;
    unlink(): void;
}
import Signal from "../../../core/events/signal/Signal.js";
//# sourceMappingURL=Draggable.d.ts.map