import { CrudService } from '@nestjs-crud/core'; import type { CacheStrategy } from '@nestjs-crud/core/cache'; import type { CursorPaginatedResponse } from '@nestjs-crud/core/cursor'; import type { CreateManyDto, CrudRequest, GetManyDefaultResponse } from '@nestjs-crud/core'; import { PrismaClientLike, PrismaQueryTranslatorConfig } from './interfaces'; import { PrismaQueryTranslator } from './prisma-query-translator'; export interface PrismaCrudServiceConfig extends PrismaQueryTranslatorConfig { logger?: { error: (msg: string, trace?: string) => void; warn?: (msg: string) => void; debug?: (msg: string) => void; }; /** Optional cache backend. When set, reads are wrapped and writes call invalidate. */ cacheStrategy?: CacheStrategy; } export declare class PrismaCrudService> extends CrudService { protected readonly prisma: PrismaClientLike; protected readonly modelName: string; protected readonly serviceConfig: PrismaCrudServiceConfig; protected readonly translator: PrismaQueryTranslator; constructor(prisma: PrismaClientLike, modelName: string, serviceConfig: PrismaCrudServiceConfig); getMany(req: CrudRequest): Promise | CursorPaginatedResponse | T[]>; getOne(req: CrudRequest): Promise; createOne(req: CrudRequest, dto: T | Partial): Promise; createMany(req: CrudRequest, dto: CreateManyDto): Promise; updateOne(req: CrudRequest, dto: T | Partial): Promise; replaceOne(req: CrudRequest, dto: T | Partial): Promise; deleteOne(req: CrudRequest): Promise; recoverOne(req: CrudRequest): Promise; /** * Resolve the effective cache strategy at request time. * Priority: serviceConfig field > CrudConfigService global > undefined. * Called at request time so `CrudConfigService.load(...)` after app bootstrap works. */ protected _resolveCacheStrategy(): CacheStrategy | undefined; protected getDelegate(): any; protected buildPkWhere(entity: Record): Record; protected mergePrimaryParamsIntoWhere(where: Record, req: CrudRequest): Record; protected prepareForSave(dto: T | Partial, req: CrudRequest): Record; protected getAuthPersist(req: CrudRequest): Record; protected getOneOrFail(req: CrudRequest): Promise; /** * Invalidate all cache entries for this entity after a successful write. * Errors are logged and swallowed — cache invalidation failure must NOT * take the write path offline. */ private _invalidateCache; private doGetManyCursor; }