import { FacadeProxyHandler, IWatchedProxyHandler_common, ProxyFacade, RecordedReadOnProxiedObject } from "./proxyFacade"; import { AfterReadListener, ChangeListener, EventHook, ObjKey, RecordedRead } from "./common"; import { RecordedReadOnProxiedObjectExt } from "./RecordedReadOnProxiedObjectExt"; /** * Access a single value (=variable or return value from a function) * This read is can only be constructed manually (not through a WatchedProxyFacade / WatchedProxyHandler */ export declare class RecordedValueRead extends RecordedRead { value: unknown; constructor(value: unknown); get isChanged(): boolean; onAfterChange(listener: () => void, trackOriginal?: boolean): void; offAfterChange(listener: () => void): void; equals(other: RecordedRead): boolean; } export declare class RecordedPropertyRead extends RecordedReadOnProxiedObjectExt { key: ObjKey; value: unknown; constructor(key: ObjKey, value: unknown); get isChanged(): boolean; getAffectingChangeHooks(target: this["origObj"]): EventHook[]; equals(other: RecordedRead): boolean; } export declare class RecordedOwnKeysRead extends RecordedReadOnProxiedObjectExt { value: ArrayLike; constructor(value: RecordedOwnKeysRead["value"]); get isChanged(): boolean; getAffectingChangeHooks(target: this["origObj"]): EventHook[]; equals(other: RecordedRead): boolean; } /** * Fired when a method was called that is not implemented in the supervisor. May be from a future js version */ export declare class RecordedUnspecificRead extends RecordedReadOnProxiedObjectExt { get isChanged(): boolean; getAffectingChangeHooks(target: this["origObj"]): EventHook[]; equals(other: RecordedRead): boolean; } /** * Use cases: * - record read + watch recorded for modifications. For re-render trigger * - record read and make several snapshots (when load is called) and compare exactly those reads */ export declare class WatchedProxyFacade extends ProxyFacade { trackReadsOnPrototype: boolean; /** * Called after a read has been made to any object inside this facade * @protected */ _afterReadListeners: Set; onAfterRead(listener: AfterReadListener): void; offAfterRead(listener: AfterReadListener): void; constructor(); /** * Watches for writes on a specified property * @param obj * @param key Not restricted here (for the tests), but it must not be number ! * @param listener */ onAfterWriteOnProperty(obj: O, key: K, listener: ChangeListener): void; /** * Watches for writes on a specified property * @param obj * @param key Not restricted here (for the tests), but it must not be number ! * @param listener */ offAfterWriteOnProperty(obj: O, key: K, listener: ChangeListener): void; protected crateHandler(target: object, facade: any): WatchedProxyHandler; } export declare class WatchedProxyHandler extends FacadeProxyHandler implements IWatchedProxyHandler_common { constructor(target: object, facade: WatchedProxyFacade); get trackingConfig(): import("./common").ClassTrackingConfiguration | undefined; fireAfterRead(read: RecordedReadOnProxiedObject): void; getFacade(): WatchedProxyFacade; get(fake_target: object, key: string | symbol, receiver: any): any; rawRead(key: ObjKey): unknown; protected rawChange(key: string | symbol, newUnproxiedValue: any): void; deleteProperty(target: object, key: string | symbol): boolean; ownKeys(target: object): ArrayLike; isForArray(): boolean; isForSet(): boolean; isForMap(): boolean; } //# sourceMappingURL=watchedProxyFacade.d.ts.map