{
  "metadata": {
    "toolPackage": "@microsoft/api-extractor",
    "toolVersion": "7.3.8",
    "schemaVersion": 1003,
    "oldestForwardsCompatibleVersion": 1001
  },
  "kind": "Package",
  "canonicalReference": "@loopback/service-proxy!",
  "docComment": "",
  "name": "@loopback/service-proxy",
  "members": [
    {
      "kind": "EntryPoint",
      "canonicalReference": "@loopback/service-proxy!",
      "name": "",
      "members": [
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/service-proxy!ApplicationWithServices:interface",
          "docComment": "/**\n * Interface for an Application mixed in with ServiceMixin\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface "
            },
            {
              "kind": "Reference",
              "text": "ApplicationWithServices"
            },
            {
              "kind": "Content",
              "text": " extends "
            },
            {
              "kind": "Reference",
              "text": "Application"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "ApplicationWithServices",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/service-proxy!ApplicationWithServices#component:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "component"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "component"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Class"
                },
                {
                  "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": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 11,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "component",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 9,
                    "endIndex": 10
                  }
                }
              ],
              "name": "component"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/service-proxy!ApplicationWithServices#mountComponentServices:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "mountComponentServices"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "component"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Class"
                },
                {
                  "kind": "Content",
                  "text": "<{}>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "component",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 6
                  }
                }
              ],
              "name": "mountComponentServices"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/service-proxy!ApplicationWithServices#serviceProvider:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "serviceProvider"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "S"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "provider"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Class"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Provider"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "S"
                },
                {
                  "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": "S"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 17,
                "endIndex": 21
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "provider",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 12
                  }
                },
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 15,
                    "endIndex": 16
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "S",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "serviceProvider"
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 3,
              "endIndex": 5
            }
          ]
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/service-proxy!Class:interface",
          "docComment": "/**\n * Interface for classes with `new` operator.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface "
            },
            {
              "kind": "Reference",
              "text": "Class"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "Class",
          "members": [
            {
              "kind": "ConstructSignature",
              "canonicalReference": "@loopback/service-proxy!Class:new(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "new (..."
                },
                {
                  "kind": "Reference",
                  "text": "args"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "any[]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "args",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ]
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/service-proxy!GenericService:interface",
          "docComment": "/**\n * A generic service interface with any number of methods that return a promise\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface "
            },
            {
              "kind": "Reference",
              "text": "GenericService"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "GenericService",
          "members": [
            {
              "kind": "IndexSignature",
              "canonicalReference": "@loopback/service-proxy!GenericService:index(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "["
                },
                {
                  "kind": "Reference",
                  "text": "methodName"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "]: "
                },
                {
                  "kind": "Content",
                  "text": "(..."
                },
                {
                  "kind": "Reference",
                  "text": "args"
                },
                {
                  "kind": "Content",
                  "text": ": any[]) => "
                },
                {
                  "kind": "Reference",
                  "text": "Promise"
                },
                {
                  "kind": "Content",
                  "text": "<any>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "methodName",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ]
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/service-proxy!getService:function(1)",
          "docComment": "/**\n * Get a service proxy from a LoopBack 3.x data source backed by service-oriented connectors such as `rest`, `soap`, and `grpc`.\n *\n * @param ds - A legacy data source\n *\n * @typeParam T - The generic type of service interface\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function "
            },
            {
              "kind": "Reference",
              "text": "getService"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": " = "
            },
            {
              "kind": "Reference",
              "text": "GenericService"
            },
            {
              "kind": "Content",
              "text": ">("
            },
            {
              "kind": "Reference",
              "text": "ds"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "legacy"
            },
            {
              "kind": "Content",
              "text": "."
            },
            {
              "kind": "Reference",
              "text": "DataSource"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Promise"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 13,
            "endIndex": 17
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "ds",
              "parameterTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 12
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            }
          ],
          "name": "getService"
        },
        {
          "kind": "Namespace",
          "canonicalReference": "@loopback/service-proxy!juggler:namespace",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare namespace "
            },
            {
              "kind": "Reference",
              "text": "juggler"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "juggler",
          "members": []
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/service-proxy!SERVICE_PROXY_KEY:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Reference",
              "text": "SERVICE_PROXY_KEY"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "MetadataAccessor"
            },
            {
              "kind": "Content",
              "text": "<string, "
            },
            {
              "kind": "Reference",
              "text": "ServiceProxyDecorator"
            },
            {
              "kind": "Content",
              "text": ">"
            }
          ],
          "releaseTag": "Public",
          "name": "SERVICE_PROXY_KEY",
          "variableTypeTokenRange": {
            "startIndex": 2,
            "endIndex": 6
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/service-proxy!ServiceMixin:function(1)",
          "docComment": "/**\n * A mixin class for Application that creates a .serviceProvider() function to register a service automatically. Also overrides component function to allow it to register repositories automatically.\n *\n * @example\n * ```ts\n * class MyApplication extends ServiceMixin(Application) {}\n * ```\n *\n * Please note: the members in the mixin function are documented in a dummy class called <a href=\"#ServiceMixinDoc\">ServiceMixinDoc</a>\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function "
            },
            {
              "kind": "Reference",
              "text": "ServiceMixin"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": " extends "
            },
            {
              "kind": "Reference",
              "text": "Class"
            },
            {
              "kind": "Content",
              "text": "<any>"
            },
            {
              "kind": "Content",
              "text": ">("
            },
            {
              "kind": "Reference",
              "text": "superClass"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "{\n    new (..."
            },
            {
              "kind": "Reference",
              "text": "args"
            },
            {
              "kind": "Content",
              "text": ": any[]): {\n        ["
            },
            {
              "kind": "Reference",
              "text": "x"
            },
            {
              "kind": "Content",
              "text": ": string]: any;\n        "
            },
            {
              "kind": "Reference",
              "text": "serviceProvider"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "S"
            },
            {
              "kind": "Content",
              "text": ">("
            },
            {
              "kind": "Reference",
              "text": "provider"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "Class"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "Provider"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "S"
            },
            {
              "kind": "Content",
              "text": ">>, "
            },
            {
              "kind": "Reference",
              "text": "name"
            },
            {
              "kind": "Content",
              "text": "?: string | undefined): "
            },
            {
              "kind": "Reference",
              "text": "Binding"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "S"
            },
            {
              "kind": "Content",
              "text": ">;\n        "
            },
            {
              "kind": "Reference",
              "text": "component"
            },
            {
              "kind": "Content",
              "text": "("
            },
            {
              "kind": "Reference",
              "text": "component"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "Class"
            },
            {
              "kind": "Content",
              "text": "<unknown>, "
            },
            {
              "kind": "Reference",
              "text": "name"
            },
            {
              "kind": "Content",
              "text": "?: string | undefined): void;\n        "
            },
            {
              "kind": "Reference",
              "text": "mountComponentServices"
            },
            {
              "kind": "Content",
              "text": "("
            },
            {
              "kind": "Reference",
              "text": "component"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Reference",
              "text": "Class"
            },
            {
              "kind": "Content",
              "text": "<unknown>): void;\n    };\n} & "
            },
            {
              "kind": "Reference",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 12,
            "endIndex": 50
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "superClass",
              "parameterTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 11
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "ServiceMixin"
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/service-proxy!ServiceMixinDoc:class",
          "docComment": "/**\n * A dummy class created to generate the tsdoc for the members in service mixin. Please don't use it.\n *\n * The members are implemented in function <a href=\"#ServiceMixin\">ServiceMixin</a>\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class "
            },
            {
              "kind": "Reference",
              "text": "ServiceMixinDoc"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "ServiceMixinDoc",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/service-proxy!ServiceMixinDoc:constructor(1)",
              "docComment": "/**\n * Constructs a new instance of the `ServiceMixinDoc` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(..."
                },
                {
                  "kind": "Reference",
                  "text": "args"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "any[]"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "args",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/service-proxy!ServiceMixinDoc#component:member(1)",
              "docComment": "/**\n * Add a component to this application. Also mounts all the components services.\n *\n * @param component - The component to add.\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": "component"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Class"
                },
                {
                  "kind": "Content",
                  "text": "<unknown>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Binding"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "component",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 6
                  }
                }
              ],
              "name": "component"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/service-proxy!ServiceMixinDoc#mountComponentServices:member(1)",
              "docComment": "/**\n * Get an instance of a component and mount all it's services. This function is intended to be used internally by component()\n *\n * @param component - The component to mount services of\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "mountComponentServices"
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "component"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Class"
                },
                {
                  "kind": "Content",
                  "text": "<unknown>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "component",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 6
                  }
                }
              ],
              "name": "mountComponentServices"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/service-proxy!ServiceMixinDoc#serviceProvider:member(1)",
              "docComment": "/**\n * Add a service to this application.\n *\n * @param provider - The service provider to register.\n *\n * @example\n * ```ts\n * export interface GeocoderService {\n *   geocode(address: string): Promise<GeoPoint[]>;\n * }\n *\n * export class GeocoderServiceProvider implements Provider<GeocoderService> {\n *   constructor(\n *     @inject('datasources.geocoder')\n *     protected dataSource: juggler.DataSource = new GeocoderDataSource(),\n *   ) {}\n *\n *   value(): Promise<GeocoderService> {\n *     return getService(this.dataSource);\n *   }\n * }\n *\n * app.serviceProvider(GeocoderServiceProvider);\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "serviceProvider"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "S"
                },
                {
                  "kind": "Content",
                  "text": ">("
                },
                {
                  "kind": "Reference",
                  "text": "provider"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Reference",
                  "text": "Class"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Provider"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "S"
                },
                {
                  "kind": "Content",
                  "text": ">>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Binding"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "S"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 13,
                "endIndex": 17
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "provider",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 12
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "S",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "serviceProvider"
            }
          ],
          "implementsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/service-proxy!serviceProxy:function(1)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function "
            },
            {
              "kind": "Reference",
              "text": "serviceProxy"
            },
            {
              "kind": "Content",
              "text": "("
            },
            {
              "kind": "Reference",
              "text": "dataSource"
            },
            {
              "kind": "Content",
              "text": ": "
            },
            {
              "kind": "Content",
              "text": "string | "
            },
            {
              "kind": "Reference",
              "text": "juggler"
            },
            {
              "kind": "Content",
              "text": "."
            },
            {
              "kind": "Reference",
              "text": "DataSource"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "("
            },
            {
              "kind": "Reference",
              "text": "target"
            },
            {
              "kind": "Content",
              "text": ": object, "
            },
            {
              "kind": "Reference",
              "text": "key"
            },
            {
              "kind": "Content",
              "text": ": string, "
            },
            {
              "kind": "Reference",
              "text": "parameterIndex"
            },
            {
              "kind": "Content",
              "text": "?: number | undefined) => void"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 10,
            "endIndex": 17
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "dataSource",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 9
              }
            }
          ],
          "name": "serviceProxy"
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/service-proxy!ServiceProxyDecorator:type",
          "docComment": "/**\n * Type definition for decorators returned by `@serviceProxy` decorator factory\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type "
            },
            {
              "kind": "Reference",
              "text": "ServiceProxyDecorator"
            },
            {
              "kind": "Content",
              "text": " = "
            },
            {
              "kind": "Reference",
              "text": "PropertyDecorator"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "ParameterDecorator"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "ServiceProxyDecorator",
          "typeTokenRange": {
            "startIndex": 3,
            "endIndex": 6
          }
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/service-proxy!ServiceProxyMetadata:class",
          "docComment": "/**\n * Metadata for a service proxy\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class "
            },
            {
              "kind": "Reference",
              "text": "ServiceProxyMetadata"
            },
            {
              "kind": "Content",
              "text": " implements "
            },
            {
              "kind": "Reference",
              "text": "InjectionMetadata"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "ServiceProxyMetadata",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/service-proxy!ServiceProxyMetadata:constructor(1)",
              "docComment": "/**\n * Constructs a new instance of the `ServiceProxyMetadata` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor("
                },
                {
                  "kind": "Reference",
                  "text": "dataSource"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string | "
                },
                {
                  "kind": "Reference",
                  "text": "juggler"
                },
                {
                  "kind": "Content",
                  "text": "."
                },
                {
                  "kind": "Reference",
                  "text": "DataSource"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "dataSource",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 7
                  }
                }
              ]
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/service-proxy!ServiceProxyMetadata#dataSource:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "dataSource"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Reference",
                  "text": "juggler"
                },
                {
                  "kind": "Content",
                  "text": "."
                },
                {
                  "kind": "Reference",
                  "text": "DataSource"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "dataSource",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 5
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/service-proxy!ServiceProxyMetadata#dataSourceName:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "dataSourceName"
                },
                {
                  "kind": "Content",
                  "text": "?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "dataSourceName",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/service-proxy!ServiceProxyMetadata#decorator:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Reference",
                  "text": "decorator"
                },
                {
                  "kind": "Content",
                  "text": ": "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "decorator",
              "propertyTypeTokenRange": {
                "startIndex": 2,
                "endIndex": 3
              },
              "isStatic": false
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 3,
              "endIndex": 5
            }
          ]
        }
      ]
    }
  ]
}
