import { ForcedSubject } from '@casl/ability'; export declare const prismaQuery: (query: { [x: string]: any; }, ...args: unknown[]) => { (...args: any[]): any; ast: import("@ucast/core").Condition; }; export type Model = T & ForcedSubject; export type Subjects>>> = keyof T | { [K in keyof T]: Model; }[keyof T]; /** * Extracts Prisma model name from given object and possible list of all subjects */ export type ExtractModelName = TObject extends { kind: TModelName; } ? TObject['kind'] : TObject extends ForcedSubject ? TObject['__caslSubjectType__'] : TObject extends { __typename: TModelName; } ? TObject['__typename'] : TModelName;