[
  {
    "consts": [
      {
        "name": "PERMISSION_STATE_NOTDETERMINED",
        "type": {
          "tag": "TD_UINT16"
        },
        "value": 0
      },
      {
        "name": "PERMISSION_STATE_RESTRICTED",
        "type": {
          "tag": "TD_UINT16"
        },
        "value": 1
      },
      {
        "name": "PERMISSION_STATE_DENIED",
        "type": {
          "tag": "TD_UINT16"
        },
        "value": 2
      },
      {
        "name": "PERMISSION_STATE_AUTHORIZED",
        "type": {
          "tag": "TD_UINT16"
        },
        "value": 3
      }
    ],
    "flags": [],
    "methods": [
      {
        "flags": [],
        "name": "getMediaCapturePermissionState",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UINT16"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UINT16"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "getAudioCapturePermissionState",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UINT16"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "getVideoCapturePermissionState",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UINT16"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "getScreenCapturePermissionState",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UINT16"
            }
          }
        ]
      },
      {
        "flags": [
          "jscontext",
          "hasretval"
        ],
        "name": "requestVideoCapturePermission",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_PROMISE"
            }
          }
        ]
      },
      {
        "flags": [
          "jscontext",
          "hasretval"
        ],
        "name": "requestAudioCapturePermission",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_PROMISE"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "maybeRequestScreenCapturePermission",
        "params": []
      }
    ],
    "name": "nsIOSPermissionRequest",
    "needs_scriptable": [],
    "parent": "nsISupports",
    "uuid": "95790842-75a0-430d-98bf-f5ce3788ea6d"
  }
]