//#region lib/types/utils.d.ts type Equal = (() => T extends X ? 1 : 2) extends (() => T extends Y ? 1 : 2) ? true : false; type IsAny = 0 extends 1 & T ? true : false; type Func = (...args: any[]) => unknown; type Pretty = { [K in keyof T]: T[K] } & {}; type Normalize = _Normalize, T>; type _Normalize = T extends infer U ? Pretty<{ [K in Key as K extends keyof U ? undefined extends U[K] ? never : K : never]: K extends keyof U ? U[K] : never } & { [K in Key as K extends keyof U ? undefined extends U[K] ? K : never : never]?: K extends keyof U ? U[K] : never } & { [K in Key as K extends keyof U ? never : K]?: undefined }> : never; type UnionKeys = T extends any ? keyof T : never; //#endregion export { Equal, Func, IsAny, Normalize, Pretty };