import type { Edge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge'; export type DndItem = { id: string; locked?: boolean; [key: string]: any; }; export type DropIndicatorState = { itemId: string; edge: Edge; } | null; /** * Checks if dropping an item would result in no position change * (i.e., dropping right next to its current position) */ export declare function shouldShowDropIndicator(sourceId: string, targetId: string, sourceGroup: string, targetGroup: string, edge: Edge, items: DndItem[]): boolean; /** * Calculates the new index where a dragged item should be inserted */ export declare function calculateInsertIndex(sourceIndex: number, targetIndex: number, edge: Edge): number; /** * Reorders items within the same group */ export declare function reorderItems(items: T[], sourceId: string, targetId: string, edge: Edge): T[]; /** * Moves an item from one group to another */ export declare function moveItemBetweenGroups(sourceItems: T[], targetItems: T[], sourceId: string, targetId?: string, edge?: Edge): { newSourceItems: T[]; newTargetItems: T[]; };