import type { Dep } from './types'; /** Symbol for tracking iteration dependencies (forEach, keys, values, entries, size) */ export declare const ITERATION_KEY: unique symbol; /** WeakMap to get raw object from reactive proxy */ export declare const reactiveToRaw: WeakMap; /** WeakMap to get reactive proxy from raw object */ export declare const rawToReactive: WeakMap; /** * Returns the raw, original object from a reactive proxy. * If the value is not a proxy, returns it as-is. */ export declare function toRaw(observed: T): T; /** * Checks if a value is a reactive proxy created by signal(). */ export declare function isReactive(value: unknown): boolean; /** * Checks if a value is a collection type (Set, Map, WeakSet, WeakMap). */ export declare function isCollection(value: unknown): value is Map | Set | WeakMap | WeakSet; /** * Checks if a value is an iterable collection (Set or Map, not Weak variants). */ export declare function isIterableCollection(value: unknown): value is Map | Set; /** * Checks if a value is an "exotic" built-in object that should NOT be proxied. * These objects have internal slots that cannot be accessed through Proxy. * Proxying them causes errors like "Method X called on incompatible receiver". */ export declare function shouldNotProxy(value: unknown): boolean; /** * Creates instrumented collection methods that properly handle reactivity. * These methods call the real collection methods on the raw object while * tracking dependencies and triggering updates. * * `notify` is the devtools update hook — called from every write method * so Map/Set mutations are visible to the panel. Pass a no-op when * devtools isn't relevant. The `key` argument it receives is a * stringifiable identifier for the affected slot (the mutated key for * `add`/`set`/`delete`, or a synthetic `'clear'` marker for `clear`). */ export declare function createCollectionInstrumentations(target: any, depsMap: Map, getOrCreateDep: (key: string | symbol) => Dep, notify?: (key: string | symbol) => void): { instrumentations: Record; setProxy(p: any): void; }; //# sourceMappingURL=collections.d.ts.map