/** * Query DSL — barrel export. * * Public API: * - `Query` — chainable, immutable builder * - `QuerySource` — interface for record sources (Collection implements it) * - `Operator` — comparison operators accepted by `where()` * - `QueryPlan` — serializable plan object * * Tree-shakeable: importing this barrel without calling `query()` does not * pull in the executor's runtime, since `Query` is the only entry point. */ export { Query, executePlan, DEFAULT_CROSS_JOIN_MAX_ROWS } from './builder.js'; export type { QueryPlan, QuerySource, OrderBy } from './builder.js'; export type { Operator, Clause, FieldClause, FilterClause, GroupClause, CrossJoinClause } from './predicate.js'; export { evaluateClause, evaluateFieldClause, readPath } from './predicate.js'; export { CollectionIndexes } from '../../with-lookup/indexing/eager-indexes.js'; export type { IndexDef, HashIndex } from '../../with-lookup/indexing/eager-indexes.js'; export { applyJoins, DEFAULT_JOIN_MAX_ROWS, resetJoinWarnings } from './join.js'; export type { JoinLeg, JoinContext, JoinableSource, JoinStrategy } from './join.js'; export { buildLiveQuery } from './live.js'; export type { LiveQuery, LiveUpstream } from './live.js'; export { count, sum, avg, min, max, moneySum, moneyMin, moneyMax, reducerBuilder } from '../../with-lookup/aggregate/reducers.js'; export type { Reducer, ReducerOptions, ReducerBuilder } from '../../with-lookup/aggregate/reducers.js'; export { Aggregation, reduceRecords, buildLiveAggregation } from '../../with-lookup/aggregate/aggregation.js'; export type { AggregateSpec, AggregateResult, AggregationUpstream, LiveAggregation, } from '../../with-lookup/aggregate/aggregation.js'; export { GroupedQuery, GroupedQueryN, GroupedAggregation, groupAndReduce, resetGroupByWarnings, GROUPBY_WARN_CARDINALITY, GROUPBY_MAX_CARDINALITY, } from '../../with-lookup/aggregate/groupby.js'; export type { GroupedRow, GroupedRowN } from '../../with-lookup/aggregate/groupby.js'; export { ScanBuilder } from './scan-builder.js'; export type { ScanPageProvider } from './scan-builder.js'; export { GroupCardinalityError, IndexRequiredError, IndexWriteFailureError, JoinTooLargeError, DanglingReferenceError, CrossJoinTooLargeError, CrossJoinSourceUnknownError, FieldNotQueryableError, } from '../errors.js';