import { Observable } from 'rxjs'; export declare type ValueResolver = () => Promise; export declare type Resolver = (key: number) => Promise; export declare type Modifier = (old: T) => Promise; export interface IObservableHash { [key: number]: LazyObservable; } export declare class LazyObservable { private readonly initialized; private readonly value; constructor(defaultValue: T, resolver: ValueResolver); get initialized$(): Observable; get value$(): Observable; modify(modifier: Modifier): Promise; } export declare class LazyObservableCache { private defaultValue; private resolver; private readonly values; constructor(defaultValue: T, resolver: Resolver); find(key: number): LazyObservable; has(key: number): boolean; clear(key: number): void; reset(): void; }