import type { Table } from '..';
import type { TableRecord } from '../types';
/**
 * This class manages the layout of columns within a Table.
 * @interal
 */
export declare class TableLayoutManager<TData extends TableRecord> {
    private readonly table;
    isColumnBeingSized: boolean;
    activeColumnIndex?: number;
    activeColumnDivider?: number;
    private gridSizedColumns?;
    private visibleColumns;
    private initialTableScrollableWidth?;
    private initialTableScrollableMinWidth?;
    private initialColumnTotalWidth?;
    private activeColumnDividerElement?;
    private currentTotalDelta;
    private dragStart;
    private leftColumnIndex?;
    private rightColumnIndex?;
    private initialColumnWidths;
    constructor(table: Table<TData>);
    getGridTemplateColumns(): string;
    /**
     * Sets up state related to interactively sizing a column.
     * @param activeColumnDividerElement The divider element that was clicked on
     * @param pointerId The pointerId of the pointer that started the drag
     * @param dragStart The x-position from which a column size was started
     * @param activeColumnDivider The 1-based index of the divider that was clicked on
     */
    beginColumnInteractiveSize(activeColumnDividerElement: HTMLElement, pointerId: number, dragStart: number, activeColumnDivider: number): void;
    /**
     * Determines if the specified column or any columns to the left are resizable.
     */
    hasResizableColumnToLeft(columnIndex: number): boolean;
    /**
     * Determines if the specified column or any columns to the right are resizable.
     */
    private hasResizableColumnToRight;
    private readonly onDividerPointerMove;
    private readonly onDividerPointerUp;
    private getTotalColumnFixedWidth;
    private setColumnsToFixedSize;
    private getAllowedSizeDelta;
    /**
     * Gets the index of the first resizable column starting with
     * `columnIndex` and moving to the left. If no resizable column
     * is found, returns -1.
     */
    private getFirstLeftResizableColumnIndex;
    /**
     * Gets the index of the first resizable column starting with
     * `columnIndex` and moving to the right. If no resizable column
     * is found, returns -1.
     */
    private getFirstRightResizableColumnIndex;
    private performCascadeSizeLeft;
    private performCascadeSizeRight;
    private cacheGridSizedColumns;
    private cacheColumnInitialPixelWidths;
    private resetGridSizedColumns;
    private getVisibleColumns;
    private getLeftColumnIndexFromDivider;
}
