/** Type alias for something that may or may not be wrapped in a promise. */ export type Awaitable = T | Promise /** Type alias for something that may be undefined. */ export type Maybe = T | undefined /** Type alias for a callback that accepts a typed argument. */ export type ParameterizedCallback = ((arg: T) => any) /** A key-value form of a given type. */ export type KeyValue = {key: string, value: T}