/** The read face of a runtime snapshot store (`SnapshotStore` minus the writes). */ export interface ObservableSnapshot { /** Current snapshot; a new reference per committed update. */ getSnapshot: () => T; /** Subscribe to updates; returns the unsubscribe. */ subscribe: (fn: () => void) => () => void; } /** * Bind a snapshot store to a React selector hook. * * The rc.6 original wrapped `useSyncExternalStoreWithSelector`, which also * bailed out of a re-render when the *selected slice* compared equal. That * bail-out is dropped here: the hook re-renders per committed store update and * projects afterwards. The exported hook type never carried an equality * parameter and the card selects the whole snapshot, so the two behave * identically for every present caller — and this way the binding needs no * dependency beyond React itself. * * @param store - observable half of a runtime snapshot store. * @returns hook rendering a projection of the current snapshot. */ export declare function bindSnapshotSelector(store: ObservableSnapshot): (select: (snapshot: Snap) => T) => T;