/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM $SRCDIR/accessible/interfaces/nsIAccessibleDocument.idl
 */

#ifndef __gen_nsIAccessibleDocument_h__
#define __gen_nsIAccessibleDocument_h__


#include "nsISupports.h"

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIAccessiblePivot; /* forward declaration */

class mozIDOMWindowProxy; /* forward declaration */

namespace mozilla {
namespace dom {
class BrowsingContext; /* webidl BrowsingContext */
} // namespace dom
} // namespace mozilla

namespace mozilla {
namespace dom {
class Document; /* webidl Document */
} // namespace dom
} // namespace mozilla


/* starting interface:    nsIAccessibleDocument */
#define NS_IACCESSIBLEDOCUMENT_IID_STR "5cad5f91-fcce-40e7-913e-4671701d19b4"

#define NS_IACCESSIBLEDOCUMENT_IID \
  {0x5cad5f91, 0xfcce, 0x40e7, \
    { 0x91, 0x3e, 0x46, 0x71, 0x70, 0x1d, 0x19, 0xb4 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsIAccessibleDocument) nsIAccessibleDocument : public nsISupports {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_IACCESSIBLEDOCUMENT_IID)

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

  /* readonly attribute AString URL; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_URL)
  NS_IMETHOD GetURL(nsAString& aURL) = 0;

  /* readonly attribute AString title; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_title)
  NS_IMETHOD GetTitle(nsAString& aTitle) = 0;

  /* readonly attribute AString mimeType; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_mimeType)
  NS_IMETHOD GetMimeType(nsAString& aMimeType) = 0;

  /* readonly attribute AString docType; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_docType)
  NS_IMETHOD GetDocType(nsAString& aDocType) = 0;

  /* readonly attribute Document DOMDocument; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_DOMDocument)
  NS_IMETHOD GetDOMDocument(mozilla::dom::Document **aDOMDocument) = 0;

  /* readonly attribute mozIDOMWindowProxy window; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_window)
  NS_IMETHOD GetWindow(mozIDOMWindowProxy **aWindow) = 0;

  /* readonly attribute nsIAccessibleDocument parentDocument; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_parentDocument)
  NS_IMETHOD GetParentDocument(nsIAccessibleDocument **aParentDocument) = 0;

  /* readonly attribute unsigned long childDocumentCount; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_childDocumentCount)
  NS_IMETHOD GetChildDocumentCount(uint32_t *aChildDocumentCount) = 0;

  /* nsIAccessibleDocument getChildDocumentAt (in unsigned long index); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleDocument_getChildDocumentAt)
  NS_IMETHOD GetChildDocumentAt(uint32_t index, nsIAccessibleDocument **_retval) = 0;

  /* readonly attribute BrowsingContext browsingContext; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_browsingContext)
  NS_IMETHOD GetBrowsingContext(mozilla::dom::BrowsingContext **aBrowsingContext) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIACCESSIBLEDOCUMENT \
  NS_IMETHOD GetURL(nsAString& aURL) override; \
  NS_IMETHOD GetTitle(nsAString& aTitle) override; \
  NS_IMETHOD GetMimeType(nsAString& aMimeType) override; \
  NS_IMETHOD GetDocType(nsAString& aDocType) override; \
  NS_IMETHOD GetDOMDocument(mozilla::dom::Document **aDOMDocument) override; \
  NS_IMETHOD GetWindow(mozIDOMWindowProxy **aWindow) override; \
  NS_IMETHOD GetParentDocument(nsIAccessibleDocument **aParentDocument) override; \
  NS_IMETHOD GetChildDocumentCount(uint32_t *aChildDocumentCount) override; \
  NS_IMETHOD GetChildDocumentAt(uint32_t index, nsIAccessibleDocument **_retval) override; \
  NS_IMETHOD GetBrowsingContext(mozilla::dom::BrowsingContext **aBrowsingContext) 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_NSIACCESSIBLEDOCUMENT \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_URL)\
  nsresult GetURL(nsAString& aURL); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_title)\
  nsresult GetTitle(nsAString& aTitle); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_mimeType)\
  nsresult GetMimeType(nsAString& aMimeType); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_docType)\
  nsresult GetDocType(nsAString& aDocType); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_DOMDocument)\
  nsresult GetDOMDocument(mozilla::dom::Document **aDOMDocument); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_window)\
  nsresult GetWindow(mozIDOMWindowProxy **aWindow); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_parentDocument)\
  nsresult GetParentDocument(nsIAccessibleDocument **aParentDocument); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_childDocumentCount)\
  nsresult GetChildDocumentCount(uint32_t *aChildDocumentCount); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleDocument_getChildDocumentAt)\
  nsresult GetChildDocumentAt(uint32_t index, nsIAccessibleDocument **_retval); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleDocument_browsingContext)\
  nsresult GetBrowsingContext(mozilla::dom::BrowsingContext **aBrowsingContext); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIACCESSIBLEDOCUMENT(_to) \
  NS_IMETHOD GetURL(nsAString& aURL) override { return _to GetURL(aURL); } \
  NS_IMETHOD GetTitle(nsAString& aTitle) override { return _to GetTitle(aTitle); } \
  NS_IMETHOD GetMimeType(nsAString& aMimeType) override { return _to GetMimeType(aMimeType); } \
  NS_IMETHOD GetDocType(nsAString& aDocType) override { return _to GetDocType(aDocType); } \
  NS_IMETHOD GetDOMDocument(mozilla::dom::Document **aDOMDocument) override { return _to GetDOMDocument(aDOMDocument); } \
  NS_IMETHOD GetWindow(mozIDOMWindowProxy **aWindow) override { return _to GetWindow(aWindow); } \
  NS_IMETHOD GetParentDocument(nsIAccessibleDocument **aParentDocument) override { return _to GetParentDocument(aParentDocument); } \
  NS_IMETHOD GetChildDocumentCount(uint32_t *aChildDocumentCount) override { return _to GetChildDocumentCount(aChildDocumentCount); } \
  NS_IMETHOD GetChildDocumentAt(uint32_t index, nsIAccessibleDocument **_retval) override { return _to GetChildDocumentAt(index, _retval); } \
  NS_IMETHOD GetBrowsingContext(mozilla::dom::BrowsingContext **aBrowsingContext) override { return _to GetBrowsingContext(aBrowsingContext); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIACCESSIBLEDOCUMENT(_to) \
  NS_IMETHOD GetURL(nsAString& aURL) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetURL(aURL); } \
  NS_IMETHOD GetTitle(nsAString& aTitle) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTitle(aTitle); } \
  NS_IMETHOD GetMimeType(nsAString& aMimeType) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMimeType(aMimeType); } \
  NS_IMETHOD GetDocType(nsAString& aDocType) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDocType(aDocType); } \
  NS_IMETHOD GetDOMDocument(mozilla::dom::Document **aDOMDocument) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDOMDocument(aDOMDocument); } \
  NS_IMETHOD GetWindow(mozIDOMWindowProxy **aWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWindow(aWindow); } \
  NS_IMETHOD GetParentDocument(nsIAccessibleDocument **aParentDocument) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParentDocument(aParentDocument); } \
  NS_IMETHOD GetChildDocumentCount(uint32_t *aChildDocumentCount) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChildDocumentCount(aChildDocumentCount); } \
  NS_IMETHOD GetChildDocumentAt(uint32_t index, nsIAccessibleDocument **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChildDocumentAt(index, _retval); } \
  NS_IMETHOD GetBrowsingContext(mozilla::dom::BrowsingContext **aBrowsingContext) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBrowsingContext(aBrowsingContext); } 


#endif /* __gen_nsIAccessibleDocument_h__ */
