export declare class StateTracker extends Map { protected readonly defaultValue?: T | undefined; protected readonly defaultState?: K | undefined; protected cachedState?: K; protected cachedValue?: T; private locked?; constructor(defaultValue?: T | undefined, defaultState?: K | undefined); set(key: K, value?: T): this; delete(key: K): boolean; /** * Pins `value` as the reported state until {@link unlock}, so a caller owning an ongoing * interaction is not overridden by others. Their updates are still recorded, so releasing the * lock resumes whichever state is current by then. */ lock(key: K, value: T): void; /** Releases a lock; a no-op unless `key` is the lock holder, so one owner cannot release another's. */ unlock(key: K): void; isLocked(): boolean; stateId(): K | undefined; stateValue(): T | undefined; } export declare class NonNullableStateTracker extends StateTracker { protected readonly defaultValue: T; protected readonly defaultState: K; constructor(defaultValue: T, defaultState: K); stateId(): K; stateValue(): T; }