chromium/components/user_education/common/feature_promo_data.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_DATA_H_
#define COMPONENTS_USER_EDUCATION_COMMON_FEATURE_PROMO_DATA_H_

#include <map>
#include <ostream>
#include <string>

#include "base/time/time.h"

namespace user_education {

// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
//
// Represents the reason that a promo was ended/promo bubble was closed.
enum class FeaturePromoClosedReason {};

std::ostream& operator<<(std::ostream& oss,
                         FeaturePromoClosedReason close_reason);

// Per-key dismissal information.
struct KeyedFeaturePromoData {};

KeyedFeaturePromoDataMap;

// Dismissal and snooze information.
struct FeaturePromoData {};

// Data about the current session, which can persist across browser restarts.
struct FeaturePromoSessionData {};

// Data that must be kept across browser restart to support the feature promo
// policy.
struct FeaturePromoPolicyData {};

// Data about the "New" Badge for a particular feature.
struct NewBadgeData {};

}  // namespace user_education

#endif  // COMPONENTS_USER_EDUCATION_COMMON_FEATURE_PROMO_DATA_H_