import { AfterViewInit, OnDestroy, ElementRef, NgZone, EventEmitter, Renderer2, OnChanges } from '@angular/core';
export interface DraggedEvent {
    x: number;
    y: number;
}
export interface DragOffset {
    x?: number;
    y?: number;
}
export declare class DraggableDirective implements AfterViewInit, OnChanges, OnDestroy {
    private host;
    private zone;
    private renderer;
    dragHandle?: string | Element;
    dragTarget: string | Element;
    dragEnabled: boolean;
    dialogDragOffset: DragOffset;
    dragged: EventEmitter<DraggedEvent>;
    /** Element to be dragged */
    private target;
    /** Drag handle */
    private handle;
    private delta;
    private offset;
    private enabled;
    private destroy$;
    constructor(host: ElementRef, zone: NgZone, renderer: Renderer2);
    ngAfterViewInit(): void;
    ngOnChanges(): void;
    ngOnDestroy(): void;
    reset(offset?: DragOffset): void;
    private setupEvents;
    private translate;
    /**
     * Init the directive
     */
    private init;
}
