export type ValueOf = T[keyof T]; export type ValueOfA = T[number]; export type UnionToIntersection = (T extends any ? (x: T) => any : never) extends (x: infer R) => any ? R : never; export type RecursiveReadonly = T extends (infer R)[] ? ReadonlyArray> : T extends object ? { readonly [K in keyof T]: RecursiveReadonly; } : T; export type RecursiveRequired = T extends any[] ? T : T extends object ? { [K in keyof T]-?: RecursiveRequired; } : T; export type RecursivePartial = T extends any[] ? T : T extends object ? { [K in keyof T]?: RecursivePartial; } : T; export type ToStrUnion = `${T}`; export type FirstChar = T extends `${infer C}${string}` ? C : never; export type LastChar = T extends `${string}${infer C}` ? C : never; /** * Takes in a string padded with 0's and returns the unpadded string; */ export type UnPad = N extends "0" ? "0" : N extends `0${infer A}` ? UnPad : N; export type AsyncFunction = (...args: unknown[]) => Promise; export type RequiredKeys = keyof T extends infer K extends PropertyKey ? (K extends K ? (T extends Record ? K : never) : never) : never; export type OptionalKeys = Exclude>; export type RequiredOnly = Pick & keyof T>; export type OptionalOnly = Pick & keyof T>; export type AnyKey = string | number | symbol; export type AnyRecord = Record; export type AnyMap = Map; export type AnyFn = (...args: any[]) => any; export type AnyAsyncFn = (...args: any[]) => Promise; export type UnknownRecord = Record; export type UnknownMap = Map; export type UnknownFn = (...args: unknown[]) => unknown; export type VoidLike = void | undefined; export type VoidFn = () => MaybePromise; export type MaybePromise = T | Promise; export type Constructor = abstract new (...args: any) => any; export type Primitives = StringConstructor | NumberConstructor | BooleanConstructor; export type Primitive = T extends string ? string : T extends StringConstructor ? string : T extends number ? number : T extends NumberConstructor ? number : T extends boolean ? boolean : T extends BooleanConstructor ? boolean : T; //# sourceMappingURL=types.d.ts.map