namespace SharpChat.Messages; public interface MessageStorage { Task LogMessage(Message msg); Task LogMessage( long id, string type, string channelName, string senderId, string senderName, ColourInheritable senderColour, int senderRank, string senderNick, UserPermissions senderPerms, object? data = null ); Task DeleteMessage(Message msg); Task<Message?> GetMessage(long id); Task<long> CountMessages( string? channelName = null, bool includeDeleted = false ); Task<IEnumerable<Message>> GetMessages( string? channelName = null, int? take = 20, long? beforeId = null, bool includeDeleted = false ); }