import { Observable } from 'rxjs'; export declare class Model { private immutable; private clone?; private _data; data$: Observable; constructor(initialData: any, immutable: boolean, sharedSubscription: boolean, clone?: (data: T) => T); get(): T; set(data: T): void; } export declare class ModelFactory { create(initialData: T): Model; createMutable(initialData: T): Model; createMutableWithSharedSubscription(initialData: T): Model; createWithCustomClone(initialData: T, clone: (data: T) => T): Model; createWithConfig(config: { initialData: T; immutable: boolean; sharedSubscription: boolean; clone: (data: T) => T; }): Model; }