import { Observable } from 'rxjs'; export interface ReactiveValue { value: T; valueChanges$: Observable; } export declare class Reactive implements ReactiveValue { private _value; constructor(initialValue: T); private _valueChanges$; valueChanges$: Observable; update(newValue: T): void; get value(): T; } export declare function reactive(initialValue: T): Reactive; declare class Computed implements ReactiveValue { getterFn: () => T; valueChanges$: Observable; constructor(getterFn: () => T); get value(): T; } export declare class InputReactive implements ReactiveValue { private _value; constructor(initialValue: T); private _valueChanges$; valueChanges$: Observable; nonUiValueChanges$: Observable<{ value: T; fromUI: boolean; }>; update(newValue: T, { fromUI }?: { fromUI: boolean; }): void; get value(): T; } export declare function inputReactive(initialValue: T): InputReactive; export declare function computed(getterFn: () => T): Computed; export {};