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