#ifndef OBSTACLE_NAV2__NAV2_PROFILE_LOADER_HPP_
#define OBSTACLE_NAV2__NAV2_PROFILE_LOADER_HPP_

#include <string>
#include <set>
#include <vector>

#include "rclcpp/parameter.hpp"

namespace obstacle_nav2
{

struct NodeParameterSet
{
  std::string node_name;
  std::vector<rclcpp::Parameter> parameters;
};

struct Nav2Profile
{
  std::vector<NodeParameterSet> nodes;
};

Nav2Profile loadNav2Profile(const std::string & path);
std::vector<rclcpp::Parameter> filterDeclaredParameters(
  const std::vector<rclcpp::Parameter> & parameters,
  const std::set<std::string> & declared_names);

}  // namespace obstacle_nav2

#endif  // OBSTACLE_NAV2__NAV2_PROFILE_LOADER_HPP_
