import { DeepSyncOptions } from './deep/deep_sync_adv'; declare const syncedObservableSymbol: unique symbol; interface SyncedObservableOptions extends DeepSyncOptions { delete_missing?: boolean; } declare class SyncedObservable { protected source: any; protected readonly dest: any; protected readonly options: SyncedObservableOptions; constructor(source: any, dest: any, options: SyncedObservableOptions); get value(): any; /** * Sync the observable with the passed `from` object, or from the original object * @param from */ sync(from?: T): void; /** * Refreshes the observable from the original object */ refresh(): void; } declare class SyncedObservableProxy { private [syncedObservableSymbol]; /** * Sync the observable with the passed `from` object, or from the original object * @param from */ sync(from?: T): void; /** * Refreshes the observable from the original object */ refresh(): void; } /** * Convert plain or immutable objects into observables. * * The returned observable is a duplicate of the given object, * but has a `sync(from?)` method on it that, when called, will * sync itself to the values from the passed `from` or from the original object * if `from` is not specified. * * @param source An object to duplicate into an Observable * @param options Additional options */ export declare function synced_observable(source: T, options?: SyncedObservableOptions): T & SyncedObservableProxy; export declare function safe_synced_observable(from: T, options?: SyncedObservableOptions): SyncedObservable; export declare function sync_to_observable(target: any, obj: T, options?: SyncedObservableOptions & { currentPath?: string[]; }): T; export {};