import { IColumn } from '../../../../../../types/src/table';
import { default as Cell } from '../../core/cell/Cell';
import { default as Column } from '../../core/column/Column';
import { default as Module } from '../../core/Module';
import { default as Row } from '../../core/row/Row';

export default class FrozenColumns extends Module {
    static moduleName: string;
    leftColumns: IColumn[];
    rightColumns: IColumn[];
    initializationMode: 'left' | 'right';
    active: boolean;
    blocked: boolean;
    constructor(table: any);
    reset(): void;
    initialize(): void;
    blockLayout(): void;
    unblockLayout(): void;
    layoutCell(cell: Cell): void;
    reinitializeColumns(): void;
    initializeColumn(column: IColumn): void;
    frozenCheck(column: IColumn): boolean;
    layoutCalcRows(): void;
    layoutGroupCalcs(groups: any[]): void;
    layoutColumnPosition(allCells?: boolean): void;
    getColGroupParentElement(column: IColumn): HTMLElement;
    layout(): void;
    reinitializeRows(): void;
    layoutRow(row: Row): void;
    layoutElement(element: HTMLElement | null, column: IColumn): void;
    adjustForScrollbar(width: number): void;
    getFrozenColumns(): IColumn[];
    _calcSpace(columns: Column[], index: number): number;
}
