import { type IAtomicChange } from "json-diff-ts";
type ProcessUpdateFn = (applyChanges: () => void) => void;
type RecursivelyObservableOptions<T extends object> = {
    processUpdate?: ProcessUpdateFn;
    onUpdate: (changes: IAtomicChange[], data: T) => void;
};
export declare function recursivelyObservable<T extends object>(data: T, opts: RecursivelyObservableOptions<T>): T;
export {};
