import { AsyncSeq, AllIterables } from '../../AsyncSeq'; /** * Generates a sequence whose values are the result of sequential execution of a single Promise or multiple Promises; * Promise execution is delayed until the sequence is enumerated. * * ```typescript * const sleepAndRandom = (ms: number) => new Promise(resolve => setTimeout(() => resolve(Math.floor(Math.random() * 100)),ms)); * * const result1 = await deferFromPromise(async () => await sleepAndRandom(1000)).pipe(repeatAsync(3)).toArrayAsync(); * //3 seconds later...result1: [72,14,91] * //sleepAndRandom is executed every time. * ``` * * @param sourceFactory Function that returns Promise or multiple enumerable Promises. * @returns A sequence in which the generation of sources is delayed until the actual enumeration begins. * @typeParam T Source element type. * @category Async Generators * */ export declare function deferFromPromise(sourceFactory: () => Promise | AllIterables>): AsyncSeq;