import { IAbstractEntity } from '../../domain'; import { ILaqusRepository } from './repository.interface'; import { DeepPartial, EntityTarget, IRepositoryQueryOptions, ObjectLiteral } from './abstractions'; import { IPaginatedResult, IRepositoryPaginatedQueryOptions, IRepositoryOperationOptions, ITransaction } from './abstractions'; export declare abstract class AbstractRepository implements ILaqusRepository { abstract create(source: DeepPartial): T; abstract createOfType(entityTargetType: EntityTarget, source: DeepPartial): Y; abstract existsById(entityId: string): Promise; abstract startTransaction(): Promise; abstract getById(id: string, options?: IRepositoryQueryOptions): Promise; abstract getByIds(ids: string[], options?: IRepositoryQueryOptions): Promise; abstract getAllPaginated(args: IRepositoryPaginatedQueryOptions): Promise>; abstract getAll(args: IRepositoryPaginatedQueryOptions): Promise; abstract save(entity: T, options?: IRepositoryOperationOptions): Promise; abstract saveMany(entities: T[], options?: IRepositoryOperationOptions): Promise; abstract updateByID(id: string, obj: T, options?: IRepositoryOperationOptions): Promise; abstract merge(obj: T, existingObj: T): Promise; abstract count(): Promise; }