{
  "metadata": {
    "toolPackage": "@microsoft/api-extractor",
    "toolVersion": "7.6.2",
    "schemaVersion": 1003,
    "oldestForwardsCompatibleVersion": 1001
  },
  "kind": "Package",
  "canonicalReference": "@loopback/testlab!",
  "docComment": "",
  "name": "@loopback/testlab",
  "members": [
    {
      "kind": "EntryPoint",
      "canonicalReference": "@loopback/testlab!",
      "name": "",
      "members": [
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/testlab!Client:type",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type Client = "
            },
            {
              "kind": "Reference",
              "text": "supertest.SuperTest",
              "canonicalReference": "@types/supertest!~supertest.SuperTest:interface"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "supertest.Test",
              "canonicalReference": "@types/supertest!~supertest.Test:interface"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "Client",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 5
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!createClientForHandler:function(1)",
          "docComment": "/**\n * Create a SuperTest client connected to an HTTP server listening on an ephemeral port and calling `handler` to handle incoming requests.\n *\n * @param  - handler\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function createClientForHandler(handler: "
            },
            {
              "kind": "Content",
              "text": "(req: "
            },
            {
              "kind": "Reference",
              "text": "http.IncomingMessage",
              "canonicalReference": "!\"\\\"http\\\"\".IncomingMessage:class"
            },
            {
              "kind": "Content",
              "text": ", res: "
            },
            {
              "kind": "Reference",
              "text": "http.ServerResponse",
              "canonicalReference": "!\"\\\"http\\\"\".ServerResponse:class"
            },
            {
              "kind": "Content",
              "text": ") => void"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Client",
              "canonicalReference": "@loopback/testlab!Client:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 7,
            "endIndex": 8
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "handler",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 6
              }
            }
          ],
          "name": "createClientForHandler"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!createRestAppClient:function(1)",
          "docComment": "/**\n * Create a SuperTest client for a running RestApplication instance. It is the responsibility of the caller to ensure that the app is running and to stop the application after all tests are done.\n *\n * @param app - A running (listening) instance of a RestApplication.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function createRestAppClient(app: "
            },
            {
              "kind": "Reference",
              "text": "RestApplicationLike",
              "canonicalReference": "@loopback/testlab!RestApplicationLike:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "supertest.SuperTest",
              "canonicalReference": "@types/supertest!~supertest.SuperTest:interface"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "supertest.Test",
              "canonicalReference": "@types/supertest!~supertest.Test:interface"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 7
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "app",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "createRestAppClient"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!createStubInstance:function(1)",
          "docComment": "/**\n * Creates a new object with the given functions as the prototype and stubs all implemented functions.\n *\n * Note: The given constructor function is not invoked. See also the stub API.\n *\n * This is a helper method replacing `sinon.createStubInstance` and working around the limitations of TypeScript and Sinon, where Sinon is not able to list private/protected members in the type definition of the stub instance and therefore the stub instance cannot be assigned to places expecting TType. See also - https://github.com/Microsoft/TypeScript/issues/13543 - https://github.com/DefinitelyTyped/DefinitelyTyped/issues/14811\n *\n * @param constructor - Object or class to stub.\n *\n * @typeParam TType - Type being stubbed.\n *\n * @returns A stubbed version of the constructor, with an extra property `stubs` providing access to stub API for individual methods.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function createStubInstance<TType>(constructor: "
            },
            {
              "kind": "Reference",
              "text": "sinon.StubbableType",
              "canonicalReference": "@types/sinon!~Sinon.StubbableType:type"
            },
            {
              "kind": "Content",
              "text": "<TType>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "StubbedInstanceWithSinonAccessor",
              "canonicalReference": "@loopback/testlab!StubbedInstanceWithSinonAccessor:type"
            },
            {
              "kind": "Content",
              "text": "<TType>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 4,
            "endIndex": 6
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "constructor",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "TType",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "createStubInstance"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!createUnexpectedHttpErrorLogger:function(1)",
          "docComment": "/**\n * Creates a Logger that logs an Error if the HTTP status code is not expected\n *\n * @param expectedStatusCode - HTTP status code that is expected\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function createUnexpectedHttpErrorLogger(expectedStatusCode?: "
            },
            {
              "kind": "Content",
              "text": "number"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "LogError",
              "canonicalReference": "@loopback/testlab!~LogError:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "expectedStatusCode",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "createUnexpectedHttpErrorLogger"
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/testlab!expect:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "expect: "
            },
            {
              "kind": "Reference",
              "text": "Internal",
              "canonicalReference": "!Internal:interface"
            }
          ],
          "releaseTag": "Public",
          "name": "expect",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/testlab!ExpressContextStub:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface ExpressContextStub extends "
            },
            {
              "kind": "Reference",
              "text": "HandlerContextStub",
              "canonicalReference": "@loopback/testlab!HandlerContextStub:interface"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "ExpressContextStub",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/testlab!ExpressContextStub#app:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "app: "
                },
                {
                  "kind": "Reference",
                  "text": "express.Application",
                  "canonicalReference": "@types/express!~e.Application:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "app",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/testlab!ExpressContextStub#request:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "request: "
                },
                {
                  "kind": "Reference",
                  "text": "express.Request",
                  "canonicalReference": "@types/express!~e.Request:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "request",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/testlab!ExpressContextStub#response:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "response: "
                },
                {
                  "kind": "Reference",
                  "text": "express.Response",
                  "canonicalReference": "@types/express!~e.Response:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "response",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/testlab!ExpressContextStub#result:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "result: "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ObservedResponse",
                  "canonicalReference": "@loopback/testlab!ObservedResponse:type"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "result",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 5
              }
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 3
            }
          ]
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!givenHttpServerConfig:function(1)",
          "docComment": "/**\n * Create an HTTP-server configuration that works well in test environments. - Ask the operating system to assign a free (ephemeral) port. - Use IPv4 localhost `127.0.0.1` to avoid known IPv6 issues in Docker-based environments like Travis-CI. - Provide default TLS key & cert when `protocol` is set to `https`.\n *\n * @param customConfig - Additional configuration options to apply.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function givenHttpServerConfig<T extends "
            },
            {
              "kind": "Reference",
              "text": "HttpOptions",
              "canonicalReference": "@loopback/testlab!HttpOptions:interface"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "HttpsOptions",
              "canonicalReference": "@loopback/testlab!HttpsOptions:interface"
            },
            {
              "kind": "Content",
              "text": ">(customConfig?: "
            },
            {
              "kind": "Content",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "HostPort",
              "canonicalReference": "@loopback/testlab!HostPort:type"
            },
            {
              "kind": "Content",
              "text": " & T"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 7,
            "endIndex": 9
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "customConfig",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 4
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "givenHttpServerConfig"
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/testlab!HandlerContextStub:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface HandlerContextStub "
            }
          ],
          "releaseTag": "Public",
          "name": "HandlerContextStub",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/testlab!HandlerContextStub#request:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "request: "
                },
                {
                  "kind": "Reference",
                  "text": "IncomingMessage",
                  "canonicalReference": "!\"\\\"http\\\"\".IncomingMessage:class"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "request",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/testlab!HandlerContextStub#response:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "response: "
                },
                {
                  "kind": "Reference",
                  "text": "ServerResponse",
                  "canonicalReference": "!\"\\\"http\\\"\".ServerResponse:class"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "response",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/testlab!HandlerContextStub#result:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "result: "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ObservedResponse",
                  "canonicalReference": "@loopback/testlab!ObservedResponse:type"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "result",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 5
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/testlab!HostPort:type",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type HostPort = "
            },
            {
              "kind": "Content",
              "text": "{\n    host: string;\n    port: number;\n}"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "HostPort",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!httpGetAsync:function(1)",
          "docComment": "/**\n * Async wrapper for making HTTP GET requests\n *\n * @param  - urlString\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function httpGetAsync(urlString: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Promise",
              "canonicalReference": "!Promise:interface"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "IncomingMessage",
              "canonicalReference": "!\"\\\"http\\\"\".IncomingMessage:class"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 7
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "urlString",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "httpGetAsync"
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/testlab!HttpOptions:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface HttpOptions extends "
            },
            {
              "kind": "Reference",
              "text": "ListenOptions",
              "canonicalReference": "!\"\\\"net\\\"\".ListenOptions:interface"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "HttpOptions",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/testlab!HttpOptions#protocol:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protocol?: "
                },
                {
                  "kind": "Content",
                  "text": "'http'"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "protocol",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 3
            }
          ]
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!httpsGetAsync:function(1)",
          "docComment": "/**\n * Async wrapper for making HTTPS GET requests\n *\n * @param  - urlString\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function httpsGetAsync(urlString: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Promise",
              "canonicalReference": "!Promise:interface"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "IncomingMessage",
              "canonicalReference": "!\"\\\"http\\\"\".IncomingMessage:class"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 7
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "urlString",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "httpsGetAsync"
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/testlab!HttpsOptions:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface HttpsOptions extends "
            },
            {
              "kind": "Reference",
              "text": "ListenOptions",
              "canonicalReference": "!\"\\\"net\\\"\".ListenOptions:interface"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "HttpsServerOptions",
              "canonicalReference": "!\"\\\"https\\\"\".ServerOptions:type"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "HttpsOptions",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/testlab!HttpsOptions#protocol:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protocol: "
                },
                {
                  "kind": "Content",
                  "text": "'https'"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "protocol",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 2
            },
            {
              "startIndex": 3,
              "endIndex": 5
            }
          ]
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/testlab!inject:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "inject: "
            },
            {
              "kind": "Content",
              "text": "(dispatchFunc: "
            },
            {
              "kind": "Reference",
              "text": "ShotListener",
              "canonicalReference": "@types/shot!Listener:type"
            },
            {
              "kind": "Content",
              "text": ", options: "
            },
            {
              "kind": "Reference",
              "text": "ShotRequestOptions",
              "canonicalReference": "@types/shot!RequestOptions:interface"
            },
            {
              "kind": "Content",
              "text": ") => "
            },
            {
              "kind": "Reference",
              "text": "Promise",
              "canonicalReference": "!Promise:interface"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "ResponseObject",
              "canonicalReference": "@types/shot!ResponseObject:interface"
            },
            {
              "kind": "Content",
              "text": ">"
            }
          ],
          "releaseTag": "Public",
          "name": "inject",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 10
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!itSkippedOnTravis:function(1)",
          "docComment": "/**\n * Helper function for skipping tests on Travis env - legacy variant supporting `it` only.\n *\n * @deprecated\n *\n * Use `skipOnTravis(it, name, fn)` instead.\n *\n * @param expectation - The test name (the first argument of `it` function).\n *\n * @param callback - The test function (the second argument of `it` function).\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function itSkippedOnTravis(expectation: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ", callback?: "
            },
            {
              "kind": "Reference",
              "text": "TestFn",
              "canonicalReference": "@loopback/testlab!TestFn:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "void"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 6
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "expectation",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "callback",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "itSkippedOnTravis"
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/testlab!ObservedResponse:type",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type ObservedResponse = "
            },
            {
              "kind": "Reference",
              "text": "ResponseObject",
              "canonicalReference": "@types/shot!ResponseObject:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "ObservedResponse",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/testlab!RestApplicationLike:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface RestApplicationLike "
            }
          ],
          "releaseTag": "Public",
          "name": "RestApplicationLike",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/testlab!RestApplicationLike#restServer:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "restServer: "
                },
                {
                  "kind": "Reference",
                  "text": "RestServerLike",
                  "canonicalReference": "@loopback/testlab!RestServerLike:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "restServer",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/testlab!RestServerLike:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface RestServerLike "
            }
          ],
          "releaseTag": "Public",
          "name": "RestServerLike",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/testlab!RestServerLike#rootUrl:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "rootUrl?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "rootUrl",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/testlab!RestServerLike#url:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "url?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "url",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/testlab!ShotCallback:type",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type ShotCallback = "
            },
            {
              "kind": "Content",
              "text": "(response: "
            },
            {
              "kind": "Reference",
              "text": "ResponseObject",
              "canonicalReference": "@types/shot!ResponseObject:interface"
            },
            {
              "kind": "Content",
              "text": ") => void"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "ShotCallback",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 4
          }
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/testlab!ShotResponseCtor:type",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type ShotResponseCtor = "
            },
            {
              "kind": "Content",
              "text": "new (request: "
            },
            {
              "kind": "Reference",
              "text": "IncomingMessage",
              "canonicalReference": "!\"\\\"http\\\"\".IncomingMessage:class"
            },
            {
              "kind": "Content",
              "text": ", onEnd: "
            },
            {
              "kind": "Reference",
              "text": "ShotCallback",
              "canonicalReference": "@loopback/testlab!ShotCallback:type"
            },
            {
              "kind": "Content",
              "text": ") => "
            },
            {
              "kind": "Reference",
              "text": "ServerResponse",
              "canonicalReference": "!\"\\\"http\\\"\".ServerResponse:class"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "ShotResponseCtor",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 7
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!skipIf:function(1)",
          "docComment": "/**\n * Helper function for skipping tests when a certain condition is met.\n *\n * @param skip - Should the test case/suite be skipped?\n *\n * @param verb - The function to invoke to define the test case or the test suite, e.g. `it` or `describe`.\n *\n * @param name - The test name (the first argument of `verb` function).\n *\n * @param args - Additional arguments (framework specific), typically a function implementing the test.\n *\n * @example\n * ```ts\n * skipIf(\n *   !features.freeFormProperties,\n *   describe,\n *  'free-form properties (strict: false)',\n *   () => {\n *     // the tests\n *   }\n * );\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function skipIf<ARGS extends "
            },
            {
              "kind": "Content",
              "text": "unknown[]"
            },
            {
              "kind": "Content",
              "text": ", RETVAL>(skip: "
            },
            {
              "kind": "Content",
              "text": "boolean"
            },
            {
              "kind": "Content",
              "text": ", verb: "
            },
            {
              "kind": "Reference",
              "text": "TestDefinition",
              "canonicalReference": "@loopback/testlab!TestDefinition:type"
            },
            {
              "kind": "Content",
              "text": "<ARGS, RETVAL> & {\n    skip: "
            },
            {
              "kind": "Reference",
              "text": "TestDefinition",
              "canonicalReference": "@loopback/testlab!TestDefinition:type"
            },
            {
              "kind": "Content",
              "text": "<ARGS, RETVAL>;\n}"
            },
            {
              "kind": "Content",
              "text": ", name: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ", ...args: "
            },
            {
              "kind": "Content",
              "text": "ARGS"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "RETVAL"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 14,
            "endIndex": 15
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "skip",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            },
            {
              "parameterName": "verb",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 9
              }
            },
            {
              "parameterName": "name",
              "parameterTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 11
              }
            },
            {
              "parameterName": "args",
              "parameterTypeTokenRange": {
                "startIndex": 12,
                "endIndex": 13
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "ARGS",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "RETVAL",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "skipIf"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!skipOnTravis:function(1)",
          "docComment": "/**\n * Helper function for skipping tests on Travis CI.\n *\n * @param verb - The function to invoke to define the test case or the test suite, e.g. `it` or `describe`.\n *\n * @param name - The test name (the first argument of `verb` function).\n *\n * @param args - Additional arguments (framework specific), typically a function implementing the test.\n *\n * @example\n * ```ts\n * skipOnTravis(it, 'does something when some condition', async () => {\n *   // the test\n * });\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function skipOnTravis<ARGS extends "
            },
            {
              "kind": "Content",
              "text": "unknown[]"
            },
            {
              "kind": "Content",
              "text": ", RETVAL>(verb: "
            },
            {
              "kind": "Reference",
              "text": "TestDefinition",
              "canonicalReference": "@loopback/testlab!TestDefinition:type"
            },
            {
              "kind": "Content",
              "text": "<ARGS, RETVAL> & {\n    skip: "
            },
            {
              "kind": "Reference",
              "text": "TestDefinition",
              "canonicalReference": "@loopback/testlab!TestDefinition:type"
            },
            {
              "kind": "Content",
              "text": "<ARGS, RETVAL>;\n}"
            },
            {
              "kind": "Content",
              "text": ", name: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ", ...args: "
            },
            {
              "kind": "Content",
              "text": "ARGS"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "RETVAL"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 12,
            "endIndex": 13
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "verb",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 7
              }
            },
            {
              "parameterName": "name",
              "parameterTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 9
              }
            },
            {
              "parameterName": "args",
              "parameterTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 11
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "ARGS",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "RETVAL",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "skipOnTravis"
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/testlab!StubbedInstanceWithSinonAccessor:type",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type StubbedInstanceWithSinonAccessor<T> = "
            },
            {
              "kind": "Content",
              "text": "T & {\n    stubs: "
            },
            {
              "kind": "Reference",
              "text": "sinon.SinonStubbedInstance",
              "canonicalReference": "@types/sinon!~Sinon.SinonStubbedInstance:type"
            },
            {
              "kind": "Content",
              "text": "<T>;\n}"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "StubbedInstanceWithSinonAccessor",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 4
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!stubExpressContext:function(1)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function stubExpressContext(requestOptions?: "
            },
            {
              "kind": "Reference",
              "text": "ShotRequestOptions",
              "canonicalReference": "@types/shot!RequestOptions:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "ExpressContextStub",
              "canonicalReference": "@loopback/testlab!ExpressContextStub:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "requestOptions",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "stubExpressContext"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!stubHandlerContext:function(1)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function stubHandlerContext(requestOptions?: "
            },
            {
              "kind": "Reference",
              "text": "ShotRequestOptions",
              "canonicalReference": "@types/shot!RequestOptions:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "HandlerContextStub",
              "canonicalReference": "@loopback/testlab!HandlerContextStub:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "requestOptions",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "stubHandlerContext"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!stubServerRequest:function(1)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function stubServerRequest(options: "
            },
            {
              "kind": "Reference",
              "text": "ShotRequestOptions",
              "canonicalReference": "@types/shot!RequestOptions:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "IncomingMessage",
              "canonicalReference": "!\"\\\"http\\\"\".IncomingMessage:class"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "options",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "stubServerRequest"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!stubServerResponse:function(1)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function stubServerResponse(request: "
            },
            {
              "kind": "Reference",
              "text": "IncomingMessage",
              "canonicalReference": "!\"\\\"http\\\"\".IncomingMessage:class"
            },
            {
              "kind": "Content",
              "text": ", onEnd: "
            },
            {
              "kind": "Reference",
              "text": "ShotCallback",
              "canonicalReference": "@loopback/testlab!ShotCallback:type"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "ServerResponse",
              "canonicalReference": "!\"\\\"http\\\"\".ServerResponse:class"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 6
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "request",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "onEnd",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "stubServerResponse"
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/testlab!TestContext:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface TestContext "
            }
          ],
          "releaseTag": "Public",
          "name": "TestContext",
          "members": [
            {
              "kind": "IndexSignature",
              "canonicalReference": "@loopback/testlab!TestContext:index(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "[index: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "]: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "index",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ]
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/testlab!TestContext#retries:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "retries(n: "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "n",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "retries"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/testlab!TestContext#skip:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "skip(): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "skip"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/testlab!TestContext#slow:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "slow(ms: "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "ms",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "slow"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/testlab!TestContext#timeout:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "timeout(ms: "
                },
                {
                  "kind": "Content",
                  "text": "number | string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "ms",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "timeout"
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/testlab!TestDefinition:type",
          "docComment": "/**\n * A function defining a new test case or a test suite, e.g. `it` or `describe`.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type TestDefinition<ARGS extends "
            },
            {
              "kind": "Content",
              "text": "unknown[]"
            },
            {
              "kind": "Content",
              "text": ", RETVAL> = "
            },
            {
              "kind": "Content",
              "text": "(name: string, ...args: ARGS) => RETVAL"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "TestDefinition",
          "typeParameters": [
            {
              "typeParameterName": "ARGS",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "RETVAL",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/testlab!TestFn:interface",
          "docComment": "/**\n * * LEGACY API FOR BACKWARDS COMPATIBILITY **\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface TestFn "
            }
          ],
          "releaseTag": "Public",
          "name": "TestFn",
          "members": [
            {
              "kind": "CallSignature",
              "canonicalReference": "@loopback/testlab!TestFn:call(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "(this: "
                },
                {
                  "kind": "Reference",
                  "text": "TestContext",
                  "canonicalReference": "@loopback/testlab!TestContext:interface"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "PromiseLike",
                  "canonicalReference": "!PromiseLike:interface"
                },
                {
                  "kind": "Content",
                  "text": "<unknown>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "this",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ]
            },
            {
              "kind": "CallSignature",
              "canonicalReference": "@loopback/testlab!TestFn:call(2)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "(this: "
                },
                {
                  "kind": "Reference",
                  "text": "TestContext",
                  "canonicalReference": "@loopback/testlab!TestContext:interface"
                },
                {
                  "kind": "Content",
                  "text": ", done: "
                },
                {
                  "kind": "Reference",
                  "text": "Function",
                  "canonicalReference": "!Function:interface"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              },
              "releaseTag": "Public",
              "overloadIndex": 2,
              "parameters": [
                {
                  "parameterName": "this",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "done",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ]
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/testlab!TestSandbox:class",
          "docComment": "/**\n * TestSandbox class provides a convenient way to get a reference to a sandbox folder in which you can perform operations for testing purposes.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class TestSandbox "
            }
          ],
          "releaseTag": "Public",
          "name": "TestSandbox",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/testlab!TestSandbox:constructor(1)",
              "docComment": "/**\n * Will create a directory if it doesn't already exist. If it exists, you still get an instance of the TestSandbox.\n *\n * @param path - Path of the TestSandbox. If relative (it will be resolved relative to cwd()).\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(path: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "path",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/testlab!TestSandbox#copyFile:member(1)",
              "docComment": "/**\n * Copies a file from src to the TestSandbox. If copying a `.js` file which has an accompanying `.js.map` file in the src file location, the dest file will have its sourceMappingURL updated to point to the original file as an absolute path so you don't need to copy the map file.\n *\n * @param src - Absolute path of file to be copied to the TestSandbox\n *\n * @param dest - Optional. Destination filename of the copy operation (relative to TestSandbox). Original filename used if not specified.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "copyFile(src: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", dest?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "src",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "dest",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "copyFile"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/testlab!TestSandbox#delete:member(1)",
              "docComment": "/**\n * Deletes the TestSandbox.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "delete(): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "delete"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/testlab!TestSandbox#getPath:member(1)",
              "docComment": "/**\n * Returns the path of the TestSandbox\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "getPath(): "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "getPath"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/testlab!TestSandbox#mkdir:member(1)",
              "docComment": "/**\n * Makes a directory in the TestSandbox\n *\n * @param dir - Name of directory to create (relative to TestSandbox path)\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "mkdir(dir: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "dir",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "mkdir"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/testlab!TestSandbox#reset:member(1)",
              "docComment": "/**\n * Resets the TestSandbox. (Remove all files in it).\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "reset(): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "reset"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/testlab!TestSandbox#writeJsonFile:member(1)",
              "docComment": "/**\n * Creates a new file and writes the given data serialized as JSON.\n *\n * @param dest - Destination filename, optionally including a relative path.\n *\n * @param data - The data to write.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "writeJsonFile(dest: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", data: "
                },
                {
                  "kind": "Content",
                  "text": "unknown"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "dest",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "data",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "writeJsonFile"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/testlab!TestSandbox#writeTextFile:member(1)",
              "docComment": "/**\n * Creates a new file and writes the given data as a UTF-8-encoded text.\n *\n * @param dest - Destination filename, optionally including a relative path.\n *\n * @param data - The text to write.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "writeTextFile(dest: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", data: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "dest",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "data",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "writeTextFile"
            }
          ],
          "implementsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!toJSON:function(1)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function toJSON(value: "
            },
            {
              "kind": "Reference",
              "text": "Date",
              "canonicalReference": "!Date:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "toJSON"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!toJSON:function(10)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function toJSON(value: "
            },
            {
              "kind": "Content",
              "text": "unknown[] | null"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "unknown[] | null"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 10,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "toJSON"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!toJSON:function(11)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function toJSON(value: "
            },
            {
              "kind": "Content",
              "text": "unknown[] | undefined"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "unknown[] | undefined"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 11,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "toJSON"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!toJSON:function(12)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function toJSON(value: "
            },
            {
              "kind": "Content",
              "text": "unknown[] | null | undefined"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "unknown[] | null | undefined"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 12,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "toJSON"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!toJSON:function(13)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function toJSON(value: "
            },
            {
              "kind": "Content",
              "text": "object | null"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "object | null"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 13,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "toJSON"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!toJSON:function(14)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function toJSON(value: "
            },
            {
              "kind": "Content",
              "text": "object | undefined"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "object | undefined"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 14,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "toJSON"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!toJSON:function(15)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function toJSON(value: "
            },
            {
              "kind": "Content",
              "text": "object | null | undefined"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "object | null | undefined"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 15,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "toJSON"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!toJSON:function(2)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function toJSON(value: "
            },
            {
              "kind": "Reference",
              "text": "Function",
              "canonicalReference": "!Function:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "undefined"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 2,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "toJSON"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!toJSON:function(3)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function toJSON(value: "
            },
            {
              "kind": "Content",
              "text": "unknown[]"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "unknown[]"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 3,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "toJSON"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!toJSON:function(4)",
          "docComment": "/**\n * JSON encoding does not preserve properties that are undefined As a result, deepEqual checks fail because the expected model value contains these undefined property values, while the actual result returned by REST API does not. Use this function to convert a model instance into a data object as returned by REST API\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function toJSON(value: "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 4,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "toJSON"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!toJSON:function(5)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function toJSON(value: "
            },
            {
              "kind": "Content",
              "text": "undefined"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "undefined"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 5,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "toJSON"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!toJSON:function(6)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function toJSON(value: "
            },
            {
              "kind": "Content",
              "text": "null"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "null"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 6,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "toJSON"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!toJSON:function(7)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function toJSON(value: "
            },
            {
              "kind": "Content",
              "text": "number"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "number"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 7,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "toJSON"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!toJSON:function(8)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function toJSON(value: "
            },
            {
              "kind": "Content",
              "text": "boolean"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "boolean"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 8,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "toJSON"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!toJSON:function(9)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function toJSON(value: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 9,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "toJSON"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/testlab!validateApiSpec:function(1)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function validateApiSpec(spec: "
            },
            {
              "kind": "Content",
              "text": "any"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Promise",
              "canonicalReference": "!Promise:interface"
            },
            {
              "kind": "Content",
              "text": "<void>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 5
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "spec",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "validateApiSpec"
        }
      ]
    }
  ]
}
