import { Collection, ObjectId } from "mongodb"; import { IListCollection } from "../connections/mongodb"; import { QueryCondition, FindOptions } from "./interfaces/QueryCondition"; import { Column } from "../decorators/interfaces/table"; import { IPagination } from "../global/inteface"; import { WithRelation } from "./interfaces/WithRelation"; export declare abstract class QueryBuilder { protected collection?: Collection; protected withRelations: WithRelation[]; protected getTableName(): keyof IListCollection; getColumns(): Column[]; getNameColumns(): string[]; getRelations(): import("../decorators/interfaces/relationship").IRelationship[]; private getCollection; with(params: WithRelation | WithRelation[]): this; findById(_id: string | ObjectId): Promise; findOne(filter: QueryCondition): Promise; find(filter: QueryCondition, options?: FindOptions): Promise; paginate(filter: QueryCondition, paginate: IPagination, options?: FindOptions): Promise<{ data: T[]; totalCount: number; }>; count(filter: QueryCondition): Promise; createOne(item: Partial): Promise; updateMany(filter: QueryCondition, item: Partial): Promise; delete(filter: QueryCondition): Promise; private validateParamBeforeSaveDB; mappingDataRelation(data: T[], options?: FindOptions): Promise; prepareDataRelation(data: T[], options?: FindOptions): Promise; } export declare class QueryRequest { readonly queryBuilder: QueryBuilder; constructor(queryBuilder: QueryBuilder); private convertQueriesIncludeObjectId; private convertQueriesIncludeString; private convertQueriesIncludeNumber; getQueries(queries: string | null): QueryCondition; validateAndConverOperatorFilter(queries: QueryCondition): QueryCondition; }