#ifndef CHROME_BROWSER_UI_WEBUI_HISTORY_CLUSTERS_HISTORY_CLUSTERS_HANDLER_H_
#define CHROME_BROWSER_UI_WEBUI_HISTORY_CLUSTERS_HISTORY_CLUSTERS_HANDLER_H_
#include <memory>
#include <string>
#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/scoped_observation.h"
#include "chrome/browser/history/profile_based_browsing_history_driver.h"
#include "chrome/browser/ui/webui/top_chrome/top_chrome_web_ui_controller.h"
#include "components/history/core/browser/browsing_history_service.h"
#include "components/history/core/browser/history_types.h"
#include "components/history_clusters/core/history_clusters_service.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "third_party/abseil-cpp/absl/types/variant.h"
#include "ui/webui/resources/cr_components/history_clusters/history_clusters.mojom.h"
class BrowserWindowInterface;
class Profile;
namespace tabs {
class TabInterface;
}
namespace content {
class WebContents;
}
namespace history_clusters {
class QueryClustersState;
mojom::QueryResultPtr QueryClustersResultToMojom(
Profile* profile,
const std::string& query,
const std::vector<history::Cluster> clusters_batch,
bool can_load_more,
bool is_continuation);
class HistoryClustersHandler : public mojom::PageHandler,
public HistoryClustersService::Observer,
public ProfileBasedBrowsingHistoryDriver { … };
}
#endif