using Serein.Library.Utils;
using System;
using System.Threading.Tasks;
namespace Serein.Library.Api
{
///
/// 触发器接口
///
///
public interface IFlowTrigger
{
///
/// 等待信号触发并指定超时时间
///
///
///
///
///
Task> WaitTriggerWithTimeoutAsync(TSignal signal, TimeSpan outTime);
///
/// 等待信号触发
///
/// 预期的返回值类型
///
///
Task> WaitTriggerAsync(TSignal signal);
///
/// 调用触发器
///
/// 预期的返回值类型
/// 信号
/// 返回值
///
Task InvokeTriggerAsync(TSignal signal, TResult value);
///
/// 取消所有触发器
///
void CancelAllTrigger();
}
}