import type { LiveMapDocumentAttributeValue, LiveMapDocumentAttrs, LiveMapDocumentRequestTarget } from "../../../types/livemap.types.js"; import type { CanonicalPublicAttrs, HsonNode } from "../../../core/types.js"; export type DocumentBoundAttrsMutation = Readonly<{ kind: "set"; name: string; value: LiveMapDocumentAttributeValue; }> | Readonly<{ kind: "setMany"; values: LiveMapDocumentAttrs; }> | Readonly<{ kind: "drop"; name: string; }> | Readonly<{ kind: "dropMany"; names: readonly string[]; }> | Readonly<{ kind: "clear"; }> | Readonly<{ kind: "replace"; values: LiveMapDocumentAttrs; }> | Readonly<{ kind: "transform"; apply: (current: CanonicalPublicAttrs) => Exclude; }>; export type DocumentBoundTextMutation = Readonly<{ kind: "set"; value: string | boolean | number | null; }> | Readonly<{ kind: "add"; value: string | boolean | number | null; }> | Readonly<{ kind: "insert"; index: number; value: string | boolean | number | null; }> | Readonly<{ kind: "overwrite"; value: string | boolean | number | null; }>; export declare const LIVETREE_LINKED_IDENTITY_REQUIRED_ERROR_CODE: "LIVETREE_LINKED_IDENTITY_REQUIRED"; /** Stable failure for a linked handle whose canonical identity authority is unavailable. */ export declare class LiveTreeLinkedIdentityRequiredError extends Error { readonly operation: string; readonly code: "LIVETREE_LINKED_IDENTITY_REQUIRED"; constructor(operation: string); } export type DocumentBindingNodeRegistration = Readonly<{ owner: object; canonicalTarget: LiveMapDocumentRequestTarget; canonicalPath: readonly number[]; persistedQuid?: string; requireCanonicalIdentity: () => string; delegateAttrs: (mutation: DocumentBoundAttrsMutation) => void; delegateAttrsAsync: (mutation: DocumentBoundAttrsMutation) => Promise; delegateText: (mutation: DocumentBoundTextMutation) => void; delegateTextAsync: (mutation: DocumentBoundTextMutation) => Promise; delegateEmpty: () => void; delegateEmptyAsync: () => Promise; /** True when authority handled removal; false when caller must perform local root teardown. */ delegateRemove: () => boolean; delegateRemoveAsync: () => Promise; rejectStructuralMutation: (operation: string) => never; }>; export declare function register_document_binding_node(node: HsonNode, registration: DocumentBindingNodeRegistration): void; export declare function document_binding_for_node(node: HsonNode): DocumentBindingNodeRegistration | undefined; export declare function unregister_document_binding_node(node: HsonNode, owner: object): void; /** Reject a public canonical structural write while a projected node is bound. */ export declare function assert_document_structural_mutation_allowed(node: HsonNode, operation: string): void; export declare function delegate_document_text_mutation_if_bound(node: HsonNode, mutation: DocumentBoundTextMutation): boolean; export declare function delegate_document_empty_if_bound(node: HsonNode): boolean; export declare function delegate_document_remove_if_bound(node: HsonNode): boolean; //# sourceMappingURL=document-binding-state.d.ts.map