export type NextStateGetter = T | ((prev: T) => T); export interface IObservable { get: () => T; onUpdate: (fn: (state: T) => void) => () => void; update: (getNextState: T | ((prev: T) => T)) => void; } export declare class Observable implements IObservable { private _state; private pubsy; constructor(_state: T); get(): T; onUpdate(fn: (state: T) => void): () => void; update(nextStateGetter: NextStateGetter): this; /** * Ability to transform the state * * @param mapFn * @returns */ map(mapFn: (state: T) => T1): Observable; static getNextStateFrom: (prev: T_1, a: NextStateGetter) => T_1; }