export type Future<T = void> = PromiseWithResolvers<T>;
export type MaybePromise<T> = T | Promise<T>;
export type MaybeArray<T, R extends boolean = false> = T | (R extends false ? T[] : readonly T[]);
export type ValueOf<T extends object> = T[keyof T];
