import type { PivotTable } from '../pivot/pivot-table';
import type { NodeTree } from '../summary/node-tree';
import type { SummaryManager } from '../summary/summary-manager';
import type { INodeSizeInfo, IPivotLayoutCtx, IPivotTableQueryData, IPivotTableValueFieldQueryData, IPivotViewInfo, IRowNodeSizeInfo } from '../types';
import type { PivotView } from './pivot-view';
import { BaseLayout } from './base-layout';
export declare class TabularLayout extends BaseLayout {
    static layout(pivotTable: PivotTable, summaryManager: SummaryManager, queryData: IPivotTableQueryData): PivotView;
    static layoutCorner(ctx: IPivotLayoutCtx): void;
    static layoutRowFields(ctx: IPivotLayoutCtx): void;
    static doRowLeafNode(ctx: IPivotLayoutCtx, nodeTree: NodeTree, row: number, valueIds: string[]): IRowNodeSizeInfo;
    /**
     *  - layout the data area of the pivot table
     * @param {IPivotLayoutCtx} ctx the context of layout
     * @param {NodeTree} nodeTree the current node
     * @param {number} row the current row index
     * @param {number} measureIndex the current measure index, if the row does not have multiple measures, the measureIndex is -1
     */
    static startContent(ctx: IPivotLayoutCtx, nodeTree: NodeTree, row: number, measureIndex: number): void;
    static layoutValueNode(ctx: IPivotLayoutCtx, nodeTree: NodeTree, row: number, measureIndex: number, paths: string[]): void;
    static layoutValueNodeSubtotal(ctx: IPivotLayoutCtx, row: number): void;
    static getMeasureInfoByIndex(ctx: IPivotLayoutCtx, valueQueryInfo: IPivotTableValueFieldQueryData[], rowInfo: IPivotViewInfo, colInfo: IPivotViewInfo): IPivotTableValueFieldQueryData;
    static layoutValueLeafNode(ctx: IPivotLayoutCtx, nodeTree: NodeTree, row: number, paths: string[], measureIndex: number): void;
    static getColIndexForRowHeader(nodeLevel: number, valueIndex: number, hasMultiValue: boolean): number;
    static doRowBrachNode(ctx: IPivotLayoutCtx, nodeTree: NodeTree, row: number, valueIds: string[]): INodeSizeInfo;
    static layoutRowNode(ctx: IPivotLayoutCtx, nodeTree: NodeTree, row: number, valueIds: string[]): INodeSizeInfo;
    static updateRowSubtotal(ctx: IPivotLayoutCtx, row: number, nodeTree: NodeTree, valueIds: string[]): void;
}
