import { ModelDef, ModelShape, OrderBy, PaginationConfig, QueryContextMeta, SelectAst } from './types'; import { Where } from './where-dsl'; export interface QueryExecutor { executeSelect>(ast: SelectAst, ctx?: QueryContextMeta): Promise; } export declare class QueryBuilder> { private readonly model; private readonly executor; private _selection; private _where; private _orderBy; private _limit; private _offset; private _pagination; constructor(model: TModel, executor: QueryExecutor); select(sel?: Partial & string, boolean>>): this; where(filter?: Where>): this; orderBy(order?: OrderBy>): this; limit(n: number): this; offset(n: number): this; paginate(cfg: PaginationConfig): this; private buildAst; getMany(ctx?: QueryContextMeta): Promise>>; getOne(ctx?: QueryContextMeta): Promise | null>; } export declare class ORMQueryAPI> { private readonly model; private readonly executor; constructor(model: TModel, executor: QueryExecutor); select(sel?: Partial & string, boolean>>): QueryBuilder; where(filter?: Where>): QueryBuilder; orderBy(order?: OrderBy>): QueryBuilder; limit(n: number): QueryBuilder; offset(n: number): QueryBuilder; paginate(cfg: PaginationConfig): QueryBuilder; }