//#region src/types/helper.d.ts type Primitive = string | number | symbol | bigint | boolean | null | undefined; type LiteralString = "" | (string & Record); type LiteralNumber = 0 | (number & Record); type Awaitable = Promise | T; type OmitId = Omit; type Prettify = Omit; type PreserveJSDoc = { [K in keyof T]: T[K] } & {}; type PrettifyDeep = { [K in keyof T]: T[K] extends ((...args: any[]) => any) ? T[K] : T[K] extends object ? T[K] extends Array ? T[K] : T[K] extends Date ? T[K] : PrettifyDeep : T[K] } & {}; type LiteralUnion = LiteralType | (BaseType & Record); type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never; type RequiredKeysOf = Exclude<{ [Key in keyof BaseType]: BaseType extends Record ? Key : never }[keyof BaseType], undefined>; type HasRequiredKeys = RequiredKeysOf extends never ? false : true; type WithoutEmpty = T extends T ? ({} extends T ? never : T) : never; type StripEmptyObjects = T extends { [K in keyof T]: never } ? never : T extends object ? { [K in keyof T as T[K] extends never ? never : K]: T[K] } : T; type DeepPartial = T extends Function ? T : T extends object ? { [K in keyof T]?: DeepPartial } : T; type Expand = T extends infer O ? { [K in keyof O]: O[K] } : never; //#endregion export { LiteralNumber as a, OmitId as c, PrettifyDeep as d, Primitive as f, WithoutEmpty as g, UnionToIntersection as h, HasRequiredKeys as i, PreserveJSDoc as l, StripEmptyObjects as m, DeepPartial as n, LiteralString as o, RequiredKeysOf as p, Expand as r, LiteralUnion as s, Awaitable as t, Prettify as u };