import { Column, EnumObject, Locale, Session, Table, TableRow } from '../index'; export declare class TableMatrix { session: Session; locale: Locale; protected _allData: TableMatrixDataAxis[]; protected _allAxis: TableMatrixKeyAxis[]; protected _rows: TableRow[]; protected _table: Table; constructor(table: Table, session: Session); static DateGroup: { readonly NONE: 0; readonly YEAR: 256; readonly MONTH: 257; readonly WEEKDAY: 258; readonly DATE: 259; }; static NumberGroup: { readonly COUNT: -1; readonly SUM: 1; readonly AVG: 2; }; /** * add data axis */ addData(data: Column, dataGroup: TableMatrixNumberGroup): TableMatrixDataAxis; addAxis(axis: Column, axisGroup: TableMatrixNumberGroup | TableMatrixDateGroup): TableMatrixKeyAxis; /** * @returns a cube containing the results */ calculate(): TableMatrixResult; /** * * @returns Array holding an entry for each column. Each entry consists of an array with the column at index 0 and the count at index 1. */ columnCount(filterNumberColumns?: boolean): Array | number>>; isEmpty(): boolean; /** * @returns valid columns for table-matrix (not instance of NumberColumn and not guiOnly) * @param filterNumberColumns whether or not to filter NumberColumn, default is true */ columns(filterNumberColumns?: boolean): Column[]; /** * Table rows and columns are not always in a consistent state. * @returns true, if table is in a valid, consistent state */ isMatrixValid(): boolean; } export type TableMatrixNumberGroup = EnumObject; export type TableMatrixDateGroup = EnumObject; export type TableMatrixKeyAxis = number[] & { column: Column; normTable: string[]; sortCodeMap: Record; isIcon?: boolean; iconId?: string; min: number; max: number; format(n: number): string; keyToDeterministicKey(n: number): number | string; deterministicKeyToKey(f: string | number): number; normDeterministic(f: any): string | number; norm(f: any): number; add(k: number): any; reorder(): void; }; export type TableMatrixDataAxis = { column: Column; total: number; min: number; max: number; format(n: number): string; norm(f: any): number; group(array: number[]): number; }; export type TableMatrixResult = Record & { length: number; getValue(keys: number[]): number[]; }; //# sourceMappingURL=TableMatrix.d.ts.map