import { DataGroup, AggregateColumn, AggregationColumnStore, GroupDescriptor } from './aggr_structures'; import { DataRow } from "./data_row"; /** * Represents AggregationSettings structure prepared for saving into a storage. */ export interface AggregationSettingsData { groups: Array; ugt: boolean; urc: boolean; csg: boolean; aggregates: Array; } /** * Defines aggregations settings for the current context. * Group, aggregate columns, grand totals, etc. */ export declare class AggregationSettings { private colStore; readonly COUNT_FIELD_NAME: string; private aggregates; groups: DataGroup[]; private useGrandTotals; private useRecordCount; private _caseSensitiveGroups; compareValues: (value1: any, value2: any) => boolean; constructor(colStore: AggregationColumnStore); get caseSensitiveGroups(): boolean; set caseSensitiveGroups(value: boolean); private updateCompareProc; addGroup(settings: GroupDescriptor): this; addAggregateColumn(colIndexOrId: number | string, funcId: string): this; addGrandTotals(): this; addCounts(): this; getGroups(): { columns: any[]; aggregates: AggregateColumn[]; name?: string; }[]; getInternalGroups(): DataGroup[]; lastGroup(): { columns: any[]; aggregates: AggregateColumn[]; name?: string; }; getAggregates(): Array; hasAggregates(): boolean; hasGroups(): boolean; hasGrandTotals(): boolean; hasRecordCount(): boolean; isEmpty(): boolean; isValid(): boolean; drop(): void; clear(): this; /** * Checks if all columns from the list passed in the parameter are "unused". * Here "unused column" means a column that is included neither in any group nor in the aggregates list. * @param cols - the array of column IDs * @returns true if all columns in the list are not used anywhere, othervise - fals */ private hasColumnsInUse; needAggrCalculation(): boolean; saveToData(): AggregationSettingsData; loadFromData(data: AggregationSettingsData): void; buildGroupKey(group: DataGroup, row: DataRow): any; private strictCompare; private caseInsensitiveCompare; }