/** * `void` or `Promise` as return value for maybe async functions. */ export type AsyncVoid = MaybePromise; /** * A value of a type `Type` that may be wrapped in a promise. */ export type MaybePromise = Promise | Type; /** * Thenable object, that is, an object with a `then` method. */ export type Thenable = Readonly<{ then: Promise['then']; }>;