import { AbstractStateful } from "../../core/stateful/abstract.stateful"; export type StatefulSubscriber = (value: T) => void; export type StatefulSetter = (value: T) => T; export declare class Stateful implements AbstractStateful { private _value; private _subscribers; private _version; constructor(_value: T); Get(): T; If(predicate: (value: T) => boolean, then: (value: T) => U, otherwise: (value: T) => U, factory?: (value: U) => Stateful): Stateful; DirectSet(value: T): void; Set(fabric: StatefulSetter): void; Subscribe(subscriber: StatefulSubscriber): () => void; Notify(): void; Dispose(): void; get Value(): T; get Version(): number; }