import { ColumnDef, ColumnKey } from './types';
/**
 * Cumulative `left` in px for each column key that is sticky.
 * Walks **all** columns in order so non-sticky columns between sticky ones are included, and adds
 * `columnGapPx` after each column except the last (must match CSS `gap` on the row).
 */
export declare function computeStickyLeftOffsets<T>(orderedColumns: ColumnDef<T>[], stickyKeys: Set<ColumnKey>, maxWidthByColumnKey?: Partial<Record<ColumnKey, number>>, columnWidthPxByKey?: Map<ColumnKey, number>, columnGapPx?: number): Map<ColumnKey, number>;
export declare function buildStickyKeySet<T>(orderedColumns: ColumnDef<T>[], stickyColumnKeys?: ColumnKey[]): Set<ColumnKey>;
/** Last column in visual order that is sticky (right edge of the frozen cluster). */
export declare function getLastStickyColumnKey<T>(orderedColumns: ColumnDef<T>[], stickyKeys: Set<ColumnKey>): ColumnKey | undefined;
