import { FilterQuery, UpdateQuery, Document, QueryOptions, Model as MongooseModel, PopulateOptions, MongooseUpdateQueryOptions, UpdateWriteOpResult, ClientSession, CreateOptions } from 'mongoose'; import { TPaginationOptions } from '../../types/commonType'; import { IMongooseCommonService } from '../Contracts/IMongooseCommonService'; import { PipelineStage } from 'mongoose'; export declare class MongooseCommonService implements IMongooseCommonService { private model; constructor(model: MongooseModel); findAll(filter: FilterQuery, options?: QueryOptions, populate?: PopulateOptions | PopulateOptions[]): Promise; findOne(filter: FilterQuery, options?: QueryOptions, populate?: PopulateOptions | PopulateOptions[]): Promise; findById(id: string, options?: QueryOptions, populate?: PopulateOptions | PopulateOptions[]): Promise; findAllWithPagination: (filter: FilterQuery, options?: QueryOptions, populate?: PopulateOptions | PopulateOptions[]) => Promise>; count(filter: FilterQuery): Promise; update(filter: FilterQuery, updateData: UpdateQuery, options?: MongooseUpdateQueryOptions & { userId?: string; session?: ClientSession; }): Promise; upsert(filter: FilterQuery, updateData: UpdateQuery, options?: QueryOptions & { userId?: string; session?: ClientSession; }): Promise; create(createData: Partial, options?: CreateOptions & { userId?: string; session?: ClientSession; }): Promise; bulkCreate(createData: Partial[], options?: CreateOptions & { userId?: string; session?: ClientSession; }): Promise; delete(filter: FilterQuery, options?: MongooseUpdateQueryOptions & { userId?: string; session?: ClientSession; }): Promise; hardDelete(filter: FilterQuery, options?: MongooseUpdateQueryOptions & { session?: ClientSession; }): Promise<{ deletedCount?: number; }>; aggregate(pipeline: PipelineStage[]): Promise<{ [key: string]: string | number | object; }[]>; }