chromium/out/Default/gen/third_party/blink/public/mojom/webauthn/authenticator.mojom-shared.h

// third_party/blink/public/mojom/webauthn/authenticator.mojom-shared.h is auto generated by mojom_bindings_generator.py, do not edit

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

#ifndef THIRD_PARTY_BLINK_PUBLIC_MOJOM_WEBAUTHN_AUTHENTICATOR_MOJOM_SHARED_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_WEBAUTHN_AUTHENTICATOR_MOJOM_SHARED_H_

#include <stdint.h>

#include <functional>
#include <iosfwd>
#include <type_traits>
#include <utility>
#include "mojo/public/cpp/bindings/array_data_view.h"
#include "mojo/public/cpp/bindings/enum_traits.h"
#include "mojo/public/cpp/bindings/interface_data_view.h"
#include "mojo/public/cpp/bindings/lib/bindings_internal.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/map_data_view.h"
#include "mojo/public/cpp/bindings/string_data_view.h"

#include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h"

#include "third_party/blink/public/mojom/webauthn/authenticator.mojom-shared-internal.h"
#include "components/payments/mojom/payment_request_data.mojom-shared.h"
#include "mojo/public/mojom/base/time.mojom-shared.h"
#include "third_party/blink/public/mojom/payments/payment_credential.mojom-shared.h"
#include "url/mojom/origin.mojom-shared.h"
#include "url/mojom/url.mojom-shared.h"
#include "mojo/public/cpp/bindings/lib/interface_serialization.h"
#include "mojo/public/cpp/system/data_pipe.h"


#include "base/component_export.h"




namespace blink::mojom {
class CommonCredentialInfoDataView;

class SupplementalPubKeysResponseDataView;

class MakeCredentialAuthenticatorResponseDataView;

class GetAssertionAuthenticatorResponseDataView;

class AuthenticationExtensionsClientOutputsDataView;

class PublicKeyCredentialRpEntityDataView;

class PublicKeyCredentialUserEntityDataView;

class PublicKeyCredentialParametersDataView;

class CableAuthenticationDataView;

class PRFValuesDataView;

class PaymentOptionsDataView;

class PaymentCredentialInstrumentDataView;

class RemoteDesktopClientOverrideDataView;

class SupplementalPubKeysRequestDataView;

class PublicKeyCredentialRequestOptionsDataView;

class AuthenticationExtensionsClientInputsDataView;

class AuthenticatorSelectionCriteriaDataView;

class PublicKeyCredentialCreationOptionsDataView;

class PublicKeyCredentialDescriptorDataView;

class WebAuthnDOMExceptionDetailsDataView;

class PublicKeyCredentialReportOptionsDataView;

class AllAcceptedCredentialsOptionsDataView;

class CurrentUserDetailsOptionsDataView;

class WebAuthnClientCapabilityDataView;



}  // blink::mojom

namespace mojo {
namespace internal {

template <>
struct MojomTypeTraits<::blink::mojom::CommonCredentialInfoDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::SupplementalPubKeysResponseDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::MakeCredentialAuthenticatorResponseDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::GetAssertionAuthenticatorResponseDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::AuthenticationExtensionsClientOutputsDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::PublicKeyCredentialRpEntityDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::PublicKeyCredentialUserEntityDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::PublicKeyCredentialParametersDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::CableAuthenticationDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::PRFValuesDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::PaymentOptionsDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::PaymentCredentialInstrumentDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::RemoteDesktopClientOverrideDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::SupplementalPubKeysRequestDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::PublicKeyCredentialRequestOptionsDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::AuthenticationExtensionsClientInputsDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::AuthenticatorSelectionCriteriaDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::PublicKeyCredentialCreationOptionsDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::PublicKeyCredentialDescriptorDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::WebAuthnDOMExceptionDetailsDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::PublicKeyCredentialReportOptionsDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::AllAcceptedCredentialsOptionsDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::CurrentUserDetailsOptionsDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::WebAuthnClientCapabilityDataView> {};

}  // namespace internal
}  // namespace mojo


namespace blinkmojom  // blink::mojom

