// third_party/blink/public/mojom/notifications/notification_service.mojom-data-view.h is auto generated by mojom_bindings_generator.py, do not edit

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

// This file defines XDataView for type traits and can be included in
// _mojom_traits.h definitions but otherwise please use .mojom-forward.h,
// .mojom-shared.h or .mojom.h.

// IWYU pragma: private
// IWYU pragma: friend "traits"

#ifndef THIRD_PARTY_BLINK_PUBLIC_MOJOM_NOTIFICATIONS_NOTIFICATION_SERVICE_MOJOM_DATA_VIEW_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_NOTIFICATIONS_NOTIFICATION_SERVICE_MOJOM_DATA_VIEW_H_

#include <stdint.h>

#include <functional>
#include <iosfwd>
#include <type_traits>
#include <utility>

#include "third_party/blink/public/mojom/notifications/notification_service.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/notifications/notification.mojom-shared.h"
#include "third_party/blink/public/mojom/permissions/permission_status.mojom-shared.h"


namespace blink::mojom {


}  // blink::mojom


namespace mojo {
namespace internal {

}  // namespace internal
}  // namespace mojo


namespace blink::mojom {


enum class PersistentNotificationError : int32_t {
  
  NONE = 0,
  
  PERMISSION_DENIED = 1,
  
  NOTIFICATION_SERVICE_NOT_FOUND = 2,
  
  DATABASE_ERROR = 3,
  kMinValue = 0,
  kMaxValue = 3,
};

COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) std::ostream& operator<<(std::ostream& os, PersistentNotificationError value);
inline bool IsKnownEnumValue(PersistentNotificationError value) {
  return internal::PersistentNotificationError_Data::IsKnownValue(
      static_cast<int32_t>(value));
}

// Returns true if the enum has an infallible conversion from the mojom enum.
consteval bool HasInfallibleConversion(PersistentNotificationError) {
  return true;
}
// Interface base classes. They are used for type safety check.
class NonPersistentNotificationListenerInterfaceBase {};

using NonPersistentNotificationListenerPtrDataView =
    mojo::InterfacePtrDataView<NonPersistentNotificationListenerInterfaceBase>;
using NonPersistentNotificationListenerRequestDataView =
    mojo::InterfaceRequestDataView<NonPersistentNotificationListenerInterfaceBase>;
using NonPersistentNotificationListenerAssociatedPtrInfoDataView =
    mojo::AssociatedInterfacePtrInfoDataView<NonPersistentNotificationListenerInterfaceBase>;
using NonPersistentNotificationListenerAssociatedRequestDataView =
    mojo::AssociatedInterfaceRequestDataView<NonPersistentNotificationListenerInterfaceBase>;
class NotificationServiceInterfaceBase {};

using NotificationServicePtrDataView =
    mojo::InterfacePtrDataView<NotificationServiceInterfaceBase>;
using NotificationServiceRequestDataView =
    mojo::InterfaceRequestDataView<NotificationServiceInterfaceBase>;
using NotificationServiceAssociatedPtrInfoDataView =
    mojo::AssociatedInterfacePtrInfoDataView<NotificationServiceInterfaceBase>;
using NotificationServiceAssociatedRequestDataView =
    mojo::AssociatedInterfaceRequestDataView<NotificationServiceInterfaceBase>;


}  // blink::mojom

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_NOTIFICATIONS_NOTIFICATION_SERVICE_MOJOM_DATA_VIEW_H_