namespace NitroxModel.Helper;
public interface IKeyValueStore
{
///
/// Gets a value for a key.
///
/// Key to get value of.
/// Default value to return if key does not exist or type conversion failed.
/// The value or null if key was not found or conversion failed.
T GetValue(string key, T defaultValue = default);
///
/// Sets a value for a key.
///
/// Key to set value of.
/// Value to set for the key.
/// True if the value was found.
bool SetValue(string key, T value);
///
/// Deletes a key along with its value.
///
/// Key to delete.
/// True if the key was deleted.
bool DeleteKey(string key);
///
/// Check if a key exists.
///
/// Key to check.
/// True if the key exists.
bool KeyExists(string key);
}