type PromiseResolve = (value: T | PromiseLike) => void; type PromiseReject = (reason?: unknown) => void; type Result = { promise: Promise; resolve: PromiseResolve; reject: PromiseReject; isPending: () => boolean; isResolved: () => boolean; isRejected: () => boolean; }; export type { PromiseResolve, PromiseReject, Result };