{
  "metadata": {
    "toolPackage": "@microsoft/api-extractor",
    "toolVersion": "7.2.1",
    "schemaVersion": 1001,
    "oldestForwardsCompatibleVersion": 1001
  },
  "kind": "Package",
  "canonicalReference": "@loopback/core",
  "docComment": "",
  "name": "@loopback/core",
  "members": [
    {
      "kind": "EntryPoint",
      "canonicalReference": "",
      "name": "",
      "members": [
        {
          "kind": "Function",
          "canonicalReference": "(addExtension:0)",
          "docComment": "/**\n * Register an extension for the given extension point to the context\n *\n * @param context - Context object\n *\n * @param extensionPointName - Name of the extension point\n *\n * @param extensionClass - Class or a provider for an extension\n *\n * @param options - Options Options for the creation of binding from class\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function "
            },
            {
              "kind": "Reference",
              "text": "addExtension"
            },
            {
              "kind": "Content",
              "text": "("
            },
            {
              "kind": "Reference",
              "text": "context"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "Context"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "extensionPointName"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "extensionClass"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "Constructor"
            },
            {
              "kind": "Content",
              "text": "<unknown>"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "options"
            },
            {
              "kind": "Content",
              "text": "?: "
            },
            {
              "kind": "Reference",
              "text": "BindingFromClassOptions"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Binding"
            },
            {
              "kind": "Content",
              "text": "<unknown>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 20,
            "endIndex": 22
          },
          "releaseTag": "Public",
          "overloadIndex": 0,
          "parameters": [
            {
              "parameterName": "context",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            },
            {
              "parameterName": "extensionPointName",
              "parameterTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 10
              }
            },
            {
              "parameterName": "extensionClass",
              "parameterTypeTokenRange": {
                "startIndex": 13,
                "endIndex": 15
              }
            },
            {
              "parameterName": "options",
              "parameterTypeTokenRange": {
                "startIndex": 18,
                "endIndex": 19
              }
            }
          ],
          "name": "addExtension"
        },
        {
          "kind": "Class",
          "canonicalReference": "(Application:class)",
          "docComment": "/**\n * Application is the container for various types of artifacts, such as components, servers, controllers, repositories, datasources, connectors, and models.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class "
            },
            {
              "kind": "Reference",
              "text": "Application"
            },
            {
              "kind": "Content",
              "text": " extends "
            },
            {
              "kind": "Reference",
              "text": "Context"
            },
            {
              "kind": "Content",
              "text": " "
            },
            {
              "kind": "Content",
              "text": "implements "
            },
            {
              "kind": "Reference",
              "text": "LifeCycleObserver"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "Application",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "(:constructor,0)",
              "docComment": "/**\n * Constructs a new instance of the `Application` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor("
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "ApplicationConfig"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "(component:instance,0)",
              "docComment": "/**\n * Add a component to this application and register extensions such as controllers, providers, and servers from the component.\n *\n * @param componentCtor - The component class to add.\n *\n * @param name - Optional component name, default to the class name\n *\n * @example\n * ```ts\n *\n * export class ProductComponent {\n *   controllers = [ProductController];\n *   repositories = [ProductRepo, UserRepo];\n *   providers = {\n *     [AUTHENTICATION_STRATEGY]: AuthStrategy,\n *     [AUTHORIZATION_ROLE]: Role,\n *   };\n * };\n *\n * app.component(ProductComponent);\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "component"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "componentCtor"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Constructor"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Component"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "name"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Binding"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Component"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 13,
                "endIndex": 17
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "componentCtor",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 8
                  }
                },
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 11,
                    "endIndex": 12
                  }
                }
              ],
              "name": "component"
            },
            {
              "kind": "Method",
              "canonicalReference": "(controller:instance,0)",
              "docComment": "/**\n * Register a controller class with this application.\n *\n * @param controllerCtor - The controller class (constructor function).\n *\n * @param name - Optional controller name, default to the class name\n *\n * @returns The newly created binding, you can use the reference to further modify the binding, e.g. lock the value to prevent further modifications.\n *\n * @example\n * ```ts\n * class MyController {\n * }\n * app.controller(MyController).lock();\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "controller"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "controllerCtor"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "ControllerClass"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "name"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Binding"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 11
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "controllerCtor",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "name": "controller"
            },
            {
              "kind": "Method",
              "canonicalReference": "(getServer:instance,0)",
              "docComment": "/**\n * Retrieve the singleton instance for a bound server.\n *\n * @param ctor - The constructor that was used to make the binding.\n *\n * @typeParam T - Server type\n *\n * @returns A Promise of server instance\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "getServer"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": " extends "
                },
                {
                  "kind": "Reference",
                  "text": "Server"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "target"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Constructor"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": "> | string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 13,
                "endIndex": 17
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 12
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "getServer"
            },
            {
              "kind": "Method",
              "canonicalReference": "(lifeCycleObserver:instance,0)",
              "docComment": "/**\n * Register a life cycle observer class\n *\n * @param ctor - A class implements LifeCycleObserver\n *\n * @param name - Optional name for the life cycle observer\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "lifeCycleObserver"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": " extends "
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserver"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "ctor"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Constructor"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "name"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Binding"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 17,
                "endIndex": 21
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "ctor",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 12
                  }
                },
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 15,
                    "endIndex": 16
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "lifeCycleObserver"
            },
            {
              "kind": "Property",
              "canonicalReference": "(options:instance)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "ApplicationConfig"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "options",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "(server:instance,0)",
              "docComment": "/**\n * Bind a Server constructor to the Application's master context. Each server constructor added in this way must provide a unique prefix to prevent binding overlap.\n *\n * @param server - The server constructor.\n *\n * @param name - Optional override for key name.\n *\n * @returns Binding for the server class\n *\n * @example\n * ```ts\n * app.server(RestServer);\n * // This server constructor will be bound under \"servers.RestServer\".\n * app.server(RestServer, \"v1API\");\n * // This server instance will be bound under \"servers.v1API\".\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "server"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": " extends "
                },
                {
                  "kind": "Reference",
                  "text": "Server"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "ctor"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Constructor"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "name"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Binding"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 17,
                "endIndex": 21
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "ctor",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 12
                  }
                },
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 15,
                    "endIndex": 16
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "server"
            },
            {
              "kind": "Method",
              "canonicalReference": "(servers:instance,0)",
              "docComment": "/**\n * Bind an array of Server constructors to the Application's master context. Each server added in this way will automatically be named based on the class constructor name with the \"servers.\" prefix.\n *\n * @remarks\n *\n * If you wish to control the binding keys for particular server instances, use the app.server function instead.\n * ```ts\n * app.servers([\n *  RestServer,\n *  GRPCServer,\n * ]);\n * // Creates a binding for \"servers.RestServer\" and a binding for\n * // \"servers.GRPCServer\";\n * ```\n *\n * @param ctors - An array of Server constructors.\n *\n * @returns An array of bindings for the registered server classes\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "servers"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": " extends "
                },
                {
                  "kind": "Reference",
                  "text": "Server"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "ctors"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Constructor"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">[]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Binding"
                },
                {
                  "kind": "Content",
                  "text": "[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 13,
                "endIndex": 15
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "ctors",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 12
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "servers"
            },
            {
              "kind": "Method",
              "canonicalReference": "(setMetadata:instance,0)",
              "docComment": "/**\n * Set application metadata. `@loopback/boot` calls this method to populate the metadata from `package.json`.\n *\n * @param metadata - Application metadata\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "setMetadata"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "metadata"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "ApplicationMetadata"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "metadata",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "setMetadata"
            },
            {
              "kind": "Method",
              "canonicalReference": "(start:instance,0)",
              "docComment": "/**\n * Start the application, and all of its registered observers.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "start"
                },
                {
                  "kind": "Content",
                  "text": "(): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [],
              "name": "start"
            },
            {
              "kind": "Method",
              "canonicalReference": "(stop:instance,0)",
              "docComment": "/**\n * Stop the application instance and all of its registered observers.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "stop"
                },
                {
                  "kind": "Content",
                  "text": "(): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [],
              "name": "stop"
            }
          ],
          "extendsTokenRange": {
            "startIndex": 3,
            "endIndex": 5
          },
          "implementsTokenRanges": [
            {
              "startIndex": 6,
              "endIndex": 8
            }
          ]
        },
        {
          "kind": "Interface",
          "canonicalReference": "(ApplicationConfig:interface)",
          "docComment": "/**\n * Configuration for application\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface "
            },
            {
              "kind": "Reference",
              "text": "ApplicationConfig"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "ApplicationConfig",
          "members": [
            {
              "kind": "IndexSignature",
              "canonicalReference": "(:index,0)",
              "docComment": "/**\n * Other properties\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "["
                },
                {
                  "kind": "Reference",
                  "text": "prop"
                },
                {
                  "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": 0,
              "parameters": [
                {
                  "parameterName": "prop",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ]
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "(ApplicationMetadata:interface)",
          "docComment": "/**\n * Type description for `package.json`\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface "
            },
            {
              "kind": "Reference",
              "text": "ApplicationMetadata"
            },
            {
              "kind": "Content",
              "text": " extends "
            },
            {
              "kind": "Reference",
              "text": "JSONObject"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "ApplicationMetadata",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "description",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "description"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "description",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "name",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "name"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "version",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "version"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "version",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              }
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 3,
              "endIndex": 5
            }
          ]
        },
        {
          "kind": "Function",
          "canonicalReference": "(asLifeCycleObserver:0)",
          "docComment": "/**\n * A `BindingTemplate` function to configure the binding as life cycle observer by tagging it with `CoreTags.LIFE_CYCLE_OBSERVER`.\n *\n * @param binding - Binding object\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function "
            },
            {
              "kind": "Reference",
              "text": "asLifeCycleObserver"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": " = "
            },
            {
              "kind": "Content",
              "text": "unknown"
            },
            {
              "kind": "Content",
              "text": ">("
            },
            {
              "kind": "Reference",
              "text": "binding"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "Binding"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Binding"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 14,
            "endIndex": 18
          },
          "releaseTag": "Public",
          "overloadIndex": 0,
          "parameters": [
            {
              "parameterName": "binding",
              "parameterTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 13
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            }
          ],
          "name": "asLifeCycleObserver"
        },
        {
          "kind": "Interface",
          "canonicalReference": "(ClassMap:interface)",
          "docComment": "/**\n * A map of classes to be bound to a context\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface "
            },
            {
              "kind": "Reference",
              "text": "ClassMap"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "ClassMap",
          "members": [
            {
              "kind": "IndexSignature",
              "canonicalReference": "(:index,0)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "["
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "]: "
                },
                {
                  "kind": "Reference",
                  "text": "Constructor"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "BoundValue"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ]
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "(Component:interface)",
          "docComment": "/**\n * A component declares a set of artifacts so that they cane be contributed to an application as a group\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface "
            },
            {
              "kind": "Reference",
              "text": "Component"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "Component",
          "members": [
            {
              "kind": "IndexSignature",
              "canonicalReference": "(:index,0)",
              "docComment": "/**\n * Other properties\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "["
                },
                {
                  "kind": "Reference",
                  "text": "prop"
                },
                {
                  "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": 0,
              "parameters": [
                {
                  "parameterName": "prop",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ]
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "bindings",
              "docComment": "/**\n * An array of bindings to be aded to the application context.\n *\n * @example\n * ```ts\n * const bindingX = Binding.bind('x').to('Value X');\n * this.bindings = [bindingX]\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "bindings"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "Binding"
                },
                {
                  "kind": "Content",
                  "text": "[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "bindings",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 4
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "classes",
              "docComment": "/**\n * A map of classes to be bound to the application context.\n *\n * @example\n * ```ts\n * {\n *   'rest.body-parsers.xml': XmlBodyParser\n * }\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "classes"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "ClassMap"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "classes",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "controllers",
              "docComment": "/**\n * An array of controller classes\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "controllers"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "ControllerClass"
                },
                {
                  "kind": "Content",
                  "text": "[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "controllers",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 4
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "lifeCycleObservers",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "lifeCycleObservers"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "Constructor"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserver"
                },
                {
                  "kind": "Content",
                  "text": ">[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "lifeCycleObservers",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 6
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "providers",
              "docComment": "/**\n * A map of providers to be bound to the application context\n *\n * @example\n * ```ts\n * {\n *   'authentication.strategies.ldap': LdapStrategyProvider\n * }\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "providers"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "ProviderMap"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "providers",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "servers",
              "docComment": "/**\n * A map of name/class pairs for servers\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "servers"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "{\n        ["
                },
                {
                  "kind": "Reference",
                  "text": "name"
                },
                {
                  "kind": "Content",
                  "text": ": string]: "
                },
                {
                  "kind": "Reference",
                  "text": "Constructor"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Server"
                },
                {
                  "kind": "Content",
                  "text": ">;\n    }"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "servers",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 9
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Namespace",
          "canonicalReference": "(CoreBindings:namespace)",
          "docComment": "/**\n * Namespace for core binding keys\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare namespace "
            },
            {
              "kind": "Reference",
              "text": "CoreBindings"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "CoreBindings",
          "members": [
            {
              "kind": "Variable",
              "canonicalReference": "APPLICATION_CONFIG",
              "docComment": "/**\n * Binding key for application configuration\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "APPLICATION_CONFIG"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "BindingKey"
                },
                {
                  "kind": "Content",
                  "text": "<object>"
                }
              ],
              "releaseTag": "Public",
              "name": "APPLICATION_CONFIG",
              "variableTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 4
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "APPLICATION_INSTANCE",
              "docComment": "/**\n * Binding key for application instance itself\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "APPLICATION_INSTANCE"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "BindingKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Application"
                },
                {
                  "kind": "Content",
                  "text": ">"
                }
              ],
              "releaseTag": "Public",
              "name": "APPLICATION_INSTANCE",
              "variableTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 6
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "APPLICATION_METADATA",
              "docComment": "/**\n * Binding key for the content of `package.json`\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "APPLICATION_METADATA"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "BindingKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ApplicationMetadata"
                },
                {
                  "kind": "Content",
                  "text": ">"
                }
              ],
              "releaseTag": "Public",
              "name": "APPLICATION_METADATA",
              "variableTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 6
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "COMPONENTS",
              "docComment": "/**\n * Binding key for components\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "COMPONENTS"
                },
                {
                  "kind": "Content",
                  "text": " = \"components\""
                }
              ],
              "releaseTag": "Public",
              "name": "COMPONENTS",
              "variableTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "CONTROLLER_CLASS",
              "docComment": "/**\n * Binding key for the controller class resolved in the current request context\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "CONTROLLER_CLASS"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "BindingKey"
                },
                {
                  "kind": "Content",
                  "text": "<import(\"@loopback/context\")."
                },
                {
                  "kind": "Reference",
                  "text": "Constructor"
                },
                {
                  "kind": "Content",
                  "text": "<any>>"
                }
              ],
              "releaseTag": "Public",
              "name": "CONTROLLER_CLASS",
              "variableTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 6
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "CONTROLLER_CURRENT",
              "docComment": "/**\n * Binding key for the controller instance resolved in the current request context\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "CONTROLLER_CURRENT"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "BindingKey"
                },
                {
                  "kind": "Content",
                  "text": "<unknown>"
                }
              ],
              "releaseTag": "Public",
              "name": "CONTROLLER_CURRENT",
              "variableTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 4
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "CONTROLLER_METHOD_META",
              "docComment": "/**\n * Binding key for the controller method metadata resolved in the current request context\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "CONTROLLER_METHOD_META"
                },
                {
                  "kind": "Content",
                  "text": " = \"controller.method.meta\""
                }
              ],
              "releaseTag": "Public",
              "name": "CONTROLLER_METHOD_META",
              "variableTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "CONTROLLER_METHOD_NAME",
              "docComment": "/**\n * Binding key for the controller method resolved in the current request context\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "CONTROLLER_METHOD_NAME"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "BindingKey"
                },
                {
                  "kind": "Content",
                  "text": "<string>"
                }
              ],
              "releaseTag": "Public",
              "name": "CONTROLLER_METHOD_NAME",
              "variableTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 4
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "CONTROLLERS",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "CONTROLLERS"
                },
                {
                  "kind": "Content",
                  "text": " = \"controllers\""
                }
              ],
              "releaseTag": "Public",
              "name": "CONTROLLERS",
              "variableTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "LIFE_CYCLE_OBSERVER_OPTIONS",
              "docComment": "/**\n * Binding key for life cycle observer options\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "LIFE_CYCLE_OBSERVER_OPTIONS"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "BindingKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserverOptions"
                },
                {
                  "kind": "Content",
                  "text": ">"
                }
              ],
              "releaseTag": "Public",
              "name": "LIFE_CYCLE_OBSERVER_OPTIONS",
              "variableTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 6
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "LIFE_CYCLE_OBSERVER_REGISTRY",
              "docComment": "/**\n * Binding key for life cycle observer options\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "LIFE_CYCLE_OBSERVER_REGISTRY"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "BindingKey"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserverRegistry"
                },
                {
                  "kind": "Content",
                  "text": ">"
                }
              ],
              "releaseTag": "Public",
              "name": "LIFE_CYCLE_OBSERVER_REGISTRY",
              "variableTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 6
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "LIFE_CYCLE_OBSERVERS",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "LIFE_CYCLE_OBSERVERS"
                },
                {
                  "kind": "Content",
                  "text": " = \"lifeCycleObservers\""
                }
              ],
              "releaseTag": "Public",
              "name": "LIFE_CYCLE_OBSERVERS",
              "variableTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "SERVERS",
              "docComment": "/**\n * Binding key for servers\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "SERVERS"
                },
                {
                  "kind": "Content",
                  "text": " = \"servers\""
                }
              ],
              "releaseTag": "Public",
              "name": "SERVERS",
              "variableTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ]
        },
        {
          "kind": "Namespace",
          "canonicalReference": "(CoreTags:namespace)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare namespace "
            },
            {
              "kind": "Reference",
              "text": "CoreTags"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "CoreTags",
          "members": [
            {
              "kind": "Variable",
              "canonicalReference": "COMPONENT",
              "docComment": "/**\n * Binding tag for components\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "COMPONENT"
                },
                {
                  "kind": "Content",
                  "text": " = \"component\""
                }
              ],
              "releaseTag": "Public",
              "name": "COMPONENT",
              "variableTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "CONTROLLER",
              "docComment": "/**\n * Binding tag for controllers\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "CONTROLLER"
                },
                {
                  "kind": "Content",
                  "text": " = \"controller\""
                }
              ],
              "releaseTag": "Public",
              "name": "CONTROLLER",
              "variableTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "EXTENSION_FOR",
              "docComment": "/**\n * Binding tag for extensions to specify name of the extension point that an extension contributes to.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "EXTENSION_FOR"
                },
                {
                  "kind": "Content",
                  "text": " = \"extensionFor\""
                }
              ],
              "releaseTag": "Public",
              "name": "EXTENSION_FOR",
              "variableTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "EXTENSION_POINT",
              "docComment": "/**\n * Binding tag for an extension point to specify name of the extension point\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "EXTENSION_POINT"
                },
                {
                  "kind": "Content",
                  "text": " = \"extensionPoint\""
                }
              ],
              "releaseTag": "Public",
              "name": "EXTENSION_POINT",
              "variableTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "LIFE_CYCLE_OBSERVER",
              "docComment": "/**\n * Binding tag for life cycle observers\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "LIFE_CYCLE_OBSERVER"
                },
                {
                  "kind": "Content",
                  "text": " = \"lifeCycleObserver\""
                }
              ],
              "releaseTag": "Public",
              "name": "LIFE_CYCLE_OBSERVER",
              "variableTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "LIFE_CYCLE_OBSERVER_GROUP",
              "docComment": "/**\n * Binding tag for group name of life cycle observers\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "LIFE_CYCLE_OBSERVER_GROUP"
                },
                {
                  "kind": "Content",
                  "text": " = \"lifeCycleObserverGroup\""
                }
              ],
              "releaseTag": "Public",
              "name": "LIFE_CYCLE_OBSERVER_GROUP",
              "variableTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "SERVER",
              "docComment": "/**\n * Binding tag for servers\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "SERVER"
                },
                {
                  "kind": "Content",
                  "text": " = \"server\""
                }
              ],
              "releaseTag": "Public",
              "name": "SERVER",
              "variableTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ]
        },
        {
          "kind": "Function",
          "canonicalReference": "(extensionFilter:0)",
          "docComment": "/**\n * A factory function to create binding filter for extensions of a named extension point\n *\n * @param extensionPointName - Name of the extension point\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function "
            },
            {
              "kind": "Reference",
              "text": "extensionFilter"
            },
            {
              "kind": "Content",
              "text": "("
            },
            {
              "kind": "Reference",
              "text": "extensionPointName"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "import(\"@loopback/context\")."
            },
            {
              "kind": "Reference",
              "text": "BindingFilter"
            },
            {
              "kind": "Content",
              "text": "<unknown>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 7,
            "endIndex": 10
          },
          "releaseTag": "Public",
          "overloadIndex": 0,
          "parameters": [
            {
              "parameterName": "extensionPointName",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            }
          ],
          "name": "extensionFilter"
        },
        {
          "kind": "Function",
          "canonicalReference": "(extensionFor:0)",
          "docComment": "/**\n * A factory function to create binding template for extensions of the given extension point\n *\n * @param extensionPointName - Name of the extension point\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function "
            },
            {
              "kind": "Reference",
              "text": "extensionFor"
            },
            {
              "kind": "Content",
              "text": "("
            },
            {
              "kind": "Reference",
              "text": "extensionPointName"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "BindingTemplate"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 7,
            "endIndex": 8
          },
          "releaseTag": "Public",
          "overloadIndex": 0,
          "parameters": [
            {
              "parameterName": "extensionPointName",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            }
          ],
          "name": "extensionFor"
        },
        {
          "kind": "Function",
          "canonicalReference": "(extensionPoint:0)",
          "docComment": "/**\n * Decorate a class as a named extension point. If the decoration is not present, the name of the class will be used.\n *\n * @param name - Name of the extension point\n *\n * @example\n * ```ts\n * import {extensionPoint} from '@loopback/core';\n *\n * @extensionPoint(GREETER_EXTENSION_POINT_NAME)\n * export class GreetingService {\n *   // ...\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function "
            },
            {
              "kind": "Reference",
              "text": "extensionPoint"
            },
            {
              "kind": "Content",
              "text": "("
            },
            {
              "kind": "Reference",
              "text": "name"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ", ..."
            },
            {
              "kind": "Reference",
              "text": "specs"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "BindingSpec"
            },
            {
              "kind": "Content",
              "text": "[]"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "ClassDecorator"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 12,
            "endIndex": 13
          },
          "releaseTag": "Public",
          "overloadIndex": 0,
          "parameters": [
            {
              "parameterName": "name",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            },
            {
              "parameterName": "specs",
              "parameterTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 11
              }
            }
          ],
          "name": "extensionPoint"
        },
        {
          "kind": "Function",
          "canonicalReference": "(extensions:0)",
          "docComment": "/**\n * Shortcut to inject extensions for the given extension point.\n *\n * @param extensionPointName - Name of the extension point. If not supplied, we use the `name` tag from the extension point binding or the class name of the extension point class. If a class needs to inject extensions from multiple extension points, use different `extensionPointName` for different types of extensions.\n *\n * @example\n * ```ts\n * import {Getter} from '@loopback/context';\n * import {extensionPoint, extensions} from '@loopback/core';\n *\n * @extensionPoint(GREETER_EXTENSION_POINT_NAME)\n * export class GreetingService {\n *  constructor(\n *    @extensions() // Inject extensions for the extension point\n *    private getGreeters: Getter<Greeter[]>,\n *    // ...\n * ) {\n *   // ...\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function "
            },
            {
              "kind": "Reference",
              "text": "extensions"
            },
            {
              "kind": "Content",
              "text": "("
            },
            {
              "kind": "Reference",
              "text": "extensionPointName"
            },
            {
              "kind": "Content",
              "text": "?: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "("
            },
            {
              "kind": "Reference",
              "text": "target"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "Object"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "member"
            },
            {
              "kind": "Content",
              "text": ": string, "
            },
            {
              "kind": "Reference",
              "text": "methodDescriptorOrParameterIndex"
            },
            {
              "kind": "Content",
              "text": "?: number | "
            },
            {
              "kind": "Reference",
              "text": "TypedPropertyDescriptor"
            },
            {
              "kind": "Content",
              "text": "<any> | undefined) => void"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 7,
            "endIndex": 18
          },
          "releaseTag": "Public",
          "overloadIndex": 0,
          "parameters": [
            {
              "parameterName": "extensionPointName",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            }
          ],
          "name": "extensions"
        },
        {
          "kind": "Function",
          "canonicalReference": "(isLifeCycleObserver:0)",
          "docComment": "/**\n * Test if an object implements LifeCycleObserver\n *\n * @param obj - An object\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function "
            },
            {
              "kind": "Reference",
              "text": "isLifeCycleObserver"
            },
            {
              "kind": "Content",
              "text": "("
            },
            {
              "kind": "Reference",
              "text": "obj"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "obj"
            },
            {
              "kind": "Content",
              "text": " is "
            },
            {
              "kind": "Reference",
              "text": "LifeCycleObserver"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 7,
            "endIndex": 10
          },
          "releaseTag": "Public",
          "overloadIndex": 0,
          "parameters": [
            {
              "parameterName": "obj",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            }
          ],
          "name": "isLifeCycleObserver"
        },
        {
          "kind": "Function",
          "canonicalReference": "(isLifeCycleObserverClass:0)",
          "docComment": "/**\n * Test if a class implements LifeCycleObserver\n *\n * @param ctor - A class\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function "
            },
            {
              "kind": "Reference",
              "text": "isLifeCycleObserverClass"
            },
            {
              "kind": "Content",
              "text": "("
            },
            {
              "kind": "Reference",
              "text": "ctor"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "Constructor"
            },
            {
              "kind": "Content",
              "text": "<unknown>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "ctor"
            },
            {
              "kind": "Content",
              "text": " is "
            },
            {
              "kind": "Reference",
              "text": "Constructor"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "LifeCycleObserver"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 8,
            "endIndex": 14
          },
          "releaseTag": "Public",
          "overloadIndex": 0,
          "parameters": [
            {
              "parameterName": "ctor",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              }
            }
          ],
          "name": "isLifeCycleObserverClass"
        },
        {
          "kind": "Interface",
          "canonicalReference": "(JSONArray:interface)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface "
            },
            {
              "kind": "Reference",
              "text": "JSONArray"
            },
            {
              "kind": "Content",
              "text": " extends "
            },
            {
              "kind": "Reference",
              "text": "Array"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "JSONValue"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "name": "JSONArray",
          "members": [],
          "extendsTokenRanges": [
            {
              "startIndex": 3,
              "endIndex": 7
            }
          ]
        },
        {
          "kind": "Interface",
          "canonicalReference": "(JSONObject:interface)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface "
            },
            {
              "kind": "Reference",
              "text": "JSONObject"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "JSONObject",
          "members": [
            {
              "kind": "IndexSignature",
              "canonicalReference": "(:index,0)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "["
                },
                {
                  "kind": "Reference",
                  "text": "property"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "]: "
                },
                {
                  "kind": "Reference",
                  "text": "JSONValue"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "property",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ]
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "(lifeCycleObserver:0)",
          "docComment": "/**\n * Sugar decorator to mark a class as life cycle observer\n *\n * @param group - Optional observer group name\n *\n * @param specs - Optional bindings specs\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function "
            },
            {
              "kind": "Reference",
              "text": "lifeCycleObserver"
            },
            {
              "kind": "Content",
              "text": "("
            },
            {
              "kind": "Reference",
              "text": "group"
            },
            {
              "kind": "Content",
              "text": "?: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ", ..."
            },
            {
              "kind": "Reference",
              "text": "specs"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "BindingSpec"
            },
            {
              "kind": "Content",
              "text": "[]"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "ClassDecorator"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 12,
            "endIndex": 13
          },
          "releaseTag": "Public",
          "overloadIndex": 0,
          "parameters": [
            {
              "parameterName": "group",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            },
            {
              "parameterName": "specs",
              "parameterTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 11
              }
            }
          ],
          "name": "lifeCycleObserver"
        },
        {
          "kind": "Interface",
          "canonicalReference": "(LifeCycleObserver:interface)",
          "docComment": "/**\n * Observers to handle life cycle start/stop events\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface "
            },
            {
              "kind": "Reference",
              "text": "LifeCycleObserver"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "LifeCycleObserver",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "(start:0)",
              "docComment": "/**\n * The method to be invoked during `start`\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "start"
                },
                {
                  "kind": "Content",
                  "text": "?(): "
                },
                {
                  "kind": "Reference",
                  "text": "ValueOrPromise"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [],
              "name": "start"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "(stop:0)",
              "docComment": "/**\n * The method to be invoked during `stop`\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "stop"
                },
                {
                  "kind": "Content",
                  "text": "?(): "
                },
                {
                  "kind": "Reference",
                  "text": "ValueOrPromise"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [],
              "name": "stop"
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "(lifeCycleObserverFilter:0)",
          "docComment": "/**\n * Find all life cycle observer bindings. By default, a binding tagged with `CoreTags.LIFE_CYCLE_OBSERVER`. It's used as `BindingFilter`.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function "
            },
            {
              "kind": "Reference",
              "text": "lifeCycleObserverFilter"
            },
            {
              "kind": "Content",
              "text": "("
            },
            {
              "kind": "Reference",
              "text": "binding"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "Readonly"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "Binding"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "boolean"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 10,
            "endIndex": 11
          },
          "releaseTag": "Public",
          "overloadIndex": 0,
          "parameters": [
            {
              "parameterName": "binding",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 9
              }
            }
          ],
          "name": "lifeCycleObserverFilter"
        },
        {
          "kind": "Class",
          "canonicalReference": "(LifeCycleObserverRegistry:class)",
          "docComment": "/**\n * A context-based registry for life cycle observers\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class "
            },
            {
              "kind": "Reference",
              "text": "LifeCycleObserverRegistry"
            },
            {
              "kind": "Content",
              "text": " implements "
            },
            {
              "kind": "Reference",
              "text": "LifeCycleObserver"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "LifeCycleObserverRegistry",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "(:constructor,0)",
              "docComment": "/**\n * Constructs a new instance of the `LifeCycleObserverRegistry` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor("
                },
                {
                  "kind": "Reference",
                  "text": "observersView"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "ContextView"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserver"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserverOptions"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "observersView",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 10,
                    "endIndex": 11
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "(getObserverGroup:instance,0)",
              "docComment": "/**\n * Get the group for a given life cycle observer binding\n *\n * @param binding - Life cycle observer binding\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "getObserverGroup"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "binding"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Readonly"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Binding"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserver"
                },
                {
                  "kind": "Content",
                  "text": ">>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 12,
                "endIndex": 13
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "binding",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 11
                  }
                }
              ],
              "name": "getObserverGroup"
            },
            {
              "kind": "Method",
              "canonicalReference": "(getObserverGroupsByOrder:instance,0)",
              "docComment": "/**\n * Get observer groups ordered by the group\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "getObserverGroupsByOrder"
                },
                {
                  "kind": "Content",
                  "text": "(): "
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserverGroup"
                },
                {
                  "kind": "Content",
                  "text": "[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [],
              "name": "getObserverGroupsByOrder"
            },
            {
              "kind": "Method",
              "canonicalReference": "(invokeObserver:instance,0)",
              "docComment": "/**\n * Invoke an observer for the given event\n *\n * @param observer - A life cycle observer\n *\n * @param event - Event name\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "invokeObserver"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "observer"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserver"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "event"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "keyof "
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserver"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 12,
                "endIndex": 14
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "observer",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "event",
                  "parameterTypeTokenRange": {
                    "startIndex": 9,
                    "endIndex": 11
                  }
                }
              ],
              "name": "invokeObserver"
            },
            {
              "kind": "Method",
              "canonicalReference": "(notifyGroups:instance,0)",
              "docComment": "/**\n * Emit events to the observer groups\n *\n * @param events - Event names\n *\n * @param groups - Observer groups\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "notifyGroups"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "events"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "(keyof "
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserver"
                },
                {
                  "kind": "Content",
                  "text": ")[]"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "groups"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserverGroup"
                },
                {
                  "kind": "Content",
                  "text": "[]"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "reverse"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 18,
                "endIndex": 20
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "events",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 8
                  }
                },
                {
                  "parameterName": "groups",
                  "parameterTypeTokenRange": {
                    "startIndex": 11,
                    "endIndex": 13
                  }
                },
                {
                  "parameterName": "reverse",
                  "parameterTypeTokenRange": {
                    "startIndex": 16,
                    "endIndex": 17
                  }
                }
              ],
              "name": "notifyGroups"
            },
            {
              "kind": "Method",
              "canonicalReference": "(notifyObservers:instance,0)",
              "docComment": "/**\n * Notify an observer group of the given event\n *\n * @param group - A group of bindings for life cycle observers\n *\n * @param event - Event name\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "notifyObservers"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "observers"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserver"
                },
                {
                  "kind": "Content",
                  "text": "[]"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "bindings"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Readonly"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Binding"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserver"
                },
                {
                  "kind": "Content",
                  "text": ">>[]"
                },
                {
                  "kind": "Content",
                  "text": ", "
                },
                {
                  "kind": "Reference",
                  "text": "event"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "keyof "
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserver"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 22,
                "endIndex": 24
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "observers",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "bindings",
                  "parameterTypeTokenRange": {
                    "startIndex": 10,
                    "endIndex": 16
                  }
                },
                {
                  "parameterName": "event",
                  "parameterTypeTokenRange": {
                    "startIndex": 19,
                    "endIndex": 21
                  }
                }
              ],
              "name": "notifyObservers"
            },
            {
              "kind": "Property",
              "canonicalReference": "(observersView:instance)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected readonly "
                },
                {
                  "kind": "Reference",
                  "text": "observersView"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "ContextView"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserver"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "observersView",
              "propertyTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 7
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "(options:instance)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected readonly "
                },
                {
                  "kind": "Reference",
                  "text": "options"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserverOptions"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "options",
              "propertyTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "(setOrderedGroups:instance,0)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "setOrderedGroups"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "groups"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string[]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "groups",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "setOrderedGroups"
            },
            {
              "kind": "Method",
              "canonicalReference": "(sortObserverBindingsByGroup:instance,0)",
              "docComment": "/**\n * Sort the life cycle observer bindings so that we can start/stop them in the right order. By default, we can start other observers before servers and stop them in the reverse order\n *\n * @param bindings - Life cycle observer bindings\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected "
                },
                {
                  "kind": "Reference",
                  "text": "sortObserverBindingsByGroup"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "bindings"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Readonly"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Binding"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserver"
                },
                {
                  "kind": "Content",
                  "text": ">>[]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "LifeCycleObserverGroup"
                },
                {
                  "kind": "Content",
                  "text": "[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 12,
                "endIndex": 14
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "bindings",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 11
                  }
                }
              ],
              "name": "sortObserverBindingsByGroup"
            },
            {
              "kind": "Method",
              "canonicalReference": "(start:instance,0)",
              "docComment": "/**\n * Notify all life cycle observers by group of `start`\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "start"
                },
                {
                  "kind": "Content",
                  "text": "(): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [],
              "name": "start"
            },
            {
              "kind": "Method",
              "canonicalReference": "(stop:instance,0)",
              "docComment": "/**\n * Notify all life cycle observers by group of `stop`\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "stop"
                },
                {
                  "kind": "Content",
                  "text": "(): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [],
              "name": "stop"
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 3,
              "endIndex": 5
            }
          ]
        },
        {
          "kind": "Function",
          "canonicalReference": "(mountComponent:0)",
          "docComment": "/**\n * Mount a component to an Application.\n *\n * @param app - Application\n *\n * @param component - Component instance\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function "
            },
            {
              "kind": "Reference",
              "text": "mountComponent"
            },
            {
              "kind": "Content",
              "text": "("
            },
            {
              "kind": "Reference",
              "text": "app"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "Application"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "component"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "Component"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "void"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 11,
            "endIndex": 12
          },
          "releaseTag": "Public",
          "overloadIndex": 0,
          "parameters": [
            {
              "parameterName": "app",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            },
            {
              "parameterName": "component",
              "parameterTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 10
              }
            }
          ],
          "name": "mountComponent"
        },
        {
          "kind": "Interface",
          "canonicalReference": "(ProviderMap:interface)",
          "docComment": "/**\n * A map of provider classes to be bound to a context\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface "
            },
            {
              "kind": "Reference",
              "text": "ProviderMap"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "ProviderMap",
          "members": [
            {
              "kind": "IndexSignature",
              "canonicalReference": "(:index,0)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "["
                },
                {
                  "kind": "Reference",
                  "text": "key"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "]: "
                },
                {
                  "kind": "Reference",
                  "text": "Constructor"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Provider"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "BoundValue"
                },
                {
                  "kind": "Content",
                  "text": ">>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 11
              },
              "releaseTag": "Public",
              "overloadIndex": 0,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ]
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "(Server:interface)",
          "docComment": "/**\n * Defines the requirements to implement a Server for LoopBack applications: start() : Promise<void> stop() : Promise<void> It is recommended that each Server implementation creates its own child Context, which inherits from the parent Application context. This way, any Server-specific bindings will remain local to the Server instance, and will avoid polluting its parent module scope.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface "
            },
            {
              "kind": "Reference",
              "text": "Server"
            },
            {
              "kind": "Content",
              "text": " extends "
            },
            {
              "kind": "Reference",
              "text": "LifeCycleObserver"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "Server",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "listening",
              "docComment": "/**\n * Tells whether the server is listening for connections or not\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "readonly "
                },
                {
                  "kind": "Reference",
                  "text": "listening"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "listening",
              "propertyTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 3,
              "endIndex": 5
            }
          ]
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "ControllerClass",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type "
            },
            {
              "kind": "Reference",
              "text": "ControllerClass"
            },
            {
              "kind": "Content",
              "text": " = "
            },
            {
              "kind": "Reference",
              "text": "Constructor"
            },
            {
              "kind": "Content",
              "text": "<any>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "ControllerClass",
          "typeTokenRange": {
            "startIndex": 3,
            "endIndex": 5
          }
        },
        {
          "kind": "Variable",
          "canonicalReference": "DEFAULT_ORDERED_GROUPS",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Reference",
              "text": "DEFAULT_ORDERED_GROUPS"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Content",
              "text": "string[]"
            }
          ],
          "releaseTag": "Public",
          "name": "DEFAULT_ORDERED_GROUPS",
          "variableTypeTokenRange": {
            "startIndex": 2,
            "endIndex": 3
          }
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "JSONPrimitive",
          "docComment": "/**\n * Type definition for JSON\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type "
            },
            {
              "kind": "Reference",
              "text": "JSONPrimitive"
            },
            {
              "kind": "Content",
              "text": " = "
            },
            {
              "kind": "Content",
              "text": "string | number | boolean | null"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "JSONPrimitive",
          "typeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          }
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "JSONValue",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type "
            },
            {
              "kind": "Reference",
              "text": "JSONValue"
            },
            {
              "kind": "Content",
              "text": " = "
            },
            {
              "kind": "Reference",
              "text": "JSONPrimitive"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "JSONObject"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "JSONArray"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "JSONValue",
          "typeTokenRange": {
            "startIndex": 3,
            "endIndex": 8
          }
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "LifeCycleObserverGroup",
          "docComment": "/**\n * A group of life cycle observers\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type "
            },
            {
              "kind": "Reference",
              "text": "LifeCycleObserverGroup"
            },
            {
              "kind": "Content",
              "text": " = "
            },
            {
              "kind": "Content",
              "text": "{\n    "
            },
            {
              "kind": "Reference",
              "text": "group"
            },
            {
              "kind": "Content",
              "text": ": string;\n    "
            },
            {
              "kind": "Reference",
              "text": "bindings"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "Readonly"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "Binding"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "LifeCycleObserver"
            },
            {
              "kind": "Content",
              "text": ">>[];\n}"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "LifeCycleObserverGroup",
          "typeTokenRange": {
            "startIndex": 3,
            "endIndex": 14
          }
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "LifeCycleObserverOptions",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type "
            },
            {
              "kind": "Reference",
              "text": "LifeCycleObserverOptions"
            },
            {
              "kind": "Content",
              "text": " = "
            },
            {
              "kind": "Content",
              "text": "{\n    "
            },
            {
              "kind": "Reference",
              "text": "orderedGroups"
            },
            {
              "kind": "Content",
              "text": ": string[];\n    "
            },
            {
              "kind": "Reference",
              "text": "parallel"
            },
            {
              "kind": "Content",
              "text": "?: boolean;\n}"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "LifeCycleObserverOptions",
          "typeTokenRange": {
            "startIndex": 3,
            "endIndex": 8
          }
        }
      ]
    }
  ]
}
