export type Prettify = { [K in keyof T]: T[K]; } & {}; export type NotEmptyArray = T extends never[] ? never : T; export type UniqueArray = T extends readonly [infer X, ...infer Rest] ? InArray extends true ? ["Encountered value with duplicates:", X] : readonly [X, ...UniqueArray] : T; type InArray = T extends readonly [X, ...infer _Rest] ? true : T extends readonly [X] ? true : T extends readonly [infer _, ...infer Rest] ? InArray : false; export {};