import { AfterViewInit, ElementRef, EventEmitter, OnChanges, OnDestroy } from '@angular/core'; import { Observable } from 'rxjs'; import { ɵBaseDragStrategyImpl } from '../classes'; import { DraggerConfig, DragInfo } from '../interfaces'; import * as i0 from "@angular/core"; /** Makes HTML element draggable by mouse */ export declare class DraggableDirective implements OnChanges, AfterViewInit, OnDestroy { private readonly document; private readonly hostRef; /** Configuration of dragging */ parameters: DraggerConfig | undefined | ''; /** Fires when the draggable element init */ osDraggableElementInit: EventEmitter; /** Fires when the movable element init */ osMovableElementInit: EventEmitter; /** Fires when calls mousedown handler over draggableElement */ osDragStart: EventEmitter; /** Fires when the `mousemove` is called */ osDragging: EventEmitter; /** Fires when the `mouseup` is called and after all internal handlers removed */ osDragEnd: EventEmitter; /** Target draggable HTML element */ get draggableElement(): HTMLElement; /** Target movable HTML element */ get movableElement(): HTMLElement; /** Target dragging strategy */ get strategy(): ɵBaseDragStrategyImpl; /** Configuration of dragging */ get config(): DraggerConfig; /** @internal */ get whenViewInit$(): Observable; private _draggableElement; private _movableElement; private _strategy; private _config; private _whenViewInit$; constructor(document: Document, hostRef: ElementRef); ngOnChanges(): void; ngAfterViewInit(): void; ngOnDestroy(): void; /** Updates config without affecting any logic, like some internal initialization of different things */ updateConfigWithoutChanges(config: DraggerConfig): void; private update; private updateMovableElementPosition; private initStrategy; private initDraggableElement; private initMovableElement; private readonly onPointerDown; private readonly onPointerMove; private readonly onPointerUp; private getDragInfo; private isDragAllowed; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; }