import { AlreadyExistsError$1 as AlreadyExistsError, InvalidOperation$1 as InvalidOperation, NotFoundError$1 as NotFoundError } from "./base.errors-DyC_RLkA.js"; import { BaseEntity$1 as BaseEntity } from "./base.entity-D5Fatc80.js"; import { Paginated, PaginationOptions$1 as PaginationOptions } from "./pagination-46ewBmLg.js"; 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 as BaseRepository$1, RepositoryError, RepositoryResult }; //# sourceMappingURL=base.repository-Bvbxjiq5.d.ts.map