[
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": true,
        "consts": [],
        "enums": [],
        "id": "nsIMLModelDownloadProgressCallback",
        "members": [
          {
            "args": [
              {
                "name": "aProgress",
                "optional": false,
                "type": "i32"
              },
              {
                "name": "aCurrentLoaded",
                "optional": false,
                "type": "i64"
              },
              {
                "name": "aTotalLoaded",
                "optional": false,
                "type": "i64"
              },
              {
                "name": "aTotal",
                "optional": false,
                "type": "i64"
              }
            ],
            "iid_is": null,
            "name": "onProgress",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIMLModelDownloadCompletionCallback",
        "members": [
          {
            "args": [
              {
                "name": "aModel",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aRevision",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "onSuccess",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aError",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "onError",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIMLModelHub",
        "members": [
          {
            "args": [
              {
                "name": "aEngineId",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aModel",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aRevision",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aFilename",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "isModelAvailable",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aEngineId",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aModel",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aRevision",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aFilename",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "isModelInstalled",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aEngineId",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aTaskName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aModel",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aRevision",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aFiles",
                "optional": false,
                "type": "string[]"
              },
              {
                "name": "aProgressToken",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aProgressCallback",
                "optional": false,
                "type": "nsIMLModelDownloadProgressCallback"
              },
              {
                "name": "aCompletionCallback",
                "optional": false,
                "type": "nsIMLModelDownloadCompletionCallback"
              }
            ],
            "iid_is": null,
            "name": "downloadModel",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aProgressToken",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "cancelDownload",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aEngineId",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aTaskName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aModel",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aRevision",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aFile",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getModelBlob",
            "type": "Promise<any>"
          }
        ]
      }
    ],
    "path": "toolkit/components/ml/nsIMLModelHub.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": true,
        "consts": [],
        "enums": [],
        "id": "nsIMLModelDownloadAuthorizationCallback",
        "members": [
          {
            "args": [
              {
                "name": "aAllow",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "resolve",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIMLModelResolver",
        "members": [
          {
            "args": [
              {
                "name": "aId",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aEngine",
                "optional": false,
                "type": "OutParam<string>"
              },
              {
                "name": "aModel",
                "optional": false,
                "type": "OutParam<string>"
              },
              {
                "name": "aRevision",
                "optional": false,
                "type": "OutParam<string>"
              },
              {
                "name": "aFilename",
                "optional": false,
                "type": "OutParam<string>"
              }
            ],
            "iid_is": null,
            "name": "resolve",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aModel",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aRevision",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aFilename",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aWindow",
                "optional": false,
                "type": "WindowGlobalParent"
              },
              {
                "name": "aProgressToken",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aCallback",
                "optional": false,
                "type": "nsIMLModelDownloadAuthorizationCallback"
              }
            ],
            "iid_is": null,
            "name": "authorizeDownload",
            "type": "void"
          }
        ]
      }
    ],
    "path": "toolkit/components/ml/nsIMLModelResolver.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIMLUtils",
        "members": [
          {
            "name": "totalPhysicalMemory",
            "readonly": true,
            "type": "u64"
          },
          {
            "name": "availablePhysicalMemory",
            "readonly": true,
            "type": "u64"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "getOptimalCPUConcurrency",
            "type": "u8"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "canUseLlamaCpp",
            "type": "boolean"
          }
        ]
      }
    ],
    "path": "toolkit/components/ml/nsIMLUtils.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  }
]