namespace CursorLang.Services;
///
/// Перехватывает Caps Lock на уровне системы и делит нажатия на короткие
/// и длинные. Что делать с ними — решают подписчики.
///
public interface ICapsLockHotkeyService
{
/// Короткое нажатие: клавишу отпустили до порога удержания.
event EventHandler? Tapped;
/// Порог удержания пройден, клавишу всё ещё держат.
event EventHandler? HoldStarted;
/// Удержание закончилось: клавишу отпустили.
event EventHandler? HoldEnded;
/// Стоит ли перехват прямо сейчас.
bool IsRunning { get; }
///
/// Начинает перехват. Вызывать нужно из потока пользовательского интерфейса:
/// системный хук клавиатуры работает только на потоке с циклом сообщений.
///
void Start();
/// Снимает перехват, возвращая клавише её обычное поведение.
void Stop();
}