export type JsonPrimitive = string | number | boolean | null; export type JsonMap = { [key: string]: JsonPrimitive | JsonMap | JsonArray; }; export type JsonArray = Array; export type JsonValue = JsonPrimitive | JsonMap | JsonArray; /** * Session store is a shared realtime key-value store that is accessible by all Peers in a Room. * It can be utilized to implement features such as pinned text, spotlight (which brings a particular * peer to the center stage for everyone in the room) and more, enhancing interactive experiences. * * To get an instance of `HMSSessionStore` class, You can add an event listener for `ON_SESSION_STORE_AVAILABLE` * event on the `HMSSDK` instance * * For example: * ``` * hmsInstance.addEventListener(HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE, ); * ``` * * Checkout Session Store docs fore more details ${@link https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/room/session-store} */ export declare class HMSSessionStore { private _deviceEventEmitterSubscription?; private _eventEmitter?; private _addedKeyChangeListenerCount; /** * This method sets a value for a specific key on session store. * Once a value is assigned, it will be available for other peers in the room * who are listening for changes in value for that specific key. * * @param {JsonValue} value - The value to set, which can be any JSON-compatible type. * @param {string} key - The key under which to store the value. * @returns {Promise} A promise that resolves when the operation is complete. */ set(value: JsonValue, key: string): Promise<{ success: true; }>; /** * Retrieves the value for a given key from the session store. This method does not subscribe * to changes; it only returns the current value at the time of the call. * * To listen to value change updates use `addKeyChangeListener` method instead. * * @param {string} key - The key whose value is to be retrieved. * @returns {Promise} A promise that resolves with the value of the key. */ get(key: string): Promise; /** * Registers a callback to listen for changes to specified keys in the session store. * The callback is called with the initial value and again whenever any value changes. * * @param {string[]} forKeys - An array of keys to listen for changes on. * @param {Function} callback - The function to call when a value changes. * @returns {Object} An object with a `remove` method to unregister the listener. */ addKeyChangeListener(forKeys: T, callback: (error: string | null, data: { key: T[number]; value: JsonValue; } | null) => void): { remove: () => void; }; private _cleanup; private _deviceEventEmitterListener; }