using BotSharp.Platform.Models;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
namespace BotSharp.Platform.Abstraction
{
///
/// Agent could be persisted in any kind of storage.
/// Example: local file storage, cloud storage, relational database, key-value database or memory
///
public interface IAgentStorage
{
///
/// Save agent instance
///
///
///
Task Persist(TAgent agent);
///
/// Get agent by id
///
///
///
Task FetchById(string agentId);
///
/// Get agent by name
///
///
///
Task FetchByName(string agentName);
///
/// Query agents
///
///
Task> Query();
///
/// Delete agents
///
///
Task PurgeAllAgents();
}
}