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, JsonifiedValues extends JsonifiableObject, Values extends object, > = ( Class & JsonifiableZodSchemas< JsonifySchemaT, JsonifySchemaUnknownKeys, JsonifySchemaCatchall, DejsonifySchemaT, DejsonifySchemaUnknownKeys, DejsonifySchemaCatchall, JsonifiedValues, Values > ) 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, JsonifiedValues extends JsonifiableObject, Values extends object, > = ( AbstractClass & JsonifiableZodSchemas< JsonifySchemaT, JsonifySchemaUnknownKeys, JsonifySchemaCatchall, DejsonifySchemaT, DejsonifySchemaUnknownKeys, DejsonifySchemaCatchall, JsonifiedValues, Values > ) export type JsonifiableZodSchemas< JsonifySchemaT extends z.ZodRawShape, JsonifySchemaUnknownKeys extends z.UnknownKeysParam, JsonifySchemaCatchall extends z.ZodTypeAny, DejsonifySchemaT extends z.ZodRawShape, DejsonifySchemaUnknownKeys extends z.UnknownKeysParam, DejsonifySchemaCatchall extends z.ZodTypeAny, JsonifiedValues extends JsonifiableObject, Values extends object, > = { readonly jsonifySchema: z.ZodObject readonly dejsonifySchema: z.ZodObject }