@@ -56,8 +56,36 @@ * @param deviceID The device ID for which to return the next batch * @return The next batch for the specified device, or `nil` if none is * available. */ - (nullable OFString *)nextBatchForDeviceID: (OFString *)deviceID; + +/** + * @brief Adds the specified room ID to the list of joined rooms for the + * specified user ID. + * + * @param roomID The room ID to add to the list of joined rooms + * @param userID The user ID for which to add the room + */ +- (void)addJoinedRoom: (OFString *)roomID + forUser: (OFString *)userID; + +/** + * @brief Removes the specified room ID to the list of joined rooms for the + * specified user ID. + * + * @param roomID The room ID to add to the list of joined rooms + * @param userID The user ID for which to add the room + */ +- (void)removeJoinedRoom: (OFString *)roomID + forUser: (OFString *)userID; + +/** + * @brief Returns the joined room IDs for the specified user ID. + * + * @param userID The user ID for which to return the joined rooms + * @return The joined room IDs for the specified user ID + */ +- (OFArray *)joinedRoomsForUser: (OFString *)userID; @end OF_ASSUME_NONNULL_END