[
  {
    "consts": [],
    "flags": [
      "builtinclass"
    ],
    "methods": [
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "entry",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "value",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      }
    ],
    "name": "nsICategoryEntry",
    "needs_scriptable": [],
    "parent": "nsISupportsCString",
    "uuid": "de021d54-57a3-4025-ae63-4c8eedbe74c0"
  },
  {
    "consts": [],
    "flags": [
      "builtinclass"
    ],
    "methods": [
      {
        "flags": [
          "hasretval"
        ],
        "name": "getCategoryEntry",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "addCategoryEntry",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "deleteCategoryEntry",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "deleteCategory",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "enumerateCategory",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsISimpleEnumerator",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "enumerateCategories",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsISimpleEnumerator",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      }
    ],
    "name": "nsICategoryManager",
    "needs_scriptable": [
      "nsISimpleEnumerator"
    ],
    "parent": "nsISupports",
    "uuid": "3275b2cd-af6d-429a-80d7-f0c5120342ac"
  },
  {
    "consts": [
      {
        "name": "SINGLETON",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 1
      },
      {
        "name": "THREADSAFE",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 2
      },
      {
        "name": "SINGLETON_CLASSINFO",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 32
      },
      {
        "name": "RESERVED",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 2147483648
      }
    ],
    "flags": [],
    "methods": [
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "interfaces",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "element": {
                "tag": "TD_NSID"
              },
              "tag": "TD_ARRAY"
            }
          }
        ]
      },
      {
        "flags": [
          "hidden",
          "hasretval"
        ],
        "name": "getScriptableHelper",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIXPCScriptable",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "contractID",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "classDescription",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "classID",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_NSIDPTR"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "flags",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UINT32"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hidden",
          "hasretval"
        ],
        "name": "classIDNoAlloc",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          }
        ]
      }
    ],
    "name": "nsIClassInfo",
    "needs_scriptable": [],
    "parent": "nsISupports",
    "uuid": "a60569d7-d401-4677-ba63-2aa5971af25d"
  },
  {
    "consts": [],
    "flags": [
      "builtinclass"
    ],
    "methods": [
      {
        "flags": [
          "hidden",
          "hasretval"
        ],
        "name": "createInstance",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "iid_is": 1,
              "tag": "TD_INTERFACE_IS_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hidden",
          "hasretval"
        ],
        "name": "createInstanceByContractID",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_PSTRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "iid_is": 1,
              "tag": "TD_INTERFACE_IS_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getManifestLocations",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIArray",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getComponentESModules",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIUTF8StringEnumerator",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      }
    ],
    "name": "nsIComponentManager",
    "needs_scriptable": [
      "nsIArray",
      "nsIUTF8StringEnumerator"
    ],
    "parent": "nsISupports",
    "uuid": "d604ffc3-1ba3-4f6c-b65f-1ed4199364c3"
  },
  {
    "consts": [],
    "flags": [
      "builtinclass"
    ],
    "methods": [
      {
        "flags": [],
        "name": "autoRegister",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "registerFactory",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_PSTRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_PSTRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIFactory",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "unregisterFactory",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIFactory",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "isCIDRegistered",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "isContractIDRegistered",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_PSTRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getContractIDs",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "element": {
                "tag": "TD_CSTRING"
              },
              "tag": "TD_ARRAY"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "contractIDToCID",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_PSTRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_NSIDPTR"
            }
          }
        ]
      }
    ],
    "name": "nsIComponentRegistrar",
    "needs_scriptable": [
      "nsIFactory",
      "nsIFile"
    ],
    "parent": "nsISupports",
    "uuid": "2417cbfe-65ad-48a6-b4b6-eb84db174392"
  },
  {
    "consts": [],
    "flags": [],
    "methods": [
      {
        "flags": [
          "hasretval"
        ],
        "name": "createInstance",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "iid_is": 0,
              "tag": "TD_INTERFACE_IS_TYPE"
            }
          }
        ]
      }
    ],
    "name": "nsIFactory",
    "needs_scriptable": [],
    "parent": "nsISupports",
    "uuid": "1bb40a56-9223-41e6-97d4-da97bdeb6a4d"
  },
  {
    "consts": [],
    "flags": [
      "builtinclass"
    ],
    "methods": [
      {
        "flags": [
          "hasretval"
        ],
        "name": "getService",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "iid_is": 1,
              "tag": "TD_INTERFACE_IS_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getServiceByContractID",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_PSTRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "iid_is": 1,
              "tag": "TD_INTERFACE_IS_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "isServiceInstantiated",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "isServiceInstantiatedByContractID",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_PSTRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      }
    ],
    "name": "nsIServiceManager",
    "needs_scriptable": [],
    "parent": "nsISupports",
    "uuid": "8bb35ed9-e332-462d-9155-4a002ab5c958"
  }
]