import { Event } from '../events';
import { CompositeDisposable } from '../lifecycle';
export interface DroptargetEvent {
    position: Position;
    event: DragEvent;
}
export declare enum Position {
    Top = "Top",
    Left = "Left",
    Bottom = "Bottom",
    Right = "Right",
    Center = "Center"
}
export interface DroptargetEvent {
    position: Position;
    event: DragEvent;
}
export declare type DropTargetDirections = 'vertical' | 'horizontal' | 'all' | 'none';
export declare type CanDisplayOverlay = boolean | ((dragEvent: DragEvent) => boolean);
export declare class Droptarget extends CompositeDisposable {
    private readonly element;
    private readonly options;
    private target;
    private overlay;
    private _state;
    private readonly _onDrop;
    readonly onDrop: Event<DroptargetEvent>;
    get state(): Position | undefined;
    set validOverlays(value: DropTargetDirections);
    set canDisplayOverlay(value: CanDisplayOverlay);
    constructor(element: HTMLElement, options: {
        canDisplayOverlay: CanDisplayOverlay;
        validOverlays: DropTargetDirections;
    });
    dispose(): void;
    private removeDropTarget;
}
