[
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsINotificationActionStorageEntry",
        "members": [
          {
            "name": "name",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "title",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "navigate",
            "readonly": true,
            "type": "string"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsINotificationStorageEntry",
        "members": [
          {
            "name": "id",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "title",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "dir",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "lang",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "body",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "tag",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "icon",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "navigate",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "requireInteraction",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "silent",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "dataSerialized",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "actions",
            "readonly": true,
            "type": "nsINotificationActionStorageEntry[]"
          },
          {
            "name": "serviceWorkerRegistrationScope",
            "readonly": true,
            "type": "string"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": true,
        "consts": [],
        "enums": [],
        "id": "nsINotificationStorageCallback",
        "members": [
          {
            "args": [
              {
                "name": "aEntries",
                "optional": false,
                "type": "nsINotificationStorageEntry[]"
              }
            ],
            "iid_is": null,
            "name": "done",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsINotificationStorage",
        "members": [
          {
            "args": [
              {
                "name": "aOrigin",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aEntry",
                "optional": false,
                "type": "nsINotificationStorageEntry"
              },
              {
                "name": "aScope",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "put",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "origin",
                "optional": false,
                "type": "string"
              },
              {
                "name": "scope",
                "optional": false,
                "type": "string"
              },
              {
                "name": "tag",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aCallback",
                "optional": false,
                "type": "nsINotificationStorageCallback"
              }
            ],
            "iid_is": null,
            "name": "get",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "origin",
                "optional": false,
                "type": "string"
              },
              {
                "name": "id",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getById",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "origin",
                "optional": false,
                "type": "string"
              },
              {
                "name": "id",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "delete",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "ids",
                "optional": false,
                "type": "string[]"
              }
            ],
            "iid_is": null,
            "name": "deleteAllExcept",
            "type": "void"
          }
        ]
      }
    ],
    "path": "dom/interfaces/notification/nsINotificationStorage.idl",
    "typedefs": [
      [
        "DOMHighResTimeStamp",
        "double"
      ],
      [
        "DOMTimeStamp",
        "u64"
      ],
      [
        "EpochTimeStamp",
        "u64"
      ],
      [
        "PRTime",
        "i64"
      ],
      [
        "nsViewID",
        "u64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsINotificationHandler",
        "members": [
          {
            "args": [
              {
                "name": "aPrincipal",
                "optional": false,
                "type": "nsIPrincipal"
              },
              {
                "name": "aNotificationId",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aActionName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aAutoClosed",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "respondOnClick",
            "type": "Promise<any>"
          }
        ]
      }
    ],
    "path": "dom/notification/nsINotificationHandler.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  }
]