import { LayoutColumn } from '../../../layout/main-structures/layout-column';
import { LayoutTableCellInfo } from '../../../layout/table/layout-table-cell-info';
import { LayoutTableColumnInfo } from '../../../layout/table/layout-table-info';
import { DocumentModel } from '../../../model/document-model';
import { Table, TablePosition, TablePositionIndexes } from '../../../model/tables/main-structures/table';
import { TableCellProperties } from '../../../model/tables/properties/table-cell-properties';
import { TableProperties } from '../../../model/tables/properties/table-properties';
import { TableRowProperties } from '../../../model/tables/properties/table-row-properties';
import { TableStyle } from '../../../model/tables/styles/table-style';
import { RowFormatter } from '../../row/formatter';
import { BorderHelper } from '../borders/border-helper';
import { HorizontalLineBordersInfo } from '../borders/horizontal-line-borders-info';
import { LayoutCursorVerticalTableBorder, LayoutTableBorder } from '../borders/layout-table-border';
import { Grid } from '../grid-engine/grid';
import { CellInfo } from './cell-info';
import { CellOrderHelper } from './cell-order-helper';
import { RowInfo } from './row-info';
export declare class TableInfo {
    static readonly empiricalOffset: number;
    rows: RowInfo[];
    minRowIndex: number;
    model: DocumentModel;
    grid: Grid;
    position: TablePosition;
    maxWidth: number;
    xPositionStart: number;
    yPositionStart: number;
    avaliableHeight: number;
    bordersHelper: BorderHelper;
    verticalBorders: LayoutTableBorder[][][];
    verticalCursorBorders: LayoutCursorVerticalTableBorder[][][];
    rowFormatter: RowFormatter;
    currRowHorizontalBorders: HorizontalLineBordersInfo[];
    currColumnHorizontalBorders: HorizontalLineBordersInfo[][];
    currLayoutTableColumnInfo: LayoutTableColumnInfo;
    isThisColumnFirstInTable: boolean;
    cellOrderHelper: CellOrderHelper;
    lastRowBottomBoundPosition: number;
    columnWidth: number;
    pageIndexFromWhichTableWasMoved: number | null;
    get table(): Table;
    get tableStyle(): TableStyle;
    get tblProps(): TableProperties;
    get defaultTblProps(): TableProperties;
    get defaultTblRowProps(): TableRowProperties;
    get defaultTblCellProps(): TableCellProperties;
    get currRowInfo(): RowInfo;
    get currCellInfo(): CellInfo;
    get isThisTableRowFirstInColumn(): boolean;
    get isCurrRowLastInTable(): boolean;
    get currTablePositionIndexes(): TablePositionIndexes;
    get isSimpleView(): boolean;
    constructor(rowFormatter: RowFormatter, table: Table, tableMaxWidth: number, xPosition: number, yOffset: number, pageIndexFromWhichTableWasMoved: number | null);
    static checkIsTableCannotBePlacedOnCurrentPage(rowFormatter: RowFormatter, table: Table, yOffset: number, maxWidth: number): boolean;
    private init;
    private getShiftHorizontalPosition;
    private static getEstimatedTableWidth;
    private static getRelationByColumnY;
    private static getRelationByColumnX;
    private static moveRowDownToFitTable;
    private static getXDiff;
    initLayoutInfo(yPos: number, parentCell: LayoutTableCellInfo, column: LayoutColumn): void;
}
