/** * Aggregation Builder * * Builds database aggregation queries from the uniform ORM interface. * Translates aggregation options to database-specific SQL or aggregation pipelines. */ import { DatabaseType } from '../types/enums'; import { IAggregateOptions, IGroupByOptions, IBuiltAggregation } from '../types/aggregation.interface'; /** * Aggregation builder for translating ORM aggregations to database-specific formats */ export declare class AggregationBuilder { private databaseType; constructor(databaseType: DatabaseType); /** * Build an aggregation query * @param options Aggregation options * @returns Built aggregation ready for execution */ buildAggregation(options: IAggregateOptions): IBuiltAggregation; /** * Build a group by aggregation query * @param options Group by options * @returns Built aggregation ready for execution */ buildGroupBy(options: IGroupByOptions): IBuiltAggregation; private buildPostgresAggregation; private buildPostgresGroupBy; private buildMySQLAggregation; private buildMySQLGroupBy; private buildMongoAggregation; private buildMongoGroupBy; private buildMongoAggregationField; private buildMongoMatch; private translateMongoOperators; private buildMongoHaving; private buildDynamoAggregation; private buildDynamoGroupBy; private buildCassandraAggregation; private buildCassandraGroupBy; private buildAggregationSelectClauses; private buildSingleAggregation; private buildStringAggregation; private buildWhereClause; private buildComparisonClause; private buildHavingClause; private buildHavingCondition; private escapeIdentifier; private getPlaceholder; } /** * Export aggregation operators for external use * Uses lowercase naming convention to match Mongoose/MongoDB style */ export declare const AggregationOperators: { readonly $count: "$count"; readonly $sum: "$sum"; readonly $avg: "$avg"; readonly $min: "$min"; readonly $max: "$max"; readonly $stringAgg: "$stringAgg"; readonly $groupConcat: "$groupConcat"; readonly $arrayAgg: "$arrayAgg"; readonly $first: "$first"; readonly $last: "$last"; }; export type AggregationOperatorType = keyof typeof AggregationOperators;