import { type ModelMeta } from '../../cross'; import type { DbClientContract, EnhancementContext, EnhancementOptions, ZodSchemas } from '../../types'; import type { PolicyDef } from './types'; /** * Options for {@link createEnhancement} * * @private */ export type InternalEnhancementOptions = EnhancementOptions & { /** * Policy definition */ policy: PolicyDef; /** * Model metadata */ modelMeta: ModelMeta; /** * Zod schemas for validation */ zodSchemas?: ZodSchemas; /** * The Node module that contains PrismaClient */ prismaModule: any; /** * A callback shared among enhancements to process the payload for including a relation * field. e.g.: `{ author: true }`. */ processIncludeRelationPayload?: (prisma: DbClientContract, model: string, payload: unknown, options: InternalEnhancementOptions, context: EnhancementContext | undefined) => Promise; }; /** * Gets a Prisma client enhanced with all enhancement behaviors, including access * policy, field validation, field omission and password hashing. * * @private * * @param prisma The Prisma client to enhance. * @param context Context. * @param options Options. */ export declare function createEnhancement(prisma: DbClient, options: InternalEnhancementOptions, context?: EnhancementContext): DbClient;