import { PluginObject } from 'vue'; import { MElementDomPlugin, MountFunction, RefreshFunction } from '../../domPlugin'; import './draggable.scss'; export declare enum MDraggableClassNames { Draggable = "m--is-draggable", Dragging = "m--is-dragging", Grabbing = "m--is-grabbing", DragImage = "dragImage", DragHandle = "m-drag-handle", HasDragHandle = "m--has-drag-handle" } export interface MDraggableOptions { canDrag?: boolean; action: string; dragData: any; grouping?: any; } export interface MDragInfo { action: string; grouping?: string; data: any; } export interface MDragEvent extends CustomEvent { dragInfo: MDragInfo; } export declare enum MDraggableEventNames { OnDragStart = "draggable:dragstart", OnDragEnd = "draggable:dragend" } export declare class MDraggable extends MElementDomPlugin { static defaultMountPoint: string; static currentDraggable?: MDraggable; private grabEvents; private cancelGrabEvents; private touchUpListener; private intputTouchUpListener; private grabDelay; private touchHasMoved; private isMouseInitiatedDrag; constructor(element: HTMLElement, options: MDraggableOptions); doCleanUp(): void; attach(mount: MountFunction): void; update(options: MDraggableOptions, refresh: RefreshFunction): void; detach(): void; onDragStart(event: DragEvent): void; onDragEnd(event: DragEvent): void; private setupGrabBehavior; private turnDragOn; private turnDragOff; private targetIsGrabbable; private destroyGrabBehavior; private forceCursorRefresh; private attachDragImage; private setEventDragImage; private calculateHorizontalCenterOffset; private calculateVerticalCenterOffset; private dispatchEvent; private cleanupCssClasses; private draggableHasHandle; private isHandleUsedToDrag; } declare const DraggablePlugin: PluginObject; export default DraggablePlugin; //# sourceMappingURL=draggable.d.ts.map