UNPKG

@discoveryjs/discovery

Version:

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

25 lines (24 loc) 930 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: (callback: OnChangeCallback<T>) => () => void; subscribeSync: (callback: OnChangeCallback<T>) => () => void; unsubscribe: (callback: OnChangeCallback<T>) => void; 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 {};