chromium/components/user_education/common/feature_promo_session_policy.h

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_USER_EDUCATION_COMMON_FEATURE_PROMO_SESSION_POLICY_H_
#define COMPONENTS_USER_EDUCATION_COMMON_FEATURE_PROMO_SESSION_POLICY_H_

#include <optional>

#include "base/memory/raw_ptr.h"
#include "base/time/time.h"
#include "components/user_education/common/feature_promo_data.h"
#include "components/user_education/common/feature_promo_result.h"

namespace user_education {

class FeaturePromoSessionManager;
class FeaturePromoSpecification;
class FeaturePromoStorageService;

namespace test {
class FeaturePromoSessionTestUtil;
}

// Policy that defines how promos are allowed or disallowed due to the state of
// the current session.
class FeaturePromoSessionPolicy {};

// Represents the promo policy for User Education Experience V2, above and
// beyond the common promo logic.
class FeaturePromoSessionPolicyV2 : public FeaturePromoSessionPolicy {};

}  // namespace user_education

#endif  // COMPONENTS_USER_EDUCATION_COMMON_FEATURE_PROMO_SESSION_POLICY_H_