using BotSharp.Abstraction.Conversations.Enums; using System.Text.Json; namespace BotSharp.Abstraction.Conversations; /// /// Conversation state service to track the context in the conversation lifecycle /// public interface IConversationStateService { string GetConversationId(); Dictionary Load(string conversationId, bool isReadOnly = false); string GetState(string name, string defaultValue = ""); bool ContainsState(string name); Dictionary GetStates(); IConversationStateService SetState(string name, T value, bool isNeedVersion = true, int activeRounds = -1, string valueType = StateDataType.String, string source = StateSource.User, bool readOnly = false); void SaveStateByArgs(JsonDocument args); bool RemoveState(string name); void CleanStates(params string[] excludedStates); void Save(); }