import { OnDestroy, AfterViewInit, ElementRef, EventEmitter, NgZone } from '@angular/core';
import { SmzDragEventData } from '../models/drag-event';
import { SmzDraggableService } from '../services/smz-draggable.service';
import * as i0 from "@angular/core";
export declare class SmzDraggable implements AfterViewInit, OnDestroy {
    el: ElementRef;
    zone: NgZone;
    smzDraggableService: SmzDraggableService;
    allow: string[];
    block: string[];
    dragEffect: string;
    dragHandle: string;
    draggingStyles: string;
    data: any;
    index: number;
    onDragStart: EventEmitter<SmzDragEventData>;
    onDragEnd: EventEmitter<SmzDragEventData>;
    onDrag: EventEmitter<SmzDragEventData>;
    handle: any;
    dragListener: any;
    mouseDownListener: any;
    mouseUpListener: any;
    _smzDraggableDisabled: boolean;
    constructor(el: ElementRef, zone: NgZone, smzDraggableService: SmzDraggableService);
    get smzDraggableDisabled(): boolean;
    set smzDraggableDisabled(_smzDraggableDisabled: boolean);
    ngAfterViewInit(): void;
    bindDragListener(): void;
    unbindDragListener(): void;
    bindMouseListeners(): void;
    unbindMouseListeners(): void;
    drag(event: any): void;
    dragStart(event: any): void;
    dragEnd(event: any): void;
    mousedown(event: any): void;
    mouseup(event: any): void;
    allowDrag(): boolean;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SmzDraggable, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SmzDraggable, "[smzDraggable]", never, { "allow": { "alias": "allow"; "required": false; }; "block": { "alias": "block"; "required": false; }; "dragEffect": { "alias": "dragEffect"; "required": false; }; "dragHandle": { "alias": "dragHandle"; "required": false; }; "draggingStyles": { "alias": "draggingStyles"; "required": false; }; "data": { "alias": "data"; "required": false; }; "index": { "alias": "index"; "required": false; }; "smzDraggableDisabled": { "alias": "smzDraggableDisabled"; "required": false; }; }, { "onDragStart": "onDragStart"; "onDragEnd": "onDragEnd"; "onDrag": "onDrag"; }, never, never, false, never>;
}
