export type GenericEnumType = { [key in keyof T]: Partial; }; export type Unboxed = T extends (infer U)[] ? U : T; export type Validator = { validators?: ((args: Unboxed, context: C) => boolean | Promise)[]; enabled: boolean; attributes?: GenericEnumType, boolean>; }; export type Union = GenericEnumType>>; }>;