import { type CellMeta, type CustomHeaderFields } from '../common';
import type { Formatter, RawData, S2DataConfig, SimpleData, ViewMeta, ViewMetaData } from '../common/interface';
import { Node } from '../facet/layout/node';
import { type TransformResult } from '../utils/dataset/pivot-data-set';
import { BaseDataSet } from './base-data-set';
import { CellData } from './cell-data';
import type { GetCellDataParams, GetCellMultiDataParams, PivotMeta, Query, SortedDimensionValues, TotalStatus } from './interface';
export declare class PivotDataSet extends BaseDataSet {
    rowPivotMeta: PivotMeta;
    colPivotMeta: PivotMeta;
    sortedDimensionValues: SortedDimensionValues;
    private dimensionValuesCache;
    getExistValuesByDataItem(data: RawData, values: string[]): string[];
    /**
     * When data related config changed, we need
     * 1、re-process config
     * 2、re-transform origin data
     * 3、sort and other things
     * @param dataCfg
     */
    setDataCfg(dataCfg: S2DataConfig): void;
    transformIndexesData(data: RawData[], rows?: CustomHeaderFields): TransformResult;
    /**
     * Provide a way to append some drill-down data in indexesData
     * @param extraRowField
     * @param drillDownData
     * @param rowNode
     */
    transformDrillDownData(extraRowField: string, drillDownData: RawData[], rowNode: Node): void;
    /**
     * Clear drill down data by rowNodeId
     * rowNodeId is undefined => clear all
     * @param rowNodeId
     */
    clearDrillDownData(rowNodeId?: string): boolean;
    /**
     * 排序优先级：
     * 1、sortParams里的条件优先级高于原始数据
     * 2、sortParams多个item：按照顺序优先级，排在后面的优先级高
     * 3、item中多个条件：sortByField > sortFunc > sortBy > sortMethod
     */
    handleDimensionValuesSort: () => void;
    protected handlePivotMetaSort(sortFieldId: string, sortedDimensionValues: string[]): void;
    processDataCfg(dataCfg: S2DataConfig): S2DataConfig;
    protected getFieldsAndPivotMetaByField(field: string): {
        dimensions: string[];
        pivotMeta: PivotMeta;
    } | {
        dimensions?: undefined;
        pivotMeta?: undefined;
    };
    getDimensionValues(field: string, query?: Query): SimpleData[];
    getTotalValue(query: Query, totalStatus?: TotalStatus): CellData | undefined;
    getCellData(params: GetCellDataParams): ViewMetaData | undefined;
    getTotalStatus: (query: Query) => TotalStatus;
    protected getQueryExtraFields(query: Query): string[];
    getCellMultiData(params: GetCellMultiDataParams): CellData[];
    getFieldFormatter(field: string, cellMeta?: ViewMeta): Formatter;
    private getFieldFormatterForTotalValue;
    /**
     * 自定义度量组位置值
     * @param customValueOrder 用户配置度量组位置，从 0 开始
     * @param fields Rows || Columns
     */
    private handleCustomMeasuresOrder;
    private isCustomMeasuresPosition;
    getRowData(cellMeta: CellMeta): CellData[];
}
