using Elsa.Models;
using Elsa.Persistence.Models;
using Elsa.Runtime.Models;
namespace Elsa.Runtime.Contracts;
///
/// Represents a high-level service to invoke workflows.
///
public interface IWorkflowService
{
Task ExecuteWorkflowAsync(string definitionId, VersionOptions versionOptions, IDictionary? input = default, string? correlationId = default, CancellationToken cancellationToken = default);
Task ExecuteWorkflowAsync(string instanceId, Bookmark bookmark, IDictionary? input = default, string? correlationId = default, CancellationToken cancellationToken = default);
Task DispatchWorkflowAsync(string definitionId, VersionOptions versionOptions, IDictionary? input = default, string? correlationId = default, CancellationToken cancellationToken = default);
Task DispatchWorkflowAsync(string instanceId, Bookmark bookmark, IDictionary? input = default, string? correlationId = default, CancellationToken cancellationToken = default);
Task> ExecuteStimulusAsync(IStimulus stimulus, CancellationToken cancellationToken = default);
Task> DispatchStimulusAsync(IStimulus stimulus, CancellationToken cancellationToken = default);
}