import type { Component } from 'vue'; export interface DraggableStartEvent { element: T; index: number; } export interface DraggableEndEvent { fromComponent?: Component; oldElement: T; oldIndex: number; toComponent?: Component; newIndex: number; } export interface DraggableAddedEvent { component?: Component; element: T; newIndex: number; } export interface DraggableMovedEvent { component?: Component; element: T; oldIndex: number; newIndex: number; } export interface DraggableRemovedEvent { component?: Component; element: T; oldIndex: number; } export interface DraggableSendEvent { from: HTMLElement; to: HTMLElement; dragged: HTMLElement; draggedContext: { component?: Component; element: T; index: number; }; related: HTMLElement; relatedContext: { component?: Component; element: T; index: number; }; }