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);
string GetState(string name, string defaultValue = "");
bool ContainsState(string name);
Dictionary GetStates();
IConversationStateService SetState(string name, T value, bool isNeedVersion = true);
void SaveStateByArgs(JsonDocument args);
void CleanStates();
void Save();
}