import { EnforceNonEmptyRecord, ValueRecord } from '../../record'; import { SelectRows } from '../selection/select_rows'; import { AggregatableTable, Avg, Count, GroupAggregationRecord, Max, Min, Sum } from '../aggregatable_table'; import { GroupSelectStatement } from '../../statements/group_select_statement'; export declare class SortGroupingOfThreeTables { private readonly statement; constructor(statement: GroupSelectStatement); thenBy(sortBy: (key: K, first: AggregatableTable, second: AggregatableTable, third: AggregatableTable, count: () => Count) => K | Max | Min | Avg | Sum | Count): SortGroupingOfThreeTables; thenDescendinglyBy(sortBy: (key: K, first: AggregatableTable, second: AggregatableTable, third: AggregatableTable, count: () => Count) => K | Max | Min | Avg | Sum | Count): SortGroupingOfThreeTables; aggregate>(aggregation: (key: K, first: AggregatableTable, second: AggregatableTable, third: AggregatableTable, count: () => Count) => EnforceNonEmptyRecord & A): SelectRows; }