export type ReturnTypeWithArgs any, ARGS_T> = Extract[1]; export type ArrayWithAtLeastOneElement = [T, ...T[]]; export type BooleanAnd = A extends M ? B extends M ? true : false : false; export type Not = A extends true ? false : true; export type Primitive = string | number | boolean | null; export type PrimitivesWithBasicRecordAndArray = Primitive | Array | Record; export type UnionToIntersection = (T extends any ? (x: T) => any : never) extends (x: infer R) => any ? R : never; export type Prettify = { [K in keyof T]: T[K]; } & {};