[
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [
          {
            "id": "PreferenceType",
            "variants": [
              {
                "name": "PREF_INVALID",
                "value": 0
              },
              {
                "name": "PREF_STRING",
                "value": 32
              },
              {
                "name": "PREF_INT",
                "value": 64
              },
              {
                "name": "PREF_BOOL",
                "value": 128
              }
            ]
          }
        ],
        "id": "nsIPrefBranch",
        "members": [
          {
            "name": "root",
            "readonly": true,
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getPrefType",
            "type": "nsIPrefBranch.PreferenceType"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aDefaultValue",
                "optional": true,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "getBoolPref",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aValue",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "setBoolPref",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aDefaultValue",
                "optional": true,
                "type": "float"
              }
            ],
            "iid_is": null,
            "name": "getFloatPref",
            "type": "float"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aDefaultValue",
                "optional": true,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getCharPref",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aValue",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "setCharPref",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aDefaultValue",
                "optional": true,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getStringPref",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aValue",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "setStringPref",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aDefaultValue",
                "optional": true,
                "type": "i32"
              }
            ],
            "iid_is": null,
            "name": "getIntPref",
            "type": "i32"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aValue",
                "optional": false,
                "type": "i32"
              }
            ],
            "iid_is": null,
            "name": "setIntPref",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aType",
                "optional": false,
                "type": "nsID"
              }
            ],
            "iid_is": "aType",
            "name": "getComplexValue",
            "type": "nsQIResult"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aType",
                "optional": false,
                "type": "nsID"
              },
              {
                "name": "aValue",
                "optional": false,
                "type": "nsISupports"
              }
            ],
            "iid_is": null,
            "name": "setComplexValue",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "clearUserPref",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "lockPref",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "prefHasUserValue",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "prefHasDefaultValue",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "prefIsLocked",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "prefIsSanitized",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "unlockPref",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aStartingAt",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "clearUserBranch",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aStartingAt",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "deleteBranch",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aStartingAt",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getChildList",
            "type": "string[]"
          },
          {
            "args": [
              {
                "name": "aDomain",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aObserver",
                "optional": false,
                "type": "nsIObserver"
              },
              {
                "name": "aHoldWeak",
                "optional": true,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "addObserver",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aDomain",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aObserver",
                "optional": false,
                "type": "nsIObserver"
              }
            ],
            "iid_is": null,
            "name": "removeObserver",
            "type": "void"
          }
        ]
      }
    ],
    "path": "modules/libpref/nsIPrefBranch.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupportsString",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIPrefLocalizedString",
        "members": []
      }
    ],
    "path": "modules/libpref/nsIPrefLocalizedString.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIPrefOverrideMap",
        "members": [
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aPrefValue",
                "optional": false,
                "type": "any"
              }
            ],
            "iid_is": null,
            "name": "addEntry",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getEntry",
            "type": "any"
          }
        ]
      }
    ],
    "path": "modules/libpref/nsIPrefOverrideMap.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": true,
        "consts": [],
        "enums": [],
        "id": "nsIPrefStatsCallback",
        "members": [
          {
            "args": [
              {
                "name": "prefName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "accessCount",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "visit",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIPrefObserver",
        "members": [
          {
            "args": [
              {
                "name": "kind",
                "optional": false,
                "type": "string"
              },
              {
                "name": "name",
                "optional": false,
                "type": "string"
              },
              {
                "name": "value",
                "optional": false,
                "type": "string"
              },
              {
                "name": "isSticky",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "isLocked",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "onStringPref",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "kind",
                "optional": false,
                "type": "string"
              },
              {
                "name": "name",
                "optional": false,
                "type": "string"
              },
              {
                "name": "value",
                "optional": false,
                "type": "i32"
              },
              {
                "name": "isSticky",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "isLocked",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "onIntPref",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "kind",
                "optional": false,
                "type": "string"
              },
              {
                "name": "name",
                "optional": false,
                "type": "string"
              },
              {
                "name": "value",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "isSticky",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "isLocked",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "onBoolPref",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "message",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "onError",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIPrefService",
        "members": [
          {
            "args": [],
            "iid_is": null,
            "name": "resetPrefs",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aFile",
                "optional": false,
                "type": "nsIFile"
              }
            ],
            "iid_is": null,
            "name": "savePrefFile",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aFile",
                "optional": false,
                "type": "nsIFile"
              },
              {
                "name": "aOverrideMap",
                "optional": true,
                "type": "nsIPrefOverrideMap"
              }
            ],
            "iid_is": null,
            "name": "backupPrefFile",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aPrefRoot",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getBranch",
            "type": "nsIPrefBranch"
          },
          {
            "args": [
              {
                "name": "aPrefRoot",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getDefaultBranch",
            "type": "nsIPrefBranch"
          },
          {
            "name": "dirty",
            "readonly": true,
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aFile",
                "optional": false,
                "type": "nsIFile"
              }
            ],
            "iid_is": null,
            "name": "readDefaultPrefsFromFile",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aFile",
                "optional": false,
                "type": "nsIFile"
              }
            ],
            "iid_is": null,
            "name": "readUserPrefsFromFile",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "callback",
                "optional": false,
                "type": "nsIPrefStatsCallback"
              }
            ],
            "iid_is": null,
            "name": "readStats",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "resetStats",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "bytes",
                "optional": false,
                "type": "u8[]"
              },
              {
                "name": "observer",
                "optional": false,
                "type": "nsIPrefObserver"
              },
              {
                "name": "pathLabel",
                "optional": true,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "parsePrefsFromBuffer",
            "type": "void"
          },
          {
            "name": "userPrefsFileLastModifiedAtStartup",
            "readonly": true,
            "type": "PRTime"
          },
          {
            "name": "prefsJsPreamble",
            "readonly": true,
            "type": "string"
          }
        ]
      }
    ],
    "path": "modules/libpref/nsIPrefService.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIRelativeFilePref",
        "members": [
          {
            "name": "file",
            "readonly": false,
            "type": "nsIFile"
          },
          {
            "name": "relativeToKey",
            "readonly": false,
            "type": "string"
          }
        ]
      }
    ],
    "path": "modules/libpref/nsIRelativeFilePref.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  }
]