/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM $SRCDIR/dom/quota/nsIQuotaResults.idl
 */

#ifndef __gen_nsIQuotaResults_h__
#define __gen_nsIQuotaResults_h__


#include "nsISupports.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++:8-10
namespace mozilla::dom::quota {
class UsageInfo;
}  // namespace mozilla::dom::quota
// %}

/* starting interface:    nsIQuotaFullOriginMetadataResult */
#define NS_IQUOTAFULLORIGINMETADATARESULT_IID_STR "4d8def75-014e-404d-bf30-e2f0bfcf4d89"

#define NS_IQUOTAFULLORIGINMETADATARESULT_IID \
  {0x4d8def75, 0x014e, 0x404d, \
    { 0xbf, 0x30, 0xe2, 0xf0, 0xbf, 0xcf, 0x4d, 0x89 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsIQuotaFullOriginMetadataResult) nsIQuotaFullOriginMetadataResult : public nsISupports {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_IQUOTAFULLORIGINMETADATARESULT_IID)

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

  /* readonly attribute ACString suffix; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_suffix)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetSuffix(nsACString& aSuffix) = 0;

  /* readonly attribute ACString group; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_group)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetGroup(nsACString& aGroup) = 0;

  /* readonly attribute ACString origin; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_origin)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetOrigin(nsACString& aOrigin) = 0;

  /* readonly attribute ACString storageOrigin; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_storageOrigin)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetStorageOrigin(nsACString& aStorageOrigin) = 0;

  /* readonly attribute boolean private; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_private)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetPrivate(bool *aPrivate) = 0;

  /* readonly attribute ACString persistenceType; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_persistenceType)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetPersistenceType(nsACString& aPersistenceType) = 0;

  /* readonly attribute long long lastAccessTime; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_lastAccessTime)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetLastAccessTime(int64_t *aLastAccessTime) = 0;

  /* readonly attribute long lastMaintenanceDate; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_lastMaintenanceDate)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetLastMaintenanceDate(int32_t *aLastMaintenanceDate) = 0;

  /* readonly attribute boolean accessed; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_accessed)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetAccessed(bool *aAccessed) = 0;

  /* readonly attribute boolean persisted; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_persisted)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetPersisted(bool *aPersisted) = 0;

  /* readonly attribute ACString clientUsages; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_clientUsages)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetClientUsages(nsACString& aClientUsages) = 0;

  /* readonly attribute unsigned long long originUsage; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_originUsage)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetOriginUsage(uint64_t *aOriginUsage) = 0;

  /* readonly attribute unsigned long quotaVersion; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_quotaVersion)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetQuotaVersion(uint32_t *aQuotaVersion) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIQUOTAFULLORIGINMETADATARESULT \
  NS_IMETHOD GetSuffix(nsACString& aSuffix) override; \
  NS_IMETHOD GetGroup(nsACString& aGroup) override; \
  NS_IMETHOD GetOrigin(nsACString& aOrigin) override; \
  NS_IMETHOD GetStorageOrigin(nsACString& aStorageOrigin) override; \
  NS_IMETHOD GetPrivate(bool *aPrivate) override; \
  NS_IMETHOD GetPersistenceType(nsACString& aPersistenceType) override; \
  NS_IMETHOD GetLastAccessTime(int64_t *aLastAccessTime) override; \
  NS_IMETHOD GetLastMaintenanceDate(int32_t *aLastMaintenanceDate) override; \
  NS_IMETHOD GetAccessed(bool *aAccessed) override; \
  NS_IMETHOD GetPersisted(bool *aPersisted) override; \
  NS_IMETHOD GetClientUsages(nsACString& aClientUsages) override; \
  NS_IMETHOD GetOriginUsage(uint64_t *aOriginUsage) override; \
  NS_IMETHOD GetQuotaVersion(uint32_t *aQuotaVersion) 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_NSIQUOTAFULLORIGINMETADATARESULT \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_suffix)\
  nsresult GetSuffix(nsACString& aSuffix); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_group)\
  nsresult GetGroup(nsACString& aGroup); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_origin)\
  nsresult GetOrigin(nsACString& aOrigin); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_storageOrigin)\
  nsresult GetStorageOrigin(nsACString& aStorageOrigin); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_private)\
  nsresult GetPrivate(bool *aPrivate); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_persistenceType)\
  nsresult GetPersistenceType(nsACString& aPersistenceType); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_lastAccessTime)\
  nsresult GetLastAccessTime(int64_t *aLastAccessTime); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_lastMaintenanceDate)\
  nsresult GetLastMaintenanceDate(int32_t *aLastMaintenanceDate); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_accessed)\
  nsresult GetAccessed(bool *aAccessed); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_persisted)\
  nsresult GetPersisted(bool *aPersisted); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_clientUsages)\
  nsresult GetClientUsages(nsACString& aClientUsages); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_originUsage)\
  nsresult GetOriginUsage(uint64_t *aOriginUsage); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaFullOriginMetadataResult_quotaVersion)\
  nsresult GetQuotaVersion(uint32_t *aQuotaVersion); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIQUOTAFULLORIGINMETADATARESULT(_to) \
  NS_IMETHOD GetSuffix(nsACString& aSuffix) override { return _to GetSuffix(aSuffix); } \
  NS_IMETHOD GetGroup(nsACString& aGroup) override { return _to GetGroup(aGroup); } \
  NS_IMETHOD GetOrigin(nsACString& aOrigin) override { return _to GetOrigin(aOrigin); } \
  NS_IMETHOD GetStorageOrigin(nsACString& aStorageOrigin) override { return _to GetStorageOrigin(aStorageOrigin); } \
  NS_IMETHOD GetPrivate(bool *aPrivate) override { return _to GetPrivate(aPrivate); } \
  NS_IMETHOD GetPersistenceType(nsACString& aPersistenceType) override { return _to GetPersistenceType(aPersistenceType); } \
  NS_IMETHOD GetLastAccessTime(int64_t *aLastAccessTime) override { return _to GetLastAccessTime(aLastAccessTime); } \
  NS_IMETHOD GetLastMaintenanceDate(int32_t *aLastMaintenanceDate) override { return _to GetLastMaintenanceDate(aLastMaintenanceDate); } \
  NS_IMETHOD GetAccessed(bool *aAccessed) override { return _to GetAccessed(aAccessed); } \
  NS_IMETHOD GetPersisted(bool *aPersisted) override { return _to GetPersisted(aPersisted); } \
  NS_IMETHOD GetClientUsages(nsACString& aClientUsages) override { return _to GetClientUsages(aClientUsages); } \
  NS_IMETHOD GetOriginUsage(uint64_t *aOriginUsage) override { return _to GetOriginUsage(aOriginUsage); } \
  NS_IMETHOD GetQuotaVersion(uint32_t *aQuotaVersion) override { return _to GetQuotaVersion(aQuotaVersion); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIQUOTAFULLORIGINMETADATARESULT(_to) \
  NS_IMETHOD GetSuffix(nsACString& aSuffix) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSuffix(aSuffix); } \
  NS_IMETHOD GetGroup(nsACString& aGroup) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGroup(aGroup); } \
  NS_IMETHOD GetOrigin(nsACString& aOrigin) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOrigin(aOrigin); } \
  NS_IMETHOD GetStorageOrigin(nsACString& aStorageOrigin) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStorageOrigin(aStorageOrigin); } \
  NS_IMETHOD GetPrivate(bool *aPrivate) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPrivate(aPrivate); } \
  NS_IMETHOD GetPersistenceType(nsACString& aPersistenceType) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPersistenceType(aPersistenceType); } \
  NS_IMETHOD GetLastAccessTime(int64_t *aLastAccessTime) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastAccessTime(aLastAccessTime); } \
  NS_IMETHOD GetLastMaintenanceDate(int32_t *aLastMaintenanceDate) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastMaintenanceDate(aLastMaintenanceDate); } \
  NS_IMETHOD GetAccessed(bool *aAccessed) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccessed(aAccessed); } \
  NS_IMETHOD GetPersisted(bool *aPersisted) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPersisted(aPersisted); } \
  NS_IMETHOD GetClientUsages(nsACString& aClientUsages) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClientUsages(aClientUsages); } \
  NS_IMETHOD GetOriginUsage(uint64_t *aOriginUsage) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOriginUsage(aOriginUsage); } \
  NS_IMETHOD GetQuotaVersion(uint32_t *aQuotaVersion) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetQuotaVersion(aQuotaVersion); } 


/* starting interface:    nsIQuotaUsageResult */
#define NS_IQUOTAUSAGERESULT_IID_STR "d8c9328b-9aa8-4f5d-90e6-482de4a6d5b8"

#define NS_IQUOTAUSAGERESULT_IID \
  {0xd8c9328b, 0x9aa8, 0x4f5d, \
    { 0x90, 0xe6, 0x48, 0x2d, 0xe4, 0xa6, 0xd5, 0xb8 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsIQuotaUsageResult) nsIQuotaUsageResult : public nsISupports {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_IQUOTAUSAGERESULT_IID)

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

  /* readonly attribute ACString origin; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaUsageResult_origin)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetOrigin(nsACString& aOrigin) = 0;

  /* readonly attribute boolean persisted; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaUsageResult_persisted)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetPersisted(bool *aPersisted) = 0;

  /* readonly attribute unsigned long long usage; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaUsageResult_usage)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetUsage(uint64_t *aUsage) = 0;

  /* readonly attribute unsigned long long lastAccessed; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaUsageResult_lastAccessed)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetLastAccessed(uint64_t *aLastAccessed) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIQUOTAUSAGERESULT \
  NS_IMETHOD GetOrigin(nsACString& aOrigin) override; \
  NS_IMETHOD GetPersisted(bool *aPersisted) override; \
  NS_IMETHOD GetUsage(uint64_t *aUsage) override; \
  NS_IMETHOD GetLastAccessed(uint64_t *aLastAccessed) 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_NSIQUOTAUSAGERESULT \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaUsageResult_origin)\
  nsresult GetOrigin(nsACString& aOrigin); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaUsageResult_persisted)\
  nsresult GetPersisted(bool *aPersisted); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaUsageResult_usage)\
  nsresult GetUsage(uint64_t *aUsage); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaUsageResult_lastAccessed)\
  nsresult GetLastAccessed(uint64_t *aLastAccessed); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIQUOTAUSAGERESULT(_to) \
  NS_IMETHOD GetOrigin(nsACString& aOrigin) override { return _to GetOrigin(aOrigin); } \
  NS_IMETHOD GetPersisted(bool *aPersisted) override { return _to GetPersisted(aPersisted); } \
  NS_IMETHOD GetUsage(uint64_t *aUsage) override { return _to GetUsage(aUsage); } \
  NS_IMETHOD GetLastAccessed(uint64_t *aLastAccessed) override { return _to GetLastAccessed(aLastAccessed); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIQUOTAUSAGERESULT(_to) \
  NS_IMETHOD GetOrigin(nsACString& aOrigin) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOrigin(aOrigin); } \
  NS_IMETHOD GetPersisted(bool *aPersisted) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPersisted(aPersisted); } \
  NS_IMETHOD GetUsage(uint64_t *aUsage) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUsage(aUsage); } \
  NS_IMETHOD GetLastAccessed(uint64_t *aLastAccessed) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastAccessed(aLastAccessed); } 


/* starting interface:    nsIQuotaOriginUsageResult */
#define NS_IQUOTAORIGINUSAGERESULT_IID_STR "96df03d2-116a-493f-bb0b-118c212a6b32"

#define NS_IQUOTAORIGINUSAGERESULT_IID \
  {0x96df03d2, 0x116a, 0x493f, \
    { 0xbb, 0x0b, 0x11, 0x8c, 0x21, 0x2a, 0x6b, 0x32 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsIQuotaOriginUsageResult) nsIQuotaOriginUsageResult : public nsISupports {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_IQUOTAORIGINUSAGERESULT_IID)

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

  /* readonly attribute unsigned long long databaseUsage; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaOriginUsageResult_databaseUsage)
  NS_IMETHOD GetDatabaseUsage(uint64_t *aDatabaseUsage) = 0;

  /* readonly attribute unsigned long long fileUsage; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaOriginUsageResult_fileUsage)
  NS_IMETHOD GetFileUsage(uint64_t *aFileUsage) = 0;

  /* readonly attribute unsigned long long usage; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaOriginUsageResult_usage)
  NS_IMETHOD GetUsage(uint64_t *aUsage) = 0;

  /* readonly attribute boolean databaseUsageIsExplicit; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaOriginUsageResult_databaseUsageIsExplicit)
  NS_IMETHOD GetDatabaseUsageIsExplicit(bool *aDatabaseUsageIsExplicit) = 0;

  /* readonly attribute boolean fileUsageIsExplicit; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaOriginUsageResult_fileUsageIsExplicit)
  NS_IMETHOD GetFileUsageIsExplicit(bool *aFileUsageIsExplicit) = 0;

  /* readonly attribute boolean totalUsageIsExplicit; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaOriginUsageResult_totalUsageIsExplicit)
  NS_IMETHOD GetTotalUsageIsExplicit(bool *aTotalUsageIsExplicit) = 0;

  /* [nostdcall,notxpcom] readonly attribute UsageInfoRef usageInfo; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaOriginUsageResult_usageInfo)
  virtual mozilla::dom::quota::UsageInfo & GetUsageInfo() = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIQUOTAORIGINUSAGERESULT \
  NS_IMETHOD GetDatabaseUsage(uint64_t *aDatabaseUsage) override; \
  NS_IMETHOD GetFileUsage(uint64_t *aFileUsage) override; \
  NS_IMETHOD GetUsage(uint64_t *aUsage) override; \
  NS_IMETHOD GetDatabaseUsageIsExplicit(bool *aDatabaseUsageIsExplicit) override; \
  NS_IMETHOD GetFileUsageIsExplicit(bool *aFileUsageIsExplicit) override; \
  NS_IMETHOD GetTotalUsageIsExplicit(bool *aTotalUsageIsExplicit) override; \
  virtual mozilla::dom::quota::UsageInfo & GetUsageInfo() 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_NSIQUOTAORIGINUSAGERESULT \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaOriginUsageResult_databaseUsage)\
  nsresult GetDatabaseUsage(uint64_t *aDatabaseUsage); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaOriginUsageResult_fileUsage)\
  nsresult GetFileUsage(uint64_t *aFileUsage); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaOriginUsageResult_usage)\
  nsresult GetUsage(uint64_t *aUsage); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaOriginUsageResult_databaseUsageIsExplicit)\
  nsresult GetDatabaseUsageIsExplicit(bool *aDatabaseUsageIsExplicit); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaOriginUsageResult_fileUsageIsExplicit)\
  nsresult GetFileUsageIsExplicit(bool *aFileUsageIsExplicit); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaOriginUsageResult_totalUsageIsExplicit)\
  nsresult GetTotalUsageIsExplicit(bool *aTotalUsageIsExplicit); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaOriginUsageResult_usageInfo)\
  mozilla::dom::quota::UsageInfo & GetUsageInfo(); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIQUOTAORIGINUSAGERESULT(_to) \
  NS_IMETHOD GetDatabaseUsage(uint64_t *aDatabaseUsage) override { return _to GetDatabaseUsage(aDatabaseUsage); } \
  NS_IMETHOD GetFileUsage(uint64_t *aFileUsage) override { return _to GetFileUsage(aFileUsage); } \
  NS_IMETHOD GetUsage(uint64_t *aUsage) override { return _to GetUsage(aUsage); } \
  NS_IMETHOD GetDatabaseUsageIsExplicit(bool *aDatabaseUsageIsExplicit) override { return _to GetDatabaseUsageIsExplicit(aDatabaseUsageIsExplicit); } \
  NS_IMETHOD GetFileUsageIsExplicit(bool *aFileUsageIsExplicit) override { return _to GetFileUsageIsExplicit(aFileUsageIsExplicit); } \
  NS_IMETHOD GetTotalUsageIsExplicit(bool *aTotalUsageIsExplicit) override { return _to GetTotalUsageIsExplicit(aTotalUsageIsExplicit); } \
  virtual mozilla::dom::quota::UsageInfo & GetUsageInfo() override { return _to GetUsageInfo(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIQUOTAORIGINUSAGERESULT(_to) \
  NS_IMETHOD GetDatabaseUsage(uint64_t *aDatabaseUsage) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDatabaseUsage(aDatabaseUsage); } \
  NS_IMETHOD GetFileUsage(uint64_t *aFileUsage) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileUsage(aFileUsage); } \
  NS_IMETHOD GetUsage(uint64_t *aUsage) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUsage(aUsage); } \
  NS_IMETHOD GetDatabaseUsageIsExplicit(bool *aDatabaseUsageIsExplicit) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDatabaseUsageIsExplicit(aDatabaseUsageIsExplicit); } \
  NS_IMETHOD GetFileUsageIsExplicit(bool *aFileUsageIsExplicit) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileUsageIsExplicit(aFileUsageIsExplicit); } \
  NS_IMETHOD GetTotalUsageIsExplicit(bool *aTotalUsageIsExplicit) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTotalUsageIsExplicit(aTotalUsageIsExplicit); } \
  virtual mozilla::dom::quota::UsageInfo & GetUsageInfo() override; 


/* starting interface:    nsIQuotaEstimateResult */
#define NS_IQUOTAESTIMATERESULT_IID_STR "9827fc69-7ea9-48ef-b30d-2e2ae0451ec0"

#define NS_IQUOTAESTIMATERESULT_IID \
  {0x9827fc69, 0x7ea9, 0x48ef, \
    { 0xb3, 0x0d, 0x2e, 0x2a, 0xe0, 0x45, 0x1e, 0xc0 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsIQuotaEstimateResult) nsIQuotaEstimateResult : public nsISupports {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_IQUOTAESTIMATERESULT_IID)

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

  /* readonly attribute unsigned long long usage; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaEstimateResult_usage)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetUsage(uint64_t *aUsage) = 0;

  /* readonly attribute unsigned long long limit; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaEstimateResult_limit)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetLimit(uint64_t *aLimit) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIQUOTAESTIMATERESULT \
  NS_IMETHOD GetUsage(uint64_t *aUsage) override; \
  NS_IMETHOD GetLimit(uint64_t *aLimit) 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_NSIQUOTAESTIMATERESULT \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaEstimateResult_usage)\
  nsresult GetUsage(uint64_t *aUsage); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIQuotaEstimateResult_limit)\
  nsresult GetLimit(uint64_t *aLimit); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIQUOTAESTIMATERESULT(_to) \
  NS_IMETHOD GetUsage(uint64_t *aUsage) override { return _to GetUsage(aUsage); } \
  NS_IMETHOD GetLimit(uint64_t *aLimit) override { return _to GetLimit(aLimit); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIQUOTAESTIMATERESULT(_to) \
  NS_IMETHOD GetUsage(uint64_t *aUsage) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUsage(aUsage); } \
  NS_IMETHOD GetLimit(uint64_t *aLimit) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLimit(aLimit); } 


#endif /* __gen_nsIQuotaResults_h__ */
