import { type DomainObject } from 'domain-objects'; import type { SerializableObject } from 'with-cache-normalization/dist/domain/NormalizeCacheValueMethod'; import type { SimpleAsyncCache } from 'with-simple-cache'; export declare class UndefinableDomainEntityPropertyDependencyInvalidationError extends Error { constructor({ referenceKey, referencedDobj, }: { referenceKey: string; referencedDobj: DomainObject; }); } /** * tactic: get the dependency pointers invalidated by a mutation output reference to a domain object * strategy: * - lookup cached state of that dobj from the cache * - determine each updatable property that changed between referenced state now and the prior state in the cache * - define each property that changed as an invalidated dependency pointer * - treat "does not exist in cache" as "all properties changed" * - treat array properties by creating a dependency pointer for each value * - treat nested object properties at root depth only, serialize them for comparisons */ export declare const getDependencyPointersInvalidatedByMutationOutputReference: ({ cache, referenceKey, referencedDobj: dobjReferenced, }: { cache: SimpleAsyncCache; referenceKey: string; referencedDobj: SerializableObject; }) => Promise;