#ifndef COMPONENTS_USER_EDUCATION_COMMON_FEATURE_PROMO_CONTROLLER_H_
#define COMPONENTS_USER_EDUCATION_COMMON_FEATURE_PROMO_CONTROLLER_H_
#include <initializer_list>
#include <map>
#include <memory>
#include <optional>
#include <ostream>
#include <string>
#include "base/auto_reset.h"
#include "base/callback_list.h"
#include "base/containers/contains.h"
#include "base/feature_list.h"
#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/raw_ref.h"
#include "base/memory/weak_ptr.h"
#include "build/build_config.h"
#include "components/feature_engagement/public/tracker.h"
#include "components/user_education/common/feature_promo_data.h"
#include "components/user_education/common/feature_promo_handle.h"
#include "components/user_education/common/feature_promo_lifecycle.h"
#include "components/user_education/common/feature_promo_registry.h"
#include "components/user_education/common/feature_promo_result.h"
#include "components/user_education/common/feature_promo_session_policy.h"
#include "components/user_education/common/feature_promo_specification.h"
#include "components/user_education/common/help_bubble.h"
#include "components/user_education/common/help_bubble_params.h"
#include "components/user_education/common/product_messaging_controller.h"
#include "components/user_education/common/tutorial_identifier.h"
namespace ui {
class AcceleratorProvider;
class TrackedElement;
}
class BrowserFeaturePromoControllerTest;
class FeaturePromoLifecycleUiTest;
namespace user_education {
class HelpBubbleFactoryRegistry;
class FeaturePromoStorageService;
class TutorialService;
enum class FeaturePromoStatus { … };
enum class EndFeaturePromoReason { … };
struct FeaturePromoParams;
class FeaturePromoController { … };
class FeaturePromoControllerCommon : public FeaturePromoController { … };
struct FeaturePromoParams { … };
std::ostream& operator<<(std::ostream& os, FeaturePromoStatus status);
}
#endif