import { Patch } from "immer"; import { AnyFn, PropEffect, TargetMap, WrappedDataRef, TrackIdItem } from "./types"; declare const CONTAINER_EFFECT_MAP: unique symbol; declare const TRACK_ID_MAP: unique symbol; declare const PENDING_TRIGGER_EFFECT_SET: unique symbol; declare class Container { wrappedDataRef: WrappedDataRef; [CONTAINER_EFFECT_MAP]: Map; [TRACK_ID_MAP]: Map; [PENDING_TRIGGER_EFFECT_SET]: Set; constructor(data: T); getTargetEffectMap(target: object): TargetMap | undefined; updateTargetEffectMap({ prevTarget, nextTarget, nextTargetMap, }: { prevTarget: object; nextTarget: object; nextTargetMap: TargetMap; }): boolean; tryToUpdateUpperPropEffectHasSubProp(target: any): void; setEffect({ target, prop, effect, }: { target: object; prop: PropertyKey; effect: PropEffect; }): void; tryToTrackEffect({ mapFn, effectHook }: { mapFn: AnyFn; effectHook: AnyFn; }): { trackId: number; } | null; cleanUpEffect(pendingClearTrackId: number): void; batchTriggerPendingEffects(): void; addPendingEffectsByPatches(changedPatches: Patch[], nextWrappedDataRef: WrappedDataRef): void; } export default Container;