namespace std {

template <>
struct hash<::blink::mojom::AuthenticatorStatus>
    : public mojo::internal::EnumHashImpl<::blink::mojom::AuthenticatorStatus> {};

template <>
struct hash<::blink::mojom::AuthenticatorTransport>
    : public mojo::internal::EnumHashImpl<::blink::mojom::AuthenticatorTransport> {};

template <>
struct hash<::blink::mojom::Hint>
    : public mojo::internal::EnumHashImpl<::blink::mojom::Hint> {};

template <>
struct hash<::blink::mojom::UserVerificationRequirement>
    : public mojo::internal::EnumHashImpl<::blink::mojom::UserVerificationRequirement> {};

template <>
struct hash<::blink::mojom::ResidentKeyRequirement>
    : public mojo::internal::EnumHashImpl<::blink::mojom::ResidentKeyRequirement> {};

template <>
struct hash<::blink::mojom::AuthenticatorAttachment>
    : public mojo::internal::EnumHashImpl<::blink::mojom::AuthenticatorAttachment> {};

template <>
struct hash<::blink::mojom::ProtectionPolicy>
    : public mojo::internal::EnumHashImpl<::blink::mojom::ProtectionPolicy> {};

template <>
struct hash<::blink::mojom::LargeBlobSupport>
    : public mojo::internal::EnumHashImpl<::blink::mojom::LargeBlobSupport> {};

template <>
struct hash<::blink::mojom::AttestationConveyancePreference>
    : public mojo::internal::EnumHashImpl<::blink::mojom::AttestationConveyancePreference> {};

template <>
struct hash<::blink::mojom::PublicKeyCredentialType>
    : public mojo::internal::EnumHashImpl<::blink::mojom::PublicKeyCredentialType> {};

}  // namespace std

namespace mojo {


namespace internal {

Serializer< ::blink::mojom::AuthenticatorStatus, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::AuthenticatorTransport, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::Hint, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::UserVerificationRequirement, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::ResidentKeyRequirement, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::AuthenticatorAttachment, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::ProtectionPolicy, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::LargeBlobSupport, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::AttestationConveyancePreference, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::PublicKeyCredentialType, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::CommonCredentialInfoDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::SupplementalPubKeysResponseDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::MakeCredentialAuthenticatorResponseDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::GetAssertionAuthenticatorResponseDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::AuthenticationExtensionsClientOutputsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::PublicKeyCredentialRpEntityDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::PublicKeyCredentialUserEntityDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::PublicKeyCredentialParametersDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::CableAuthenticationDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::PRFValuesDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::PaymentOptionsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::PaymentCredentialInstrumentDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::RemoteDesktopClientOverrideDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::SupplementalPubKeysRequestDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::PublicKeyCredentialRequestOptionsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::AuthenticationExtensionsClientInputsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::AuthenticatorSelectionCriteriaDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::PublicKeyCredentialCreationOptionsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::PublicKeyCredentialDescriptorDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::WebAuthnDOMExceptionDetailsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::PublicKeyCredentialReportOptionsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::AllAcceptedCredentialsOptionsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::CurrentUserDetailsOptionsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::WebAuthnClientCapabilityDataView, MaybeConstUserType>;

}  // namespace internal

}  // namespace mojo


