UNPKG

@discoveryjs/discovery

Version:

Frontend framework for rapid data (JSON) analysis, shareable serverless reports and dashboards

25 lines (24 loc) 879 B
type OnChangeCallback<T> = (value: T, unsubscribe: () => void) => void | Promise<void>; type Subscriber<T> = { callback: OnChangeCallback<T> | null; subscriber: Subscriber<T> | null; }; export declare class Observer<T> { #private; subscriber: Subscriber<T> | null; value: T; constructor(initValue: T, shouldUpdate?: (a: T, b: T) => boolean); get readonly(): { subscribe: Observer<T>["subscribe"]; subscribeSync: Observer<T>["subscribeSync"]; unsubscribe: Observer<T>["unsubscribe"]; readonly value: T; }; subscribe(callback: OnChangeCallback<T>): () => void; subscribeSync(callback: OnChangeCallback<T>): () => void; unsubscribe(callback: OnChangeCallback<T>): void; shouldUpdate(newValue: T, oldValue: T): boolean; set(value: T): boolean; asyncSet(value: T): Promise<boolean>; } export {};