import type { MutableRefObject } from "react"
import type {
  SidebarNavDragPayload,
  SidebarNavDropPlacement,
} from "@/lib/sidebar-nav-dnd"

export type SidebarNavDragBindings = {
  navDragRef: MutableRefObject<SidebarNavDragPayload | null>
  navDropPlacementRef: MutableRefObject<SidebarNavDropPlacement | null>
  beginNavDrag: (
    payload: SidebarNavDragPayload,
    sourceEl: HTMLElement | null
  ) => void
  clearNavDrag: () => void
  updateNavDropTarget: (
    el: HTMLElement,
    placement: SidebarNavDropPlacement
  ) => void
  clearNavDropTarget: (el: HTMLElement) => void
  commitNavDrop: (
    payload: SidebarNavDragPayload,
    targetId: string,
    placement: SidebarNavDropPlacement,
    targetKind: "label" | "folder"
  ) => void
}
