import { FileTreeBatchOperation, FileTreeDropContext, FileTreeDropResult, FileTreeDropTarget, FileTreePublicId } from "./publicTypes.js";

//#region src/model/dragAndDrop.d.ts
interface FileTreeDragSession {
  draggedPaths: readonly FileTreePublicId[];
  primaryPath: FileTreePublicId;
  target: FileTreeDropTarget | null;
}
declare function normalizeDraggedPaths(paths: readonly FileTreePublicId[]): readonly FileTreePublicId[];
declare function resolveDraggedPathsForStart(path: FileTreePublicId, selectedPaths: readonly FileTreePublicId[]): readonly FileTreePublicId[];
declare function dropTargetsEqual(left: FileTreeDropTarget | null, right: FileTreeDropTarget | null): boolean;
declare function createDropContext(draggedPaths: readonly FileTreePublicId[], target: FileTreeDropTarget): FileTreeDropContext;
declare function isSelfOrDescendantDrop(draggedPaths: readonly FileTreePublicId[], target: FileTreeDropTarget): boolean;
declare function buildDropOperations(draggedPaths: readonly FileTreePublicId[], target: FileTreeDropTarget): {
  operations: readonly FileTreeBatchOperation[];
  result: FileTreeDropResult;
} | null;
//#endregion
export { FileTreeDragSession, buildDropOperations, createDropContext, dropTargetsEqual, isSelfOrDescendantDrop, normalizeDraggedPaths, resolveDraggedPathsForStart };
//# sourceMappingURL=dragAndDrop.d.ts.map