#pragma once

#include <optional>
#include <string>
#include <vector>

#include "torlinkc/ui/app_state.hpp"

namespace torlinkc::ui {

struct Hint {
  std::string keys;
  std::string label;
};

struct HelpGroup {
  std::string title;
  std::vector<Hint> hints;
};

// Ported from ui/keymap.ts::HELP_GROUPS, trimmed to the keys this port
// actually implements (no result-detail view, no clipboard/export actions --
// see the Phase 4 commit message for what's deferred).
const std::vector<HelpGroup>& helpGroups();

// The terse contextual hint row along the bottom, ported from
// ui/keymap.ts::footerHints.
std::vector<Hint> footerHints(Region region, Section section, std::optional<DownloadFocus> downloadFocus,
                               std::optional<SeedFocus> seedFocus);

}  // namespace torlinkc::ui
