export type Constructor = new (...args: any[]) => T; export type MaybePromise = T | Promise; export type SingleOrArray = T | T[]; export type OmitFirstParam = F extends (x: any, ...args: infer A) => infer R ? (...args: A) => R : never; /** * Object that can be JSON.stringify. */ export type Stringifyable = string | number | boolean | null | undefined | { [P: string]: Stringifyable; } | Stringifyable[]; export type StringifyableRecord = Record; export type Prop = K extends keyof T ? T[K] : never; export type Values = T[keyof T]; export type ArrayItems = T extends (infer K)[] ? K : T; export type Merge = Omit & N; //# sourceMappingURL=type-helper.d.ts.map