import type { JsonValue } from "../../core/types.js"; import type { OrderedProjectedValue } from "../../core/ordered-projected-value.js"; import type { LiveMapCommit, LiveMapDisposer, LiveMapFeedListener, LivePath } from "../../types/livemap.types.js"; import type { LiveMapProjectedFeedEvent } from "./livemap.projected-propagation.js"; /** * Reads the current projected JSON value at a LiveMap path. * * Feed does not own graph traversal. Instead, Core passes a snap function into * `emit()`, so Feed can report the current value at the subscribed path without * importing or knowing about the editor. */ export type LiveMapSnapFn = (path: LivePath) => JsonValue | undefined; /** * Create an in-memory feed registry for one LiveMap core instance. * * The hub stores path/listener pairs, accepts normalized commits from Core, and * emits listener events for any subscription whose path overlaps a commit op. * It is deliberately graph-agnostic: it never mutates nodes and never resolves * Hson wrappers directly. */ export declare function make_livemap_feed_hub(): LiveMapFeedHub; /** * Runtime feed registry used by LiveMap Core. * * `add()` subscribes a listener at a data path. * `emit()` fans a normalized commit out to matching listeners. */ export type LiveMapFeedHub = Readonly<{ add: (path: LivePath, listener: LiveMapFeedListener) => LiveMapDisposer; addProjected: (path: LivePath, listener: (event: LiveMapProjectedFeedEvent) => void) => LiveMapDisposer; emit: (commit: LiveMapCommit, snap: LiveMapSnapFn) => void; emitProjected: (commit: LiveMapCommit, read: (path: LivePath) => OrderedProjectedValue | undefined) => void; }>; //# sourceMappingURL=livemap.feed.d.ts.map