import HeaderObject, { Accessor } from "../types/HeaderObject"; import { ColumnVisibilityState } from "../types/ColumnVisibilityTypes"; export interface ColumnManagerConfig { headers: HeaderObject[]; collapsedHeaders: Set; onColumnOrderChange?: (newHeaders: HeaderObject[]) => void; onColumnVisibilityChange?: (visibilityState: ColumnVisibilityState) => void; onColumnWidthChange?: (headers: HeaderObject[]) => void; } export interface ColumnManagerState { headers: HeaderObject[]; collapsedHeaders: Set; columnVisibility: ColumnVisibilityState; draggedHeader: HeaderObject | null; hoveredHeader: HeaderObject | null; } type StateChangeCallback = (state: ColumnManagerState) => void; export declare class ColumnManager { private config; private state; private subscribers; constructor(config: ColumnManagerConfig); private buildColumnVisibilityState; updateConfig(config: Partial): void; subscribe(callback: StateChangeCallback): () => void; private notifySubscribers; setHeaders(headers: HeaderObject[]): void; setCollapsedHeaders(collapsedHeaders: Set): void; toggleColumnCollapse(accessor: Accessor): void; setColumnVisibility(accessor: Accessor, visible: boolean): void; updateColumnWidth(accessor: Accessor, width: number | string): void; reorderColumns(newHeaders: HeaderObject[]): void; setDraggedHeader(header: HeaderObject | null): void; setHoveredHeader(header: HeaderObject | null): void; getState(): ColumnManagerState; getHeaders(): HeaderObject[]; getCollapsedHeaders(): Set; getColumnVisibility(): ColumnVisibilityState; isColumnVisible(accessor: Accessor): boolean; destroy(): void; } export {};