//#region src/stream/store.d.ts /** * Minimal observable store backing every framework binding. * * The shape is intentionally tiny: * * - `subscribe(listener) → unsubscribe` lines up with React's * `useSyncExternalStore`. * - `getSnapshot()` returns a referentially-stable value for * unchanged state so React can bail out of renders. * - Vue/Svelte/Angular bindings wrap `subscribe` + `getSnapshot` in * their own reactivity primitive (`shallowRef` / `writable` / * `signal`) in ~10 lines. * * Snapshot identity matters: a listener is only useful if * `getSnapshot()` returns a *different* reference when state changes. * Callers MUST pass a freshly-constructed value to {@link setState}; * mutating the previous snapshot in place will break React's bail-out * and cause infinite re-renders. */ type StoreListener = () => void; declare class StreamStore { #private; constructor(initial: T); subscribe: (listener: StoreListener) => () => void; getSnapshot: () => T; /** Replace the snapshot and notify every listener. */ setValue: (next: T) => void; /** * Functional update. The `updater` receives the current snapshot and * MUST return a new object. Returning the same reference is a no-op. */ setState: (updater: (previous: T) => T) => void; } //#endregion export { StoreListener, StreamStore }; //# sourceMappingURL=store.d.ts.map