import type { hkt } from '@casl/ability'; import type { ExtractModelName, Model } from './prisma/prismaQuery'; export type PrismaTypeMap = { model: Record; }; }; }; }>; }; export type PrismaTypes> = { ModelName: Extract; WhereInput: { [K in keyof TTypeMap['model']]: Extract>; }; }; interface PrismaQueryTypeFactory> extends hkt.GenericFactory { produce: PrismaTypes['WhereInput'][ExtractModelName['ModelName']>]; } export type PrismaModel = Model, string>; export declare const ɵprismaTypes: unique symbol; export type PrismaQueryFactory, T = PrismaModel> = PrismaTypes['WhereInput'][ExtractModelName['ModelName']>] & hkt.Container> & { [ɵprismaTypes]?: PrismaTypes; }; export type PrismaQueryOf, T extends PrismaModel = PrismaModel> = PrismaQueryFactory; export type WhereInputOf, TModelName extends PrismaTypes['ModelName']> = PrismaTypes['WhereInput'][TModelName]; export type BasePrismaQuery = { [ɵprismaTypes]?: PrismaTypes>; }; export type InferPrismaTypes = Exclude; export {};