export type Immutable = { readonly [K in keyof T]: Immutable; }; export type RecursivePartial = { [P in keyof T]?: RecursivePartial; }; export type PartialExcept = RecursivePartial & Pick; export interface IRetry { retires: number, max?: number, random?: number, min?: number, fixed?: number, linear?: number, exponential?: number }