using Caspian.WorkflowFramework.Models;
namespace Caspian.WorkflowFramework.Contracts
{
public interface IWorkflowService
{
///
/// Create and executes a new workflow instance.
///
///
/// A new object.
/// Create a new workflow instance and executes it and waits for it to complete or reach a suspend point.
Task> CreateAndExecuteAsync(CreateAndExecuteWorkflowModel input);
///
/// Create and get a last workflow running instance.
///
///
///
Task> CreateOrGetInstanceAsync(CreateAndExecuteWorkflowModel input);
///
/// Publishes the specified event.
///
///
/// A new object.
Task> PublishEventAsync(PublishEventModel input);
///
/// Inquiry last state of workflow instance.
///
///
/// A new object.
Task> InquiryStateAsync(InquiryStateModel input);
}
}