using Elsa.Caching;
namespace Elsa.Http.Contracts;
///
/// Represents a service that caches HTTP workflows and triggers.
///
public interface IHttpWorkflowsCacheManager
{
///
/// Gets the cache manager.
///
public ICacheManager Cache { get; }
///
/// Evicts a cached entry by its definition ID.
///
Task EvictWorkflowAsync(string workflowDefinitionId, CancellationToken cancellationToken = default);
///
/// Evicts a cached entry by its bookmark hash.
///
Task EvictTriggerAsync(string bookmarkHash, CancellationToken cancellationToken = default);
///
/// Gets the key for a workflow change token.
///
string GetWorkflowChangeTokenKey(string workflowDefinitionId);
///
/// Gets the key for a trigger change token.
///
string GetTriggerChangeTokenKey(string bookmarkHash);
///
/// Compute the bookmark hash for a given path and method combination.
///
string ComputeBookmarkHash(string path, string method);
}