import type { HsonNode, Primitive } from "../../core/types.js"; import type { DocumentLiveMapAttrsApi, DocumentLiveMapFlagsApi, DocumentLiveMapMode, LiveMapDocumentContent, LiveMapDocumentRequestTarget, LiveMapDisposer, LiveMapGraphCommit, LiveMapGraphInsertContentOp, LiveMapGraphMoveContentOp, LiveMapGraphRemoveContentOp, LiveMapGraphReplaceContentOp } from "../../types/livemap.types.js"; type DocumentLocationOwner = Readonly<{ readonly rev: number; root: () => HsonNode; }>; type DocumentLocationMutations = Readonly<{ attrs: DocumentLiveMapAttrsApi; flags: DocumentLiveMapFlagsApi; replace: (target: LiveMapDocumentRequestTarget, index: number, replacement: LiveMapDocumentContent) => LiveMapGraphCommit; remove: (target: LiveMapDocumentRequestTarget, index: number) => LiveMapGraphCommit; insert: (target: LiveMapDocumentRequestTarget, index: number, value: LiveMapDocumentContent) => LiveMapGraphCommit; move: (target: LiveMapDocumentRequestTarget, from: number, to: number) => LiveMapGraphCommit; }>; type DocumentLocationWatch = (path: readonly number[], listener: (next: HsonNode | Primitive | undefined) => void) => LiveMapDisposer; type LocationAttrs = Readonly<{ get: (name: string) => ReturnType; has: (name: string) => boolean; keys: () => readonly string[]; must: Readonly<{ get: (name: string) => ReturnType; }>; set: (name: string, value: Parameters[2]) => ReturnType; drop: (name: string) => ReturnType; setMany: (values: Parameters[1]) => ReturnType; dropMany: (names: readonly string[]) => ReturnType; clear: () => ReturnType; replace: (values: Parameters[1]) => ReturnType; }>; type LocationFlags = Readonly<{ has: (name: string) => boolean; set: (...names: string[]) => ReturnType; clear: (...names: string[]) => ReturnType; }>; type DocumentLocation = Readonly<{ readonly rev: number; path: () => readonly number[]; snap: () => HsonNode | Primitive | undefined; watch: (listener: (next: HsonNode | Primitive | undefined) => void) => LiveMapDisposer; at: (path: readonly number[]) => DocumentLocation; id: (value: string) => DocumentLocation | undefined; replace: (value: LiveMapDocumentContent) => LiveMapGraphCommit; delete: () => LiveMapGraphCommit; insert: (index: number, value: LiveMapDocumentContent) => LiveMapGraphCommit; move: (from: number, to: number) => LiveMapGraphCommit; attrs: LocationAttrs; flags: LocationFlags; }>; /** Build passive, fixed-coordinate locations over logical document content. */ export declare function make_livemap_document_location_factory(owner: DocumentLocationOwner, mode: DocumentLiveMapMode, mutations: DocumentLocationMutations, watch: DocumentLocationWatch): (path: readonly number[]) => DocumentLocation; export declare function read_livemap_document_logical_location(root: HsonNode, mode: DocumentLiveMapMode, path: readonly number[]): HsonNode | Primitive | undefined; export {}; //# sourceMappingURL=livemap.document.location.d.ts.map