UNPKG

jinaga

Version:

Data management for web and mobile applications.

43 lines 1.54 kB
import { FactManager } from "../managers/factManager"; import { Specification } from "../specification/specification"; import { FactReference, ProjectedResult } from "../storage"; export declare type ResultAddedFunc<U> = (value: U) => Promise<() => Promise<void>> | // Asynchronous with removal function Promise<void> | // Asynchronous without removal function (() => void) | // Synchronous with removal function void; export interface ObservableCollection<T> { onAdded(handler: ResultAddedFunc<T>): void; } export interface Observer<T> { cached(): Promise<boolean>; loaded(): Promise<void>; stop(): void; } export declare class ObserverImpl<T> implements Observer<T> { private factManager; private given; private specification; private givenHash; private cachedPromise; private loadedPromise; private listeners; private removalsByTuple; private notifiedTuples; private addedHandlers; private specificationHash; private feeds; private stopped; constructor(factManager: FactManager, given: FactReference[], specification: Specification, resultAdded: ResultAddedFunc<T>); start(keepAlive: boolean): void; private addSpecificationListeners; cached(): Promise<boolean>; loaded(): Promise<void>; stop(): void; private fetch; private read; private onResult; private notifyAdded; notifyRemoved(resultSubset: string[], projectedResult: ProjectedResult[]): Promise<void>; private injectObservers; } //# sourceMappingURL=observer.d.ts.map