/** * A representation for a value that may not be available until the current * transaction is closed. */ export declare class Lazy { constructor(f: () => A); private f; /** * Get the value if available, throwing an exception if not. * In the general case this should only be used in subsequent transactions to * when the Lazy was obtained. */ get(): A; /** * Map the lazy value according to the specified function, so the returned Lazy reflects * the value of the function applied to the input Lazy's value. * @param f Function to apply to the contained value. It must be referentially transparent. */ map(f: (a: A) => B): Lazy; /** * Lift a binary function into lazy values, so the returned Lazy reflects * the value of the function applied to the input Lazys' values. */ lift(b: Lazy, f: (a: A, b: B) => C): Lazy; /** * Lift a ternary function into lazy values, so the returned Lazy reflects * the value of the function applied to the input Lazys' values. */ lift3(b: Lazy, c: Lazy, f: (a: A, b: B, c: C) => D): Lazy; /** * Lift a quaternary function into lazy values, so the returned Lazy reflects * the value of the function applied to the input Lazys' values. */ lift4(b: Lazy, c: Lazy, d: Lazy, f: (a: A, b: B, c: C, d: D) => E): Lazy; }