import ColumnDef, { Accessor } from "../types/ColumnDef"; export declare const getHeaderIndexPath: (headers: ColumnDef[], targetAccessor: Accessor, currentPath?: number[]) => number[] | null; export declare const getSiblingArray: (headers: ColumnDef[], indexPath: number[]) => ColumnDef[]; export declare const setSiblingArray: (headers: ColumnDef[], indexPath: number[], newSiblings: ColumnDef[]) => ColumnDef[]; export declare const getHeaderSection: (header: ColumnDef, rootHeaders: ColumnDef[]) => "left" | "main" | "right"; export declare const updateHeaderPinnedProperty: (header: ColumnDef, targetSection: "left" | "main" | "right") => ColumnDef; export declare function swapHeaders(headers: ColumnDef[], draggedPath: number[], hoveredPath: number[]): { newHeaders: ColumnDef[]; emergencyBreak: boolean; }; export declare function insertHeaderAcrossSections({ headers, draggedHeader, hoveredHeader, }: { headers: ColumnDef[]; draggedHeader: ColumnDef; hoveredHeader: ColumnDef; }): { newHeaders: ColumnDef[]; emergencyBreak: boolean; }; export interface DragHandlerManagerConfig { headers: ColumnDef[]; essentialAccessors?: ReadonlySet; onTableHeaderDragEnd: (newHeaders: ColumnDef[]) => void; onColumnOrderChange?: (newHeaders: ColumnDef[]) => void; onHeadersChange?: (newHeaders: ColumnDef[]) => void; } export declare class DragHandlerManager { private config; private draggedHeader; private hoveredHeader; private prevUpdateTime; private prevDraggingPosition; private prevHeadersTracker; constructor(config: DragHandlerManagerConfig); updateConfig(config: Partial): void; getDraggedHeader(): ColumnDef | null; getHoveredHeader(): ColumnDef | null; handleDragStart(header: ColumnDef): void; handleDragOver({ event, hoveredHeader, }: { event: DragEvent; hoveredHeader: ColumnDef; }): void; handleDragEnd(): void; destroy(): void; }