using TwinCAT.Ads.TypeSystem;
using ConnectionState = TwinCAT.ConnectionState;

namespace PLCIOPointTool.Services
{
    public interface IClientService : IDisposable
    {
        Task ConnectAsync(string netId, int port);
        Task DisconnectAsync();
        Task<object?> ReadValue(string symbolName);
        Task WriteValue(string symbolName, object value);

        event EventHandler<ConnectionState>? ConnectionStateChanged;
        event EventHandler<bool>? HealthCheckingChanged;
    }
}
