/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM $SRCDIR/security/manager/ssl/nsINSSComponent.idl
 */

#ifndef __gen_nsINSSComponent_h__
#define __gen_nsINSSComponent_h__


#include "nsISerialEventTarget.h"

#include "nsISupports.h"

#include "nsTArray.h"

#include "js/GCAnnotations.h"

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
// %{C++:10-12
#include "cert.h"
#include "SharedCertVerifier.h"
#define PSM_COMPONENT_CONTRACTID "@mozilla.org/psm;1"
// %}

/* starting interface:    nsINSSComponent */
#define NS_INSSCOMPONENT_IID_STR "a0a8f52b-ea18-4abc-a3ca-eccf704ffe63"

#define NS_INSSCOMPONENT_IID \
  {0xa0a8f52b, 0xea18, 0x4abc, \
    { 0xa3, 0xca, 0xec, 0xcf, 0x70, 0x4f, 0xfe, 0x63 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsINSSComponent) nsINSSComponent : public nsISupports {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_INSSCOMPONENT_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsINSSComponent;

  /* void clearTLSCacheAndCancelAllConnections (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_clearTLSCacheAndCancelAllConnections)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ClearTLSCacheAndCancelAllConnections(void) = 0;

  /* [noscript] boolean isCertTestBuiltInRoot (in Array<octet> cert); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_isCertTestBuiltInRoot)
  NS_IMETHOD IsCertTestBuiltInRoot(const nsTArray<uint8_t >& cert, bool *_retval) = 0;

  /* Array<Array<octet>> getEnterpriseRoots (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_getEnterpriseRoots)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetEnterpriseRoots(nsTArray<nsTArray<uint8_t >>& _retval) = 0;

  /* ACString getEnterpriseRootsPEM (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_getEnterpriseRootsPEM)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetEnterpriseRootsPEM(nsACString& _retval) = 0;

  /* Array<Array<octet>> getEnterpriseIntermediates (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_getEnterpriseIntermediates)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetEnterpriseIntermediates(nsTArray<nsTArray<uint8_t >>& _retval) = 0;

  /* ACString getEnterpriseIntermediatesPEM (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_getEnterpriseIntermediatesPEM)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetEnterpriseIntermediatesPEM(nsACString& _retval) = 0;

  /* void addEnterpriseIntermediate (in Array<octet> intermediateBytes); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_addEnterpriseIntermediate)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD AddEnterpriseIntermediate(const nsTArray<uint8_t >& intermediateBytes) = 0;

  /* [noscript] void blockUntilLoadableCertsLoaded (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_blockUntilLoadableCertsLoaded)
  NS_IMETHOD BlockUntilLoadableCertsLoaded(void) = 0;

  /* [noscript] void issuerMatchesMitmCanary (in string certIssuer); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_issuerMatchesMitmCanary)
  NS_IMETHOD IssuerMatchesMitmCanary(const char * certIssuer) = 0;

  /* [noscript] SharedCertVerifierPtr getDefaultCertVerifier (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_getDefaultCertVerifier)
  NS_IMETHOD GetDefaultCertVerifier(mozilla::psm::SharedCertVerifier * * _retval) = 0;

  /* readonly attribute nsISerialEventTarget nssTaskQueue; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsINSSComponent_nssTaskQueue)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetNssTaskQueue(nsISerialEventTarget **aNssTaskQueue) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSINSSCOMPONENT \
  NS_IMETHOD ClearTLSCacheAndCancelAllConnections(void) override; \
  NS_IMETHOD IsCertTestBuiltInRoot(const nsTArray<uint8_t >& cert, bool *_retval) override; \
  NS_IMETHOD GetEnterpriseRoots(nsTArray<nsTArray<uint8_t >>& _retval) override; \
  NS_IMETHOD GetEnterpriseRootsPEM(nsACString& _retval) override; \
  NS_IMETHOD GetEnterpriseIntermediates(nsTArray<nsTArray<uint8_t >>& _retval) override; \
  NS_IMETHOD GetEnterpriseIntermediatesPEM(nsACString& _retval) override; \
  NS_IMETHOD AddEnterpriseIntermediate(const nsTArray<uint8_t >& intermediateBytes) override; \
  NS_IMETHOD BlockUntilLoadableCertsLoaded(void) override; \
  NS_IMETHOD IssuerMatchesMitmCanary(const char * certIssuer) override; \
  NS_IMETHOD GetDefaultCertVerifier(mozilla::psm::SharedCertVerifier * * _retval) override; \
  NS_IMETHOD GetNssTaskQueue(nsISerialEventTarget **aNssTaskQueue) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSINSSCOMPONENT \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_clearTLSCacheAndCancelAllConnections)\
  nsresult ClearTLSCacheAndCancelAllConnections(void); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_isCertTestBuiltInRoot)\
  nsresult IsCertTestBuiltInRoot(const nsTArray<uint8_t >& cert, bool *_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_getEnterpriseRoots)\
  nsresult GetEnterpriseRoots(nsTArray<nsTArray<uint8_t >>& _retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_getEnterpriseRootsPEM)\
  nsresult GetEnterpriseRootsPEM(nsACString& _retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_getEnterpriseIntermediates)\
  nsresult GetEnterpriseIntermediates(nsTArray<nsTArray<uint8_t >>& _retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_getEnterpriseIntermediatesPEM)\
  nsresult GetEnterpriseIntermediatesPEM(nsACString& _retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_addEnterpriseIntermediate)\
  nsresult AddEnterpriseIntermediate(const nsTArray<uint8_t >& intermediateBytes); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_blockUntilLoadableCertsLoaded)\
  nsresult BlockUntilLoadableCertsLoaded(void); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_issuerMatchesMitmCanary)\
  nsresult IssuerMatchesMitmCanary(const char * certIssuer); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsINSSComponent_getDefaultCertVerifier)\
  nsresult GetDefaultCertVerifier(mozilla::psm::SharedCertVerifier * * _retval); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsINSSComponent_nssTaskQueue)\
  nsresult GetNssTaskQueue(nsISerialEventTarget **aNssTaskQueue); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSINSSCOMPONENT(_to) \
  NS_IMETHOD ClearTLSCacheAndCancelAllConnections(void) override { return _to ClearTLSCacheAndCancelAllConnections(); } \
  NS_IMETHOD IsCertTestBuiltInRoot(const nsTArray<uint8_t >& cert, bool *_retval) override { return _to IsCertTestBuiltInRoot(cert, _retval); } \
  NS_IMETHOD GetEnterpriseRoots(nsTArray<nsTArray<uint8_t >>& _retval) override { return _to GetEnterpriseRoots(_retval); } \
  NS_IMETHOD GetEnterpriseRootsPEM(nsACString& _retval) override { return _to GetEnterpriseRootsPEM(_retval); } \
  NS_IMETHOD GetEnterpriseIntermediates(nsTArray<nsTArray<uint8_t >>& _retval) override { return _to GetEnterpriseIntermediates(_retval); } \
  NS_IMETHOD GetEnterpriseIntermediatesPEM(nsACString& _retval) override { return _to GetEnterpriseIntermediatesPEM(_retval); } \
  NS_IMETHOD AddEnterpriseIntermediate(const nsTArray<uint8_t >& intermediateBytes) override { return _to AddEnterpriseIntermediate(intermediateBytes); } \
  NS_IMETHOD BlockUntilLoadableCertsLoaded(void) override { return _to BlockUntilLoadableCertsLoaded(); } \
  NS_IMETHOD IssuerMatchesMitmCanary(const char * certIssuer) override { return _to IssuerMatchesMitmCanary(certIssuer); } \
  NS_IMETHOD GetDefaultCertVerifier(mozilla::psm::SharedCertVerifier * * _retval) override { return _to GetDefaultCertVerifier(_retval); } \
  NS_IMETHOD GetNssTaskQueue(nsISerialEventTarget **aNssTaskQueue) override { return _to GetNssTaskQueue(aNssTaskQueue); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSINSSCOMPONENT(_to) \
  NS_IMETHOD ClearTLSCacheAndCancelAllConnections(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearTLSCacheAndCancelAllConnections(); } \
  NS_IMETHOD IsCertTestBuiltInRoot(const nsTArray<uint8_t >& cert, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsCertTestBuiltInRoot(cert, _retval); } \
  NS_IMETHOD GetEnterpriseRoots(nsTArray<nsTArray<uint8_t >>& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnterpriseRoots(_retval); } \
  NS_IMETHOD GetEnterpriseRootsPEM(nsACString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnterpriseRootsPEM(_retval); } \
  NS_IMETHOD GetEnterpriseIntermediates(nsTArray<nsTArray<uint8_t >>& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnterpriseIntermediates(_retval); } \
  NS_IMETHOD GetEnterpriseIntermediatesPEM(nsACString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnterpriseIntermediatesPEM(_retval); } \
  NS_IMETHOD AddEnterpriseIntermediate(const nsTArray<uint8_t >& intermediateBytes) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddEnterpriseIntermediate(intermediateBytes); } \
  NS_IMETHOD BlockUntilLoadableCertsLoaded(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->BlockUntilLoadableCertsLoaded(); } \
  NS_IMETHOD IssuerMatchesMitmCanary(const char * certIssuer) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IssuerMatchesMitmCanary(certIssuer); } \
  NS_IMETHOD GetDefaultCertVerifier(mozilla::psm::SharedCertVerifier * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultCertVerifier(_retval); } \
  NS_IMETHOD GetNssTaskQueue(nsISerialEventTarget **aNssTaskQueue) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNssTaskQueue(aNssTaskQueue); } 


#endif /* __gen_nsINSSComponent_h__ */
