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

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

// Copyright 2013 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_BLINK_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_WEBAUTHN_AUTHENTICATOR_MOJOM_BLINK_H_

#include <stdint.h>

#include <limits>
#include <optional>
#include <type_traits>
#include <utility>

#include "base/types/cxx23_to_underlying.h"
#include "mojo/public/cpp/bindings/clone_traits.h"
#include "mojo/public/cpp/bindings/equals_traits.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/struct_ptr.h"
#include "mojo/public/cpp/bindings/struct_traits.h"
#include "mojo/public/cpp/bindings/union_traits.h"

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

#include "third_party/blink/public/mojom/webauthn/authenticator.mojom-features.h"  // IWYU pragma: export
#include "third_party/blink/public/mojom/webauthn/authenticator.mojom-shared.h"  // IWYU pragma: export
#include "third_party/blink/public/mojom/webauthn/authenticator.mojom-blink-forward.h"  // IWYU pragma: export
#include "components/payments/mojom/payment_request_data.mojom-blink.h"
#include "mojo/public/mojom/base/time.mojom-blink.h"
#include "third_party/blink/public/mojom/payments/payment_credential.mojom-blink-forward.h"
#include "url/mojom/origin.mojom-blink.h"
#include "url/mojom/url.mojom-blink.h"

#include "mojo/public/cpp/bindings/lib/wtf_clone_equals_util.h"
#include "mojo/public/cpp/bindings/lib/wtf_hash_util.h"
#include "third_party/blink/renderer/platform/wtf/hash_functions.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"

#include "mojo/public/cpp/bindings/lib/control_message_handler.h"
#include "mojo/public/cpp/bindings/lib/message_size_estimator.h"
#include "mojo/public/cpp/bindings/raw_ptr_impl_ref_traits.h"


#include "third_party/blink/renderer/platform/platform_export.h"




