import { Clazz, GetIteratorValueProxiedFn } from "../common"; import { WatchedProxyHandler } from "../watchedProxyFacade"; import { ForWatchedProxyHandler } from "../proxyFacade"; export declare class IteratorReadTracker extends Iterator implements ForWatchedProxyHandler> { /** * This field should be set by the method that returns the Iterator. I.e. Array#values */ _getValueProxied?: GetIteratorValueProxiedFn; get _watchedProxyHandler(): WatchedProxyHandler; get _target(): Iterator; constructor(); /** * Pretend that this is an Iterator */ get ["constructor"](): IteratorConstructor; next(...args: unknown[]): IteratorResult; } export declare const IteratorConfig: { clazz: Clazz; worksForSubclasses: boolean; readTracker: typeof IteratorReadTracker; changeTracker: undefined; /** * The methods, not implemented in readTracker, are high-level */ receiverMustBeNonProxied: boolean; /** * The Array/Set/Map's [Symbol.Iterator]/keys/values methods already fires a read of **all** values (simply stupid). So the Iterator/IteratorResult does not need to fire any more. The tests also don't expect this to fire. * Still could be enabled in the future for really fine granular behaviour tracking */ trackTreads: boolean; proxyUnhandledMethodResults: boolean; knownHighLevelMethods: Set; readOnlyMethods: Set; readOnlyFields: Set; trackSettingObjectProperties: boolean; getTrackerClasses(): Clazz[]; }; //# sourceMappingURL=Iterator.d.ts.map