export interface DragState { isDragging: boolean; dragElement: HTMLElement | null; dragType: 'panel' | 'toolbar'; dragId: string; startPosition: { x: number; y: number; }; currentPosition: { x: number; y: number; }; offset: { x: number; y: number; }; } export interface PanelState { id: string; type: 'panel' | 'toolbar'; position: { x: number; y: number; }; size: { width: number; height: number; }; isMinimized: boolean; isVisible: boolean; zIndex: number; } export declare function useDrag(): { panelStates: import('vue').ComputedRef>; dragState: import('vue').ComputedRef<{ isDragging: boolean; dragElement: HTMLElement | null; dragType: "panel" | "toolbar"; dragId: string; startPosition: { x: number; y: number; }; currentPosition: { x: number; y: number; }; offset: { x: number; y: number; }; }>; registerElement: (id: string, type: 'panel' | 'toolbar', initialPosition?: { x: number; y: number; }, initialSize?: { width: number; height: number; }) => PanelState; startDrag: (event: MouseEvent, elementId: string, element: HTMLElement, type: 'panel' | 'toolbar') => void; closePanel: (id: string) => void; toggleMinimize: (id: string) => void; showPanel: (id: string) => void; getVisiblePanels: () => PanelState[]; setContainer: (element: HTMLElement) => void; };