import { AlreadyExistsError, InvalidOperation, NotFoundError } from "./base.errors-CGFHc3DK.cjs"; import { BaseEntity } from "./base.entity-DPTPwQSw.cjs"; import { Paginated, PaginationOptions } from "./pagination-DOJ1uHHA.cjs"; import { Result } from "@carbonteq/fp"; //#region src/domain/base.repository.d.ts type RepositoryError = NotFoundError | AlreadyExistsError | InvalidOperation; type CommonRepoErrors = InvalidOperation; type RepositoryResult = Result; declare abstract class BaseRepository { abstract insert(entity: T): Promise>; abstract update(entity: T): Promise>; fetchAll?(): Promise>; fetchPaginated?(options: PaginationOptions): Promise>>; fetchById?(id: BaseEntity["id"]): Promise>; deleteById?(Id: BaseEntity["id"]): Promise>; fetchBy?(prop: U, val: T[U]): Promise>; existsBy?(prop: U, val: T[U]): Promise>; deleteBy?(prop: U, val: T[U]): Promise>; } //#endregion export { BaseRepository, RepositoryError, RepositoryResult }; //# sourceMappingURL=base.repository-14PF_592.d.cts.map