using System.Collections.Generic;

namespace SharpChat.EventStorage
{
    public interface IEventStorage {
        void AddEvent(
            long id,
            string type,
            string channelName,
            long senderId,
            string senderName,
            ChatColour senderColour,
            int senderRank,
            string senderNick,
            ChatUserPermissions 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);
    }
}