namespace GFramework.Game.Abstractions.ui;
///
/// UI路由守卫接口
/// 用于拦截和处理UI路由切换,实现业务逻辑解耦
///
public interface IUiRouteGuard
{
///
/// 守卫优先级,数值越小越先执行
///
int Priority { get; }
///
/// 是否可中断后续守卫
/// 如果返回 true,当该守卫返回 false 时,将停止执行后续守卫
///
bool CanInterrupt { get; }
///
/// 进入UI前的检查
///
/// 目标UI标识符
/// 进入参数
/// true表示允许进入,false表示拦截
Task CanEnterAsync(string uiKey, IUiPageEnterParam? param);
///
/// 离开UI前的检查
///
/// 当前UI标识符
/// true表示允许离开,false表示拦截
Task CanLeaveAsync(string uiKey);
}