{
  "namespace": "tabGroups",
  "types": [
    {
      "id": "tabGroups.Color",
      "type": "string",
      "enum": [
        "grey",
        "blue",
        "red",
        "yellow",
        "green",
        "pink",
        "purple",
        "cyan",
        "orange"
      ]
    },
    {
      "id": "tabGroups.TabGroup",
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "minimum": 0
        },
        "collapsed": {
          "type": "boolean"
        },
        "color": {
          "$ref": "tabGroups.Color"
        },
        "title": {
          "type": "string",
          "optional": true
        },
        "windowId": {
          "type": "integer",
          "minimum": 0
        },
        "shared": {
          "type": "boolean"
        }
      }
    }
  ],
  "properties": {
    "TAB_GROUP_ID_NONE": {
      "value": -1,
      "type": "integer"
    }
  },
  "functions": [
    {
      "name": "get",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "groupId",
          "minimum": 0
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "group",
            "$ref": "tabGroups.TabGroup"
          }
        ]
      }
    },
    {
      "name": "query",
      "type": "function",
      "parameters": [
        {
          "type": "object",
          "name": "queryInfo",
          "properties": {
            "collapsed": {
              "type": "boolean",
              "optional": true
            },
            "color": {
              "$ref": "tabGroups.Color",
              "optional": true
            },
            "title": {
              "type": "string",
              "optional": true
            },
            "shared": {
              "type": "boolean",
              "optional": true
            },
            "windowId": {
              "type": "integer",
              "optional": true,
              "minimum": -2
            }
          }
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "result",
            "type": "array",
            "items": {
              "$ref": "tabGroups.TabGroup"
            }
          }
        ]
      }
    },
    {
      "name": "update",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "groupId",
          "minimum": 0
        },
        {
          "type": "object",
          "name": "updateProperties",
          "properties": {
            "collapsed": {
              "type": "boolean",
              "optional": true
            },
            "color": {
              "$ref": "tabGroups.Color",
              "optional": true
            },
            "title": {
              "type": "string",
              "optional": true
            }
          }
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": [
          {
            "name": "group",
            "$ref": "tabGroups.TabGroup",
            "optional": true
          }
        ]
      }
    },
    {
      "name": "move",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "groupId",
          "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": "group",
            "$ref": "tabGroups.TabGroup",
            "optional": true
          }
        ]
      }
    },
    {
      "name": "enableOverlay",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "groupId",
          "minimum": 0
        },
        {
          "type": "object",
          "name": "options",
          "optional": false,
          "properties": {
            "url": {
              "type": "string",
              "format": "url",
              "optional": false
            },
            "excludeURL": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "url"
              },
              "optional": true
            }
          }
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": []
      }
    },
    {
      "name": "disableOverlay",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "groupId",
          "minimum": 0,
          "optional": true
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": []
      }
    },
    {
      "name": "enableAnimation",
      "type": "function",
      "parameters": [
        {
          "type": "integer",
          "name": "tabId",
          "minimum": 0
        }
      ],
      "returns_async": {
        "name": "callback",
        "optional": true,
        "parameters": []
      }
    },
    {
      "name": "getColors",
      "type": "function",
      "parameters": [],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "colors",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "hex": {
                  "type": "string"
                }
              }
            }
          }
        ]
      }
    }
  ],
  "events": [
    {
      "name": "onCreated",
      "type": "function",
      "parameters": [
        {
          "$ref": "tabGroups.TabGroup",
          "name": "group"
        }
      ]
    },
    {
      "name": "onUpdated",
      "type": "function",
      "parameters": [
        {
          "$ref": "tabGroups.TabGroup",
          "name": "group"
        }
      ]
    },
    {
      "name": "onMoved",
      "type": "function",
      "parameters": [
        {
          "$ref": "tabGroups.TabGroup",
          "name": "group"
        }
      ]
    },
    {
      "name": "onRemoved",
      "type": "function",
      "parameters": [
        {
          "$ref": "tabGroups.TabGroup",
          "name": "group"
        }
      ]
    }
  ]
}