using System;

namespace Hua.Todo.Avalonia.Services;

/// <summary>
/// 全局热键服务接口。
/// 用于在桌面环境下注册系统级快捷键，以便在应用隐藏/最小化时快速唤起主窗口。
/// </summary>
public interface IGlobalHotKeyService
{
    /// <summary>
    /// 注册全局热键。
    /// </summary>
    /// <param name="modifiers">修饰键（如 Alt、Control；多个键用逗号分隔）。</param>
    /// <param name="key">主键（如 X、C）。</param>
    /// <param name="callback">热键触发时回调（不得阻塞，应自行切回 UI 线程）。</param>
    void RegisterHotKey(string modifiers, string key, Action callback);

    /// <summary>
    /// 注销已注册的热键。
    /// </summary>
    void UnregisterHotKey();

    /// <summary>
    /// 更新热键配置。
    /// </summary>
    /// <param name="modifiers">新的修饰键。</param>
    /// <param name="key">新的主键。</param>
    void UpdateHotKey(string modifiers, string key);

    /// <summary>
    /// 当前平台是否支持全局热键。
    /// </summary>
    bool IsSupported { get; }
}

