[
  {
    "id": "oj-c.TabBarMixed",
    "name": "TabBarMixed",
    "memberof": "oj-c",
    "kind": "class",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "ojcomponent": true,
    "isvcomponent": true,
    "since": "16.1.0",
    "longname": "oj-c.TabBarMixed",
    "pack": "oj-c",
    "classdesc": "<h3 id=\"tabBarMixedOverview-section\">\n  JET TabBarMixed\n  <a class=\"bookmarkable-link\" title=\"Bookmarkable Link\" href=\"#tabBarMixedOverview-section\"></a>\n</h3>\n\nThe oj-c-tab-bar-mixed enables horizontal navigation between distinct content with a mixture of static and dynamic tabs.\n\n<h3 id=\"touch-section\">\n  Touch End User Information\n  <a class=\"bookmarkable-link\" title=\"Bookmarkable Link\" href=\"#touch-section\"></a>\n</h3>\n\n<table class=\"keyboard-table\">\n  <thead>\n    <tr>\n      <th>Target</th>\n      <th>Gesture</th>\n      <th>Action</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>Tab</td>\n      <td><kbd>Tap</kbd></td>\n      <td>Selects the tab.</td>\n    </tr>\n    <tr>\n      <td>Remove button</td>\n      <td><kbd>Tap</kbd></td>\n      <td>Removes the tab.</td>\n    </tr>\n    <tr>\n      <td>Arrow button</td>\n      <td><kbd>Tap</kbd></td>\n      <td>When dynamic tabs are displayed inside a conveyor belt, tapping the arrow button will scroll the conveyor belt.</td>\n    </tr>\n  </tbody>\n</table>\n\n<h3 id=\"keyboard-section\">\n  Keyboard End User Information\n  <a class=\"bookmarkable-link\" title=\"Bookmarkable Link\" href=\"#keyboard-section\"></a>\n</h3>\n\n<table class=\"keyboard-table\">\n  <thead>\n    <tr>\n      <th>Target</th>\n      <th>Key</th>\n      <th>Action</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td rowspan=\"6\" nowrap>Tab</td>\n      <td><kbd>Enter or Space</kbd></td>\n      <td>Select the current tab.</td>\n    </tr>\n    <tr>\n      <td><kbd>LeftArrow or RightArrow</kbd></td>\n      <td>Navigate to the previous or next tab.</td>\n    </tr>\n    <tr>\n      <td><kbd>Delete</kbd></td>\n      <td>Remove the current tab.</td>\n    </tr>\n    <tr>\n      <td><kbd>Esc</kbd></td>\n      <td>Hide the tooltip if tooltip is shown.</td>\n    </tr>\n    <tr>\n      <td><kbd>Home</kbd></td>\n      <td>Navigates to the first tab in the tablist.</td>\n     </tr>\n     <tr>\n       <td><kbd>End</kbd></td>\n       <td>Navigates to the last tab in the tablist.</td>\n     </tr>\n    <tr>\n      <td rowspan=\"3\" nowrap>Dropdown</td>\n      <td><kbd>UpArrow or DownArrow</kbd></td>\n      <td>Navigate the dynamic tab represented as item in the list in the direction of the arrow.</td>\n    </tr>\n    <tr>\n      <td><kbd>Enter or Space</kbd></td>\n      <td>Select the highlighted choice from the dropdown and close the dropdown.</td>\n    </tr>\n    <tr>\n      <td><kbd>Esc</kbd></td>\n      <td>Close the dropdown.</td>\n    </tr>\n  </tbody>\n</table>",
    "scope": "static",
    "tagWithoutBrackets": "oj-c-tab-bar-mixed",
    "tagWithBrackets": "<oj-c-tab-bar-mixed>",
    "domInterface": "CTabBarMixedElement",
    "ojPageTitle": "&lt;oj-c-tab-bar-mixed>",
    "camelCaseName": "TabBarMixed",
    "ojPageTitlePrefix": "Element: ",
    "ojtsvcomponent": true,
    "tstype": {
      "target": "Type",
      "value": "interface CTabBarMixedElement<K extends string | number = string | number> extends JetElement<TabBarMixedElementSettableProperties<K>>"
    },
    "ojsignature": [
      {
        "target": "Type",
        "value": "interface CTabBarMixedElement<K extends string | number = string | number> extends JetElement<TabBarMixedElementSettableProperties<K>>"
      }
    ],
    "tsdeprecated": [
      {
        "type": "production",
        "since": "17.0.0"
      }
    ],
    "extension": {
      "catalog": {
        "category": "Layout & Nav"
      },
      "vbdt": {
        "module": "oj-c/tab-bar-mixed"
      }
    },
    "ojmodule": "tab-bar-mixed"
  },
  {
    "id": "oj-c.TabBarMixed#dynamicTabs",
    "name": "dynamicTabs",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "kind": "member",
    "longname": "oj-c.TabBarMixed#dynamicTabs",
    "scope": "instance",
    "type": {
      "names": [
        "Array<object>"
      ]
    },
    "optional": true,
    "ojdisplayname": "Dynamic Tabs",
    "ojshortdesc": "An array of dynamic tabs",
    "description": "Specifies the data definitions for the dynamics tabs (the collection of tabs that are removable).",
    "tstype": [
      {
        "target": "Type",
        "value": "Array<oj-c.TabBarMixed.TabData<K>>",
        "jsdocOverride": true
      }
    ]
  },
  {
    "id": "oj-c.TabBarMixed#dynamicTabsOverflow",
    "name": "dynamicTabsOverflow",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "kind": "member",
    "longname": "oj-c.TabBarMixed#dynamicTabsOverflow",
    "scope": "instance",
    "type": {
      "names": [
        "\"popup\"",
        "\"conveyor\""
      ]
    },
    "optional": true,
    "ojdisplayname": "Dynamic Tabs Overflow",
    "ojshortdesc": "Dynamic tabs overflow configurations",
    "description": "Specifies whether the dynamic tabs are displayed inside a conveyor belt or a popup.",
    "ojvalues": [
      {
        "name": "conveyor",
        "description": "Dynamic tabs are displayed inside a conveyor belt.",
        "displayName": "Conveyor",
        "type": {
          "names": [
            "string"
          ]
        }
      },
      {
        "name": "popup",
        "description": "Dynamic tabs are displayed inside a popup.",
        "displayName": "Popup",
        "type": {
          "names": [
            "string"
          ]
        }
      }
    ],
    "ojvalueskeeporder": true
  },
  {
    "id": "oj-c.TabBarMixed#dynamicTabsOverflowIcon",
    "name": "dynamicTabsOverflowIcon",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "kind": "member",
    "longname": "oj-c.TabBarMixed#dynamicTabsOverflowIcon",
    "scope": "instance",
    "type": {
      "names": [
        "object"
      ]
    },
    "optional": true,
    "ojdisplayname": "Icon for overflow tab",
    "ojshortdesc": "The icon used on the overflow tab",
    "description": "Specifies the icon used on the overflow tab when dynamicTabsOverflow is set to 'popup'.",
    "tstype": [
      {
        "target": "Type",
        "value": "{ type?: 'class'; class: string; }|{ type: 'img'; src: string; }",
        "jsdocOverride": true
      }
    ]
  },
  {
    "id": "oj-c.TabBarMixed#size",
    "name": "size",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "kind": "member",
    "longname": "oj-c.TabBarMixed#size",
    "scope": "instance",
    "type": {
      "names": [
        "\"md\"",
        "\"lg\""
      ]
    },
    "optional": true,
    "ojdisplayname": "Size",
    "ojshortdesc": "Size of TabBarMixed",
    "description": "Specifies the size of the TabBarMixed.",
    "ojvalues": [
      {
        "name": "md",
        "description": "TabBarMixed is set with a medium height.",
        "displayName": "Medium",
        "type": {
          "names": [
            "string"
          ]
        }
      },
      {
        "name": "lg",
        "description": "TabBarMixed is set with a large height.",
        "displayName": "Large",
        "type": {
          "names": [
            "string"
          ]
        }
      }
    ],
    "ojvalueskeeporder": true
  },
  {
    "id": "oj-c.TabBarMixed#selection",
    "name": "selection",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "kind": "member",
    "longname": "oj-c.TabBarMixed#selection",
    "scope": "instance",
    "type": {
      "names": [
        "string|number"
      ]
    },
    "optional": true,
    "ojdisplayname": "Selected Tab",
    "ojwriteback": true,
    "ojshortdesc": "The key of the selected tab",
    "description": "The key of the currently selected tab.",
    "tstype": [
      {
        "target": "Type",
        "value": "K",
        "jsdocOverride": true
      }
    ]
  },
  {
    "id": "oj-c.TabBarMixed#separatorPadding",
    "name": "separatorPadding",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "kind": "member",
    "longname": "oj-c.TabBarMixed#separatorPadding",
    "scope": "instance",
    "type": {
      "names": [
        "string"
      ]
    },
    "optional": true,
    "ojdisplayname": "Divider Padding",
    "description": "The padding around the vertical divider that seperates collections of tabs."
  },
  {
    "id": "oj-c.TabBarMixed#staticTabs",
    "name": "staticTabs",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "kind": "member",
    "longname": "oj-c.TabBarMixed#staticTabs",
    "scope": "instance",
    "type": {
      "names": [
        "Array<object>"
      ]
    },
    "optional": true,
    "ojdisplayname": "Static Tabs",
    "ojshortdesc": "An array of static tabs",
    "description": "Specifies the data definitions for the static tabs (the collection of tabs that are non-removable).",
    "tstype": [
      {
        "target": "Type",
        "value": "Array<oj-c.TabBarMixed.TabData<K>>",
        "jsdocOverride": true
      }
    ]
  },
  {
    "id": "oj-c.TabBarMixed#staticTabsDisplay",
    "name": "staticTabsDisplay",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "kind": "member",
    "longname": "oj-c.TabBarMixed#staticTabsDisplay",
    "scope": "instance",
    "type": {
      "names": [
        "\"standard\"",
        "\"icons\""
      ]
    },
    "optional": true,
    "ojdisplayname": "Static Tabs Display",
    "ojshortdesc": "The display configuration for static tabs.",
    "description": "Whether to display both the label and icons (\"standard\") or just the icons (\"icons\").\nIn the latter case, the label is displayed in a tooltip instead.",
    "ojvalues": [
      {
        "name": "standard",
        "description": "Label and icon are shown for all static tabs.",
        "displayName": "Standard",
        "type": {
          "names": [
            "string"
          ]
        }
      },
      {
        "name": "icons",
        "description": "Only icons are shown for all static tabs.",
        "displayName": "Icons",
        "type": {
          "names": [
            "string"
          ]
        }
      }
    ],
    "ojvalueskeeporder": true
  },
  {
    "id": "oj-c.TabBarMixed#setProperty",
    "name": "setProperty",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "kind": "function",
    "longname": "oj-c.TabBarMixed#setProperty",
    "scope": "instance",
    "returns": [
      {
        "type": {
          "names": [
            "void"
          ]
        }
      }
    ],
    "ojshortdesc": "Sets a property or a single subproperty for complex properties and notifies the component of the change, triggering a corresponding event.",
    "description": "Sets a property or a single subproperty for complex properties and notifies the component of the change, triggering a corresponding event.",
    "params": [
      {
        "name": "property",
        "description": "The property name to set. Supports dot notation for subproperty access.",
        "type": {
          "names": [
            "string"
          ]
        }
      },
      {
        "name": "value",
        "description": "The new value to set the property to.",
        "type": {
          "names": [
            "any"
          ]
        }
      }
    ]
  },
  {
    "id": "oj-c.TabBarMixed#getProperty",
    "name": "getProperty",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "kind": "function",
    "longname": "oj-c.TabBarMixed#getProperty",
    "scope": "instance",
    "returns": [
      {
        "type": {
          "names": [
            "any"
          ]
        }
      }
    ],
    "ojshortdesc": "Retrieves the value of a property or a subproperty.",
    "description": "Retrieves the value of a property or a subproperty.",
    "params": [
      {
        "name": "property",
        "description": "The property name to get. Supports dot notation for subproperty access.",
        "type": {
          "names": [
            "string"
          ]
        }
      }
    ]
  },
  {
    "id": "oj-c.TabBarMixed#setProperties",
    "name": "setProperties",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "kind": "function",
    "longname": "oj-c.TabBarMixed#setProperties",
    "scope": "instance",
    "returns": [
      {
        "type": {
          "names": [
            "void"
          ]
        }
      }
    ],
    "ojshortdesc": "Performs a batch set of properties.",
    "description": "Performs a batch set of properties.",
    "params": [
      {
        "name": "properties",
        "description": "An object containing the property and value pairs to set.",
        "type": {
          "names": [
            "object"
          ]
        }
      }
    ]
  },
  {
    "id": "oj-c.TabBarMixed#event:ojBeforeSelect",
    "name": "ojBeforeSelect",
    "kind": "event",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "longname": "oj-c.TabBarMixed#event:ojBeforeSelect",
    "scope": "instance",
    "ojshortdesc": "Triggered before a tab is selected.",
    "ojdisplayname": "Before Select",
    "description": "<p style=\"background-color: RGB(var(--oj-palette-info-rgb-30)); border: 2px solid #ddd\"><strong>Note:</strong> The event detail contains the following properties: [oj-c.TabBarMixed.KeyDetail]{@link oj-c.TabBarMixed.KeyDetail}&lt;K></p>Triggered before user selects a tab which includes user gestures or selection is changed programmatically."
  },
  {
    "id": "oj-c.TabBarMixed#event:ojRemove",
    "name": "ojRemove",
    "kind": "event",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "longname": "oj-c.TabBarMixed#event:ojRemove",
    "scope": "instance",
    "ojshortdesc": "Triggered when user performs a remove gesture on a tab.",
    "ojdisplayname": "Remove",
    "description": "<p style=\"background-color: RGB(var(--oj-palette-info-rgb-30)); border: 2px solid #ddd\"><strong>Note:</strong> The event detail contains the following properties: [oj-c.TabBarMixed.KeyDetail]{@link oj-c.TabBarMixed.KeyDetail}&lt;K></p>Triggered when user performs a remove gesture on a tab.  The remove gestures include:\n<ul>\n  <li>User clicks the remove icon in a tab</li>\n  <li>User presses Delete key on a tab</li>\n</ul>"
  },
  {
    "id": "oj-c.TabBarMixed#event:ojSelectionAction",
    "name": "ojSelectionAction",
    "kind": "event",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "longname": "oj-c.TabBarMixed#event:ojSelectionAction",
    "scope": "instance",
    "ojshortdesc": "Triggered when user performs an action gesture on a tab.",
    "ojdisplayname": "Selection Action",
    "description": "<p style=\"background-color: RGB(var(--oj-palette-info-rgb-30)); border: 2px solid #ddd\"><strong>Note:</strong> The event detail contains the following properties: [oj-c.TabBarMixed.SelectionActionDetail]{@link oj-c.TabBarMixed.SelectionActionDetail}&lt;K></p>Triggered when user performs a selection action gesture on a tab.  The action gestures include:\n<ul>\n  <li>User clicks anywhere in a tab</li>\n  <li>User taps anywhere in a tab</li>\n  <li>User pressed spacebar or enter key on a tab</li>\n</ul>"
  },
  {
    "id": "oj-c.TabBarMixed.touchDoc",
    "name": "touchDoc",
    "kind": "member",
    "longname": "oj-c.TabBarMixed.touchDoc",
    "description": "<table class=\"keyboard-table\">\n  <thead>\n    <tr>\n      <th>Target</th>\n      <th>Gesture</th>\n      <th>Action</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>Tab</td>\n      <td><kbd>Tap</kbd></td>\n      <td>Selects the tab.</td>\n    </tr>\n    <tr>\n      <td>Remove button</td>\n      <td><kbd>Tap</kbd></td>\n      <td>Removes the tab.</td>\n    </tr>\n    <tr>\n      <td>Arrow button</td>\n      <td><kbd>Tap</kbd></td>\n      <td>When dynamic tabs are displayed inside a conveyor belt, tapping the arrow button will scroll the conveyor belt.</td>\n    </tr>\n  </tbody>\n</table>",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "ojfragment": true
  },
  {
    "id": "oj-c.TabBarMixed.keyboardDoc",
    "name": "keyboardDoc",
    "kind": "member",
    "longname": "oj-c.TabBarMixed.keyboardDoc",
    "description": "<table class=\"keyboard-table\">\n  <thead>\n    <tr>\n      <th>Target</th>\n      <th>Key</th>\n      <th>Action</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td rowspan=\"6\" nowrap>Tab</td>\n      <td><kbd>Enter or Space</kbd></td>\n      <td>Select the current tab.</td>\n    </tr>\n    <tr>\n      <td><kbd>LeftArrow or RightArrow</kbd></td>\n      <td>Navigate to the previous or next tab.</td>\n    </tr>\n    <tr>\n      <td><kbd>Delete</kbd></td>\n      <td>Remove the current tab.</td>\n    </tr>\n    <tr>\n      <td><kbd>Esc</kbd></td>\n      <td>Hide the tooltip if tooltip is shown.</td>\n    </tr>\n    <tr>\n      <td><kbd>Home</kbd></td>\n      <td>Navigates to the first tab in the tablist.</td>\n     </tr>\n     <tr>\n       <td><kbd>End</kbd></td>\n       <td>Navigates to the last tab in the tablist.</td>\n     </tr>\n    <tr>\n      <td rowspan=\"3\" nowrap>Dropdown</td>\n      <td><kbd>UpArrow or DownArrow</kbd></td>\n      <td>Navigate the dynamic tab represented as item in the list in the direction of the arrow.</td>\n    </tr>\n    <tr>\n      <td><kbd>Enter or Space</kbd></td>\n      <td>Select the highlighted choice from the dropdown and close the dropdown.</td>\n    </tr>\n    <tr>\n      <td><kbd>Esc</kbd></td>\n      <td>Close the dropdown.</td>\n    </tr>\n  </tbody>\n</table>",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "ojfragment": true
  },
  {
    "id": "oj-c.TabBarMixed.TabData",
    "name": "TabData",
    "kind": "typedef",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "longname": "oj-c.TabBarMixed.TabData",
    "type": {
      "names": [
        "Object"
      ]
    },
    "scope": "static",
    "description": "",
    "tsgenerictype": {
      "target": "Type",
      "value": "<K extends string | number>",
      "for": "genericTypeParameters"
    },
    "properties": [
      {
        "name": "badge",
        "optional": true,
        "type": {
          "names": [
            "number"
          ]
        }
      },
      {
        "name": "icon",
        "optional": true,
        "type": {
          "names": [
            "object"
          ]
        },
        "tstype": [
          {
            "target": "Type",
            "value": "{ type?: 'class'; class: string; }|{ type: 'img'; src: string; }",
            "jsdocOverride": true,
            "for": "icon"
          }
        ]
      },
      {
        "name": "itemKey",
        "optional": false,
        "type": {
          "names": [
            "string|number"
          ]
        },
        "tstype": [
          {
            "target": "Type",
            "value": "K",
            "jsdocOverride": true,
            "for": "itemKey"
          }
        ]
      },
      {
        "name": "label",
        "optional": false,
        "type": {
          "names": [
            "string"
          ]
        }
      },
      {
        "name": "tabPanelId",
        "description": "Accepts the tabpanel element's ID associated with the tab item",
        "optional": true,
        "type": {
          "names": [
            "string"
          ]
        }
      }
    ]
  },
  {
    "id": "oj-c.TabBarMixed.KeyDetail",
    "name": "KeyDetail",
    "kind": "typedef",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "longname": "oj-c.TabBarMixed.KeyDetail",
    "type": {
      "names": [
        "Object"
      ]
    },
    "scope": "static",
    "description": "",
    "tsgenerictype": {
      "target": "Type",
      "value": "<K extends string | number>",
      "for": "genericTypeParameters"
    },
    "properties": [
      {
        "name": "key",
        "optional": false,
        "type": {
          "names": [
            "string|number"
          ]
        },
        "tstype": [
          {
            "target": "Type",
            "value": "K",
            "jsdocOverride": true,
            "for": "key"
          }
        ]
      },
      {
        "name": "accept",
        "tstype": [
          {
            "target": "Type",
            "value": "(acceptPromise:Promise<void>) => void",
            "for": "accept",
            "jsdocOverride": true
          }
        ],
        "description": "This method can be called with an application-created Promise to cancel this event asynchronously.  The Promise should be resolved or rejected to accept or cancel the event, respectively.",
        "type": {
          "names": [
            "function"
          ]
        }
      }
    ]
  },
  {
    "id": "oj-c.TabBarMixed.SelectionActionDetail",
    "name": "SelectionActionDetail",
    "kind": "typedef",
    "memberof": "oj-c.TabBarMixed",
    "meta": {
      "filename": "tab-bar-mixed.tsx",
      "path": "web/components/oj-c/tab-bar-mixed"
    },
    "longname": "oj-c.TabBarMixed.SelectionActionDetail",
    "type": {
      "names": [
        "Object"
      ]
    },
    "scope": "static",
    "description": "",
    "tsgenerictype": {
      "target": "Type",
      "value": "<K extends string | number>",
      "for": "genericTypeParameters"
    },
    "properties": [
      {
        "name": "previousValue",
        "optional": false,
        "type": {
          "names": [
            "string|number"
          ]
        },
        "tstype": [
          {
            "target": "Type",
            "value": "K",
            "jsdocOverride": true,
            "for": "previousValue"
          }
        ]
      },
      {
        "name": "value",
        "optional": false,
        "type": {
          "names": [
            "string|number"
          ]
        },
        "tstype": [
          {
            "target": "Type",
            "value": "K",
            "jsdocOverride": true,
            "for": "value"
          }
        ]
      }
    ]
  }
]