import { GroupSelection } from '../parsing/selection/selection_parsing'; import { Filter } from '../parsing/filtering/filter_parsing'; import { GroupOrderExpression } from '../parsing/sorting/group_sorting_parsing'; import { JoinExpression } from '../parsing/join_parsing'; import { Key } from '../parsing/get_key_parsing'; import { SelectStatement } from './select_statement'; import { ColumnTypeRecord } from '../record'; export interface GroupSelectStatement { tableName: string; columns: ColumnTypeRecord; key: Key; filters: Filter[]; joins: JoinExpression[]; orders: GroupOrderExpression[]; selection: GroupSelection | null; limit: number | 'all'; offset: number; distinct: boolean; kind: 'group-select-statement'; } export declare function createEmptyGroupSelectStatement(tableName: string, columns: ColumnTypeRecord, key: Key): GroupSelectStatement; export declare function addAscendingGroupOrder(statement: GroupSelectStatement, sortBy: Function): GroupSelectStatement; export declare function addDescendingGroupOrder(statement: GroupSelectStatement, sortBy: Function): GroupSelectStatement; export declare function groupTablesBy(selectStatement: SelectStatement, getKey: Function): GroupSelectStatement;