/**************************************
 * Extracted from:
 *    http://www.w3.org/TR/quota-api/
 *
 * By running:
 *
 *    Array.prototype.slice.call(
 *      document.querySelectorAll(".idl,.es-code")
 *    ).map(function(n) { return n.innerText; }).join("\n\n\n");
 *
 **/

/**************************************
 * 4.1
 **/
interface StorageQuota {
    Future queryUsageAndQuota(in optional StorageUsageCallback successCallback,
                              in optional StorageErrorCallback errorCallback);
    Future requestQuota (in unsigned long long newQuotaInBytes,
                         in optional StorageQuotaCallback successCallback,
                         in optional StorageErrorCallback errorCallback);
};

/**************************************
 * 4.2
 **/
callback StorageUsageCallback = void (in unsigned long long currentUsageInBytes,
                                      in unsigned long long currentQuotaInBytes);

/**************************************
 * 4.3
 **/
callback StorageQuotaCallback = void (in unsigned long long grantedQuotaInBytes);

/**************************************
 * 4.4
 **/
callback StorageErrorCallback = void (in DOMError error);

/**************************************
 * 4.5
 **/
[NoInterfaceObject]
interface StorageQuotaEnvironment {
    readonly attribute StorageQuota persistentStorage;
    readonly attribute StorageQuota temporaryStorage;
};