import { Observable } from 'rxjs'; export declare class Model { 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; } export declare function useModelFactory(): ModelFactory<{}>; export declare const MODEL_PROVIDER: { provide: typeof ModelFactory; useFactory: typeof useModelFactory; };