import type { SortParams } from './types'; export declare function isSortColumnAvailable(sortParams: SortParams | undefined, columns: Array<{ name: string; }>): boolean; export declare function rafThrottle any>(fn: Fn): (...args: Parameters) => void; export declare function calculateColumnWidth(newWidth: number, minWidth?: number, maxWidth?: number): number; export declare const typedMemo: (Component: T) => T; /** * Computes the current vertical offset of a table element relative to a scrollable container. * Uses DOMRects to calculate the distance from the table's top edge to the container's top edge * in container scroll coordinates: tableRect.top - containerRect.top + container.scrollTop. * @param container The scrollable container element * @param table The table (or table wrapper) element whose offset is calculated * @returns The vertical offset in pixels */ export declare function getCurrentTableOffset(container: HTMLElement, table: HTMLElement): number; /** * Returns whether a table is considered offscreen relative to the container's viewport * with an additional safety margin (freeze margin). * A table is offscreen if its vertical span [tableStartY, tableEndY] lies farther than * the specified margin outside the viewport [scrollTop, scrollTop + clientHeight]. * @param params The parameters for the offscreen check * @param params.container The scrollable container element * @param params.currentTableOffset The current vertical offset of the table within the container * @param params.totalItems Total number of rows in the table * @param params.rowHeight Fixed row height in pixels * @param params.freezeMarginPx Optional additional margin in pixels; defaults to container.clientHeight * @returns True if the table is offscreen beyond the margin; otherwise false */ export declare function isTableOffscreen(params: { container: HTMLElement; currentTableOffset: number; totalItems: number; rowHeight: number; freezeMarginPx?: number; }): boolean;