import { ProxyPropertyKey } from './shared'; declare type ValueObservedCallback = (obj: any, key: ProxyPropertyKey) => void; declare type ValueMutatedCallback = (obj: any, key: ProxyPropertyKey) => void; declare type IsObservableCallback = (value: any) => boolean; export interface ObservableMembraneInit { valueMutated?: ValueMutatedCallback; valueObserved?: ValueObservedCallback; valueIsObservable?: IsObservableCallback; tagPropertyKey?: ProxyPropertyKey; } export declare class ObservableMembrane { valueMutated: ValueMutatedCallback; valueObserved: ValueObservedCallback; valueIsObservable: IsObservableCallback; tagPropertyKey: ProxyPropertyKey | undefined; private readOnlyObjectGraph; private reactiveObjectGraph; constructor(options?: ObservableMembraneInit); getProxy(value: any): any; getReadOnlyProxy(value: any): any; unwrapProxy(p: any): any; private getReactiveHandler; private getReadOnlyHandler; } export {};