using System;
using System.Threading;
using System.Threading.Tasks;

namespace MainShell.PageCalib.OriginCalib.Service
{
    /// <summary>
    /// 标定后处理接口，用于在避让轴和标定轴移动到位后执行模块特定的逻辑
    /// </summary>
    public interface ICalibrationPostProcessor
    {
        /// <summary>
        /// 处理器名称，用于日志和诊断
        /// </summary>
        string Name { get; }

        /// <summary>
        /// 在运动完成后、标定前执行处理逻辑
        /// </summary>
        /// <param name="calibrationResult">运动执行结果，包含各轴的实际位置</param>
        /// <param name="cancellationToken">取消令牌</param>
        /// <param name="pars">可选参数</param>
        /// <returns>异步任务</returns>
        Task ExecuteAsync(OriginCalibrationExecutionResult calibrationResult, CancellationToken cancellationToken,object pars=null);
    }
}
