import ColumnDef, { Accessor } from "../../types/ColumnDef"; import { ColumnVisibilityState } from "../../types/ColumnVisibilityTypes"; import { FlattenedHeader } from "../../types/FlattenedHeader"; import { PanelSection } from "../../types/PanelSection"; export type { FlattenedHeader }; /** * Tracks which drop separator is currently highlighted during a column-editor * drag. The `index` is **section-relative** (matches the per-section * `visualIndex`, or `-1` for the separator above the first row), so it must be * paired with the `panelSection` it belongs to. Without the section, the same * index is ambiguous across the pinned-left / main / pinned-right lists and the * divider renders in the wrong section. */ export type HoveredSeparator = { panelSection: PanelSection; index: number; } | null; export declare const findAndMarkParentsVisible: (headers: ColumnDef[], childAccessor: Accessor, visited?: Set) => void; export declare const areAllChildrenHidden: (children: ColumnDef[]) => boolean; export declare const updateParentHeaders: (headers: ColumnDef[]) => void; export declare const buildColumnVisibilityState: (headers: ColumnDef[]) => ColumnVisibilityState; export declare const findClosestValidSeparatorIndex: ({ flattenedHeaders, draggingRow, hoveredRowIndex, isTopHalfOfRow, }: { flattenedHeaders: FlattenedHeader[]; draggingRow: FlattenedHeader; hoveredRowIndex: number; isTopHalfOfRow: boolean; }) => number | null;