#ifndef CHROME_BROWSER_UI_WEB_APPLICATIONS_WEB_APP_METRICS_H_
#define CHROME_BROWSER_UI_WEB_APPLICATIONS_WEB_APP_METRICS_H_
#include <optional>
#include "base/containers/flat_map.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/power_monitor/power_observer.h"
#include "base/time/time.h"
#include "chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.h"
#include "chrome/browser/ui/browser_list_observer.h"
#include "chrome/browser/ui/browser_tab_strip_tracker.h"
#include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
#include "chrome/browser/ui/web_applications/diagnostics/web_app_icon_health_checks.h"
#include "components/keyed_service/core/keyed_service.h"
#include "components/site_engagement/content/site_engagement_observer.h"
#include "components/webapps/common/web_app_id.h"
#include "url/gurl.h"
class Profile;
class Browser;
class TabStripModel;
namespace base {
class Time;
}
namespace content {
class WebContents;
}
namespace site_engagement {
enum class EngagementType;
}
namespace webapps {
enum class InstallableWebAppCheckResult;
struct WebAppBannerData;
}
namespace web_app {
class WebAppMetrics : public KeyedService,
public site_engagement::SiteEngagementObserver,
public BrowserListObserver,
public TabStripModelObserver,
public base::PowerSuspendObserver,
public metrics::DesktopSessionDurationTracker::Observer { … };
}
#endif