namespace SharpChat.EventStorage {
    public interface EventStorage {
        void AddEvent(
            long id,
            string type,
            string channelName,
            string senderId,
            string senderName,
            ColourInheritable senderColour,
            int senderRank,
            string senderNick,
            UserPermissions senderPerms,
            object? data = null,
            StoredEventFlags flags = StoredEventFlags.None
        );
        void RemoveEvent(StoredEventInfo evt);
        StoredEventInfo? GetEvent(long seqId);
        IEnumerable<StoredEventInfo> GetChannelEventLog(string channelName, int amount = 20, int offset = 0);
    }
}