using System; using System.Collections.Generic; using System.Threading.Tasks; using LANCommander.SDK.Models; namespace LANCommander.SDK.Services; public interface IChatClient { Task GetThreadAsync(Guid threadId); Task StartThreadAsync(IEnumerable userIdentifiers); Task> GetThreadsAsync(); Task> GetUsersAsync(); Task ReceiveMessagesAsync(Guid threadId, IEnumerable messages); Task ReceiveMessageAsync(Guid threadId, ChatMessage message); Task StartTypingAsync(Guid threadId, string userId); Task StopTypingAsync(Guid threadId, string userId); Task SendMessageAsync(Guid threadId, string message); Task UpdatedReadStatus(Guid threadId); Task> GetMessagesAsync(Guid threadId, Guid? cursor, int count); Task GetUnreadMessageCountAsync(Guid threadId); }