import { AbstractClass, Class } from "type-fest" import { JsonifiableObject } from "type-fest/source/jsonifiable" import { z } from "zod" export type JsonifiableZodSchemaClass< Instance extends Values, JsonifySchemaT extends z.ZodRawShape, JsonifySchemaUnknownKeys extends z.UnknownKeysParam, JsonifySchemaCatchall extends z.ZodTypeAny, DejsonifySchemaT extends z.ZodRawShape, DejsonifySchemaUnknownKeys extends z.UnknownKeysParam, DejsonifySchemaCatchall extends z.ZodTypeAny, Values extends object, JsonifiedValues extends JsonifiableObject, > = ( Class & JsonifiableZodSchemaClassStatic< JsonifySchemaT, JsonifySchemaUnknownKeys, JsonifySchemaCatchall, DejsonifySchemaT, DejsonifySchemaUnknownKeys, DejsonifySchemaCatchall, Values, JsonifiedValues > ) export type JsonifiableZodSchemaAbstractClass< Instance extends Values, JsonifySchemaT extends z.ZodRawShape, JsonifySchemaUnknownKeys extends z.UnknownKeysParam, JsonifySchemaCatchall extends z.ZodTypeAny, DejsonifySchemaT extends z.ZodRawShape, DejsonifySchemaUnknownKeys extends z.UnknownKeysParam, DejsonifySchemaCatchall extends z.ZodTypeAny, Values extends object, JsonifiedValues extends JsonifiableObject, > = ( AbstractClass & JsonifiableZodSchemaClassStatic< JsonifySchemaT, JsonifySchemaUnknownKeys, JsonifySchemaCatchall, DejsonifySchemaT, DejsonifySchemaUnknownKeys, DejsonifySchemaCatchall, Values, JsonifiedValues > ) export type JsonifiableZodSchemaClassStatic< JsonifySchemaT extends z.ZodRawShape, JsonifySchemaUnknownKeys extends z.UnknownKeysParam, JsonifySchemaCatchall extends z.ZodTypeAny, DejsonifySchemaT extends z.ZodRawShape, DejsonifySchemaUnknownKeys extends z.UnknownKeysParam, DejsonifySchemaCatchall extends z.ZodTypeAny, Values extends object, JsonifiedValues extends JsonifiableObject, > = { readonly jsonifySchema: z.ZodObject readonly dejsonifySchema: z.ZodObject }