import { ColCell, CornerCell, RowCell, SeriesNumberCell } from '../cell';
import { type IconTheme, type ViewMeta } from '../common';
import { CellType } from '../common/constant/interaction';
import type { CellCallbackParams, LayoutResult } from '../common/interface';
import { FrozenFacet } from './frozen-facet';
import type { Hierarchy } from './layout/hierarchy';
import { Node } from './layout/node';
export declare class PivotFacet extends FrozenFacet {
    get rowCellTheme(): import("../common").DeepRequired<import("../common").CellTheme>;
    protected getCornerCellInstance(...args: CellCallbackParams): CornerCell;
    protected getRowCellInstance(...args: CellCallbackParams): RowCell;
    protected getColCellInstance(...args: CellCallbackParams): ColCell;
    protected doLayout(): LayoutResult;
    protected buildAllHeaderHierarchy(): {
        rowLeafNodes: Node[];
        colLeafNodes: Node[];
        rowsHierarchy: Hierarchy;
        colsHierarchy: Hierarchy;
    };
    private getDataQueryInfo;
    /**
     * 根据行列索引获取单元格元数据
     */
    getCellMeta(rowIndex?: number, colIndex?: number): ViewMeta | null;
    protected getPreLevelSampleNode(colNode: Node, colsHierarchy: Hierarchy): Node | undefined;
    protected calculateHeaderNodesCoordinate(layoutResult: LayoutResult): void;
    protected calculateColNodesCoordinate(layoutResult: LayoutResult): void;
    protected calculateRowOffsets(): void;
    protected adjustColTotalNodesCoordinate(colsHierarchy: Hierarchy): void;
    protected calculateColLeafNodesWidth(layoutResult: LayoutResult): void;
    protected calculateColNodesHeight(colsHierarchy: Hierarchy): void;
    protected getMultipleMap(hierarchy: Hierarchy, isRowHeader?: boolean, isSubTotal?: boolean): number[];
    protected adjustTotalNodesCoordinate(params: {
        hierarchy: Hierarchy;
        isRowHeader?: boolean;
        isSubTotal?: boolean;
    }): void;
    protected getColLeafNodesWidth(colNode: Node, colLeafNodes: Node[], rowLeafNodes: Node[], rowHeaderWidth: number): number;
    protected getRowNodeHeight(rowNode: Node): number;
    /**
     * 获得图标区域预估宽度
     * 不考虑用户自定义的 displayCondition 条件
     * @param iconStyle 图标样式
     * @returns 宽度
     */
    protected getExpectedCellIconWidth(cellType: CellType, useDefaultIcon: boolean, iconStyle: IconTheme): number;
    protected calculateRowNodesAllLevelSampleNodes(layoutResult: LayoutResult): void;
    protected getRowLeafNodeHeight(rowLeafNode: Node): number;
    protected calculateRowNodesBBox(rowsHierarchy: Hierarchy): void;
    protected calculateRowNodesCoordinate(layoutResult: LayoutResult): void;
    protected adjustRowTotalNodesCoordinate(rowsHierarchy: Hierarchy): void;
    /**
     * @description Auto calculate row no-leaf node's height and y coordinate
     * @param rowLeafNodes
     */
    protected calculateRowNodeHeightAndY(rowLeafNodes: Node[]): void;
    /**
     * 计算 grid 模式下 node 宽度
     */
    protected getGridRowNodesWidth(node: Node, colLeafNodes: Node[]): number;
    /**
     * 计算树状模式等宽条件下的列宽
     */
    protected getAdaptTreeColWidth(col: Node, colLeafNodes: Node[], rowLeafNodes: Node[]): number;
    protected getColLabelLength(col: Node, rowLeafNodes: Node[]): number;
    /**
     * 计算平铺模式等宽条件下的列宽
     */
    protected getAdaptGridColWidth(colLeafNodes: Node[], colNode?: Node, rowHeaderWidth?: number): number;
    /**
     * 计算树状结构行头宽度
     */
    protected getTreeRowHeaderWidth(): number;
    /**
     * 计算 compact 模式下 node 宽度
     *
     * |   fieldName  |
     *  _______________
     * | label - icon  | <- node
     * | label - icon  |
     * | label - icon  |
     */
    protected getCompactGridRowNodeWidth(node: Node): number;
    protected getCompactGridColNodeWidth(colNode: Node, rowLeafNodes: Node[]): number;
    getViewCellHeights(): {
        getTotalHeight: () => number;
        getCellOffsetY: (index: number) => number;
        getTotalLength: () => number;
        getIndexRange: (minHeight: number, maxHeight: number) => {
            start: number;
            end: number;
        };
    };
    /**
     * 获取序号单元格
     * @description 对于透视表, 序号属于 RowCell
     */
    getSeriesNumberCells(): SeriesNumberCell[];
    getFrozenOptions(): Required<import("../common").S2BaseFrozenOptions>;
    getContentWidth(): number;
    getContentHeight(): number;
}
