import type { ListTable } from '../ListTable';
import type { CellAddress, CellRange, CellLocation, IListTableCellHeaderPaths, LayoutObjectId, IRowSeriesNumber } from '../ts-types';
import type { ColumnsDefine } from '../ts-types/list-table/define';
import type { ColumnData, ColumnDefine, HeaderData, LayoutMapAPI, SeriesNumberColumnData, WidthData } from '../ts-types/list-table/layout-map/api';
import type { Aggregator } from '../ts-types/dataset/aggregation';
import { DimensionTree } from './tree-helper';
export declare class SimpleHeaderLayoutMap implements LayoutMapAPI {
    private seqId;
    private _headerObjects;
    private _headerObjectMap;
    private _headerObjectsIncludeHided;
    private _headerCellIds;
    private _columns;
    private _columnsIncludeHided;
    rowSeriesNumberColumn: SeriesNumberColumnData[];
    leftRowSeriesNumberColumn: SeriesNumberColumnData[];
    rightRowSeriesNumberColumn: SeriesNumberColumnData[];
    leftRowSeriesNumberColumnCount: number;
    rightRowSeriesNumberColumnCount: number;
    columnTree: DimensionTree;
    readonly bodyRowSpanCount: number;
    hierarchyIndent?: number;
    hierarchyTextStartAlignment?: boolean;
    _transpose: boolean;
    _showHeader: boolean;
    _recordsCount: number;
    _table: ListTable;
    _hasAggregation: boolean;
    _hasAggregationOnTopCount: number;
    _hasAggregationOnBottomCount: number;
    rowHierarchyType?: 'grid' | 'tree';
    _cellRangeMap: Map<string, CellRange>;
    constructor(table: ListTable, columns: ColumnsDefine, showHeader: boolean, hierarchyIndent: number);
    handleRowSeriesNumber(rowSeriesNumber: IRowSeriesNumber): void;
    get transpose(): boolean;
    set transpose(_transpose: boolean);
    get showHeader(): boolean;
    set showHeader(_showHeader: boolean);
    isSeriesNumberInHeader(col: number, row: number): boolean;
    isSeriesNumberInBody(col: number, row: number): boolean;
    isSeriesNumber(col: number, row: number): boolean;
    getSeriesNumberHeader(col: number, row: number): SeriesNumberColumnData;
    getSeriesNumberBody(col: number, row: number): SeriesNumberColumnData;
    isHeader(col: number, row: number): boolean;
    isAggregation(col: number, row: number): boolean;
    isTopAggregation(col: number, row: number): boolean;
    isBottomAggregation(col: number, row: number): boolean;
    get hasAggregation(): boolean;
    get hasAggregationOnTopCount(): number;
    get hasAggregationOnBottomCount(): number;
    getAggregatorsByCell(col: number, row: number): any;
    getAggregatorsByCellRange(startCol: number, startRow: number, endCol: number, endRow: number): Aggregator[];
    getAggregatorOnTop(col: number, row: number): Aggregator;
    getAggregatorOnBottom(col: number, row: number): Aggregator;
    getAggregatorCellAddress(startCol: number, startRow: number, endCol: number, endRow: number): {
        col: number;
        row: number;
    }[];
    getCellLocation(col: number, row: number): CellLocation;
    isRowHeader(col: number, row: number): boolean;
    isColumnHeader(col: number, row: number): boolean;
    isFrozenColumn(col: number, row?: number): boolean;
    isRightFrozenColumn(col: number, row?: number): boolean;
    isFrozenRow(col: number, row?: number): boolean;
    isBottomFrozenRow(col: number, row?: number): boolean;
    isLeftTopCorner(col: number, row: number): boolean;
    isLeftBottomCorner(col: number, row: number): boolean;
    isRightTopCorner(col: number, row: number): boolean;
    isRightBottomCorner(col: number, row: number): boolean;
    isCornerHeader(col: number, row: number): boolean;
    getColumnHeaderRange(): CellRange;
    getRowHeaderRange(): CellRange | undefined;
    getCornerHeaderRange(): CellRange | undefined;
    getBodyRange(): CellRange;
    get headerLevelCount(): number;
    get columnHeaderLevelCount(): number;
    get rowHeaderLevelCount(): number;
    get frozenColCount(): number;
    get frozenRowCount(): number;
    get bottomFrozenRowCount(): number;
    get rightFrozenColCount(): number;
    get colCount(): number;
    get rowCount(): number;
    get bodyRowCount(): number;
    get bodyColCount(): number;
    get recordsCount(): number;
    set recordsCount(recordsCount: number);
    get headerObjects(): HeaderData[];
    get columnObjects(): ColumnData[];
    get headerObjectsIncludeHided(): HeaderData[];
    get columnWidths(): WidthData[];
    getColumnWidthDefined(col: number): WidthData;
    getCellId(col: number, row: number): LayoutObjectId;
    getHeader(col: number, row: number): HeaderData | SeriesNumberColumnData;
    getHeaderField(col: number, row: number): import("../ts-types").FieldDef;
    getHeaderCellAdressById(id: number): CellAddress | undefined;
    getHeaderCellAddressByField(field: string): CellAddress | undefined;
    getBody(col: number, _row: number): ColumnData | SeriesNumberColumnData;
    getBodyLayoutRangeById(id: LayoutObjectId): CellRange;
    getCellRange(col: number, row: number): CellRange;
    isCellRangeEqual(col: number, row: number, targetCol: number, targetRow: number): boolean;
    getRecordShowIndexByCell(col: number, row: number): number;
    getRecordStartRowByRecordIndex(index: number): number;
    private _addHeaders;
    private _newRow;
    getCellHeaderPaths(col: number, row: number): IListTableCellHeaderPaths;
    private getParentCellId;
    canMoveHeaderPosition(source: CellAddress, target: CellAddress): boolean;
    moveHeaderPosition(source: CellAddress, target: CellAddress): {
        sourceIndex: number;
        targetIndex: number;
        sourceSize: number;
        targetSize: number;
        moveType: 'column' | 'row';
    };
    toggleHierarchyState(diffDataIndices: {
        add: number[];
        remove: number[];
    }): {
        addCellPositions: {
            col: number;
            row: number;
        }[];
        removeCellPositions: {
            col: number;
            row: number;
        }[];
    };
    setChartInstance(_col: number, _row: number, chartInstance: any): void;
    getChartInstance(_col: number, _row: number): any;
    checkHasChart(): boolean;
    getAxisConfigInPivotChart(col: number, row: number): any;
    isEmpty(col: number, row: number): boolean;
    isAxisCell(col: number, row: number): boolean;
    getChartAxes(col: number, row: number): any[];
    isShareChartSpec(col: number, row: number): boolean;
    isNoChartDataRenderNothing(col: number, row: number): boolean;
    getChartSpec(col: number, row: number): any;
    getRawChartSpec(col: number, row: number): any;
    getChartDataId(col: number, row: number): any;
    release(): void;
    clearCellRangeMap(): void;
    updateColumnTitle(col: number, row: number, title: string): void;
    getColumnByField(field: string | number): {
        col: number;
        columnDefine: ColumnData;
    }[];
    getColumnByKey(key: string): {
        col: number;
        columnDefine: ColumnData;
    };
    getColumnDefine(col: number, row: number): ColumnDefine | IRowSeriesNumber;
}
