import { IObservable } from '../observable/type/observable.type';
export declare type IObservableProxy<GData> = {
    [GKey in keyof GData]: IObservableProxy<GData[GKey]>;
} & {
    '$': IObservable<GData>;
    '$array': IObservable<readonly IObservableProxy<any>[]>;
};
export declare function createObservableProxy<GData extends object>(data: IObservable<GData>, path?: PropertyKey[]): IObservableProxy<GData>;
/**
 * THIS VERSION SUPPORTS SET AND GET (PRIMITIVE)
 * But it is too permissive and allows really bad habits/pattern/usage
 */
