import { ProxyPropertyKey } from './shared'; import { ObservableMembrane } from './observable-membrane'; export declare type ShadowTarget = object; export declare abstract class BaseProxyHandler { originalTarget: any; membrane: ObservableMembrane; constructor(membrane: ObservableMembrane, value: any); abstract wrapValue(value: any): any; abstract wrapGetter(originalGet: () => any): () => any; abstract wrapSetter(originalSet: (v: any) => void): (v: any) => void; wrapDescriptor(descriptor: PropertyDescriptor): PropertyDescriptor; copyDescriptorIntoShadowTarget(shadowTarget: ShadowTarget, key: ProxyPropertyKey): void; lockShadowTarget(shadowTarget: ShadowTarget): void; abstract set(shadowTarget: ShadowTarget, key: ProxyPropertyKey, value: any): boolean; abstract deleteProperty(shadowTarget: ShadowTarget, key: ProxyPropertyKey): boolean; abstract setPrototypeOf(shadowTarget: ShadowTarget, prototype: any): any; abstract preventExtensions(shadowTarget: ShadowTarget): boolean; abstract defineProperty(shadowTarget: ShadowTarget, key: ProxyPropertyKey, descriptor: PropertyDescriptor): boolean; apply(shadowTarget: ShadowTarget, thisArg: any, argArray: any[]): void; construct(shadowTarget: ShadowTarget, argArray: any, newTarget?: any): any; get(shadowTarget: ShadowTarget, key: ProxyPropertyKey): any; has(shadowTarget: ShadowTarget, key: ProxyPropertyKey): boolean; ownKeys(shadowTarget: ShadowTarget): ProxyPropertyKey[]; isExtensible(shadowTarget: ShadowTarget): boolean; getPrototypeOf(shadowTarget: ShadowTarget): object; getOwnPropertyDescriptor(shadowTarget: ShadowTarget, key: ProxyPropertyKey): PropertyDescriptor | undefined; }