import { type THREE } from "@x-viewer/core"; export type TreeDropPosition = "before" | "after" | "inside"; export interface TreeViewDragDropContext { canEdit: () => boolean; findObjectByUuid: (uuid: string) => THREE.Object3D | undefined; isModelNode: (node: THREE.Object3D) => boolean; onReparent: (object: THREE.Object3D, newParent: THREE.Object3D, targetIndex: number) => boolean; /** Called when the pointer was dragged past the threshold (suppress tree click selection). */ onDragEnded?: (moved: boolean) => void; } export interface TreeViewDragDropHandle { destroy: () => void; } /** * Pointer drag-and-drop for the tree view (gltfeditor-style before / after / inside). */ export declare function attachTreeViewDragDrop(content: HTMLElement, ctx: TreeViewDragDropContext): TreeViewDragDropHandle;