import type { LiveMapAnyOp, LiveMapCommit, LiveMapDisposer } from "../../types/livemap.types.js"; import type { HsonNode, Primitive } from "../../core/types.js"; export type LiveMapDocumentEndpoint = HsonNode | Primitive | undefined; export type LiveMapDocumentWatchRegistration = (path: readonly number[], listener: (next: LiveMapDocumentEndpoint) => void) => LiveMapDisposer; /** Exact optional equality for one detached logical document endpoint. */ export declare function optional_livemap_document_endpoint_equal(left: LiveMapDocumentEndpoint, right: LiveMapDocumentEndpoint): boolean; /** Clone a document endpoint before retaining or publishing it. */ export declare function detach_livemap_document_endpoint(value: LiveMapDocumentEndpoint): LiveMapDocumentEndpoint; /** First isolated listener failure captured during one watch publication. */ export type LiveMapWatchPublicationFailure = Readonly<{ error: unknown; }>; type LiveMapWatchHubOptions = Readonly<{ clonePath: (path: TPath) => TPath; read: (path: TPath) => TValue; equal: (left: TValue, right: TValue) => boolean; detach: (value: TValue) => TPublicValue; relevant: (commit: LiveMapCommit, path: TPath) => boolean; }>; /** Dedicated map-owned value publication for passive logical locations. */ export declare function make_livemap_watch_hub(options: LiveMapWatchHubOptions): LiveMapWatchHub; /** Preserve existing observer failure precedence over an isolated watch failure. */ export declare function publish_livemap_after_watch(watchFailure: LiveMapWatchPublicationFailure | undefined, publishExisting: () => void): void; export type LiveMapWatchHub = Readonly<{ add: (path: TPath, listener: (next: TPublicValue) => void) => LiveMapDisposer; emitCommit: (commit: LiveMapCommit) => LiveMapWatchPublicationFailure | undefined; emitSnapshot: () => LiveMapWatchPublicationFailure | undefined; }>; export {}; //# sourceMappingURL=livemap.watch.d.ts.map