{
  "metadata": {
    "toolPackage": "@microsoft/api-extractor",
    "toolVersion": "7.52.10",
    "schemaVersion": 1011,
    "oldestForwardsCompatibleVersion": 1001,
    "tsdocConfig": {
      "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
      "noStandardTags": true,
      "tagDefinitions": [
        {
          "tagName": "@alpha",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@beta",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@defaultValue",
          "syntaxKind": "block"
        },
        {
          "tagName": "@decorator",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@deprecated",
          "syntaxKind": "block"
        },
        {
          "tagName": "@eventProperty",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@example",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@experimental",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@inheritDoc",
          "syntaxKind": "inline"
        },
        {
          "tagName": "@internal",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@label",
          "syntaxKind": "inline"
        },
        {
          "tagName": "@link",
          "syntaxKind": "inline",
          "allowMultiple": true
        },
        {
          "tagName": "@override",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@packageDocumentation",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@param",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@privateRemarks",
          "syntaxKind": "block"
        },
        {
          "tagName": "@public",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@readonly",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@remarks",
          "syntaxKind": "block"
        },
        {
          "tagName": "@returns",
          "syntaxKind": "block"
        },
        {
          "tagName": "@sealed",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@see",
          "syntaxKind": "block"
        },
        {
          "tagName": "@throws",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@typeParam",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@virtual",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@betaDocumentation",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@internalRemarks",
          "syntaxKind": "block"
        },
        {
          "tagName": "@preapproved",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@tagname",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@fires",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@csspart",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@slot",
          "syntaxKind": "block",
          "allowMultiple": true
        }
      ],
      "supportForTags": {
        "@alpha": true,
        "@beta": true,
        "@defaultValue": true,
        "@decorator": true,
        "@deprecated": true,
        "@eventProperty": true,
        "@example": true,
        "@experimental": true,
        "@inheritDoc": true,
        "@internal": true,
        "@label": true,
        "@link": true,
        "@override": true,
        "@packageDocumentation": true,
        "@param": true,
        "@privateRemarks": true,
        "@public": true,
        "@readonly": true,
        "@remarks": true,
        "@returns": true,
        "@sealed": true,
        "@see": true,
        "@throws": true,
        "@typeParam": true,
        "@virtual": true,
        "@betaDocumentation": true,
        "@internalRemarks": true,
        "@preapproved": true,
        "@tagname": true,
        "@fires": true,
        "@csspart": true,
        "@slot": true
      },
      "reportUnsupportedHtmlElements": false
    }
  },
  "kind": "Package",
  "canonicalReference": "@genesislcap/web-core!",
  "docComment": "",
  "name": "@genesislcap/web-core",
  "preserveMemberOrder": false,
  "members": [
    {
      "kind": "EntryPoint",
      "canonicalReference": "@genesislcap/web-core!",
      "name": "",
      "preserveMemberOrder": false,
      "members": [
        {
          "kind": "TypeAlias",
          "canonicalReference": "@genesislcap/web-core!ConversionType:type",
          "docComment": "/**\n * Represents the possible types of value conversion for data synchronization.\n *\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export type ConversionType = "
            },
            {
              "kind": "Content",
              "text": "'string' | 'number' | 'time' | 'boolean'"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "fileUrlPath": "src/directives/sync.ts",
          "releaseTag": "Public",
          "name": "ConversionType",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Variable",
          "canonicalReference": "@genesislcap/web-core!defaultEventMap:var",
          "docComment": "/**\n * A map that associates specific HTML element tags with their corresponding default event names.\n *\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "defaultEventMap: "
            },
            {
              "kind": "Reference",
              "text": "Map",
              "canonicalReference": "!Map:interface"
            },
            {
              "kind": "Content",
              "text": "<string, "
            },
            {
              "kind": "Reference",
              "text": "EventName",
              "canonicalReference": "@genesislcap/web-core!EventName:type"
            },
            {
              "kind": "Content",
              "text": ">"
            }
          ],
          "fileUrlPath": "src/directives/sync.ts",
          "isReadonly": true,
          "releaseTag": "Public",
          "name": "defaultEventMap",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 5
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@genesislcap/web-core!defineFactory:function(1)",
          "docComment": "/**\n * Defines a platform custom element based on the provided type and definition.\n *\n * @param Type - The custom element Type / Class to define.\n *\n * @param overriderOrBase - A function that merges definitions, or the base definition if custom merging is not needed.\n *\n * @returns The type class.\n *\n * @example\n *\n * An example using custom definition merge logic, useful if you need to impose hard restrictions.\n * ```ts\n * const definitionOverrider = (definition) => ({\n *    ...baseDefinition,\n *    ...definition,\n *    styles: baseDefinition.styles,\n *    shadowOptions: {\n *      mode: 'closed,\n *    },\n * });\n * export const define = defineFactory(LoginForm, definitionOverrider);\n * ```\n *\n * @example\n *\n * You can provide the base definition if you're happy with the default spread operator merge logic.\n * ```ts\n * export const define = defineFactory(LoginForm, baseDefinition);\n * ```\n *\n * @beta\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "defineFactory: <TType extends "
            },
            {
              "kind": "Reference",
              "text": "Constructable",
              "canonicalReference": "@microsoft/fast-element!Constructable:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "GenesisElement",
              "canonicalReference": "@microsoft/fast-element!FASTElement:interface"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ">(Type: "
            },
            {
              "kind": "Content",
              "text": "TType"
            },
            {
              "kind": "Content",
              "text": ", overriderOrBase: "
            },
            {
              "kind": "Reference",
              "text": "DefinitionOverrider",
              "canonicalReference": "@genesislcap/web-core!DefinitionOverrider:type"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "PartialGenesisElementDefinition",
              "canonicalReference": "@microsoft/fast-element!PartialFASTElementDefinition:interface"
            },
            {
              "kind": "Content",
              "text": ") => "
            },
            {
              "kind": "Reference",
              "text": "DefineFunction",
              "canonicalReference": "@genesislcap/web-core!DefineFunction:type"
            },
            {
              "kind": "Content",
              "text": "<TType>"
            }
          ],
          "fileUrlPath": "src/patterns/define.ts",
          "returnTypeTokenRange": {
            "startIndex": 12,
            "endIndex": 14
          },
          "releaseTag": "Beta",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "Type",
              "parameterTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 7
              },
              "isOptional": false
            },
            {
              "parameterName": "overriderOrBase",
              "parameterTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 11
              },
              "isOptional": false
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "TType",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 5
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "defineFactory"
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@genesislcap/web-core!DefineFunction:type",
          "docComment": "/**\n * @beta\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export type DefineFunction<TType> = "
            },
            {
              "kind": "Content",
              "text": "(definition: "
            },
            {
              "kind": "Reference",
              "text": "PartialGenesisElementDefinition",
              "canonicalReference": "@microsoft/fast-element!PartialFASTElementDefinition:interface"
            },
            {
              "kind": "Content",
              "text": ") => TType"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "fileUrlPath": "src/patterns/define.ts",
          "releaseTag": "Beta",
          "name": "DefineFunction",
          "typeParameters": [
            {
              "typeParameterName": "TType",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 4
          }
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@genesislcap/web-core!DefinitionOverrider:type",
          "docComment": "/**\n * @beta\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export type DefinitionOverrider = "
            },
            {
              "kind": "Content",
              "text": "(override: "
            },
            {
              "kind": "Reference",
              "text": "PartialGenesisElementDefinition",
              "canonicalReference": "@microsoft/fast-element!PartialFASTElementDefinition:interface"
            },
            {
              "kind": "Content",
              "text": ") => "
            },
            {
              "kind": "Reference",
              "text": "PartialGenesisElementDefinition",
              "canonicalReference": "@microsoft/fast-element!PartialFASTElementDefinition:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "fileUrlPath": "src/patterns/define.ts",
          "releaseTag": "Beta",
          "name": "DefinitionOverrider",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 5
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@genesislcap/web-core!deprecatedAttr:function(1)",
          "docComment": "/**\n * Decorator: Specifies an HTML attribute.\n *\n * @param config - The configuration for the attribute.\n *\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function deprecatedAttr(config?: "
            },
            {
              "kind": "Reference",
              "text": "ExtendedDecoratorAttributeConfiguration",
              "canonicalReference": "@genesislcap/web-core!~ExtendedDecoratorAttributeConfiguration:type"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "(target: {}, property: string) => void"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "fileUrlPath": "src/decorators/deprecated-attr.ts",
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "config",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isOptional": true
            }
          ],
          "name": "deprecatedAttr"
        },
        {
          "kind": "Function",
          "canonicalReference": "@genesislcap/web-core!deprecatedAttr:function(2)",
          "docComment": "/**\n * Decorator: Specifies an HTML attribute.\n *\n * @param target - The class to define the attribute on.\n *\n * @param prop - The property name to be associated with the attribute.\n *\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function deprecatedAttr(target: "
            },
            {
              "kind": "Content",
              "text": "{}"
            },
            {
              "kind": "Content",
              "text": ", prop: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "void"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "fileUrlPath": "src/decorators/deprecated-attr.ts",
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 6
          },
          "releaseTag": "Public",
          "overloadIndex": 2,
          "parameters": [
            {
              "parameterName": "target",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isOptional": false
            },
            {
              "parameterName": "prop",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "isOptional": false
            }
          ],
          "name": "deprecatedAttr"
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@genesislcap/web-core!EventName:type",
          "docComment": "/**\n * Represents the possible event names for data synchronization.\n *\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export type EventName = "
            },
            {
              "kind": "Content",
              "text": "'input' | 'change' | 'default'"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "fileUrlPath": "src/directives/sync.ts",
          "releaseTag": "Public",
          "name": "EventName",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@genesislcap/web-core!sync:function(1)",
          "docComment": "/**\n * Creates a synchronization directive that binds a data source to an HTML element,\n *\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function sync<TSource = "
            },
            {
              "kind": "Content",
              "text": "any"
            },
            {
              "kind": "Content",
              "text": ", TReturn = "
            },
            {
              "kind": "Content",
              "text": "any"
            },
            {
              "kind": "Content",
              "text": ">(binding: "
            },
            {
              "kind": "Reference",
              "text": "Binding",
              "canonicalReference": "@microsoft/fast-element!Binding:type"
            },
            {
              "kind": "Content",
              "text": "<TSource, TReturn>"
            },
            {
              "kind": "Content",
              "text": ", conversionType?: "
            },
            {
              "kind": "Reference",
              "text": "ConversionType",
              "canonicalReference": "@genesislcap/web-core!ConversionType:type"
            },
            {
              "kind": "Content",
              "text": ", eventName?: "
            },
            {
              "kind": "Reference",
              "text": "EventName",
              "canonicalReference": "@genesislcap/web-core!EventName:type"
            },
            {
              "kind": "Content",
              "text": ", keyAttr?: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "CaptureType",
              "canonicalReference": "@microsoft/fast-element!CaptureType:interface"
            },
            {
              "kind": "Content",
              "text": "<TSource>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "fileUrlPath": "src/directives/sync.ts",
          "returnTypeTokenRange": {
            "startIndex": 14,
            "endIndex": 16
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "binding",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "isOptional": false
            },
            {
              "parameterName": "conversionType",
              "parameterTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 9
              },
              "isOptional": true
            },
            {
              "parameterName": "eventName",
              "parameterTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 11
              },
              "isOptional": true
            },
            {
              "parameterName": "keyAttr",
              "parameterTypeTokenRange": {
                "startIndex": 12,
                "endIndex": 13
              },
              "isOptional": true
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "TSource",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "typeParameterName": "TReturn",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "sync"
        },
        {
          "kind": "Function",
          "canonicalReference": "@genesislcap/web-core!tagFor:function(1)",
          "docComment": "/**\n * Determines what HTML tag name to use for the dependency.\n *\n * @param dependency - The dependency the template is dependent on.\n *\n * @returns The tag name to use in markup.\n *\n * @beta\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function tagFor(dependency: "
            },
            {
              "kind": "Reference",
              "text": "TemplateElementDependency",
              "canonicalReference": "@genesislcap/web-core!TemplateElementDependency:type"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "fileUrlPath": "src/patterns/tag-for.ts",
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Beta",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "dependency",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isOptional": false
            }
          ],
          "name": "tagFor"
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@genesislcap/web-core!TemplateElementDependency:type",
          "docComment": "/**\n * Used to designate a template's dependency on another custom element.\n *\n * @beta\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export type TemplateElementDependency = "
            },
            {
              "kind": "Content",
              "text": "string | "
            },
            {
              "kind": "Reference",
              "text": "GenesisElementDefinition",
              "canonicalReference": "@microsoft/fast-element!FASTElementDefinition:class"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "Constructable",
              "canonicalReference": "@microsoft/fast-element!Constructable:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "GenesisElement",
              "canonicalReference": "@microsoft/fast-element!FASTElement:interface"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "fileUrlPath": "src/patterns/tag-for.ts",
          "releaseTag": "Beta",
          "name": "TemplateElementDependency",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 8
          }
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@genesislcap/web-core!TemplateElements:type",
          "docComment": "/**\n * Used to help map components / elements for tagFor usage\n *\n * @beta\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export type TemplateElements = "
            },
            {
              "kind": "Content",
              "text": "{\n    [key: string]: "
            },
            {
              "kind": "Reference",
              "text": "TemplateElementDependency",
              "canonicalReference": "@genesislcap/web-core!TemplateElementDependency:type"
            },
            {
              "kind": "Content",
              "text": ";\n}"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "fileUrlPath": "src/patterns/tag-for.ts",
          "releaseTag": "Beta",
          "name": "TemplateElements",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 4
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@genesislcap/web-core!whenElse:function(1)",
          "docComment": "/**\n * Directive that allows supplying an \"else\" template to the traditional {@link https://www.fast.design/docs/api/fast-element.when/#when-function} directive\n *\n * @param binding - The condition to test for rendering.\n *\n * @param trueTemplateOrTemplateBinding - The template or a binding that gets the template to render when the condition is true.\n *\n * @param falseTemplateOrTemplateBinding - The template or a binding that gets the template to render when the condition is false.\n *\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function whenElse<TSource = "
            },
            {
              "kind": "Content",
              "text": "any"
            },
            {
              "kind": "Content",
              "text": ", TReturn = "
            },
            {
              "kind": "Content",
              "text": "any"
            },
            {
              "kind": "Content",
              "text": ">(binding: "
            },
            {
              "kind": "Reference",
              "text": "Binding",
              "canonicalReference": "@microsoft/fast-element!Binding:type"
            },
            {
              "kind": "Content",
              "text": "<TSource, TReturn>"
            },
            {
              "kind": "Content",
              "text": ", trueTemplateOrTemplateBinding: "
            },
            {
              "kind": "Reference",
              "text": "WhenTemplate",
              "canonicalReference": "@genesislcap/web-core!~WhenTemplate:type"
            },
            {
              "kind": "Content",
              "text": "<TSource>"
            },
            {
              "kind": "Content",
              "text": ", falseTemplateOrTemplateBinding: "
            },
            {
              "kind": "Reference",
              "text": "WhenTemplate",
              "canonicalReference": "@genesislcap/web-core!~WhenTemplate:type"
            },
            {
              "kind": "Content",
              "text": "<TSource>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "CaptureType",
              "canonicalReference": "@microsoft/fast-element!CaptureType:interface"
            },
            {
              "kind": "Content",
              "text": "<TSource>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "fileUrlPath": "src/directives/when-else.ts",
          "returnTypeTokenRange": {
            "startIndex": 14,
            "endIndex": 16
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "binding",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "isOptional": false
            },
            {
              "parameterName": "trueTemplateOrTemplateBinding",
              "parameterTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "isOptional": false
            },
            {
              "parameterName": "falseTemplateOrTemplateBinding",
              "parameterTypeTokenRange": {
                "startIndex": 11,
                "endIndex": 13
              },
              "isOptional": false
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "TSource",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "typeParameterName": "TReturn",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "whenElse"
        }
      ]
    }
  ]
}
