import { ColumnConfig } from '../../core/types';
import { ColumnVirtualizationViewport } from './types';
/**
 * Parse a column width value to pixels.
 * Handles number (px) and string formats.
 *
 * @param width - The width value from column config
 * @returns Width in pixels
 */
export declare function parseColumnWidth(width: string | number | undefined): number;
/**
 * Get array of column widths in pixels.
 *
 * @param columns - Column configurations
 * @returns Array of widths in pixels
 */
export declare function getColumnWidths(columns: readonly ColumnConfig[]): number[];
/**
 * Compute cumulative left offsets for each column.
 *
 * @param columns - Column configurations
 * @returns Array of left offsets in pixels
 */
export declare function computeColumnOffsets(columns: readonly ColumnConfig[]): number[];
/**
 * Compute total width of all columns.
 *
 * @param columns - Column configurations
 * @returns Total width in pixels
 */
export declare function computeTotalWidth(columns: readonly ColumnConfig[]): number;
/**
 * Find the visible column range based on scroll position.
 * Uses binary search for efficient lookup in large column sets.
 *
 * @param scrollLeft - Current horizontal scroll position
 * @param viewportWidth - Width of the visible viewport
 * @param columnOffsets - Array of column left offsets
 * @param columnWidths - Array of column widths
 * @param overscan - Number of extra columns to render on each side
 * @returns Viewport information with visible column indices
 */
export declare function getVisibleColumnRange(scrollLeft: number, viewportWidth: number, columnOffsets: number[], columnWidths: number[], overscan: number): ColumnVirtualizationViewport;
/**
 * Determine if column virtualization should be active.
 *
 * @param columnCount - Number of columns
 * @param threshold - Column count threshold
 * @param autoEnable - Whether auto-enable is configured
 * @returns True if virtualization should be active
 */
export declare function shouldVirtualize(columnCount: number, threshold: number, autoEnable: boolean): boolean;
//# sourceMappingURL=column-virtualization.d.ts.map