namespace PepperDash.Core.Abstractions;
///
/// Abstracts Crestron.SimplSharp.CrestronDataStore.CrestronDataStoreStatic
/// to allow unit testing without the Crestron SDK.
///
public interface ICrestronDataStore
{
/// Initialises the data store. Must be called once before any other operation.
void InitStore();
/// Reads an integer value from the local (program-slot) store.
/// true if the value was found and read successfully.
bool TryGetLocalInt(string key, out int value);
/// Writes an integer value to the local (program-slot) store.
/// true on success.
bool SetLocalInt(string key, int value);
/// Writes an unsigned integer value to the local (program-slot) store.
/// true on success.
bool SetLocalUint(string key, uint value);
/// Reads a boolean value from the local (program-slot) store.
/// true if the value was found and read successfully.
bool TryGetLocalBool(string key, out bool value);
/// Writes a boolean value to the local (program-slot) store.
/// true on success.
bool SetLocalBool(string key, bool value);
}