// Copyright (c) 2025-2026 GeWuYou
// SPDX-License-Identifier: Apache-2.0
using GFramework.Game.Abstractions.Input;
namespace GFramework.Godot.Input;
///
/// 定义 `GodotInputBindingStore` 依赖的最小 `InputMap` 后端能力。
///
internal interface IGodotInputMapBackend
{
///
/// 获取当前 `InputMap` 中的动作名。
///
/// 动作名列表;永远不会返回 。
IReadOnlyList GetActionNames();
///
/// 获取指定动作的框架绑定描述集合。
///
/// 动作名称,不能为 或空白字符串。
/// 框架绑定描述集合;永远不会返回 。
/// 当 为 或空白字符串时抛出。
IReadOnlyList GetBindings(string actionName);
///
/// 用给定绑定集合替换动作当前绑定。
///
/// 动作名称,不能为 或空白字符串。
/// 新的绑定集合,不能为 ,但可以为空集合。
/// 当 为 或空白字符串时抛出。
/// 当 为 时抛出。
void SetBindings(string actionName, IReadOnlyList bindings);
///
/// 将指定动作恢复为项目默认绑定。
///
/// 动作名称,不能为 或空白字符串。
/// 当 为 或空白字符串时抛出。
void ResetAction(string actionName);
///
/// 将所有动作恢复为项目默认绑定。
///
void ResetAll();
}