/** * Extracts the primitive value type from boxed primitives. * * `ValueOf` converts boxed primitive types (Boolean, Number, String) * to their primitive equivalents (boolean, number, string). Non-boxed types are * returned unchanged. * * @template Instance Type to extract primitive from */ export type ValueOf = IsValueOf extends true ? boolean : IsValueOf extends true ? number : IsValueOf extends true ? string : Instance; type IsValueOf> = Instance extends Object ? Object extends IValueOf ? Instance extends Primitive ? false : true : false : false; interface IValueOf { valueOf(): T; } export {};