[
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIProfileStartup",
        "members": [
          {
            "name": "directory",
            "readonly": true,
            "type": "nsIFile"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "doStartup",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIProfileMigrator",
        "members": [
          {
            "args": [
              {
                "name": "aStartup",
                "optional": false,
                "type": "nsIProfileStartup"
              },
              {
                "name": "aKey",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aProfileName",
                "optional": true,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "migrate",
            "type": "void"
          }
        ]
      }
    ],
    "path": "toolkit/profile/nsIProfileMigrator.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [
          {
            "name": "ATTEMPT_QUIT",
            "value": 0
          },
          {
            "name": "FORCE_QUIT",
            "value": 1
          }
        ],
        "enums": [],
        "id": "nsIProfileUnlocker",
        "members": [
          {
            "args": [
              {
                "name": "aSeverity",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "unlock",
            "type": "void"
          }
        ]
      }
    ],
    "path": "toolkit/profile/nsIProfileUnlocker.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIProfileLock",
        "members": [
          {
            "name": "directory",
            "readonly": true,
            "type": "nsIFile"
          },
          {
            "name": "localDirectory",
            "readonly": true,
            "type": "nsIFile"
          },
          {
            "name": "replacedLockTime",
            "readonly": true,
            "type": "PRTime"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "unlock",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIToolkitProfile",
        "members": [
          {
            "name": "rootDir",
            "readonly": false,
            "type": "nsIFile"
          },
          {
            "name": "localDir",
            "readonly": true,
            "type": "nsIFile"
          },
          {
            "name": "name",
            "readonly": false,
            "type": "string"
          },
          {
            "name": "storeID",
            "readonly": false,
            "type": "string"
          },
          {
            "name": "showProfileSelector",
            "readonly": false,
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "removeFiles",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "remove",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "removeFiles",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "removeInBackground",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aUnlocker",
                "optional": false,
                "type": "OutParam<nsIProfileUnlocker>"
              }
            ],
            "iid_is": null,
            "name": "lock",
            "type": "nsIProfileLock"
          }
        ]
      }
    ],
    "path": "toolkit/profile/nsIToolkitProfile.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [
          {
            "id": "downgradeUIFlags",
            "variants": [
              {
                "name": "hasSync",
                "value": 1
              }
            ]
          },
          {
            "id": "downgradeUIChoice",
            "variants": [
              {
                "name": "quit",
                "value": 0
              },
              {
                "name": "createNewProfile",
                "value": 1
              }
            ]
          },
          {
            "id": "profileManagerResult",
            "variants": [
              {
                "name": "exit",
                "value": 0
              },
              {
                "name": "launchWithProfile",
                "value": 1
              },
              {
                "name": "restart",
                "value": 2
              }
            ]
          }
        ],
        "id": "nsIToolkitProfileService",
        "members": [
          {
            "name": "isListOutdated",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "isFirstRun",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "startWithLastProfile",
            "readonly": false,
            "type": "boolean"
          },
          {
            "name": "profiles",
            "readonly": true,
            "type": "nsISimpleEnumerator"
          },
          {
            "name": "currentProfile",
            "readonly": true,
            "type": "nsIToolkitProfile"
          },
          {
            "name": "defaultProfile",
            "readonly": false,
            "type": "nsIToolkitProfile"
          },
          {
            "args": [
              {
                "name": "aArgv",
                "optional": false,
                "type": "string[]"
              },
              {
                "name": "aIsResetting",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "aUpdateChannel",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aLegacyInstallHash",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aRootDir",
                "optional": false,
                "type": "OutParam<nsIFile>"
              },
              {
                "name": "aLocalDir",
                "optional": false,
                "type": "OutParam<nsIFile>"
              },
              {
                "name": "aProfile",
                "optional": false,
                "type": "OutParam<nsIToolkitProfile>"
              }
            ],
            "iid_is": null,
            "name": "selectStartupProfile",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getProfileByName",
            "type": "nsIToolkitProfile"
          },
          {
            "args": [
              {
                "name": "aRootDir",
                "optional": false,
                "type": "nsIFile"
              },
              {
                "name": "aLocalDir",
                "optional": true,
                "type": "nsIFile"
              }
            ],
            "iid_is": null,
            "name": "getProfileByDir",
            "type": "nsIToolkitProfile"
          },
          {
            "args": [
              {
                "name": "aRootDir",
                "optional": false,
                "type": "nsIFile"
              },
              {
                "name": "aName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aSource",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "createProfile",
            "type": "nsIToolkitProfile"
          },
          {
            "args": [
              {
                "name": "aRootDir",
                "optional": false,
                "type": "nsIFile"
              },
              {
                "name": "aNamePrefix",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aSource",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "createUniqueProfile",
            "type": "nsIToolkitProfile"
          },
          {
            "args": [
              {
                "name": "aRootDir",
                "optional": false,
                "type": "nsIFile"
              },
              {
                "name": "aIsRelative",
                "optional": false,
                "type": "OutParam<boolean>"
              }
            ],
            "iid_is": null,
            "name": "getProfileDescriptor",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aRootDir",
                "optional": false,
                "type": "nsIFile"
              }
            ],
            "iid_is": null,
            "name": "getLocalDirFromRootDir",
            "type": "nsIFile"
          },
          {
            "name": "profileCount",
            "readonly": true,
            "type": "u32"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "flush",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "asyncFlush",
            "type": "Promise<any>"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "asyncFlushCurrentProfile",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aRootDir",
                "optional": false,
                "type": "nsIFile"
              },
              {
                "name": "aLocalDir",
                "optional": false,
                "type": "nsIFile"
              },
              {
                "name": "aTimeout",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "removeProfileFilesByPath",
            "type": "Promise<any>"
          }
        ]
      }
    ],
    "path": "toolkit/profile/nsIToolkitProfileService.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  }
]