import type { Marker } from '@edgepdf/types'; /** * Detaches a marker from `MarkerManager`'s mutable internal state. * * `MarkerManager` stores markers in a `Map` and mutates them **in place** — * `updateMarker` assigns `marker.icon`, `updateMarkerPosition` assigns * `marker.position`/`x`/`y`/`zoom` — while `getAllMarkers()` hands back live * references to those same objects. * * Published markers land in React state and are commonly forwarded straight to * a backend. Live references would keep changing underneath consumers — a * `useMemo`/`useEffect` keyed on a marker would never re-run, and a payload * built during render could be mutated before it is sent. `position` and * `icon` are copied too, since both are reassigned wholesale on update. */ export declare function cloneMarker(marker: Marker): Marker; /** * True when both lists hold the same markers with the same values. * * Compared by id rather than by index, so reordering alone is not a change — * matching the behaviour of the comparison this replaced. * * Safe to call with a previously published list because those are clones: a * snapshot taken now survives any later in-place mutation of the marker it * came from. Comparing against live `getAllMarkers()` results would instead * alias the current state and report "unchanged" for every edit. */ export declare function markersEqual(a: Marker[], b: Marker[]): boolean; //# sourceMappingURL=marker-snapshot.d.ts.map