/** * An object that can be of any valid values but has string-only keys * * - Slightly better than using `any` or `object` types as it requires the value to * be a plain object. */ export type AnyObj = { [key: string]: any; }; export type UnknownObj = Record; /** * An object of type `{}` , however Typescript defines that as * "any non-null value", so this represents the same as * * @example * ```typescript * const emptyObj = {} * ``` */ export type EmptyObj = { [key: string]: never; }; /** * Expand will expand an object type by rebuilding the object at the point it is used. * which can be useful when the type is obscured due to utility types and you want * to see the underlying type that is expected. * * - This can be very useful when a type is confusing at first glance, if it is * using utilities like Extract, Pick, Omit, extends, etc then `Expand` will * unwrap that into a coherent/flat type you can understand. * * @category Type - Utilities * * @example * ```typescript * // the ExpandedCandle can be hovered to see the properties of KumaCandle directly * type ExpandedCandle = Expand; * ``` */ export type Expand = T extends infer O ? { [K in keyof O]: O[K]; } : never; export type ExpandDeep = T extends ({ [key: string]: any; }) ? T extends infer O ? { [K in keyof O]: K extends E ? O[K] : ExpandDeep; } : never : T; export type AugmentedOptional = Expand & Partial> : never>; /** * Augments a type so that the provided keys are all changed to required. */ export type AugmentedRequired = Expand & Required> : never>; /** * Used to turn a type into the expected type for an actual request with * parameters and signature properties. * * @category Type Utilities */ export interface RestRequestWithSignature { readonly parameters: T; readonly signature: string; } export interface Paginated { count: number; items: I; } //# sourceMappingURL=utils.d.ts.map