import { MultiMap } from "mnemonist";
import type { ObjectHolder } from "../../object/convertWireToOsdkObjects/ObjectHolder.js";
import type { AggregationCacheKey } from "./aggregation/AggregationCacheKey.js";
import type { SpecificLinkCacheKey } from "./links/SpecificLinkCacheKey.js";
import type { ListCacheKey } from "./list/ListCacheKey.js";
import type { ObjectCacheKey } from "./object/ObjectCacheKey.js";
import type { ObjectSetCacheKey } from "./objectset/ObjectSetCacheKey.js";
export declare class Changes {
	modifiedObjects: MultiMap<string, ObjectHolder>;
	addedObjects: MultiMap<string, ObjectHolder>;
	added: Set<AggregationCacheKey | ListCacheKey | ObjectCacheKey | SpecificLinkCacheKey | ObjectSetCacheKey>;
	modified: Set<AggregationCacheKey | ListCacheKey | ObjectCacheKey | SpecificLinkCacheKey | ObjectSetCacheKey>;
	deleted: Set<AggregationCacheKey | ListCacheKey | ObjectCacheKey | SpecificLinkCacheKey | ObjectSetCacheKey>;
	registerObject: (cacheKey: ObjectCacheKey, data: ObjectHolder, isNew: boolean) => void;
	deleteObject: (cacheKey: ObjectCacheKey) => void;
	registerList: (key: ListCacheKey) => void;
	registerLink: (cacheKey: SpecificLinkCacheKey) => void;
	deleteLink: (cacheKey: SpecificLinkCacheKey) => void;
	registerObjectSet: (key: ObjectSetCacheKey) => void;
	isEmpty(): boolean;
}
export declare function createChangedObjects(): Changes;
export declare function DEBUG_ONLY__changesToString(changes: Changes): string;
