export type Promisable = Promise | T; export type Requirable = R extends true ? T : T | undefined; export type AnyFn = (...args: any[]) => Promisable;