using Alchegos.HCI.Models; namespace Alchegos.HCI.Services; public interface IChatSessionService { ChatSession GetOrCreateSession(string sessionId); ChatSession? GetSession(string sessionId); void AddMessage(string sessionId, ChatMessage message); void SetWaitingStatus(string sessionId, bool isWaiting); void RemoveSession(string sessionId); Task SendMessageToExternalWebhook(string webhookUrl, string sessionId, string chatInput); void RegisterSessionCallbacks(string sessionId, Func? messageCallback, Func? closeCallback); void UnregisterSessionCallbacks(string sessionId); Task TriggerMessageReceived(string sessionId, string output); Task TriggerSessionClosed(string sessionId); }