using System.Threading;
using System.Threading.Tasks;
using NcProgramManager.Cnc.Models;

namespace NcProgramManager.Cnc
{
    /// <summary>Fanuc-specific extensions: tool offset and work zero offset transfer.</summary>
    public interface IFanucMachine : ICncMachine
    {
        Task<CncResult<string>> ReadToolDataAsync(string path, CancellationToken ct = default(CancellationToken));
        Task<CncResult<string>> ReadWorkZeroDataAsync(string path, CancellationToken ct = default(CancellationToken));
        Task<CncResult<bool>> WriteToolDataAsync(string folderPath, string content, CancellationToken ct = default(CancellationToken));
        Task<CncResult<bool>> WriteWorkZeroDataAsync(string folderPath, string content, CancellationToken ct = default(CancellationToken));
    }
}
