chromium/chrome/browser/notifications/scheduler/public/notification_scheduler_types.h

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

#ifndef CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_PUBLIC_NOTIFICATION_SCHEDULER_TYPES_H_
#define CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_PUBLIC_NOTIFICATION_SCHEDULER_TYPES_H_

#include <map>
#include <optional>
#include <string>

namespace notifications {

// The type of a list of clients using the notification scheduler system. Used
// in metrics, need to sync with histogram suffix
// NotificationSchedulerClientType in histograms.xml.
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
// GENERATED_JAVA_ENUM_PACKAGE: (
//   org.chromium.chrome.browser.notifications.scheduler)
enum class SchedulerClientType {};

// The type of user feedback from a displayed notification.
enum class UserFeedback {};

// The user impression result of a particular notification, which may impact the
// notification display frenquency.
enum class ImpressionResult {};

// Defines user actions type. Used in metrics, can only insert enum values, need
// to sync with histogram enum NotificationSchedulerUserActionType in
// enums.xml. A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: (
//   org.chromium.chrome.browser.notifications.scheduler)
enum class UserActionType {};

// Categorizes type of notification buttons. Different type of button clicks
// may result in change of notification shown frequency.
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: (
//   org.chromium.chrome.browser.notifications.scheduler)
enum class ActionButtonType {};

// Information about button clicks.
struct ButtonClickInfo {};

// Contains data associated with user actions.
struct UserActionData {};

// Categorizes type of notification icons.
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: (
//   org.chromium.chrome.browser.notifications.scheduler)
enum class IconType {};

}  // namespace notifications

#endif  // CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_PUBLIC_NOTIFICATION_SCHEDULER_TYPES_H_