export type Executor = (resolve: ExecResolve, reject: ExecReject) => void | Promise; export type ExecResolve = (value: PromiseLike | T) => void; export type ExecReject = (err: any) => void; export type Status = 'rejected' | 'fullfilled' | 'pending'; export type IterValue> = I extends Iterable ? Awaited : never;