using Insight.Remote.Shared.Enums;

namespace Insight.Remote.Shared.Abstractions;

public interface IInputProvider
{
    Task InitAsync(CancellationToken cancellationToken);
    Task SendKeyDownAsync(string key, CancellationToken cancellationToken);
    Task SendKeyUpAsync(string key, CancellationToken cancellationToken);
    Task SendMouseMoveAsync(double percentX, double percentY, CancellationToken cancellationToken);
    Task SendMouseWheelAsync(int deltaY, CancellationToken cancellationToken);
    Task SendTextAsync(string transferText, CancellationToken cancellationToken);
    Task ToggleBlockInputAsync(bool toggleOn, CancellationToken cancellationToken);
    Task SetKeyStatesUpAsync(CancellationToken cancellationToken);
    Task SendMouseButtonActionAsync(int button, ButtonAction buttonAction, double percentX, double percentY, CancellationToken cancellationToken);
}