using OrpaonVision.Core.Results;
using OrpaonVision.SiteApp.Runtime.Contracts;
namespace OrpaonVision.SiteApp.Runtime.Services
{
///
/// 运行态状态机服务接口。
///
public interface IRuntimeStateMachineService
{
///
/// 获取当前状态快照。
///
RuntimeStateSnapshotDto GetSnapshot();
///
/// 获取当前状态。
///
RuntimeState GetCurrentState();
///
/// 获取当前层级。
///
int GetCurrentLayer();
///
/// 检查是否可以执行特定操作。
///
bool CanExecuteOperation(StateTrigger trigger);
///
/// 基于触发器执行状态转换。
///
Result TriggerTransition(StateTrigger trigger, string? reason = null, object? parameters = null);
///
/// 尝试推进到下一层。
///
Result MoveToNextLayer();
///
/// 重置状态机。
///
void Reset();
}
}