using System.Collections.Generic; namespace SharpChat.EventStorage { public interface IEventStorage { void AddEvent( long id, string type, object? data = null, StoredEventFlags flags = StoredEventFlags.None ); void AddEvent( long id, string type, string? channelName, object? data = null, StoredEventFlags flags = StoredEventFlags.None ); void AddEvent( long id, string type, long senderId, string? senderName, ChatColour senderColour, int senderRank, string? senderNick, ChatUserPermissions senderPerms, object? data = null, StoredEventFlags flags = StoredEventFlags.None ); 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 ); long AddEvent(string type, ChatUser user, ChatChannel channel, object? data = null, StoredEventFlags flags = StoredEventFlags.None); void RemoveEvent(StoredEventInfo evt); StoredEventInfo? GetEvent(long seqId); IEnumerable GetChannelEventLog(string channelName, int amount = 20, int offset = 0); } }