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