{
  "metadata": {
    "toolPackage": "@microsoft/api-extractor",
    "toolVersion": "7.3.8",
    "schemaVersion": 1003,
    "oldestForwardsCompatibleVersion": 1001
  },
  "kind": "Package",
  "canonicalReference": "@loopback/metadata!",
  "docComment": "",
  "name": "@loopback/metadata",
  "members": [
    {
      "kind": "EntryPoint",
      "canonicalReference": "@loopback/metadata!",
      "name": "",
      "members": [
        {
          "kind": "Class",
          "canonicalReference": "@loopback/metadata!ClassDecoratorFactory:class",
          "docComment": "/**\n * Factory for class decorators\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class "
            },
            {
              "kind": "Reference",
              "text": "ClassDecoratorFactory"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "> extends "
            },
            {
              "kind": "Reference",
              "text": "DecoratorFactory"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "ClassDecorator"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "ClassDecoratorFactory",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!ClassDecoratorFactory#create:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "create"
                },
                {
                  "kind": "Content",
                  "text": "(): "
                },
                {
                  "kind": "Reference",
                  "text": "ClassDecorator"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "create"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!ClassDecoratorFactory.createDecorator:member(1)",
              "docComment": "/**\n * Create a class decorator function\n *\n * @param key - Metadata key\n *\n * @param spec - Metadata object from the decorator function\n *\n * @param options - Options for the decorator\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "createDecorator"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "ClassDecorator"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "spec"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "DecoratorOptions"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "ClassDecorator"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 22,
                "endIndex": 23
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "spec",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 21
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "createDecorator"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!ClassDecoratorFactory#mergeWithInherited:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "mergeWithInherited"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "inheritedMetadata"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "member"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "descriptorOrIndex"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "TypedPropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "<any> | number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 20,
                "endIndex": 21
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "inheritedMetadata",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 9,
                    "endIndex": 10
                  }
                },
                {
                  "parameterName": "member",
                  "parameterTypeTokenRange": {
                    "startIndex": 13,
                    "endIndex": 14
                  }
                },
                {
                  "parameterName": "descriptorOrIndex",
                  "parameterTypeTokenRange": {
                    "startIndex": 17,
                    "endIndex": 19
                  }
                }
              ],
              "name": "mergeWithInherited"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!ClassDecoratorFactory#mergeWithOwn:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "mergeWithOwn"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "ownMetadata"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "member"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "descriptorOrIndex"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "TypedPropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "<any> | number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 20,
                "endIndex": 21
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "ownMetadata",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 9,
                    "endIndex": 10
                  }
                },
                {
                  "parameterName": "member",
                  "parameterTypeTokenRange": {
                    "startIndex": 13,
                    "endIndex": 14
                  }
                },
                {
                  "parameterName": "descriptorOrIndex",
                  "parameterTypeTokenRange": {
                    "startIndex": 17,
                    "endIndex": 19
                  }
                }
              ],
              "name": "mergeWithOwn"
            }
          ],
          "extendsTokenRange": {
            "startIndex": 5,
            "endIndex": 13
          },
          "implementsTokenRanges": []
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/metadata!DecoratorFactory:class",
          "docComment": "/**\n * Base factory class for decorator functions\n *\n * @example\n * ```\n * function classDecorator(spec: MySpec): ClassDecorator {\n *   return ClassDecoratorFactory.createDecorator('my-key', spec);\n * }\n * ```\n *\n * or\n * ```\n * function classDecorator(spec: MySpec): ClassDecorator {\n *   const factory: ClassDecoratorFactory<MySpec>('my-key', spec);\n *   return factory.create();\n * }\n * ```\n *\n * These functions above declare `@classDecorator` that can be used as follows:\n * ```\n * @classDecorator({x: 1})\n * class MyController {}\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class "
            },
            {
              "kind": "Reference",
              "text": "DecoratorFactory"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ", // Type of the metadata spec for individual class/method/property/parameter\n"
            },
            {
              "kind": "Reference",
              "text": "M"
            },
            {
              "kind": "Content",
              "text": " extends "
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "MetadataMap"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "> | "
            },
            {
              "kind": "Reference",
              "text": "MetadataMap"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "[]>"
            },
            {
              "kind": "Content",
              "text": ", // Type of the metadata\n"
            },
            {
              "kind": "Reference",
              "text": "D"
            },
            {
              "kind": "Content",
              "text": " extends "
            },
            {
              "kind": "Reference",
              "text": "DecoratorType"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "M",
              "constraintTokenRange": {
                "startIndex": 7,
                "endIndex": 17
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "D",
              "constraintTokenRange": {
                "startIndex": 20,
                "endIndex": 21
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "DecoratorFactory",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!DecoratorFactory._createDecorator:member(1)",
              "docComment": "/**\n * Create a decorator function\n *\n * @param key - Metadata key\n *\n * @param spec - Metadata object from the decorator function\n *\n * @param options - Options for the decorator\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected static "
                },
                {
                  "kind": "Reference",
                  "text": "_createDecorator"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "M"
                },
                {
                  "kind": "Content",
                  "text": " extends "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": "> | "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": "[]>"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "D"
                },
                {
                  "kind": "Content",
                  "text": " extends "
                },
                {
                  "kind": "Reference",
                  "text": "DecoratorType"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "D"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "spec"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "DecoratorOptions"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "D"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 39,
                "endIndex": 40
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 24,
                    "endIndex": 30
                  }
                },
                {
                  "parameterName": "spec",
                  "parameterTypeTokenRange": {
                    "startIndex": 33,
                    "endIndex": 34
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 37,
                    "endIndex": 38
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                },
                {
                  "typeParameterName": "M",
                  "constraintTokenRange": {
                    "startIndex": 7,
                    "endIndex": 17
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                },
                {
                  "typeParameterName": "D",
                  "constraintTokenRange": {
                    "startIndex": 20,
                    "endIndex": 21
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "_createDecorator"
            },
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/metadata!DecoratorFactory:constructor(1)",
              "docComment": "/**\n * Construct a new class decorator factory\n *\n * @param key - Metadata key\n *\n * @param spec - Metadata object from the decorator function\n *\n * @param options - Options for the decorator. Default to `{allowInheritance: true}` if not provided\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor("
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "spec"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "DecoratorOptions"
                },
                {
                  "kind": "Content",
                  "text": " | undefined"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                },
                {
                  "parameterName": "spec",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 8
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 11,
                    "endIndex": 13
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!DecoratorFactory#allowInheritance:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "allowInheritance"
                },
                {
                  "kind": "Content",
                  "text": "(): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "allowInheritance"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!DecoratorFactory.cloneDeep:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "cloneDeep"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "V"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "val"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Readonly"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "V"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "V"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 12,
                "endIndex": 13
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "val",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 11
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "V",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "cloneDeep"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!DecoratorFactory#create:member(1)",
              "docComment": "/**\n * Create a decorator function of the given type. Each sub class MUST implement this method.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "create"
                },
                {
                  "kind": "Content",
                  "text": "(): "
                },
                {
                  "kind": "Reference",
                  "text": "D"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "create"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!DecoratorFactory#decorate:member(1)",
              "docComment": "/**\n * Base implementation of the decorator function\n *\n * @param target - Decorator target\n *\n * @param member - Optional property or method\n *\n * @param descriptorOrIndex - Optional method descriptor or parameter index\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "decorate"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "member"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string | symbol"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "descriptorOrIndex"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "TypedPropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "<any> | number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 16,
                "endIndex": 17
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "member",
                  "parameterTypeTokenRange": {
                    "startIndex": 9,
                    "endIndex": 10
                  }
                },
                {
                  "parameterName": "descriptorOrIndex",
                  "parameterTypeTokenRange": {
                    "startIndex": 13,
                    "endIndex": 15
                  }
                }
              ],
              "name": "decorate"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!DecoratorFactory.getNumberOfParameters:member(1)",
              "docComment": "/**\n * Get the number of parameters for a given constructor or method\n *\n * @param target - Class or the prototype\n *\n * @param member - Method name\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "getNumberOfParameters"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "member"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 11,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "member",
                  "parameterTypeTokenRange": {
                    "startIndex": 9,
                    "endIndex": 10
                  }
                }
              ],
              "name": "getNumberOfParameters"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!DecoratorFactory#getTarget:member(1)",
              "docComment": "/**\n * Get the optional decoration target of a given spec\n *\n * @param spec - Metadata spec\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "getTarget"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "spec"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "spec",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "getTarget"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!DecoratorFactory.getTargetName:member(1)",
              "docComment": "/**\n * Get the qualified name of a decoration target. For example:\n * ```\n * class MyClass\n * MyClass.constructor[0] // First parameter of the constructor\n * MyClass.myStaticProperty\n * MyClass.myStaticMethod()\n * MyClass.myStaticMethod[0] // First parameter of the myStaticMethod\n * MyClass.prototype.myProperty\n * MyClass.prototype.myMethod()\n * MyClass.prototype.myMethod[1] // Second parameter of myMethod\n * ```\n *\n * @param target - Class or prototype of a class\n *\n * @param member - Optional property/method name\n *\n * @param descriptorOrIndex - Optional method descriptor or parameter index\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "getTargetName"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "member"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string | symbol"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "descriptorOrIndex"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "TypedPropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "<any> | number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 16,
                "endIndex": 17
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "member",
                  "parameterTypeTokenRange": {
                    "startIndex": 9,
                    "endIndex": 10
                  }
                },
                {
                  "parameterName": "descriptorOrIndex",
                  "parameterTypeTokenRange": {
                    "startIndex": 13,
                    "endIndex": 15
                  }
                }
              ],
              "name": "getTargetName"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!DecoratorFactory#inherit:member(1)",
              "docComment": "/**\n * Inherit metadata from base classes. By default, this method merges base metadata into the spec if `allowInheritance` is set to `true`. To customize the behavior, this method can be overridden by sub classes.\n *\n * @param inheritedMetadata - Metadata from base classes for the member\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "inherit"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "inheritedMetadata"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": " | undefined | null"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "inheritedMetadata",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 7
                  }
                }
              ],
              "name": "inherit"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/metadata!DecoratorFactory#key:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "key",
              "propertyTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!DecoratorFactory#mergeWithInherited:member(1)",
              "docComment": "/**\n * This method is called by the default implementation of the decorator function to merge the spec argument from the decoration with the inherited metadata for a class, all properties, all methods, or all method parameters that are decorated by this decorator.\n *\n * It MUST be overridden by subclasses to process inherited metadata.\n *\n * @param inheritedMetadata - Metadata inherited from the base classes\n *\n * @param target - Decoration target\n *\n * @param member - Optional property or method\n *\n * @param descriptorOrIndex - Optional parameter index or method descriptor\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "mergeWithInherited"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "inheritedMetadata"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "M"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "member"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string | symbol"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "descriptorOrIndex"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "TypedPropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "<any> | number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "M"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 20,
                "endIndex": 21
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "inheritedMetadata",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 9,
                    "endIndex": 10
                  }
                },
                {
                  "parameterName": "member",
                  "parameterTypeTokenRange": {
                    "startIndex": 13,
                    "endIndex": 14
                  }
                },
                {
                  "parameterName": "descriptorOrIndex",
                  "parameterTypeTokenRange": {
                    "startIndex": 17,
                    "endIndex": 19
                  }
                }
              ],
              "name": "mergeWithInherited"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!DecoratorFactory#mergeWithOwn:member(1)",
              "docComment": "/**\n * This method is called by the default implementation of the decorator function to merge the spec argument from the decoration with the own metadata for a class, all properties, all methods, or all method parameters that are decorated by this decorator.\n *\n * It MUST be overridden by subclasses to process own metadata.\n *\n * @param ownMetadata - Own Metadata exists locally on the target\n *\n * @param target - Decoration target\n *\n * @param member - Optional property or method\n *\n * @param descriptorOrIndex - Optional parameter index or method descriptor\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "mergeWithOwn"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "ownMetadata"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "M"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "member"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string | symbol"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "descriptorOrIndex"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "TypedPropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "<any> | number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "M"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 20,
                "endIndex": 21
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "ownMetadata",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 9,
                    "endIndex": 10
                  }
                },
                {
                  "parameterName": "member",
                  "parameterTypeTokenRange": {
                    "startIndex": 13,
                    "endIndex": 14
                  }
                },
                {
                  "parameterName": "descriptorOrIndex",
                  "parameterTypeTokenRange": {
                    "startIndex": 17,
                    "endIndex": 19
                  }
                }
              ],
              "name": "mergeWithOwn"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/metadata!DecoratorFactory#options:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "DecoratorOptions"
                },
                {
                  "kind": "Content",
                  "text": " | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "options",
              "propertyTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/metadata!DecoratorFactory#spec:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "spec"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "spec",
              "propertyTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/metadata!DecoratorFactory.TARGET:member",
              "docComment": "/**\n * A constant to reference the target of a decoration\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "TARGET"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "TARGET",
              "propertyTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "isStatic": true
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!DecoratorFactory#withTarget:member(1)",
              "docComment": "/**\n * Set a reference to the target class or prototype for a given spec if it's an object\n *\n * @param spec - Metadata spec\n *\n * @param target - Target of the decoration. It is a class or the prototype of a class.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "withTarget"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "spec"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 11
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "spec",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "name": "withTarget"
            }
          ],
          "implementsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/metadata!DecoratorOptions:interface",
          "docComment": "/**\n * Options for a decorator\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface "
            },
            {
              "kind": "Reference",
              "text": "DecoratorOptions"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "DecoratorOptions",
          "members": [
            {
              "kind": "IndexSignature",
              "canonicalReference": "@loopback/metadata!DecoratorOptions:index(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "["
                },
                {
                  "kind": "Reference",
                  "text": "name"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "]: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ]
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/metadata!DecoratorOptions#allowInheritance:member",
              "docComment": "/**\n * Controls if inherited metadata will be honored. Default to `true`.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "allowInheritance"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "allowInheritance",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/metadata!DecoratorOptions#cloneInputSpec:member",
              "docComment": "/**\n * Controls if the value of `spec` argument will be cloned. Sometimes we use shared spec for the decoration, but the decorator function might need to mutate the object. Cloning the input spec makes it safe to use the same spec (`template`) to decorate different members.\n *\n * Default to `true`.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "cloneInputSpec"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "cloneInputSpec",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/metadata!DecoratorType:type",
          "docComment": "/**\n * Decorator function types\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type "
            },
            {
              "kind": "Reference",
              "text": "DecoratorType"
            },
            {
              "kind": "Content",
              "text": " = "
            },
            {
              "kind": "Reference",
              "text": "ClassDecorator"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "PropertyDecorator"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "MethodDecorator"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "ParameterDecorator"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "DecoratorType",
          "typeTokenRange": {
            "startIndex": 3,
            "endIndex": 10
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/metadata!DesignTimeMethodMetadata:interface",
          "docComment": "/**\n * Design time metadata for a method.\n *\n * @example\n * ```ts\n * class MyController\n * {\n *   myMethod(x: string, y: number, z: MyClass): boolean {\n *     // ...\n *     return true;\n *   }\n * }\n * ```\n *\n * The `myMethod` above has design-time metadata as follows:\n * ```ts\n * {\n *   type: Function,\n *   parameterTypes: [String, Number, MyClass],\n *   returnType: Boolean\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface "
            },
            {
              "kind": "Reference",
              "text": "DesignTimeMethodMetadata"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "DesignTimeMethodMetadata",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/metadata!DesignTimeMethodMetadata#parameterTypes:member",
              "docComment": "/**\n * An array of parameter types\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "parameterTypes"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Function"
                },
                {
                  "kind": "Content",
                  "text": "[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "parameterTypes",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 4
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/metadata!DesignTimeMethodMetadata#returnType:member",
              "docComment": "/**\n * Return type\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "returnType"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Function"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "returnType",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/metadata!DesignTimeMethodMetadata#type:member",
              "docComment": "/**\n * Type of the method itself. It is `Function`\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "type"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Function"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "type",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/metadata!InspectionOptions:interface",
          "docComment": "/**\n * Options for inspection\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface "
            },
            {
              "kind": "Reference",
              "text": "InspectionOptions"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "InspectionOptions",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/metadata!InspectionOptions#ownMetadataOnly:member",
              "docComment": "/**\n * Only inspect own metadata of a given target. The prototype chain will not be checked. The implementation uses `Reflect.getOwnMetadata()` if the flag is set to `true`. Otherwise, it uses `Reflect.getMetadata()`.\n *\n * The flag is `false` by default for `MetadataInspector`.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "ownMetadataOnly"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "ownMetadataOnly",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/metadata!MetadataAccessor:class",
          "docComment": "/**\n * A strongly-typed metadata accessor via reflection\n *\n * @typeParam T - Type of the metadata value\n *\n * @typeParam D - Type of the decorator\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class "
            },
            {
              "kind": "Reference",
              "text": "MetadataAccessor"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "D"
            },
            {
              "kind": "Content",
              "text": " extends "
            },
            {
              "kind": "Reference",
              "text": "DecoratorType"
            },
            {
              "kind": "Content",
              "text": " "
            },
            {
              "kind": "Content",
              "text": "= "
            },
            {
              "kind": "Reference",
              "text": "DecoratorType"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "D",
              "constraintTokenRange": {
                "startIndex": 7,
                "endIndex": 9
              },
              "defaultTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 11
              }
            }
          ],
          "name": "MetadataAccessor",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MetadataAccessor.create:member(1)",
              "docComment": "/**\n * Create a strongly-typed metadata accessor\n *\n * @param key - The metadata key\n *\n * @typeParam T - Type of the metadata value\n *\n * @typeParam D - Type of the decorator\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "create"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "D"
                },
                {
                  "kind": "Content",
                  "text": " extends "
                },
                {
                  "kind": "Reference",
                  "text": "DecoratorType"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataAccessor"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "D"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 13,
                "endIndex": 19
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 11,
                    "endIndex": 12
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                },
                {
                  "typeParameterName": "D",
                  "constraintTokenRange": {
                    "startIndex": 7,
                    "endIndex": 8
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "create"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/metadata!MetadataAccessor#key:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "readonly "
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "key",
              "propertyTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MetadataAccessor#toString:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "toString"
                },
                {
                  "kind": "Content",
                  "text": "(): "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "toString"
            }
          ],
          "implementsTokenRanges": []
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/metadata!MetadataInspector:class",
          "docComment": "/**\n * Inspector for metadata applied by decorators\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class "
            },
            {
              "kind": "Reference",
              "text": "MetadataInspector"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "MetadataInspector",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MetadataInspector.defineMetadata:member(1)",
              "docComment": "/**\n * Define metadata for the given target\n *\n * @param key - Metadata key\n *\n * @param value - Metadata value\n *\n * @param target - Target for the metadata\n *\n * @param member - Optional property or method name\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "defineMetadata"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "DecoratorType"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "value"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "member"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 26,
                "endIndex": 27
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 21
                  }
                },
                {
                  "parameterName": "member",
                  "parameterTypeTokenRange": {
                    "startIndex": 24,
                    "endIndex": 25
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "defineMetadata"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/metadata!MetadataInspector.DesignTimeReflector:member",
              "docComment": "/**\n * Expose the reflector for TypeScript design-time metadata\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static readonly "
                },
                {
                  "kind": "Reference",
                  "text": "DesignTimeReflector"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "NamespacedReflect"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "DesignTimeReflector",
              "propertyTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "isStatic": true
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MetadataInspector.getAllMethodMetadata:member(1)",
              "docComment": "/**\n * Get the metadata associated with the given key for all methods of the target class or prototype\n *\n * @param key - Metadata key\n *\n * @param target - Class for static methods or prototype for instance methods\n *\n * @param options - Options for inspection\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "getAllMethodMetadata"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "MethodDecorator"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "InspectionOptions"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 22,
                "endIndex": 26
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 21
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "getAllMethodMetadata"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MetadataInspector.getAllParameterMetadata:member(1)",
              "docComment": "/**\n * Get the metadata associated with the given key for all parameters of a given method\n *\n * @param key - Metadata key\n *\n * @param target - Class for static methods or prototype for instance methods\n *\n * @param methodName - Method name. If not present, default to '' to use the constructor\n *\n * @param options - Options for inspection\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "getAllParameterMetadata"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "ParameterDecorator"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "methodName"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "InspectionOptions"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": "[] | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 26,
                "endIndex": 28
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "methodName",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 21
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 24,
                    "endIndex": 25
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "getAllParameterMetadata"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MetadataInspector.getAllPropertyMetadata:member(1)",
              "docComment": "/**\n * Get the metadata associated with the given key for all properties of the target class or prototype\n *\n * @param key - Metadata key\n *\n * @param target - Class for static methods or prototype for instance methods\n *\n * @param options - Options for inspection\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "getAllPropertyMetadata"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyDecorator"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "InspectionOptions"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 22,
                "endIndex": 26
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 21
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "getAllPropertyMetadata"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MetadataInspector.getClassMetadata:member(1)",
              "docComment": "/**\n * Get the metadata associated with the given key for a given class\n *\n * @param key - Metadata key\n *\n * @param target - Class that contains the metadata\n *\n * @param options - Options for inspection\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "getClassMetadata"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "ClassDecorator"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Function"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "InspectionOptions"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": " | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 22,
                "endIndex": 24
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 21
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "getClassMetadata"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MetadataInspector.getDesignTypeForMethod:member(1)",
              "docComment": "/**\n * Get TypeScript design time type for a method\n *\n * @param target - Class or prototype\n *\n * @param methodName - Method name\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "getDesignTypeForMethod"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "methodName"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "DesignTimeMethodMetadata"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 11,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "methodName",
                  "parameterTypeTokenRange": {
                    "startIndex": 9,
                    "endIndex": 10
                  }
                }
              ],
              "name": "getDesignTypeForMethod"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MetadataInspector.getDesignTypeForProperty:member(1)",
              "docComment": "/**\n * Get TypeScript design time type for a property\n *\n * @param target - Class or prototype\n *\n * @param propertyName - Property name\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "getDesignTypeForProperty"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "propertyName"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Function"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 11,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "propertyName",
                  "parameterTypeTokenRange": {
                    "startIndex": 9,
                    "endIndex": 10
                  }
                }
              ],
              "name": "getDesignTypeForProperty"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MetadataInspector.getMethodMetadata:member(1)",
              "docComment": "/**\n * Get the metadata associated with the given key for a given method of the target class or prototype\n *\n * @param key - Metadata key\n *\n * @param target - Class for static methods or prototype for instance methods\n *\n * @param methodName - Method name. If not present, default to '' to use the constructor\n *\n * @param options - Options for inspection\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "getMethodMetadata"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "MethodDecorator"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "methodName"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "InspectionOptions"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": " | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 26,
                "endIndex": 28
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "methodName",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 21
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 24,
                    "endIndex": 25
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "getMethodMetadata"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MetadataInspector.getParameterMetadata:member(1)",
              "docComment": "/**\n * Get the metadata associated with the given key for a parameter of a given method by index\n *\n * @param key - Metadata key\n *\n * @param target - Class for static methods or prototype for instance methods\n *\n * @param methodName - Method name. If not present, default to '' to use the constructor\n *\n * @param index - Index of the parameter, starting with 0\n *\n * @param options - Options for inspection\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "getParameterMetadata"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "ParameterDecorator"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "methodName"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "index"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "InspectionOptions"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": " | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 30,
                "endIndex": 32
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "methodName",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 21
                  }
                },
                {
                  "parameterName": "index",
                  "parameterTypeTokenRange": {
                    "startIndex": 24,
                    "endIndex": 25
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 28,
                    "endIndex": 29
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "getParameterMetadata"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MetadataInspector.getPropertyMetadata:member(1)",
              "docComment": "/**\n * Get the metadata associated with the given key for a given property of the target class or prototype\n *\n * @param key - Metadata key\n *\n * @param target - Class for static properties or prototype for instance properties\n *\n * @param propertyName - Property name\n *\n * @param options - Options for inspection\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "getPropertyMetadata"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyDecorator"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "propertyName"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "InspectionOptions"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": " | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 26,
                "endIndex": 28
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "propertyName",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 21
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 24,
                    "endIndex": 25
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "getPropertyMetadata"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/metadata!MetadataInspector.Reflector:member",
              "docComment": "/**\n * Expose Reflector, which is a wrapper of `Reflect` and it uses `loopback` as the namespace prefix for all metadata keys\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static readonly "
                },
                {
                  "kind": "Reference",
                  "text": "Reflector"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "NamespacedReflect"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "Reflector",
              "propertyTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "isStatic": true
            }
          ],
          "implementsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/metadata!MetadataKey:type",
          "docComment": "/**\n * Key for metadata access via reflection\n *\n * @typeParam T - Type of the metadata value\n *\n * @typeParam D - Type of the decorator\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type "
            },
            {
              "kind": "Reference",
              "text": "MetadataKey"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "D"
            },
            {
              "kind": "Content",
              "text": " extends "
            },
            {
              "kind": "Reference",
              "text": "DecoratorType"
            },
            {
              "kind": "Content",
              "text": "> = "
            },
            {
              "kind": "Reference",
              "text": "MetadataAccessor"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "D"
            },
            {
              "kind": "Content",
              "text": "> | string"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "MetadataKey",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "D",
              "constraintTokenRange": {
                "startIndex": 7,
                "endIndex": 8
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 9,
            "endIndex": 15
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/metadata!MetadataMap:interface",
          "docComment": "/**\n * An object mapping keys to corresponding metadata\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface "
            },
            {
              "kind": "Reference",
              "text": "MetadataMap"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "MetadataMap",
          "members": [
            {
              "kind": "IndexSignature",
              "canonicalReference": "@loopback/metadata!MetadataMap:index(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "["
                },
                {
                  "kind": "Reference",
                  "text": "propertyOrMethodName"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "]: "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "propertyOrMethodName",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ]
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/metadata!MethodDecoratorFactory:class",
          "docComment": "/**\n * Factory for method decorators\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class "
            },
            {
              "kind": "Reference",
              "text": "MethodDecoratorFactory"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "> extends "
            },
            {
              "kind": "Reference",
              "text": "DecoratorFactory"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "MetadataMap"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ">, "
            },
            {
              "kind": "Reference",
              "text": "MethodDecorator"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "MethodDecoratorFactory",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MethodDecoratorFactory#create:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "create"
                },
                {
                  "kind": "Content",
                  "text": "(): "
                },
                {
                  "kind": "Reference",
                  "text": "MethodDecorator"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "create"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MethodDecoratorFactory.createDecorator:member(1)",
              "docComment": "/**\n * Create a method decorator function\n *\n * @param key - Metadata key\n *\n * @param spec - Metadata object from the decorator function\n *\n * @param options - Options for the decorator\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "createDecorator"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "MethodDecorator"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "spec"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "DecoratorOptions"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "MethodDecorator"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 22,
                "endIndex": 23
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "spec",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 21
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "createDecorator"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MethodDecoratorFactory#mergeWithInherited:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "mergeWithInherited"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "inheritedMetadata"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "methodName"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "methodDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "TypedPropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "<any> | number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 23,
                "endIndex": 27
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "inheritedMetadata",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 12,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "methodName",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "methodDescriptor",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 22
                  }
                }
              ],
              "name": "mergeWithInherited"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MethodDecoratorFactory#mergeWithOwn:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "mergeWithOwn"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "ownMetadata"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "methodName"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "methodDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "TypedPropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "<any> | number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 23,
                "endIndex": 27
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "ownMetadata",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 12,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "methodName",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "methodDescriptor",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 22
                  }
                }
              ],
              "name": "mergeWithOwn"
            }
          ],
          "extendsTokenRange": {
            "startIndex": 5,
            "endIndex": 15
          },
          "implementsTokenRanges": []
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/metadata!MethodParameterDecoratorFactory:class",
          "docComment": "/**\n * Factory for method level parameter decorator.\n *\n * @example\n *\n * For example, the following code uses `@param` to declare two parameters for `greet()`.\n * ```ts\n * class MyController {\n *   @param('name') // Parameter 0\n *   @param('msg')  // Parameter 1\n *   greet() {}\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class "
            },
            {
              "kind": "Reference",
              "text": "MethodParameterDecoratorFactory"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "> extends "
            },
            {
              "kind": "Reference",
              "text": "DecoratorFactory"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "MetadataMap"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "[]>, "
            },
            {
              "kind": "Reference",
              "text": "MethodDecorator"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "MethodParameterDecoratorFactory",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MethodParameterDecoratorFactory#create:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "create"
                },
                {
                  "kind": "Content",
                  "text": "(): "
                },
                {
                  "kind": "Reference",
                  "text": "MethodDecorator"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "create"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MethodParameterDecoratorFactory.createDecorator:member(1)",
              "docComment": "/**\n * Create a method decorator function\n *\n * @param key - Metadata key\n *\n * @param spec - Metadata object from the decorator function\n *\n * @param options - Options for the decorator\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "createDecorator"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "MethodDecorator"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "spec"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "DecoratorOptions"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "MethodDecorator"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 22,
                "endIndex": 23
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "spec",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 21
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "createDecorator"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MethodParameterDecoratorFactory#mergeWithInherited:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "mergeWithInherited"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "inheritedMetadata"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": "[]>"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "methodName"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "methodDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "TypedPropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "<any> | number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": "[]>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 23,
                "endIndex": 27
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "inheritedMetadata",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 12,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "methodName",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "methodDescriptor",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 22
                  }
                }
              ],
              "name": "mergeWithInherited"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!MethodParameterDecoratorFactory#mergeWithOwn:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "mergeWithOwn"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "ownMetadata"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": "[]>"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "methodName"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "methodDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "TypedPropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "<any> | number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": "[]>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 23,
                "endIndex": 27
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "ownMetadata",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 12,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "methodName",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "methodDescriptor",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 22
                  }
                }
              ],
              "name": "mergeWithOwn"
            }
          ],
          "extendsTokenRange": {
            "startIndex": 5,
            "endIndex": 15
          },
          "implementsTokenRanges": []
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/metadata!NamespacedReflect:class",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class "
            },
            {
              "kind": "Reference",
              "text": "NamespacedReflect"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "NamespacedReflect",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/metadata!NamespacedReflect:constructor(1)",
              "docComment": "/**\n * Constructs a new instance of the `NamespacedReflect` class\n *\n * @param namespace - Namespace to bind this reflect context\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor("
                },
                {
                  "kind": "Reference",
                  "text": "namespace"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string | undefined"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "namespace",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!NamespacedReflect#decorate:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "decorate"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "decorators"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "PropertyDecorator"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "MethodDecorator"
                },
                {
                  "kind": "Content",
                  "text": ")[]"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "targetKey"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string | symbol"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "descriptor"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "Function"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 22,
                "endIndex": 25
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "decorators",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 12,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "targetKey",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "descriptor",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 21
                  }
                }
              ],
              "name": "decorate"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!NamespacedReflect#decorate:member(2)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "decorate"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "decorators"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "ClassDecorator"
                },
                {
                  "kind": "Content",
                  "text": "[]"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "Function"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 11,
                "endIndex": 14
              },
              "releaseTag": "Public",
              "overloadIndex": 2,
              "parameters": [
                {
                  "parameterName": "decorators",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 9,
                    "endIndex": 10
                  }
                }
              ],
              "name": "decorate"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!NamespacedReflect#defineMetadata:member(1)",
              "docComment": "/**\n * define metadata for a target class or it's property/method\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "defineMetadata"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "metadataKey"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "metadataValue"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "propertyKey"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 18,
                "endIndex": 19
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "metadataKey",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "metadataValue",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 12,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "propertyKey",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                }
              ],
              "name": "defineMetadata"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!NamespacedReflect#deleteMetadata:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "deleteMetadata"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "metadataKey"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "propertyKey"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 14,
                "endIndex": 15
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "metadataKey",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "propertyKey",
                  "parameterTypeTokenRange": {
                    "startIndex": 12,
                    "endIndex": 13
                  }
                }
              ],
              "name": "deleteMetadata"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!NamespacedReflect#getMetadata:member(1)",
              "docComment": "/**\n * lookup metadata from a target object and its prototype chain\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "getMetadata"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "metadataKey"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "propertyKey"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 14,
                "endIndex": 15
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "metadataKey",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "propertyKey",
                  "parameterTypeTokenRange": {
                    "startIndex": 12,
                    "endIndex": 13
                  }
                }
              ],
              "name": "getMetadata"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!NamespacedReflect#getMetadataKeys:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "getMetadataKeys"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "propertyKey"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "string[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 11
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "propertyKey",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "name": "getMetadataKeys"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!NamespacedReflect#getOwnMetadata:member(1)",
              "docComment": "/**\n * get own metadata for a target object or it's property/method\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "getOwnMetadata"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "metadataKey"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "propertyKey"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 14,
                "endIndex": 15
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "metadataKey",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "propertyKey",
                  "parameterTypeTokenRange": {
                    "startIndex": 12,
                    "endIndex": 13
                  }
                }
              ],
              "name": "getOwnMetadata"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!NamespacedReflect#getOwnMetadataKeys:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "getOwnMetadataKeys"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "propertyKey"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "string[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 11
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "propertyKey",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "name": "getOwnMetadataKeys"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!NamespacedReflect#hasMetadata:member(1)",
              "docComment": "/**\n * Check if the target has corresponding metadata\n *\n * @param metadataKey - Key\n *\n * @param target - Target\n *\n * @param propertyKey - Optional property key\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "hasMetadata"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "metadataKey"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "propertyKey"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 14,
                "endIndex": 15
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "metadataKey",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "propertyKey",
                  "parameterTypeTokenRange": {
                    "startIndex": 12,
                    "endIndex": 13
                  }
                }
              ],
              "name": "hasMetadata"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!NamespacedReflect#hasOwnMetadata:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "hasOwnMetadata"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "metadataKey"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "propertyKey"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 14,
                "endIndex": 15
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "metadataKey",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "propertyKey",
                  "parameterTypeTokenRange": {
                    "startIndex": 12,
                    "endIndex": 13
                  }
                }
              ],
              "name": "hasOwnMetadata"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!NamespacedReflect#metadata:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "metadata"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "metadataKey"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "metadataValue"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "{\n        ("
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Function"
                },
                {
                  "kind": "Content",
                  "text": "): void;\n        ("
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "targetKey"
                },
                {
                  "kind": "Content",
                  "text": ": string | symbol): void;\n    }"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 21
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "metadataKey",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "metadataValue",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "name": "metadata"
            }
          ],
          "implementsTokenRanges": []
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/metadata!ParameterDecoratorFactory:class",
          "docComment": "/**\n * Factory for parameter decorators\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class "
            },
            {
              "kind": "Reference",
              "text": "ParameterDecoratorFactory"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "> extends "
            },
            {
              "kind": "Reference",
              "text": "DecoratorFactory"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "MetadataMap"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "[]>, "
            },
            {
              "kind": "Reference",
              "text": "ParameterDecorator"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "ParameterDecoratorFactory",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!ParameterDecoratorFactory#create:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "create"
                },
                {
                  "kind": "Content",
                  "text": "(): "
                },
                {
                  "kind": "Reference",
                  "text": "ParameterDecorator"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "create"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!ParameterDecoratorFactory.createDecorator:member(1)",
              "docComment": "/**\n * Create a parameter decorator function\n *\n * @param key - Metadata key\n *\n * @param spec - Metadata object from the decorator function\n *\n * @param options - Options for the decorator\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "createDecorator"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "ParameterDecorator"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "spec"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "DecoratorOptions"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "ParameterDecorator"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 22,
                "endIndex": 23
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "spec",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 21
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "createDecorator"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!ParameterDecoratorFactory#mergeWithInherited:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "mergeWithInherited"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "inheritedMetadata"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": "[]>"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "methodName"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "parameterIndex"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "TypedPropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "<any> | number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": "[]>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 23,
                "endIndex": 27
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "inheritedMetadata",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 12,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "methodName",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "parameterIndex",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 22
                  }
                }
              ],
              "name": "mergeWithInherited"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!ParameterDecoratorFactory#mergeWithOwn:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "mergeWithOwn"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "ownMetadata"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": "[]>"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "methodName"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "parameterIndex"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "TypedPropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "<any> | number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": "[]>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 23,
                "endIndex": 27
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "ownMetadata",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 12,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "methodName",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "parameterIndex",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 22
                  }
                }
              ],
              "name": "mergeWithOwn"
            }
          ],
          "extendsTokenRange": {
            "startIndex": 5,
            "endIndex": 15
          },
          "implementsTokenRanges": []
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/metadata!PropertyDecoratorFactory:class",
          "docComment": "/**\n * Factory for property decorators\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class "
            },
            {
              "kind": "Reference",
              "text": "PropertyDecoratorFactory"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "> extends "
            },
            {
              "kind": "Reference",
              "text": "DecoratorFactory"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "MetadataMap"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ">, "
            },
            {
              "kind": "Reference",
              "text": "PropertyDecorator"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "PropertyDecoratorFactory",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!PropertyDecoratorFactory#create:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "create"
                },
                {
                  "kind": "Content",
                  "text": "(): "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyDecorator"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "create"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!PropertyDecoratorFactory.createDecorator:member(1)",
              "docComment": "/**\n * Create a property decorator function\n *\n * @param key - Metadata key\n *\n * @param spec - Metadata object from the decorator function\n *\n * @param options - Options for the decorator\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static "
                },
                {
                  "kind": "Reference",
                  "text": "createDecorator"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyDecorator"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "spec"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "DecoratorOptions"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyDecorator"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 22,
                "endIndex": 23
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "spec",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 21
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "createDecorator"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!PropertyDecoratorFactory#mergeWithInherited:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "mergeWithInherited"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "inheritedMetadata"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "propertyName"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "descriptorOrIndex"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "TypedPropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "<any> | number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 23,
                "endIndex": 27
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "inheritedMetadata",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 12,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "propertyName",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "descriptorOrIndex",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 22
                  }
                }
              ],
              "name": "mergeWithInherited"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/metadata!PropertyDecoratorFactory#mergeWithOwn:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "mergeWithOwn"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "ownMetadata"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Object"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "propertyName"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "descriptorOrParameterIndex"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "TypedPropertyDescriptor"
                },
                {
                  "kind": "Content",
                  "text": "<any> | number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "MetadataMap"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 23,
                "endIndex": 27
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "ownMetadata",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 12,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "propertyName",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                },
                {
                  "parameterName": "descriptorOrParameterIndex",
                  "parameterTypeTokenRange": {
                    "startIndex": 20,
                    "endIndex": 22
                  }
                }
              ],
              "name": "mergeWithOwn"
            }
          ],
          "extendsTokenRange": {
            "startIndex": 5,
            "endIndex": 15
          },
          "implementsTokenRanges": []
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/metadata!Reflector:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Reference",
              "text": "Reflector"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "NamespacedReflect"
            }
          ],
          "releaseTag": "Public",
          "name": "Reflector",
          "variableTypeTokenRange": {
            "startIndex": 2,
            "endIndex": 3
          }
        }
      ]
    }
  ]
}
