import type { IComputationFunction, IFilterField, IRow, IViewField } from '../../interfaces'; import type { IPivotTableModel, IPivotTablePath } from './interface'; export interface IPivotTableQueryInput { computation: IComputationFunction; fields: readonly IViewField[]; rows: readonly IViewField[]; columns: readonly IViewField[]; filters?: readonly IFilterField[]; defaultAggregated: boolean; folds?: readonly string[]; limit: number; timezoneDisplayOffset?: number; showTableSummary: boolean; collapsedPaths: readonly IPivotTablePath[]; /** Aggregated leaf data that has already been queried by a parent renderer. */ viewData?: readonly IRow[]; } export interface IPivotTableBuildResult { lt: IPivotTableModel['leftTree']; tt: IPivotTableModel['topTree']; metric: IPivotTableModel['metric']; } export type PivotTableModelBuilder = (dimsInRow: IViewField[], dimsInColumn: IViewField[], allData: IRow[], aggregatedData: IRow[], collapsedKeys: string[], showTableSummary: boolean, sort?: { fid: string; type: 'ascending' | 'descending'; mode: 'row' | 'column'; }) => Promise; export declare function getPivotTableFields(rows: readonly IViewField[], columns: readonly IViewField[]): { dimsInRow: IViewField[]; dimsInColumn: IViewField[]; measInRow: IViewField[]; measInColumn: IViewField[]; }; export declare function getPivotGroupByCombinations(dimsInRow: readonly IViewField[], dimsInColumn: readonly IViewField[], collapsedPaths: readonly IPivotTablePath[], showTableSummary: boolean): IViewField[][]; export declare function queryPivotTable(input: IPivotTableQueryInput, buildModel?: PivotTableModelBuilder): Promise;