import { MemoizedPromise } from './memoizedPromise'; /** Either a promise to return a type `T`, or `T` itself. */ export declare type Futurable = Promise | T; /** Function that returns a promise of `T`, or `T` itself. */ export declare type LazyFuturable = () => Futurable; /** A promise of `T`, or `T` itself, or a function to return either. */ export declare type FuturableOrLazy = Futurable | LazyFuturable; /** * Returns a futurable from a futurable or a lazy futurable. If lazy, will call * to convert to futurable. Use this at evaluation time only, as any lazy * futurables will be called at this point. * @param futurableOrLazy A `Futurable` or a `LazyFuturable`. */ export declare function futureableOrLazyToFuturable(futurableOrLazy: FuturableOrLazy): Futurable; /** * If the MemoizedPromise is done, will turn into Promise, otherwise will turn * into lazy Promise * @param memoizedPromise The memoized promise to convert. */ export declare function memoizedPromiseToFuturableOrLazy(memoizedPromise: MemoizedPromise): FuturableOrLazy;