import type { Aggregable, AggregationClause, AggregationOperator, ColumnMetadata, Query } from "./types";
export declare function availableAggregationOperators(query: Query, stageIndex: number): AggregationOperator[];
export declare function aggregationOperatorColumns(operator: AggregationOperator): ColumnMetadata[];
export declare function selectedAggregationOperators(operators: AggregationOperator[], clause: AggregationClause): AggregationOperator[];
export declare function aggregate(query: Query, stageIndex: number, clause: Aggregable): Query;
export declare function aggregateByCount(query: Query, stageIndex: number): Query;
export declare function aggregations(query: Query, stageIndex: number): AggregationClause[];
export declare function aggregationClause(operator: AggregationOperator, column?: ColumnMetadata): AggregationClause;
export declare function aggregationColumn(query: Query, stageIndex: number, aggregation: AggregationClause): ColumnMetadata;
