export interface PromiseResolvers { promise: Promise; resolve(value: T | PromiseLike): void; reject(reason?: unknown): void; } /** Remove in favor of `Promise.withResolvers()` when the repository's TypeScript lib baseline moves to ES2024. */ export function createPromiseResolvers(): PromiseResolvers { let resolve!: PromiseResolvers["resolve"]; let reject!: PromiseResolvers["reject"]; const promise = new Promise((resolvePromise, rejectPromise) => { resolve = resolvePromise; reject = rejectPromise; }); return { promise, resolve, reject }; }