/**
* This module provides APIs for delayed retrieval of values.
*
* Occasionally we need to provide a value to a function or constructor that
* may not yet be initialized. In such cases, a function usually does the trick
* but then valid types of our value are restricted to a function.
*
* By using the Lazy type in combination with the evaluate() function, we can
* accept both raw values and delayed ones via a function.
*/
/**
* Lazy is a type of a value that may be provided directly or via a getter
* function.
*/
export type Lazy = A | (() => A);
/**
* evaluate a potentially lazy value provided its actual value.
*/
export declare const evaluate: (value: Lazy) => A;