using System; using System.Collections.Generic; namespace Jovian.InGameLogging { public interface IGameLogStore { int Count { get; } int Capacity { get; } void Add(LogChannel channel, string message); void EnableChannel(LogChannel channel); void DisableChannel(LogChannel channel); bool IsChannelEnabled(LogChannel channel); void Clear(); void Clear(LogChannel channel); ReadOnlySpan GetEntries(); int GetEntries(LogChannel channel, List results); event Action OnEntryAdded; event Action OnCleared; GameLogSaveData GetSaveData(); void RestoreFromSaveData(GameLogSaveData data); } }