namespace blink::mojom::blink {

class AuthenticatorProxy;

template <typename ImplRefTraits>
class AuthenticatorStub;

class AuthenticatorRequestValidator;
class AuthenticatorResponseValidator;


class PLATFORM_EXPORT Authenticator
    : public AuthenticatorInterfaceBase {};



class PLATFORM_EXPORT AuthenticatorProxy
    : public Authenticator {};
class PLATFORM_EXPORT AuthenticatorStubDispatch {};

template <typename ImplRefTraits =
              mojo::RawPtrImplRefTraits<Authenticator>>
class AuthenticatorStub
    : public mojo::MessageReceiverWithResponderStatus {
 public:
  using ImplPointerType = typename ImplRefTraits::PointerType;

  AuthenticatorStub() = default;
  ~AuthenticatorStub() override = default;

  void set_sink(ImplPointerType sink) {}
  ImplPointerType& sink() {}

  bool Accept(mojo::Message* message) override {}

  bool AcceptWithResponder(
      mojo::Message* message,
      std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {}

 private:
  ImplPointerType sink_;
};
class PLATFORM_EXPORT AuthenticatorRequestValidator : public mojo::MessageReceiver {};
class PLATFORM_EXPORT AuthenticatorResponseValidator : public mojo::MessageReceiver {};










class PLATFORM_EXPORT PublicKeyCredentialRpEntity {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, PublicKeyCredentialRpEntity::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, PublicKeyCredentialRpEntity::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, PublicKeyCredentialRpEntity::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, PublicKeyCredentialRpEntity::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}






class PLATFORM_EXPORT PublicKeyCredentialParameters {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, PublicKeyCredentialParameters::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, PublicKeyCredentialParameters::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, PublicKeyCredentialParameters::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, PublicKeyCredentialParameters::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}













class PLATFORM_EXPORT AuthenticatorSelectionCriteria {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, AuthenticatorSelectionCriteria::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, AuthenticatorSelectionCriteria::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, AuthenticatorSelectionCriteria::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, AuthenticatorSelectionCriteria::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}







class PLATFORM_EXPORT WebAuthnDOMExceptionDetails {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, WebAuthnDOMExceptionDetails::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, WebAuthnDOMExceptionDetails::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, WebAuthnDOMExceptionDetails::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, WebAuthnDOMExceptionDetails::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}








class PLATFORM_EXPORT WebAuthnClientCapability {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, WebAuthnClientCapability::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, WebAuthnClientCapability::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, WebAuthnClientCapability::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, WebAuthnClientCapability::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}







class PLATFORM_EXPORT CommonCredentialInfo {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, CommonCredentialInfo::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, CommonCredentialInfo::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, CommonCredentialInfo::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, CommonCredentialInfo::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT SupplementalPubKeysResponse {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, SupplementalPubKeysResponse::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, SupplementalPubKeysResponse::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, SupplementalPubKeysResponse::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, SupplementalPubKeysResponse::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT MakeCredentialAuthenticatorResponse {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, MakeCredentialAuthenticatorResponse::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, MakeCredentialAuthenticatorResponse::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, MakeCredentialAuthenticatorResponse::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, MakeCredentialAuthenticatorResponse::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT GetAssertionAuthenticatorResponse {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, GetAssertionAuthenticatorResponse::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, GetAssertionAuthenticatorResponse::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, GetAssertionAuthenticatorResponse::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, GetAssertionAuthenticatorResponse::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT AuthenticationExtensionsClientOutputs {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, AuthenticationExtensionsClientOutputs::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, AuthenticationExtensionsClientOutputs::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, AuthenticationExtensionsClientOutputs::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, AuthenticationExtensionsClientOutputs::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}






class PLATFORM_EXPORT PublicKeyCredentialUserEntity {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, PublicKeyCredentialUserEntity::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, PublicKeyCredentialUserEntity::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, PublicKeyCredentialUserEntity::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, PublicKeyCredentialUserEntity::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}






class PLATFORM_EXPORT CableAuthentication {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, CableAuthentication::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, CableAuthentication::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, CableAuthentication::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, CableAuthentication::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT PRFValues {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, PRFValues::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, PRFValues::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, PRFValues::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, PRFValues::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT PaymentOptions {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, PaymentOptions::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, PaymentOptions::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, PaymentOptions::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, PaymentOptions::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT PaymentCredentialInstrument {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, PaymentCredentialInstrument::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, PaymentCredentialInstrument::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, PaymentCredentialInstrument::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, PaymentCredentialInstrument::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT RemoteDesktopClientOverride {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, RemoteDesktopClientOverride::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, RemoteDesktopClientOverride::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, RemoteDesktopClientOverride::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, RemoteDesktopClientOverride::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT SupplementalPubKeysRequest {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, SupplementalPubKeysRequest::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, SupplementalPubKeysRequest::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, SupplementalPubKeysRequest::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, SupplementalPubKeysRequest::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT PublicKeyCredentialRequestOptions {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, PublicKeyCredentialRequestOptions::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, PublicKeyCredentialRequestOptions::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, PublicKeyCredentialRequestOptions::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, PublicKeyCredentialRequestOptions::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT AuthenticationExtensionsClientInputs {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, AuthenticationExtensionsClientInputs::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, AuthenticationExtensionsClientInputs::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, AuthenticationExtensionsClientInputs::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, AuthenticationExtensionsClientInputs::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}






class PLATFORM_EXPORT PublicKeyCredentialCreationOptions {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, PublicKeyCredentialCreationOptions::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, PublicKeyCredentialCreationOptions::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, PublicKeyCredentialCreationOptions::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, PublicKeyCredentialCreationOptions::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT PublicKeyCredentialDescriptor {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, PublicKeyCredentialDescriptor::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, PublicKeyCredentialDescriptor::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, PublicKeyCredentialDescriptor::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, PublicKeyCredentialDescriptor::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}






class PLATFORM_EXPORT PublicKeyCredentialReportOptions {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, PublicKeyCredentialReportOptions::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, PublicKeyCredentialReportOptions::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, PublicKeyCredentialReportOptions::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, PublicKeyCredentialReportOptions::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT AllAcceptedCredentialsOptions {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, AllAcceptedCredentialsOptions::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, AllAcceptedCredentialsOptions::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, AllAcceptedCredentialsOptions::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, AllAcceptedCredentialsOptions::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT CurrentUserDetailsOptions {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, CurrentUserDetailsOptions::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, CurrentUserDetailsOptions::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, CurrentUserDetailsOptions::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, CurrentUserDetailsOptions::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}


template <typename StructPtrType>
CommonCredentialInfoPtr CommonCredentialInfo::Clone() const {}

template <typename T, CommonCredentialInfo::EnableIfSame<T>*>
bool CommonCredentialInfo::Equals(const T& other_struct) const {}

template <typename T, CommonCredentialInfo::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
SupplementalPubKeysResponsePtr SupplementalPubKeysResponse::Clone() const {}

template <typename T, SupplementalPubKeysResponse::EnableIfSame<T>*>
bool SupplementalPubKeysResponse::Equals(const T& other_struct) const {}

template <typename T, SupplementalPubKeysResponse::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
MakeCredentialAuthenticatorResponsePtr MakeCredentialAuthenticatorResponse::Clone() const {}

template <typename T, MakeCredentialAuthenticatorResponse::EnableIfSame<T>*>
bool MakeCredentialAuthenticatorResponse::Equals(const T& other_struct) const {}

template <typename T, MakeCredentialAuthenticatorResponse::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
GetAssertionAuthenticatorResponsePtr GetAssertionAuthenticatorResponse::Clone() const {}

template <typename T, GetAssertionAuthenticatorResponse::EnableIfSame<T>*>
bool GetAssertionAuthenticatorResponse::Equals(const T& other_struct) const {}

template <typename T, GetAssertionAuthenticatorResponse::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
AuthenticationExtensionsClientOutputsPtr AuthenticationExtensionsClientOutputs::Clone() const {}

template <typename T, AuthenticationExtensionsClientOutputs::EnableIfSame<T>*>
bool AuthenticationExtensionsClientOutputs::Equals(const T& other_struct) const {}

template <typename T, AuthenticationExtensionsClientOutputs::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
PublicKeyCredentialRpEntityPtr PublicKeyCredentialRpEntity::Clone() const {}

template <typename T, PublicKeyCredentialRpEntity::EnableIfSame<T>*>
bool PublicKeyCredentialRpEntity::Equals(const T& other_struct) const {}

template <typename T, PublicKeyCredentialRpEntity::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
PublicKeyCredentialUserEntityPtr PublicKeyCredentialUserEntity::Clone() const {}

template <typename T, PublicKeyCredentialUserEntity::EnableIfSame<T>*>
bool PublicKeyCredentialUserEntity::Equals(const T& other_struct) const {}

template <typename T, PublicKeyCredentialUserEntity::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
PublicKeyCredentialParametersPtr PublicKeyCredentialParameters::Clone() const {}

template <typename T, PublicKeyCredentialParameters::EnableIfSame<T>*>
bool PublicKeyCredentialParameters::Equals(const T& other_struct) const {}

template <typename T, PublicKeyCredentialParameters::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
CableAuthenticationPtr CableAuthentication::Clone() const {}

template <typename T, CableAuthentication::EnableIfSame<T>*>
bool CableAuthentication::Equals(const T& other_struct) const {}

template <typename T, CableAuthentication::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
PRFValuesPtr PRFValues::Clone() const {}

template <typename T, PRFValues::EnableIfSame<T>*>
bool PRFValues::Equals(const T& other_struct) const {}

template <typename T, PRFValues::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
PaymentOptionsPtr PaymentOptions::Clone() const {}

template <typename T, PaymentOptions::EnableIfSame<T>*>
bool PaymentOptions::Equals(const T& other_struct) const {}

template <typename T, PaymentOptions::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
PaymentCredentialInstrumentPtr PaymentCredentialInstrument::Clone() const {}

template <typename T, PaymentCredentialInstrument::EnableIfSame<T>*>
bool PaymentCredentialInstrument::Equals(const T& other_struct) const {}

template <typename T, PaymentCredentialInstrument::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
RemoteDesktopClientOverridePtr RemoteDesktopClientOverride::Clone() const {}

template <typename T, RemoteDesktopClientOverride::EnableIfSame<T>*>
bool RemoteDesktopClientOverride::Equals(const T& other_struct) const {}

template <typename T, RemoteDesktopClientOverride::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
SupplementalPubKeysRequestPtr SupplementalPubKeysRequest::Clone() const {}

template <typename T, SupplementalPubKeysRequest::EnableIfSame<T>*>
bool SupplementalPubKeysRequest::Equals(const T& other_struct) const {}

template <typename T, SupplementalPubKeysRequest::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
PublicKeyCredentialRequestOptionsPtr PublicKeyCredentialRequestOptions::Clone() const {}

template <typename T, PublicKeyCredentialRequestOptions::EnableIfSame<T>*>
bool PublicKeyCredentialRequestOptions::Equals(const T& other_struct) const {}

template <typename T, PublicKeyCredentialRequestOptions::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
AuthenticationExtensionsClientInputsPtr AuthenticationExtensionsClientInputs::Clone() const {}

template <typename T, AuthenticationExtensionsClientInputs::EnableIfSame<T>*>
bool AuthenticationExtensionsClientInputs::Equals(const T& other_struct) const {}

template <typename T, AuthenticationExtensionsClientInputs::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
AuthenticatorSelectionCriteriaPtr AuthenticatorSelectionCriteria::Clone() const {}

template <typename T, AuthenticatorSelectionCriteria::EnableIfSame<T>*>
bool AuthenticatorSelectionCriteria::Equals(const T& other_struct) const {}

template <typename T, AuthenticatorSelectionCriteria::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
PublicKeyCredentialCreationOptionsPtr PublicKeyCredentialCreationOptions::Clone() const {}

template <typename T, PublicKeyCredentialCreationOptions::EnableIfSame<T>*>
bool PublicKeyCredentialCreationOptions::Equals(const T& other_struct) const {}

template <typename T, PublicKeyCredentialCreationOptions::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
PublicKeyCredentialDescriptorPtr PublicKeyCredentialDescriptor::Clone() const {}

template <typename T, PublicKeyCredentialDescriptor::EnableIfSame<T>*>
bool PublicKeyCredentialDescriptor::Equals(const T& other_struct) const {}

template <typename T, PublicKeyCredentialDescriptor::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
WebAuthnDOMExceptionDetailsPtr WebAuthnDOMExceptionDetails::Clone() const {}

template <typename T, WebAuthnDOMExceptionDetails::EnableIfSame<T>*>
bool WebAuthnDOMExceptionDetails::Equals(const T& other_struct) const {}

template <typename T, WebAuthnDOMExceptionDetails::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
PublicKeyCredentialReportOptionsPtr PublicKeyCredentialReportOptions::Clone() const {}

template <typename T, PublicKeyCredentialReportOptions::EnableIfSame<T>*>
bool PublicKeyCredentialReportOptions::Equals(const T& other_struct) const {}

template <typename T, PublicKeyCredentialReportOptions::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
AllAcceptedCredentialsOptionsPtr AllAcceptedCredentialsOptions::Clone() const {}

template <typename T, AllAcceptedCredentialsOptions::EnableIfSame<T>*>
bool AllAcceptedCredentialsOptions::Equals(const T& other_struct) const {}

template <typename T, AllAcceptedCredentialsOptions::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
CurrentUserDetailsOptionsPtr CurrentUserDetailsOptions::Clone() const {}

template <typename T, CurrentUserDetailsOptions::EnableIfSame<T>*>
bool CurrentUserDetailsOptions::Equals(const T& other_struct) const {}

template <typename T, CurrentUserDetailsOptions::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
WebAuthnClientCapabilityPtr WebAuthnClientCapability::Clone() const {}

template <typename T, WebAuthnClientCapability::EnableIfSame<T>*>
bool WebAuthnClientCapability::Equals(const T& other_struct) const {}

template <typename T, WebAuthnClientCapability::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}


}  // blink::mojom::blink

namespace mojo {


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::CommonCredentialInfo::DataView,
                                         ::blink::mojom::blink::CommonCredentialInfoPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::SupplementalPubKeysResponse::DataView,
                                         ::blink::mojom::blink::SupplementalPubKeysResponsePtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::MakeCredentialAuthenticatorResponse::DataView,
                                         ::blink::mojom::blink::MakeCredentialAuthenticatorResponsePtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::GetAssertionAuthenticatorResponse::DataView,
                                         ::blink::mojom::blink::GetAssertionAuthenticatorResponsePtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::AuthenticationExtensionsClientOutputs::DataView,
                                         ::blink::mojom::blink::AuthenticationExtensionsClientOutputsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::PublicKeyCredentialRpEntity::DataView,
                                         ::blink::mojom::blink::PublicKeyCredentialRpEntityPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::PublicKeyCredentialUserEntity::DataView,
                                         ::blink::mojom::blink::PublicKeyCredentialUserEntityPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::PublicKeyCredentialParameters::DataView,
                                         ::blink::mojom::blink::PublicKeyCredentialParametersPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::CableAuthentication::DataView,
                                         ::blink::mojom::blink::CableAuthenticationPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::PRFValues::DataView,
                                         ::blink::mojom::blink::PRFValuesPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::PaymentOptions::DataView,
                                         ::blink::mojom::blink::PaymentOptionsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::PaymentCredentialInstrument::DataView,
                                         ::blink::mojom::blink::PaymentCredentialInstrumentPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::RemoteDesktopClientOverride::DataView,
                                         ::blink::mojom::blink::RemoteDesktopClientOverridePtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::SupplementalPubKeysRequest::DataView,
                                         ::blink::mojom::blink::SupplementalPubKeysRequestPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::PublicKeyCredentialRequestOptions::DataView,
                                         ::blink::mojom::blink::PublicKeyCredentialRequestOptionsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::AuthenticationExtensionsClientInputs::DataView,
                                         ::blink::mojom::blink::AuthenticationExtensionsClientInputsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::AuthenticatorSelectionCriteria::DataView,
                                         ::blink::mojom::blink::AuthenticatorSelectionCriteriaPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::PublicKeyCredentialCreationOptions::DataView,
                                         ::blink::mojom::blink::PublicKeyCredentialCreationOptionsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::PublicKeyCredentialDescriptor::DataView,
                                         ::blink::mojom::blink::PublicKeyCredentialDescriptorPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::WebAuthnDOMExceptionDetails::DataView,
                                         ::blink::mojom::blink::WebAuthnDOMExceptionDetailsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::PublicKeyCredentialReportOptions::DataView,
                                         ::blink::mojom::blink::PublicKeyCredentialReportOptionsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::AllAcceptedCredentialsOptions::DataView,
                                         ::blink::mojom::blink::AllAcceptedCredentialsOptionsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::CurrentUserDetailsOptions::DataView,
                                         ::blink::mojom::blink::CurrentUserDetailsOptionsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::WebAuthnClientCapability::DataView,
                                         ::blink::mojom::blink::WebAuthnClientCapabilityPtr> {};

}  // namespace mojo

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_WEBAUTHN_AUTHENTICATOR_MOJOM_BLINK_H_