/** * The keyed `$state` store — ONE implementation, two venues. * * `$state` is a tree binding (`core/genui/tree-node.ts`), and the renderer * resolves it against a keyed `Record` owned by * `StatefulTreeView`. A code-land app needs the same store with the same * semantics, so it lives HERE — in the bundle both venues already share, the * way `reshape` does — instead of being written twice. * * Semantics (the renderer's, unchanged): one namespace per instance, `Json` * values, last write wins per key, and other keys stand. */ import type { Json } from "../../core/index.js"; /** A `$state` namespace: keys the tree (or the app's code) binds to. */ export type KeyedState = Record; /** The store, as a hook: `[state, setKey]`. */ export declare function useKeyedState(): [KeyedState, (key: string, value: Json) => void];