{
  "namespace": "tabs",
  "types": [
    {
      "id": "tabs.TabStatus",
      "type": "string",
      "enum": [
        "unloaded",
        "loading",
        "complete"
      ]
    },
    {
      "id": "tabs.MutedInfoReason",
      "type": "string",
      "enum": [
        {
          "name": "user"
        },
        {
          "name": "capture"
        },
        {
          "name": "extension"
        }
      ]
    },
    {
      "id": "tabs.MutedInfo",
      "type": "object",
      "properties": {
        "muted": {
          "type": "boolean"
        },
        "reason": {
          "$ref": "tabs.MutedInfoReason",
          "optional": true
        },
        "extensionId": {
          "type": "string",
          "optional": true
        }
      }
    },
    {
      "id": "tabs.Tab",
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "minimum": -1,
          "optional": true
        },
        "index": {
          "type": "integer",
          "minimum": -1
        },
        "groupId": {
          "type": "integer",
          "minimum": -1
        },
        "splitViewId": {
          "type": "integer",
          "minimum": -1,
          "optional": true
        },
        "windowId": {
          "type": "integer",
          "minimum": -1
        },
        "openerTabId": {
          "type": "integer",
          "minimum": 0,
          "optional": true
        },
        "selected": {
          "type": "boolean",
          "deprecated": "Please use $(ref:tabs.Tab.highlighted)."
        },
        "lastAccessed": {
          "type": "number"
        },
        "highlighted": {
          "type": "boolean"
        },
        "active": {
          "type": "boolean"
        },
        "pinned": {
          "type": "boolean"
        },
        "audible": {
          "type": "boolean",
          "optional": true
        },
        "frozen": {
          "type": "boolean"
        },
        "discarded": {
          "type": "boolean"
        },
        "autoDiscardable": {
          "type": "boolean"
        },
        "mutedInfo": {
          "$ref": "tabs.MutedInfo",
          "optional": true
        },
        "url": {
          "type": "string",
          "optional": true
        },
        "pendingUrl": {
          "type": "string",
          "optional": true
        },
        "title": {
          "type": "string",
          "optional": true
        },
        "favIconUrl": {
          "type": "string",
          "optional": true
        },
        "status": {
          "$ref": "tabs.TabStatus",
          "optional": true
        },
        "incognito": {
          "type": "boolean"
        },
        "width": {
          "type": "integer",
          "optional": true
        },
        "height": {
          "type": "integer",
          "optional": true
        },
        "sessionId": {
          "type": "string",
          "optional": true
        }
      }
    },
    {
      "id": "tabs.OverlayOptions",
      "type": "object",
      "properties": {
        "url": {
          "type": "string"
        }
      }
    },
    {
      "id": "tabs.ZoomSettingsMode",
      "type": "string",
      "enum": [
        {
          "name": "automatic"
        },
        {
          "name": "manual"
        },
        {
          "name": "disabled"
        }
      ]
    },
    {
      "id": "tabs.ZoomSettingsScope",
      "type": "string",
      "enum": [
        {
          "name": "per-origin"
        },
        {
          "name": "per-tab"
        }
      ]
    },
    {
      "id": "tabs.ZoomSettings",
      "type": "object",
      "properties": {
        "mode": {
          "$ref": "tabs.ZoomSettingsMode",
          "optional": true
        },
        "scope": {
          "$ref": "tabs.ZoomSettingsScope",
          "optional": true
        },
        "defaultZoomFactor": {
          "type": "number",
          "optional": true
        }
      }
    },
    {
      "id": "tabs.WindowType",
      "type": "string",
      "enum": [
        "normal",
        "popup",
        "panel",
        "app",
        "devtools",
        {
          "name": "custom-tab"
        }
      ]
    }
  ],
  "properties": {
    "MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND": {
      "value": 2,
      "type": "integer"
    },
    "SPLIT_VIEW_ID_NONE": {
      "value": -1,
      "type": "integer"
    },
    "TAB_ID_NONE": {
      "value": -1,
      "type": "integer"
    },
    "TAB_INDEX_NONE": {
      "value": -1,
      "type": "integer"
    }
  },
  "functions": [
    {
      "name": "get",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "tab",
            "$ref": "tabs.Tab"
          }
        ]
      }
    },
    {
      "name": "getGlicTabId",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "glicTabId",
            "type": "integer"
          }
        ]
      }
    },
    {
      "name": "getCurrent",
      "type": "function",
      "parameters": [],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "tab",
            "$ref": "tabs.Tab",
            "optional": true
          }
        ]
      }
    },
    {
      "name": "connect",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        },
        {
          "type": "object",
          "name": "connectInfo",
          "properties": {
            "name": {
              "type": "string",
              "optional": true
            },
            "frameId": {
              "type": "integer",
              "optional": true,
              "minimum": 0
            },
            "documentId": {
              "type": "string",
              "optional": true
            }
          },
          "optional": true
        }
      ],
      "returns": {
        "$ref": "runtime.Port"
      }
    },
    {
      "name": "sendRequest",
      "deprecated": "Please use $(ref:runtime.sendMessage).",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        },
        {
          "type": "any",
          "name": "request"
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": [
          {
            "name": "response",
            "type": "any"
          }
        ]
      }
    },
    {
      "name": "sendMessage",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        },
        {
          "type": "any",
          "name": "message"
        },
        {
          "type": "object",
          "name": "options",
          "properties": {
            "frameId": {
              "type": "integer",
              "optional": true,
              "minimum": 0
            },
            "documentId": {
              "type": "string",
              "optional": true
            }
          },
          "optional": true
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": [
          {
            "name": "response",
            "type": "any"
          }
        ]
      }
    },
    {
      "name": "getSelected",
      "deprecated": "Please use $(ref:tabs.query) <code>{active: true}</code>.",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "windowId",
          "minimum": -2,
          "optional": true
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "tab",
            "$ref": "tabs.Tab"
          }
        ]
      }
    },
    {
      "name": "getAllInWindow",
      "type": "function",
      "deprecated": "Please use $(ref:tabs.query) <code>{windowId: windowId}</code>.",
      "parameters": [
        {
          "type": "integer",
          "name": "windowId",
          "minimum": -2,
          "optional": true
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "tabs",
            "type": "array",
            "items": {
              "$ref": "tabs.Tab"
            }
          }
        ]
      }
    },
    {
      "name": "create",
      "type": "function",
      "parameters": [
        {
          "type": "object",
          "name": "createProperties",
          "properties": {
            "windowId": {
              "type": "integer",
              "minimum": -2,
              "optional": true
            },
            "index": {
              "type": "integer",
              "minimum": 0,
              "optional": true
            },
            "url": {
              "type": "string",
              "optional": true
            },
            "active": {
              "type": "boolean",
              "optional": true
            },
            "selected": {
              "deprecated": "Please use <em>active</em>.",
              "type": "boolean",
              "optional": true
            },
            "pinned": {
              "type": "boolean",
              "optional": true
            },
            "openerTabId": {
              "type": "integer",
              "minimum": 0,
              "optional": true
            },
            "splitWithTabId": {
              "type": "integer",
              "minimum": 0,
              "optional": true
            }
          }
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": [
          {
            "name": "tab",
            "$ref": "tabs.Tab"
          }
        ]
      }
    },
    {
      "name": "createSplit",
      "type": "function",
      "parameters": [
        {
          "type": "array",
          "name": "tabIds",
          "minItems": 2,
          "maxItems": 2,
          "items": {
            "type": "integer",
            "minimum": 0
          }
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "splitViewId",
            "type": "integer"
          }
        ]
      }
    },
    {
      "name": "duplicate",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": [
          {
            "name": "tab",
            "optional": true,
            "$ref": "tabs.Tab"
          }
        ]
      }
    },
    {
      "name": "query",
      "type": "function",
      "parameters": [
        {
          "type": "object",
          "name": "queryInfo",
          "properties": {
            "active": {
              "type": "boolean",
              "optional": true
            },
            "pinned": {
              "type": "boolean",
              "optional": true
            },
            "audible": {
              "type": "boolean",
              "optional": true
            },
            "muted": {
              "type": "boolean",
              "optional": true
            },
            "highlighted": {
              "type": "boolean",
              "optional": true
            },
            "frozen": {
              "type": "boolean",
              "optional": true
            },
            "discarded": {
              "type": "boolean",
              "optional": true
            },
            "autoDiscardable": {
              "type": "boolean",
              "optional": true
            },
            "currentWindow": {
              "type": "boolean",
              "optional": true
            },
            "lastFocusedWindow": {
              "type": "boolean",
              "optional": true
            },
            "status": {
              "$ref": "tabs.TabStatus",
              "optional": true
            },
            "title": {
              "type": "string",
              "optional": true
            },
            "url": {
              "choices": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ],
              "optional": true
            },
            "groupId": {
              "type": "integer",
              "optional": true,
              "minimum": -1
            },
            "splitViewId": {
              "type": "integer",
              "minimum": -1,
              "optional": true
            },
            "windowId": {
              "type": "integer",
              "optional": true,
              "minimum": -2
            },
            "windowType": {
              "$ref": "tabs.WindowType",
              "optional": true
            },
            "index": {
              "type": "integer",
              "optional": true,
              "minimum": 0
            }
          }
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "result",
            "type": "array",
            "items": {
              "$ref": "tabs.Tab"
            }
          }
        ]
      }
    },
    {
      "name": "highlight",
      "type": "function",
      "parameters": [
        {
          "type": "object",
          "name": "highlightInfo",
          "properties": {
            "windowId": {
              "type": "integer",
              "optional": true,
              "minimum": -2
            },
            "tabs": {
              "choices": [
                {
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "minimum": 0
                  }
                },
                {
                  "type": "integer"
                }
              ]
            }
          }
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": [
          {
            "name": "window",
            "$ref": "windows.Window"
          }
        ]
      }
    },
    {
      "name": "update",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0,
          "optional": true
        },
        {
          "type": "object",
          "name": "updateProperties",
          "properties": {
            "url": {
              "type": "string",
              "optional": true
            },
            "active": {
              "type": "boolean",
              "optional": true
            },
            "highlighted": {
              "type": "boolean",
              "optional": true
            },
            "selected": {
              "deprecated": "Please use <em>highlighted</em>.",
              "type": "boolean",
              "optional": true
            },
            "pinned": {
              "type": "boolean",
              "optional": true
            },
            "muted": {
              "type": "boolean",
              "optional": true
            },
            "openerTabId": {
              "type": "integer",
              "minimum": 0,
              "optional": true
            },
            "autoDiscardable": {
              "type": "boolean",
              "optional": true
            }
          }
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": [
          {
            "name": "tab",
            "$ref": "tabs.Tab",
            "optional": true
          }
        ]
      }
    },
    {
      "name": "move",
      "type": "function",
      "parameters": [
        {
          "name": "tabIds",
          "choices": [
            {
              "type": "integer",
              "minimum": 0
            },
            {
              "type": "array",
              "items": {
                "type": "integer",
                "minimum": 0
              }
            }
          ]
        },
        {
          "type": "object",
          "name": "moveProperties",
          "properties": {
            "windowId": {
              "type": "integer",
              "minimum": -2,
              "optional": true
            },
            "index": {
              "type": "integer",
              "minimum": -1
            }
          }
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": [
          {
            "name": "tabs",
            "choices": [
              {
                "$ref": "tabs.Tab"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "tabs.Tab"
                }
              }
            ]
          }
        ]
      }
    },
    {
      "name": "reload",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0,
          "optional": true
        },
        {
          "type": "object",
          "name": "reloadProperties",
          "optional": true,
          "properties": {
            "bypassCache": {
              "type": "boolean",
              "optional": true
            }
          }
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": []
      }
    },
    {
      "name": "remove",
      "type": "function",
      "parameters": [
        {
          "name": "tabIds",
          "choices": [
            {
              "type": "integer",
              "minimum": 0
            },
            {
              "type": "array",
              "items": {
                "type": "integer",
                "minimum": 0
              }
            }
          ]
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": []
      }
    },
    {
      "name": "group",
      "type": "function",
      "parameters": [
        {
          "name": "options",
          "type": "object",
          "properties": {
            "tabIds": {
              "choices": [
                {
                  "type": "integer",
                  "minimum": 0
                },
                {
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "minItems": 1
                }
              ]
            },
            "groupId": {
              "type": "integer",
              "minimum": 0,
              "optional": true
            },
            "createProperties": {
              "type": "object",
              "optional": true,
              "properties": {
                "windowId": {
                  "type": "integer",
                  "minimum": -2,
                  "optional": true
                }
              }
            }
          }
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": [
          {
            "name": "groupId",
            "type": "integer",
            "minimum": 0
          }
        ]
      }
    },
    {
      "name": "ungroup",
      "type": "function",
      "parameters": [
        {
          "name": "tabIds",
          "choices": [
            {
              "type": "integer",
              "minimum": 0
            },
            {
              "type": "array",
              "items": {
                "type": "integer",
                "minimum": 0
              },
              "minItems": 1
            }
          ]
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": []
      }
    },
    {
      "name": "enableTabAnimation",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": []
      }
    },
    {
      "name": "disableTabAnimation",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": []
      }
    },
    {
      "name": "detectLanguage",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0,
          "optional": true
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "type": "string",
            "name": "language"
          }
        ]
      }
    },
    {
      "name": "captureVisibleTab",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "windowId",
          "minimum": -2,
          "optional": true
        },
        {
          "$ref": "extensionTypes.ImageDetails",
          "name": "options",
          "optional": true
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "type": "string",
            "name": "dataUrl"
          }
        ]
      }
    },
    {
      "name": "executeScript",
      "deprecated": "Replaced by $(ref:scripting.executeScript) in Manifest V3.",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0,
          "optional": true
        },
        {
          "$ref": "extensionTypes.InjectDetails",
          "name": "details"
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": [
          {
            "name": "result",
            "optional": true,
            "type": "array",
            "items": {
              "type": "any",
              "minimum": 0
            }
          }
        ]
      }
    },
    {
      "name": "insertCSS",
      "deprecated": "Replaced by $(ref:scripting.insertCSS) in Manifest V3.",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0,
          "optional": true
        },
        {
          "$ref": "extensionTypes.InjectDetails",
          "name": "details"
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": []
      }
    },
    {
      "name": "removeCSS",
      "deprecated": "Replaced by $(ref:scripting.removeCSS) in Manifest V3.",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0,
          "optional": true
        },
        {
          "$ref": "extensionTypes.DeleteInjectionDetails",
          "name": "details"
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": []
      }
    },
    {
      "name": "setZoom",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0,
          "optional": true
        },
        {
          "type": "number",
          "name": "zoomFactor"
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": []
      }
    },
    {
      "name": "getZoom",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0,
          "optional": true
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "type": "number",
            "name": "zoomFactor"
          }
        ]
      }
    },
    {
      "name": "setZoomSettings",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "optional": true,
          "minimum": 0
        },
        {
          "$ref": "tabs.ZoomSettings",
          "name": "zoomSettings"
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": []
      }
    },
    {
      "name": "getZoomSettings",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "optional": true,
          "minimum": 0
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "$ref": "tabs.ZoomSettings",
            "name": "zoomSettings"
          }
        ]
      }
    },
    {
      "name": "enableOverlay",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        },
        {
          "$ref": "tabs.OverlayOptions",
          "name": "options"
        }
      ]
    },
    {
      "name": "disableOverlay",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        }
      ]
    },
    {
      "name": "discard",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "optional": true,
          "minimum": 0
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": [
          {
            "name": "tab",
            "$ref": "tabs.Tab",
            "optional": true
          }
        ]
      }
    },
    {
      "name": "goForward",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "optional": true,
          "minimum": 0
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": []
      }
    },
    {
      "name": "goBack",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "optional": true,
          "minimum": 0
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": []
      }
    }
  ],
  "events": [
    {
      "name": "onCreated",
      "type": "function",
      "parameters": [
        {
          "$ref": "tabs.Tab",
          "name": "tab"
        }
      ]
    },
    {
      "name": "onUpdated",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        },
        {
          "type": "object",
          "name": "changeInfo",
          "properties": {
            "status": {
              "$ref": "tabs.TabStatus",
              "optional": true
            },
            "url": {
              "type": "string",
              "optional": true
            },
            "groupId": {
              "type": "integer",
              "optional": true,
              "minimum": -1
            },
            "splitViewId": {
              "type": "integer",
              "minimum": -1,
              "optional": true
            },
            "pinned": {
              "type": "boolean",
              "optional": true
            },
            "audible": {
              "type": "boolean",
              "optional": true
            },
            "frozen": {
              "type": "boolean",
              "optional": true
            },
            "discarded": {
              "type": "boolean",
              "optional": true
            },
            "autoDiscardable": {
              "type": "boolean",
              "optional": true
            },
            "mutedInfo": {
              "$ref": "tabs.MutedInfo",
              "optional": true
            },
            "favIconUrl": {
              "type": "string",
              "optional": true
            },
            "title": {
              "type": "string",
              "optional": true
            }
          }
        },
        {
          "$ref": "tabs.Tab",
          "name": "tab"
        }
      ]
    },
    {
      "name": "onMoved",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        },
        {
          "type": "object",
          "name": "moveInfo",
          "properties": {
            "windowId": {
              "type": "integer",
              "minimum": 0
            },
            "fromIndex": {
              "type": "integer",
              "minimum": 0
            },
            "toIndex": {
              "type": "integer",
              "minimum": 0
            }
          }
        }
      ]
    },
    {
      "name": "onSelectionChanged",
      "deprecated": "Please use $(ref:tabs.onActivated).",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        },
        {
          "type": "object",
          "name": "selectInfo",
          "properties": {
            "windowId": {
              "type": "integer",
              "minimum": 0
            }
          }
        }
      ]
    },
    {
      "name": "onActiveChanged",
      "deprecated": "Please use $(ref:tabs.onActivated).",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        },
        {
          "type": "object",
          "name": "selectInfo",
          "properties": {
            "windowId": {
              "type": "integer",
              "minimum": 0
            }
          }
        }
      ]
    },
    {
      "name": "onActivated",
      "type": "function",
      "parameters": [
        {
          "type": "object",
          "name": "activeInfo",
          "properties": {
            "tabId": {
              "type": "integer",
              "minimum": 0
            },
            "windowId": {
              "type": "integer",
              "minimum": 0
            }
          }
        }
      ]
    },
    {
      "name": "onHighlightChanged",
      "deprecated": "Please use $(ref:tabs.onHighlighted).",
      "type": "function",
      "parameters": [
        {
          "type": "object",
          "name": "selectInfo",
          "properties": {
            "windowId": {
              "type": "integer",
              "minimum": 0
            },
            "tabIds": {
              "type": "array",
              "name": "tabIds",
              "items": {
                "type": "integer",
                "minimum": 0
              }
            }
          }
        }
      ]
    },
    {
      "name": "onHighlighted",
      "type": "function",
      "parameters": [
        {
          "type": "object",
          "name": "highlightInfo",
          "properties": {
            "windowId": {
              "type": "integer",
              "minimum": 0
            },
            "tabIds": {
              "type": "array",
              "name": "tabIds",
              "items": {
                "type": "integer",
                "minimum": 0
              }
            }
          }
        }
      ]
    },
    {
      "name": "onDetached",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        },
        {
          "type": "object",
          "name": "detachInfo",
          "properties": {
            "oldWindowId": {
              "type": "integer",
              "minimum": 0
            },
            "oldPosition": {
              "type": "integer",
              "minimum": 0
            }
          }
        }
      ]
    },
    {
      "name": "onAttached",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        },
        {
          "type": "object",
          "name": "attachInfo",
          "properties": {
            "newWindowId": {
              "type": "integer",
              "minimum": 0
            },
            "newPosition": {
              "type": "integer",
              "minimum": 0
            }
          }
        }
      ]
    },
    {
      "name": "onRemoved",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        },
        {
          "type": "object",
          "name": "removeInfo",
          "properties": {
            "windowId": {
              "type": "integer",
              "minimum": 0
            },
            "isWindowClosing": {
              "type": "boolean"
            }
          }
        }
      ]
    },
    {
      "name": "onReplaced",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "addedTabId",
          "minimum": 0
        },
        {
          "type": "integer",
          "name": "removedTabId",
          "minimum": 0
        }
      ]
    },
    {
      "name": "onZoomChange",
      "type": "function",
      "parameters": [
        {
          "type": "object",
          "name": "ZoomChangeInfo",
          "properties": {
            "tabId": {
              "type": "integer",
              "minimum": 0
            },
            "oldZoomFactor": {
              "type": "number"
            },
            "newZoomFactor": {
              "type": "number"
            },
            "zoomSettings": {
              "$ref": "tabs.ZoomSettings"
            }
          }
        }
      ]
    },
    {
      "name": "onTabModelUpdated",
      "type": "function",
      "parameters": [
        {
          "type": "object",
          "name": "info",
          "properties": {
            "tabId": {
              "type": "integer",
              "minimum": 0,
              "optional": true
            },
            "url": {
              "type": "string",
              "optional": true
            },
            "title": {
              "type": "string",
              "optional": true
            },
            "faviconUrl": {
              "type": "string",
              "optional": true
            },
            "windowId": {
              "type": "integer"
            }
          }
        }
      ]
    },
    {
      "name": "onActiveTabChanged",
      "type": "function",
      "parameters": [
        {
          "type": "object",
          "name": "info",
          "properties": {
            "tabId": {
              "type": "integer",
              "minimum": 0,
              "optional": true
            },
            "url": {
              "type": "string",
              "optional": true
            },
            "title": {
              "type": "string",
              "optional": true
            },
            "windowId": {
              "type": "integer"
            }
          }
        }
      ]
    }
  ]
}