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

// third_party/blink/public/mojom/webauthn/authenticator.mojom.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_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_WEBAUTHN_AUTHENTICATOR_MOJOM_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-forward.h"  // IWYU pragma: export
#include "components/payments/mojom/payment_request_data.mojom.h"
#include "mojo/public/mojom/base/time.mojom.h"
#include "third_party/blink/public/mojom/payments/payment_credential.mojom-forward.h"
#include "url/mojom/origin.mojom.h"
#include "url/mojom/url.mojom.h"
#include <string>
#include <vector>

#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/public/mojom/authenticator_mojom_traits.h"
#include "third_party/blink/public/common/common_export.h"




namespace blink::mojom {

class AuthenticatorProxy;

template <typename ImplRefTraits>
class AuthenticatorStub;

class AuthenticatorRequestValidator;
class AuthenticatorResponseValidator;


class BLINK_COMMON_EXPORT Authenticator
    : public AuthenticatorInterfaceBase {};



class BLINK_COMMON_EXPORT AuthenticatorProxy
    : public Authenticator {};
class BLINK_COMMON_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 BLINK_COMMON_EXPORT AuthenticatorRequestValidator : public mojo::MessageReceiver {};
class BLINK_COMMON_EXPORT AuthenticatorResponseValidator : public mojo::MessageReceiver {};










class BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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 BLINK_COMMON_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

namespace mojo {


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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

}  // namespace mojo

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_WEBAUTHN_AUTHENTICATOR_MOJOM_H_