namespace blink::mojom {

inline void CommonCredentialInfoDataView::GetIdDataView(
    mojo::StringDataView* output) {}
inline void CommonCredentialInfoDataView::GetRawIdDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void CommonCredentialInfoDataView::GetClientDataJsonDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void CommonCredentialInfoDataView::GetAuthenticatorDataDataView(
    mojo::ArrayDataView<uint8_t>* output) {}


inline void SupplementalPubKeysResponseDataView::GetSignaturesDataView(
    mojo::ArrayDataView<mojo::ArrayDataView<uint8_t>>* output) {}


inline void MakeCredentialAuthenticatorResponseDataView::GetInfoDataView(
    CommonCredentialInfoDataView* output) {}
inline void MakeCredentialAuthenticatorResponseDataView::GetAttestationObjectDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void MakeCredentialAuthenticatorResponseDataView::GetTransportsDataView(
    mojo::ArrayDataView<AuthenticatorTransport>* output) {}
inline void MakeCredentialAuthenticatorResponseDataView::GetPrfResultsDataView(
    PRFValuesDataView* output) {}
inline void MakeCredentialAuthenticatorResponseDataView::GetPublicKeyDerDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void MakeCredentialAuthenticatorResponseDataView::GetSupplementalPubKeysDataView(
    SupplementalPubKeysResponseDataView* output) {}


inline void GetAssertionAuthenticatorResponseDataView::GetInfoDataView(
    CommonCredentialInfoDataView* output) {}
inline void GetAssertionAuthenticatorResponseDataView::GetSignatureDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void GetAssertionAuthenticatorResponseDataView::GetUserHandleDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void GetAssertionAuthenticatorResponseDataView::GetExtensionsDataView(
    AuthenticationExtensionsClientOutputsDataView* output) {}


inline void AuthenticationExtensionsClientOutputsDataView::GetPrfResultsDataView(
    PRFValuesDataView* output) {}
inline void AuthenticationExtensionsClientOutputsDataView::GetLargeBlobDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void AuthenticationExtensionsClientOutputsDataView::GetGetCredBlobDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void AuthenticationExtensionsClientOutputsDataView::GetSupplementalPubKeysDataView(
    SupplementalPubKeysResponseDataView* output) {}


inline void PublicKeyCredentialRpEntityDataView::GetIdDataView(
    mojo::StringDataView* output) {}
inline void PublicKeyCredentialRpEntityDataView::GetNameDataView(
    mojo::StringDataView* output) {}


inline void PublicKeyCredentialUserEntityDataView::GetIdDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void PublicKeyCredentialUserEntityDataView::GetNameDataView(
    mojo::StringDataView* output) {}
inline void PublicKeyCredentialUserEntityDataView::GetDisplayNameDataView(
    mojo::StringDataView* output) {}




inline void CableAuthenticationDataView::GetClientEidDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void CableAuthenticationDataView::GetAuthenticatorEidDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void CableAuthenticationDataView::GetSessionPreKeyDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void CableAuthenticationDataView::GetServerLinkDataDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void CableAuthenticationDataView::GetExperimentsDataView(
    mojo::ArrayDataView<uint8_t>* output) {}


inline void PRFValuesDataView::GetIdDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void PRFValuesDataView::GetFirstDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void PRFValuesDataView::GetSecondDataView(
    mojo::ArrayDataView<uint8_t>* output) {}


inline void PaymentOptionsDataView::GetTotalDataView(
    ::payments::mojom::PaymentCurrencyAmountDataView* output) {}
inline void PaymentOptionsDataView::GetInstrumentDataView(
    PaymentCredentialInstrumentDataView* output) {}
inline void PaymentOptionsDataView::GetPayeeNameDataView(
    mojo::StringDataView* output) {}
inline void PaymentOptionsDataView::GetPayeeOriginDataView(
    ::url::mojom::OriginDataView* output) {}


inline void PaymentCredentialInstrumentDataView::GetDisplayNameDataView(
    mojo::StringDataView* output) {}
inline void PaymentCredentialInstrumentDataView::GetIconDataView(
    ::url::mojom::UrlDataView* output) {}


inline void RemoteDesktopClientOverrideDataView::GetOriginDataView(
    ::url::mojom::OriginDataView* output) {}


inline void SupplementalPubKeysRequestDataView::GetAttestationFormatsDataView(
    mojo::ArrayDataView<mojo::StringDataView>* output) {}


inline void PublicKeyCredentialRequestOptionsDataView::GetChallengeDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void PublicKeyCredentialRequestOptionsDataView::GetTimeoutDataView(
    ::mojo_base::mojom::TimeDeltaDataView* output) {}
inline void PublicKeyCredentialRequestOptionsDataView::GetRelyingPartyIdDataView(
    mojo::StringDataView* output) {}
inline void PublicKeyCredentialRequestOptionsDataView::GetAllowCredentialsDataView(
    mojo::ArrayDataView<PublicKeyCredentialDescriptorDataView>* output) {}
inline void PublicKeyCredentialRequestOptionsDataView::GetHintsDataView(
    mojo::ArrayDataView<Hint>* output) {}
inline void PublicKeyCredentialRequestOptionsDataView::GetExtensionsDataView(
    AuthenticationExtensionsClientInputsDataView* output) {}


inline void AuthenticationExtensionsClientInputsDataView::GetAppidDataView(
    mojo::StringDataView* output) {}
inline void AuthenticationExtensionsClientInputsDataView::GetCableAuthenticationDataDataView(
    mojo::ArrayDataView<CableAuthenticationDataView>* output) {}
inline void AuthenticationExtensionsClientInputsDataView::GetPrfInputsDataView(
    mojo::ArrayDataView<PRFValuesDataView>* output) {}
inline void AuthenticationExtensionsClientInputsDataView::GetLargeBlobWriteDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void AuthenticationExtensionsClientInputsDataView::GetRemoteDesktopClientOverrideDataView(
    RemoteDesktopClientOverrideDataView* output) {}
inline void AuthenticationExtensionsClientInputsDataView::GetSupplementalPubKeysDataView(
    SupplementalPubKeysRequestDataView* output) {}




inline void PublicKeyCredentialCreationOptionsDataView::GetRelyingPartyDataView(
    PublicKeyCredentialRpEntityDataView* output) {}
inline void PublicKeyCredentialCreationOptionsDataView::GetUserDataView(
    PublicKeyCredentialUserEntityDataView* output) {}
inline void PublicKeyCredentialCreationOptionsDataView::GetChallengeDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void PublicKeyCredentialCreationOptionsDataView::GetPublicKeyParametersDataView(
    mojo::ArrayDataView<PublicKeyCredentialParametersDataView>* output) {}
inline void PublicKeyCredentialCreationOptionsDataView::GetTimeoutDataView(
    ::mojo_base::mojom::TimeDeltaDataView* output) {}
inline void PublicKeyCredentialCreationOptionsDataView::GetExcludeCredentialsDataView(
    mojo::ArrayDataView<PublicKeyCredentialDescriptorDataView>* output) {}
inline void PublicKeyCredentialCreationOptionsDataView::GetAuthenticatorSelectionDataView(
    AuthenticatorSelectionCriteriaDataView* output) {}
inline void PublicKeyCredentialCreationOptionsDataView::GetHintsDataView(
    mojo::ArrayDataView<Hint>* output) {}
inline void PublicKeyCredentialCreationOptionsDataView::GetPrfInputDataView(
    PRFValuesDataView* output) {}
inline void PublicKeyCredentialCreationOptionsDataView::GetAppidExcludeDataView(
    mojo::StringDataView* output) {}
inline void PublicKeyCredentialCreationOptionsDataView::GetCredBlobDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void PublicKeyCredentialCreationOptionsDataView::GetRemoteDesktopClientOverrideDataView(
    RemoteDesktopClientOverrideDataView* output) {}
inline void PublicKeyCredentialCreationOptionsDataView::GetSupplementalPubKeysDataView(
    SupplementalPubKeysRequestDataView* output) {}
inline void PublicKeyCredentialCreationOptionsDataView::GetAttestationFormatsDataView(
    mojo::ArrayDataView<mojo::StringDataView>* output) {}


inline void PublicKeyCredentialDescriptorDataView::GetIdDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void PublicKeyCredentialDescriptorDataView::GetTransportsDataView(
    mojo::ArrayDataView<AuthenticatorTransport>* output) {}


inline void WebAuthnDOMExceptionDetailsDataView::GetNameDataView(
    mojo::StringDataView* output) {}
inline void WebAuthnDOMExceptionDetailsDataView::GetMessageDataView(
    mojo::StringDataView* output) {}


inline void PublicKeyCredentialReportOptionsDataView::GetRelyingPartyIdDataView(
    mojo::StringDataView* output) {}
inline void PublicKeyCredentialReportOptionsDataView::GetUnknownCredentialIdDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void PublicKeyCredentialReportOptionsDataView::GetAllAcceptedCredentialsDataView(
    AllAcceptedCredentialsOptionsDataView* output) {}
inline void PublicKeyCredentialReportOptionsDataView::GetCurrentUserDetailsDataView(
    CurrentUserDetailsOptionsDataView* output) {}


inline void AllAcceptedCredentialsOptionsDataView::GetUserIdDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void AllAcceptedCredentialsOptionsDataView::GetAllAcceptedCredentialsIdsDataView(
    mojo::ArrayDataView<mojo::ArrayDataView<uint8_t>>* output) {}


inline void CurrentUserDetailsOptionsDataView::GetUserIdDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void CurrentUserDetailsOptionsDataView::GetNameDataView(
    mojo::StringDataView* output) {}
inline void CurrentUserDetailsOptionsDataView::GetDisplayNameDataView(
    mojo::StringDataView* output) {}


inline void WebAuthnClientCapabilityDataView::GetNameDataView(
    mojo::StringDataView* output) {}



}  // blink::mojom

// Declare TraceFormatTraits for enums, which should be defined in ::perfetto
// namespace.

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::AuthenticatorStatus> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::AuthenticatorTransport> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::Hint> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::UserVerificationRequirement> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::ResidentKeyRequirement> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::AuthenticatorAttachment> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::ProtectionPolicy> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::LargeBlobSupport> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::AttestationConveyancePreference> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::PublicKeyCredentialType> {};

} // namespace perfetto

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_WEBAUTHN_AUTHENTICATOR_MOJOM_SHARED_H_