export type ExcludeByValueType = keyof { [Key in keyof T as ValueType extends T[Key] ? never : Key]: T[Key]; }; export type LiteralUnion = LiteralType | (BaseType & Record); export type DeepPartial = T extends (...args: any[]) => any ? T : T extends object ? { [P in keyof T]?: DeepPartial; } : T; export type NullableType = undefined | null | T; export type SchemaError = { error: string; path: string; };