export declare function stamp(target: T, key: symbol, compute: (target: T) => V): V; export declare function epochNext(): number; /** * Marks `target` as visited for this `epoch`. Returns `true` the first time * it is called for a given (target, epoch) pair and `false` on every * subsequent call within the same epoch. */ export declare function once(target: T, epoch: number): boolean; /** * Returns `true` on first entry, `false` if `target` is already on the * current path. A `false` return does NOT deepen the counter — callers pair * `exit` only with successful enters (`if (!enter(n)) bail; try {…} finally * { exit(n); }`), so incrementing on the cycle branch would leak depth and * make every later top-level walk of the same object misreport a cycle. */ export declare function enter(target: T): boolean; export declare function exit(target: T): void;