export type IsAnyOrUnknown = false extends (any extends T ? true : false) ? false : true; export type IsExactOptionalPropertyTypes = Required<{ e?: string | undefined; }>['e'] extends string ? false : true; export type LoopOver = { [K in keyof T]: T[K]; }; type KeyOfMap> = T extends Map ? U : never; export type KeyOf = T extends Map ? KeyOfMap : keyof T; export type ValueOf = T extends Map ? U : T[keyof T]; export type NonUndefined = T extends undefined ? never : T; export type Entries = { [K in KeyOf]: (T extends Map ? [K, U] : [ K extends number ? `${K}` : K, IsExactOptionalPropertyTypes extends false ? T[K] : T extends { [k in K]: unknown; } ? T[K] : Required[K] extends NonUndefined ? NonUndefined : T[K] ]); }[KeyOf][]; export type KeyOfUnion = T extends unknown ? keyof T : never; export type TheSame = (T extends U ? U extends T ? true : false : false); export declare function ObjEntries(obj: T): Entries; export declare function ObjFromEntries(entries: Array): Record; type IsNotRecordOrUnknown = (T extends Record ? false : unknown extends T ? false : true); type IsBadParamForObjKeys = (null extends T ? IsNotRecordOrUnknown : undefined extends T ? IsNotRecordOrUnknown : false); export declare function ObjKeys ? never : unknown>(obj: T): (IsAnyOrUnknown extends true ? ReturnType : T extends Map ? KeyOf[] : T extends Record ? Array extends infer U ? U extends KeyOf ? U extends string ? U : `${U}` : never : never> : ReturnType); export declare function ObjValues(obj: T): ValueOf[]; export declare const twoDigitsMin: (value: string | number) => string; export declare function trimMultiline(strings: TemplateStringsArray, ...params: unknown[]): string; export declare function round(n: number, precision?: number): number; export declare function getRandom(max: number): number; export declare function getRandom(from: number, to: number): number; export declare function getRandom(str: string): string; export declare function getRandom(arr: T[]): T; export type ThenArg = T extends PromiseLike ? ThenArg : T; export type ExtractGeneric = T extends Array ? U : never; export type ExtractSet = T extends Set ? U : never; export type GeneratorParams = T extends Generator ? [U, M, A] : never; export type GuardedType = T extends (e: any) => e is infer U ? U : never; export declare const wait: (seconds: number) => Promise; export * from './ExactShape'; export * from './makeUnderLangPropsCreator'; export type NonExactOptional = ({ [K in keyof T as undefined extends T[K] ? never : K]: T[K]; } & { [K in keyof T as undefined extends T[K] ? K : never]: T[K] | undefined; }); export type Optional = Partial> & Omit; export * from './branded'; export declare const typeOf: (e: unknown) => string; export type IsNegative = `${T}` extends `-${string}` ? true : false; export type IsPositive = (T extends 0 ? false : `${T}` extends `-${string}` ? false : true); export * from './isArrayLength'; export * from './isArrayIncludes'; export * from './MinTupleLength'; export * from './isTruthy'; export * from './DeepPartial'; export type Combine = (Omit & Pick); export declare const tuple: (...params: T) => T; export * from './Union'; export * from './Unionize'; export * from './unionObject'; export * from './OptionalKeys'; export * from './null-undefined';