/** @internal */ export type PromiseWithResolvers = { promise: Promise resolve: (value: type | PromiseLike) => void reject: (reason?: unknown) => void } /** @internal */ export function withResolvers(): PromiseWithResolvers { let resolve: PromiseWithResolvers['resolve'] = () => undefined let reject: PromiseWithResolvers['reject'] = () => undefined const promise = new Promise((resolve_, reject_) => { resolve = resolve_ reject = reject_ }) return { promise, resolve, reject } }