import { DocumentQuery, Types } from 'mongoose'; import { DocumentType, ReturnModelType } from '@typegoose/typegoose'; import { BaseEntity } from "../models/po/baseentity"; import { AnyParamConstructor } from "@typegoose/typegoose/lib/types"; export declare type ModelClass = ReturnModelType>; export declare type QueryArray = DocumentQuery>, DocumentType>; export declare type QueryEntity = DocumentQuery, DocumentType>; export declare class BaseRepository { protected readonly model: ModelClass; constructor(model: ModelClass); find(conditions: object, projections?: object, options?: { lean: boolean; }, filterDeleted?: boolean): Promise>>; protected findClause(conditions: object, projections?: object, options?: { lean: boolean; }, filterDeleted?: boolean): QueryArray; findOne(conditions: object, projections?: object, options?: { lean: boolean; }, filterDeleted?: boolean): Promise; protected findOneClause(conditions: object, projections?: object, options?: { lean: boolean; }, filterDeleted?: boolean): QueryEntity; findById(id: string, projections?: object, options?: { lean: boolean; }, filterDeleted?: boolean): Promise; findByObjectId(id: Types.ObjectId, projections?: object, options?: { lean: boolean; }, filterDeleted?: boolean): Promise; protected findByIdClause(id: string, projections?: object, options?: { lean: boolean; }, filterDeleted?: boolean): QueryEntity; protected findByObjectIdClause(id: Types.ObjectId, projections?: object, options?: { lean: boolean; }, filterDeleted?: boolean): QueryEntity; create(obj: T): Promise; createMany(objs: T[]): Promise>; update(id: string, obj: Partial, options?: any): Promise>; protected updateClause(id: string, obj: Partial, options?: any): QueryEntity; updateEntity(obj: T, options?: any): Promise>; deleteByObjectId(id: Types.ObjectId): Promise; deleteById(id: string): void; delete(obj: T): void; findByIds(ids: string[], projections?: object, options?: { lean: boolean; }, filterDeleted?: boolean): Promise>>; protected findByIdsClause(conditions: object, projections?: object, options?: { lean: boolean; }, filterDeleted?: boolean): QueryArray; insertIfNotExist(objs: Array): Promise>; }