import type { DocumentClass, BaseDocument } from './document'; export type OrmEntityDocument = Omit & BaseDocument & { id: string; _id: unknown; }; export declare abstract class OrmRepository, TDocument extends object = OrmEntityDocument> { abstract get collectionName(): string; abstract get entity(): DocumentClass; abstract find(filter?: TFilter, options?: TFindManyOptions): Promise>; abstract findOne(filter?: TFilter, options?: TFindOneOptions): Promise; abstract findById(id: unknown, options?: TFindOneOptions): Promise; abstract count(filter?: TFilter, options?: TFindManyOptions): Promise; abstract exists(filter?: TFilter, options?: unknown): Promise; abstract findOneOrFail(filter?: TFilter, options?: TFindOneOptions): Promise; abstract findByIdOrFail(id: unknown, options?: TFindOneOptions): Promise; abstract updateOne(filter: TFilter, update: TUpdate, options?: unknown): Promise; abstract increment(filter: TFilter, field: string, by?: number, options?: unknown): Promise; abstract distinct(field: string, filter?: TFilter, options?: unknown): Promise; abstract findAndCount(filter?: TFilter, options?: TFindManyOptions): Promise<[Array, number]>; abstract insertOne(doc: TInsert, options?: unknown): Promise; abstract insertMany(docs: TInsert[], options?: unknown): Promise>; abstract save(entity: Partial & { id?: string; _id?: unknown; }, options?: unknown): Promise; abstract updateMany(filter: TFilter, update: TUpdate, options?: unknown): Promise; abstract softDelete(filter: TFilter, options?: unknown): Promise; abstract restore(filter: TFilter, options?: unknown): Promise; abstract deleteHard(filter: TFilter, options?: unknown): Promise; abstract deleteMany(filter: TFilter, options?: unknown): Promise; } export type OrmRepositoryContract = OrmRepository; //# sourceMappingURL=repository.d.ts.map