{
  "schemaVersion": "2.0",
  "id": 11975,
  "name": "@probitas-test/probitas",
  "variant": "project",
  "kind": 1,
  "flags": {},
  "comment": {
    "summary": [
      {
        "kind": "text",
        "text": "Probitas - Scenario-based testing and workflow execution framework.\n\nThis is the main entry point for the Probitas framework. It provides a fluent API\nfor building and executing scenario-based tests with support for:\n\n- **Sequential steps**: Define test steps that execute in order with type-safe context passing\n- **Skip conditions**: Conditionally skip steps or entire scenarios\n- **Rich assertions**: Built-in expect utilities for comprehensive assertions\n- **External clients**: Pre-configured clients for HTTP, databases, message queues, and more\n- **Test utilities**: Faker for test data, time mocking, and function spies\n\n## Links\n\n- [GitHub Repository](https://github.com/probitas-test/probitas)\n- [Documentation](https://probitas-test.github.io/)\n\n## Installation\n\nScenarios run on the "
      },
      {
        "kind": "code",
        "text": "`probitas`"
      },
      {
        "kind": "text",
        "text": " CLI, a single binary (see the\ndocumentation). Install this package for editor support and type checking:\n\n"
      },
      {
        "kind": "code",
        "text": "```bash\nnpm install --save-dev @probitas-test/probitas\n```"
      },
      {
        "kind": "text",
        "text": "\n\n## Related Packages\n\n| Package | Description |\n|---------|-------------|\n| [@probitas-test/builder](https://www.npmjs.com/package/@probitas-test/builder) | Fluent API for building scenario definitions |\n| [@probitas-test/runner](https://www.npmjs.com/package/@probitas-test/runner) | Test execution engine with retry and concurrency |\n| [@probitas-test/core](https://www.npmjs.com/package/@probitas-test/core) | Core type definitions and utilities |\n| [@probitas-test/discover](https://www.npmjs.com/package/@probitas-test/discover) | Scenario file discovery |\n\n## Core Exports\n\n- "
      },
      {
        "kind": "inline-tag",
        "tag": "@linkcode",
        "text": "scenario",
        "target": 12404
      },
      {
        "kind": "text",
        "text": " - Factory function to create scenario builders\n- "
      },
      {
        "kind": "inline-tag",
        "tag": "@linkcode",
        "text": "Skip",
        "target": 12408
      },
      {
        "kind": "text",
        "text": " - Utility to skip steps or scenarios conditionally\n- "
      },
      {
        "kind": "inline-tag",
        "tag": "@linkcode",
        "text": "StepContext",
        "target": 12413
      },
      {
        "kind": "text",
        "text": " - Type representing the context passed to each step\n- "
      },
      {
        "kind": "inline-tag",
        "tag": "@linkcode",
        "text": "client",
        "target": 12421
      },
      {
        "kind": "text",
        "text": " - Namespace containing all available client implementations\n- "
      },
      {
        "kind": "inline-tag",
        "tag": "@linkcode",
        "text": "expect",
        "target": 12422
      },
      {
        "kind": "text",
        "text": " - Assertion utilities (from "
      },
      {
        "kind": "code",
        "text": "`@std/expect`"
      },
      {
        "kind": "text",
        "text": ")\n\n## Re-exported Utilities\n\nFor convenience, this module also re-exports commonly used testing utilities:\n\n- "
      },
      {
        "kind": "code",
        "text": "`faker`"
      },
      {
        "kind": "text",
        "text": " - Fake data generation from "
      },
      {
        "kind": "code",
        "text": "`@faker-js/faker`"
      },
      {
        "kind": "text",
        "text": "\n- "
      },
      {
        "kind": "code",
        "text": "`FakeTime`"
      },
      {
        "kind": "text",
        "text": " - Time mocking utilities from "
      },
      {
        "kind": "code",
        "text": "`@std/testing/time`"
      },
      {
        "kind": "text",
        "text": "\n- "
      },
      {
        "kind": "code",
        "text": "`spy`"
      },
      {
        "kind": "text",
        "text": ", "
      },
      {
        "kind": "code",
        "text": "`stub`"
      },
      {
        "kind": "text",
        "text": ", "
      },
      {
        "kind": "code",
        "text": "`assertSpyCalls`"
      },
      {
        "kind": "text",
        "text": " - Mock utilities from "
      },
      {
        "kind": "code",
        "text": "`@std/testing/mock`"
      },
      {
        "kind": "text",
        "text": "\n- "
      },
      {
        "kind": "code",
        "text": "`tryOr`"
      },
      {
        "kind": "text",
        "text": ", "
      },
      {
        "kind": "code",
        "text": "`raise`"
      },
      {
        "kind": "text",
        "text": " - Error handling utilities from "
      },
      {
        "kind": "code",
        "text": "`@core/errorutil`"
      },
      {
        "kind": "text",
        "text": "\n- "
      },
      {
        "kind": "code",
        "text": "`outdent`"
      },
      {
        "kind": "text",
        "text": " - Template literal tag for removing indentation"
      }
    ],
    "blockTags": [
      {
        "tag": "@example",
        "name": "Basic scenario with steps",
        "content": [
          {
            "kind": "code",
            "text": "```ts\nimport { client, expect, scenario } from \"@probitas-test/probitas\";\n\nexport default scenario(\"User API Test\")\n  .resource(\"http\", () =>\n    client.http.createHttpClient({ url: \"https://api.example.com\" }))\n  .step(\"Create user\", async (ctx) => {\n    const response = await ctx.resources.http.post(\"/users\", {\n      body: { name: \"Alice\" },\n    });\n    expect(response).toBeOk().toHaveStatus(201);\n    return response.json as { id: string };\n  })\n  .step(\"Verify user exists\", async (ctx) => {\n    const { id } = ctx.previous!;\n    const response = await ctx.resources.http.get(`/users/${id}`);\n    expect(response).toBeOk().toHaveJsonProperty(\"name\", \"Alice\");\n  })\n  .build();\n```"
          }
        ]
      },
      {
        "tag": "@example",
        "name": "Using Skip for conditional execution",
        "content": [
          {
            "kind": "code",
            "text": "```ts\nimport { scenario, Skip } from \"@probitas-test/probitas\";\n\n// Mock process.env for this example\nconst getEnv = (key: string): string | undefined =>\n  key === \"FEATURE_FLAG\" ? undefined : \"value\";\n\nexport default scenario(\"Feature test\")\n  .step(\"Check prerequisites\", () => {\n    if (!getEnv(\"FEATURE_FLAG\")) {\n      throw new Skip(\"Feature flag not enabled\");\n    }\n  })\n  .step(\"Test feature\", () => {\n    // This step runs only if the previous step didn't skip\n  })\n  .build();\n```"
          }
        ]
      },
      {
        "tag": "@example",
        "name": "Using HTTP client with resource",
        "content": [
          {
            "kind": "code",
            "text": "```ts\nimport { client, expect, scenario } from \"@probitas-test/probitas\";\n\nexport default scenario(\"API test\")\n  .resource(\"http\", () =>\n    client.http.createHttpClient({ url: \"https://api.example.com\" }))\n  .step(\"Fetch users\", async (ctx) => {\n    const response = await ctx.resources.http.get(\"/users\");\n    expect(response).toBeOk().toHaveStatus(200);\n    return { users: response.json as { id: string; name: string }[] };\n  })\n  .build();\n```"
          }
        ]
      }
    ]
  },
  "children": [
    {
      "id": 11983,
      "name": "FakeTime",
      "variant": "declaration",
      "kind": 128,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "Overrides the real Date object and timer functions with fake ones that can be\ncontrolled through the fake time instance.\n\nNote: there is no setter for the "
          },
          {
            "kind": "code",
            "text": "`start`"
          },
          {
            "kind": "text",
            "text": " property, as it cannot be changed\nafter initialization."
          }
        ],
        "blockTags": [
          {
            "tag": "@example",
            "name": "Usage",
            "content": [
              {
                "kind": "code",
                "text": "```ts\nimport {\n  assertSpyCalls,\n  spy,\n} from \"@std/testing/mock\";\nimport { FakeTime } from \"@std/testing/time\";\n\nfunction secondInterval(cb: () => void) {\n  return setInterval(cb, 1000);\n}\n\nDeno.test(\"secondInterval calls callback every second and stops after being cleared\", () => {\n  using time = new FakeTime();\n\n  const cb = spy();\n  const intervalId = secondInterval(cb);\n  assertSpyCalls(cb, 0);\n  time.tick(500);\n  assertSpyCalls(cb, 0);\n  time.tick(500);\n  assertSpyCalls(cb, 1);\n  time.tick(3500);\n  assertSpyCalls(cb, 4);\n\n  clearInterval(intervalId);\n  time.tick(1000);\n  assertSpyCalls(cb, 4);\n});\n```"
              }
            ]
          }
        ]
      },
      "children": [
        {
          "id": 11994,
          "name": "constructor",
          "variant": "declaration",
          "kind": 512,
          "flags": {},
          "signatures": [
            {
              "id": 11995,
              "name": "FakeTime",
              "variant": "signature",
              "kind": 16384,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Construct a FakeTime object. This overrides the real Date object and timer functions with fake ones that can be\ncontrolled through the fake time instance."
                  }
                ],
                "blockTags": [
                  {
                    "tag": "@throws",
                    "content": [
                      {
                        "kind": "text",
                        "text": "If time is already faked"
                      }
                    ]
                  },
                  {
                    "tag": "@throws",
                    "content": [
                      {
                        "kind": "text",
                        "text": "If the start is invalid"
                      }
                    ]
                  }
                ]
              },
              "parameters": [
                {
                  "id": 11996,
                  "name": "start",
                  "variant": "param",
                  "kind": 32768,
                  "flags": {
                    "isOptional": true
                  },
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "The time to simulate. The default is the current time."
                      }
                    ]
                  },
                  "type": {
                    "type": "union",
                    "types": [
                      {
                        "type": "intrinsic",
                        "name": "string"
                      },
                      {
                        "type": "intrinsic",
                        "name": "number"
                      },
                      {
                        "type": "reference",
                        "target": {
                          "packageName": "typescript",
                          "packagePath": "lib/lib.es5.d.ts",
                          "qualifiedName": "Date"
                        },
                        "name": "Date",
                        "package": "typescript"
                      },
                      {
                        "type": "literal",
                        "value": null
                      }
                    ]
                  }
                },
                {
                  "id": 11997,
                  "name": "options",
                  "variant": "param",
                  "kind": 32768,
                  "flags": {
                    "isOptional": true
                  },
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "The options"
                      }
                    ]
                  },
                  "type": {
                    "type": "reference",
                    "target": 11980,
                    "name": "FakeTimeOptions",
                    "package": "@probitas-test/probitas"
                  }
                }
              ],
              "type": {
                "type": "reference",
                "target": 11983,
                "name": "FakeTime",
                "package": "@probitas-test/probitas"
              }
            }
          ]
        },
        {
          "id": 11998,
          "name": "now",
          "variant": "declaration",
          "kind": 262144,
          "flags": {},
          "getSignature": {
            "id": 11999,
            "name": "now",
            "variant": "signature",
            "kind": 524288,
            "flags": {},
            "comment": {
              "summary": [
                {
                  "kind": "text",
                  "text": "The number of milliseconds elapsed since the epoch (January 1, 1970 00:00:00 UTC) for the fake time."
                }
              ],
              "blockTags": [
                {
                  "tag": "@example",
                  "name": "Usage",
                  "content": [
                    {
                      "kind": "code",
                      "text": "```ts\nimport { FakeTime } from \"@std/testing/time\";\nimport { assertEquals } from \"@std/assert\";\n\nconst fakeTime = new FakeTime(15_000);\n\nassertEquals(fakeTime.now, 15_000);\n\nfakeTime.tick(5_000);\n\nassertEquals(fakeTime.now, 20_000);\n```"
                    }
                  ]
                },
                {
                  "tag": "@returns",
                  "content": [
                    {
                      "kind": "text",
                      "text": "The number of milliseconds elapsed since the epoch (January 1, 1970 00:00:00 UTC) for the fake time"
                    }
                  ]
                }
              ]
            },
            "type": {
              "type": "intrinsic",
              "name": "number"
            }
          },
          "setSignature": {
            "id": 12000,
            "name": "now",
            "variant": "signature",
            "kind": 1048576,
            "flags": {},
            "comment": {
              "summary": [
                {
                  "kind": "text",
                  "text": "Set the current time. It will call any functions waiting to be called between the current and new fake time.\nIf the timer callback throws, time will stop advancing forward beyond that timer."
                }
              ],
              "blockTags": [
                {
                  "tag": "@throws",
                  "content": [
                    {
                      "kind": "text",
                      "text": "If the time goes backwards"
                    }
                  ]
                },
                {
                  "tag": "@example",
                  "name": "Usage",
                  "content": [
                    {
                      "kind": "code",
                      "text": "```ts\nimport { FakeTime } from \"@std/testing/time\";\nimport { assertEquals } from \"@std/assert\";\n\nconst fakeTime = new FakeTime(15_000);\n\nassertEquals(fakeTime.now, 15_000);\n\nfakeTime.now = 35_000;\n\nassertEquals(fakeTime.now, 35_000);\n```"
                    }
                  ]
                }
              ]
            },
            "parameters": [
              {
                "id": 12001,
                "name": "value",
                "variant": "param",
                "kind": 32768,
                "flags": {},
                "comment": {
                  "summary": [
                    {
                      "kind": "text",
                      "text": "The current time (in milliseconds)"
                    }
                  ]
                },
                "type": {
                  "type": "intrinsic",
                  "name": "number"
                }
              }
            ],
            "type": {
              "type": "intrinsic",
              "name": "void"
            }
          }
        },
        {
          "id": 12002,
          "name": "start",
          "variant": "declaration",
          "kind": 262144,
          "flags": {},
          "getSignature": {
            "id": 12003,
            "name": "start",
            "variant": "signature",
            "kind": 524288,
            "flags": {},
            "comment": {
              "summary": [
                {
                  "kind": "text",
                  "text": "The initial number of milliseconds elapsed since the epoch (January 1, 1970 00:00:00 UTC) for the fake time."
                }
              ],
              "blockTags": [
                {
                  "tag": "@example",
                  "name": "Usage",
                  "content": [
                    {
                      "kind": "code",
                      "text": "```ts\nimport { FakeTime } from \"@std/testing/time\";\nimport { assertEquals } from \"@std/assert\";\n\nconst fakeTime = new FakeTime(15_000);\n\nassertEquals(fakeTime.start, 15_000);\n```"
                    }
                  ]
                },
                {
                  "tag": "@returns",
                  "content": [
                    {
                      "kind": "text",
                      "text": "The initial number of milliseconds elapsed since the epoch (January 1, 1970 00:00:00 UTC) for the fake time."
                    }
                  ]
                }
              ]
            },
            "type": {
              "type": "intrinsic",
              "name": "number"
            }
          }
        },
        {
          "id": 12026,
          "name": "[dispose]",
          "variant": "declaration",
          "kind": 2048,
          "flags": {},
          "signatures": [
            {
              "id": 12027,
              "name": "[dispose]",
              "variant": "signature",
              "kind": 4096,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Restores real time."
                  }
                ],
                "blockTags": [
                  {
                    "tag": "@example",
                    "name": "Usage",
                    "content": [
                      {
                        "kind": "code",
                        "text": "```ts\nimport { FakeTime } from \"@std/testing/time\";\nimport { assertEquals, assertNotEquals } from \"@std/assert\";\n\nconst setTimeout = globalThis.setTimeout;\n\n{\n  using fakeTime = new FakeTime();\n\n  assertNotEquals(globalThis.setTimeout, setTimeout);\n\n  // test timer related things.\n\n  // You don't need to call fakeTime.restore() explicitly\n  // as it's implicitly called via the [Symbol.dispose] method\n  // when declared with `using`.\n}\n\nassertEquals(globalThis.setTimeout, setTimeout);\n```"
                      }
                    ]
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "void"
              }
            }
          ]
        },
        {
          "id": 12004,
          "name": "delay",
          "variant": "declaration",
          "kind": 2048,
          "flags": {},
          "signatures": [
            {
              "id": 12005,
              "name": "delay",
              "variant": "signature",
              "kind": 4096,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Resolves after the given number of milliseconds using real time."
                  }
                ],
                "blockTags": [
                  {
                    "tag": "@example",
                    "name": "Usage",
                    "content": [
                      {
                        "kind": "code",
                        "text": "```ts\nimport { FakeTime } from \"@std/testing/time\";\nimport { assertEquals } from \"@std/assert\";\n\nconst fakeTime = new FakeTime(15_000);\n\nawait fakeTime.delay(500); // wait 500 ms in real time.\n\nassertEquals(fakeTime.now, 15_000); // The simulated time doesn't advance.\n```"
                      }
                    ]
                  }
                ]
              },
              "parameters": [
                {
                  "id": 12006,
                  "name": "ms",
                  "variant": "param",
                  "kind": 32768,
                  "flags": {},
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "The milliseconds to delay"
                      }
                    ]
                  },
                  "type": {
                    "type": "intrinsic",
                    "name": "number"
                  }
                },
                {
                  "id": 12007,
                  "name": "options",
                  "variant": "param",
                  "kind": 32768,
                  "flags": {},
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "The options"
                      }
                    ]
                  },
                  "type": {
                    "type": "reference",
                    "target": 12463,
                    "name": "DelayOptions",
                    "package": "@probitas-test/probitas"
                  },
                  "defaultValue": "{}"
                }
              ],
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "typescript",
                  "packagePath": "lib/lib.es5.d.ts",
                  "qualifiedName": "Promise"
                },
                "typeArguments": [
                  {
                    "type": "intrinsic",
                    "name": "void"
                  }
                ],
                "name": "Promise",
                "package": "typescript"
              }
            }
          ]
        },
        {
          "id": 12016,
          "name": "next",
          "variant": "declaration",
          "kind": 2048,
          "flags": {},
          "signatures": [
            {
              "id": 12017,
              "name": "next",
              "variant": "signature",
              "kind": 4096,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Advances time to when the next scheduled timer is due.\nIf there are no pending timers, time will not be changed."
                  }
                ],
                "blockTags": [
                  {
                    "tag": "@example",
                    "name": "Usage",
                    "content": [
                      {
                        "kind": "code",
                        "text": "```ts\nimport { FakeTime } from \"@std/testing/time\";\nimport { assert, assertEquals } from \"@std/assert\";\n\nconst fakeTime = new FakeTime(15_000);\n\nlet called = false;\n\nsetTimeout(() => { called = true }, 5000);\n\nfakeTime.next();\n\nassert(called);\nassertEquals(fakeTime.now, 20_000);\n```"
                      }
                    ]
                  },
                  {
                    "tag": "@returns",
                    "content": [
                      {
                        "kind": "code",
                        "text": "`true`"
                      },
                      {
                        "kind": "text",
                        "text": " when there is a scheduled timer and "
                      },
                      {
                        "kind": "code",
                        "text": "`false`"
                      },
                      {
                        "kind": "text",
                        "text": " when there is not."
                      }
                    ]
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "boolean"
              }
            }
          ]
        },
        {
          "id": 12018,
          "name": "nextAsync",
          "variant": "declaration",
          "kind": 2048,
          "flags": {},
          "signatures": [
            {
              "id": 12019,
              "name": "nextAsync",
              "variant": "signature",
              "kind": 4096,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Runs all pending microtasks then advances time to when the next scheduled timer is due.\nIf there are no pending timers, time will not be changed."
                  }
                ],
                "blockTags": [
                  {
                    "tag": "@example",
                    "name": "Usage",
                    "content": [
                      {
                        "kind": "code",
                        "text": "```ts\nimport { FakeTime } from \"@std/testing/time\";\nimport { assert, assertEquals } from \"@std/assert\";\n\nconst fakeTime = new FakeTime(15_000);\n\nlet called0 = false;\nlet called1 = false;\n\nsetTimeout(() => { called0 = true }, 5000);\nPromise.resolve().then(() => { called1 = true });\n\nawait fakeTime.nextAsync();\n\nassert(called0);\nassert(called1);\nassertEquals(fakeTime.now, 20_000);\n```"
                      }
                    ]
                  },
                  {
                    "tag": "@returns",
                    "content": [
                      {
                        "kind": "code",
                        "text": "`true`"
                      },
                      {
                        "kind": "text",
                        "text": " if the pending timers existed and the time advanced, "
                      },
                      {
                        "kind": "code",
                        "text": "`false`"
                      },
                      {
                        "kind": "text",
                        "text": " if there was no pending timer and the time didn't advance."
                      }
                    ]
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "typescript",
                  "packagePath": "lib/lib.es5.d.ts",
                  "qualifiedName": "Promise"
                },
                "typeArguments": [
                  {
                    "type": "intrinsic",
                    "name": "boolean"
                  }
                ],
                "name": "Promise",
                "package": "typescript"
              }
            }
          ]
        },
        {
          "id": 12024,
          "name": "restore",
          "variant": "declaration",
          "kind": 2048,
          "flags": {},
          "signatures": [
            {
              "id": 12025,
              "name": "restore",
              "variant": "signature",
              "kind": 4096,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Restores time related global functions to their original state."
                  }
                ],
                "blockTags": [
                  {
                    "tag": "@example",
                    "name": "Usage",
                    "content": [
                      {
                        "kind": "code",
                        "text": "```ts\nimport { FakeTime } from \"@std/testing/time\";\nimport { assertEquals, assertNotEquals } from \"@std/assert\";\n\nconst setTimeout = globalThis.setTimeout;\n\nconst fakeTime = new FakeTime(); // global timers are now faked\n\nassertNotEquals(globalThis.setTimeout, setTimeout);\n\nfakeTime.restore(); // timers are restored\n\nassertEquals(globalThis.setTimeout, setTimeout);\n```"
                      }
                    ]
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "void"
              }
            }
          ]
        },
        {
          "id": 12020,
          "name": "runAll",
          "variant": "declaration",
          "kind": 2048,
          "flags": {},
          "signatures": [
            {
              "id": 12021,
              "name": "runAll",
              "variant": "signature",
              "kind": 4096,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Advances time forward to the next due timer until there are no pending timers remaining.\nIf the timers create additional timers, they will be run too. If there is an interval,\ntime will keep advancing forward until the interval is cleared."
                  }
                ],
                "blockTags": [
                  {
                    "tag": "@example",
                    "name": "Usage",
                    "content": [
                      {
                        "kind": "code",
                        "text": "```ts\nimport { FakeTime } from \"@std/testing/time\";\nimport { assertEquals } from \"@std/assert\";\n\nconst fakeTime = new FakeTime(15_000);\n\nlet count = 0;\n\nsetTimeout(() => { count++ }, 5_000);\nsetTimeout(() => { count++ }, 15_000);\nsetTimeout(() => { count++ }, 35_000);\n\nfakeTime.runAll();\n\nassertEquals(count, 3);\nassertEquals(fakeTime.now, 50_000);\n```"
                      }
                    ]
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "void"
              }
            }
          ]
        },
        {
          "id": 12022,
          "name": "runAllAsync",
          "variant": "declaration",
          "kind": 2048,
          "flags": {},
          "signatures": [
            {
              "id": 12023,
              "name": "runAllAsync",
              "variant": "signature",
              "kind": 4096,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Advances time forward to the next due timer until there are no pending timers remaining.\nIf the timers create additional timers, they will be run too. If there is an interval,\ntime will keep advancing forward until the interval is cleared.\nRuns all pending microtasks before each timer."
                  }
                ],
                "blockTags": [
                  {
                    "tag": "@example",
                    "name": "Usage",
                    "content": [
                      {
                        "kind": "code",
                        "text": "```ts\nimport { FakeTime } from \"@std/testing/time\";\nimport { assertEquals } from \"@std/assert\";\n\nconst fakeTime = new FakeTime(15_000);\n\nlet count = 0;\n\nsetTimeout(() => { count++ }, 5_000);\nsetTimeout(() => { count++ }, 15_000);\nsetTimeout(() => { count++ }, 35_000);\nPromise.resolve().then(() => { count++ });\n\nawait fakeTime.runAllAsync();\n\nassertEquals(count, 4);\nassertEquals(fakeTime.now, 50_000);\n```"
                      }
                    ]
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "typescript",
                  "packagePath": "lib/lib.es5.d.ts",
                  "qualifiedName": "Promise"
                },
                "typeArguments": [
                  {
                    "type": "intrinsic",
                    "name": "void"
                  }
                ],
                "name": "Promise",
                "package": "typescript"
              }
            }
          ]
        },
        {
          "id": 12008,
          "name": "runMicrotasks",
          "variant": "declaration",
          "kind": 2048,
          "flags": {},
          "signatures": [
            {
              "id": 12009,
              "name": "runMicrotasks",
              "variant": "signature",
              "kind": 4096,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Runs all pending microtasks."
                  }
                ],
                "blockTags": [
                  {
                    "tag": "@example",
                    "name": "Usage",
                    "content": [
                      {
                        "kind": "code",
                        "text": "```ts\nimport { FakeTime } from \"@std/testing/time\";\nimport { assert } from \"@std/assert\";\n\nconst fakeTime = new FakeTime(15_000);\n\nlet called = false;\n\nPromise.resolve().then(() => { called = true });\n\nawait fakeTime.runMicrotasks();\n\nassert(called);\n```"
                      }
                    ]
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "typescript",
                  "packagePath": "lib/lib.es5.d.ts",
                  "qualifiedName": "Promise"
                },
                "typeArguments": [
                  {
                    "type": "intrinsic",
                    "name": "void"
                  }
                ],
                "name": "Promise",
                "package": "typescript"
              }
            }
          ]
        },
        {
          "id": 12010,
          "name": "tick",
          "variant": "declaration",
          "kind": 2048,
          "flags": {},
          "signatures": [
            {
              "id": 12011,
              "name": "tick",
              "variant": "signature",
              "kind": 4096,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Adds the specified number of milliseconds to the fake time.\nThis will call any functions waiting to be called between the current and new fake time."
                  }
                ],
                "blockTags": [
                  {
                    "tag": "@example",
                    "name": "Usage",
                    "content": [
                      {
                        "kind": "code",
                        "text": "```ts\nimport {\n  assertSpyCalls,\n  spy,\n} from \"@std/testing/mock\";\nimport { FakeTime } from \"@std/testing/time\";\n\nfunction secondInterval(cb: () => void) {\n  return setInterval(cb, 1000);\n}\n\nDeno.test(\"secondInterval calls callback every second and stops after being cleared\", () => {\n  using time = new FakeTime();\n\n  const cb = spy();\n  const intervalId = secondInterval(cb);\n  assertSpyCalls(cb, 0);\n  time.tick(500);\n  assertSpyCalls(cb, 0);\n  time.tick(500);\n  assertSpyCalls(cb, 1);\n  time.tick(3500);\n  assertSpyCalls(cb, 4);\n\n  clearInterval(intervalId);\n  time.tick(1000);\n  assertSpyCalls(cb, 4);\n});\n```"
                      }
                    ]
                  }
                ]
              },
              "parameters": [
                {
                  "id": 12012,
                  "name": "ms",
                  "variant": "param",
                  "kind": 32768,
                  "flags": {},
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "The milliseconds to advance"
                      }
                    ]
                  },
                  "type": {
                    "type": "intrinsic",
                    "name": "number"
                  },
                  "defaultValue": "0"
                }
              ],
              "type": {
                "type": "intrinsic",
                "name": "void"
              }
            }
          ]
        },
        {
          "id": 12013,
          "name": "tickAsync",
          "variant": "declaration",
          "kind": 2048,
          "flags": {},
          "signatures": [
            {
              "id": 12014,
              "name": "tickAsync",
              "variant": "signature",
              "kind": 4096,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Runs all pending microtasks then adds the specified number of milliseconds to the fake time.\nThis will call any functions waiting to be called between the current and new fake time."
                  }
                ],
                "blockTags": [
                  {
                    "tag": "@example",
                    "name": "Usage",
                    "content": [
                      {
                        "kind": "code",
                        "text": "```ts\nimport { FakeTime } from \"@std/testing/time\";\nimport { assert, assertEquals } from \"@std/assert\";\n\nconst fakeTime = new FakeTime(15_000);\n\nlet called = false;\n\nPromise.resolve().then(() => { called = true });\n\nawait fakeTime.tickAsync(5_000);\n\nassert(called);\nassertEquals(fakeTime.now, 20_000);\n```"
                      }
                    ]
                  }
                ]
              },
              "parameters": [
                {
                  "id": 12015,
                  "name": "ms",
                  "variant": "param",
                  "kind": 32768,
                  "flags": {},
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "The milliseconds to advance"
                      }
                    ]
                  },
                  "type": {
                    "type": "intrinsic",
                    "name": "number"
                  },
                  "defaultValue": "0"
                }
              ],
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "typescript",
                  "packagePath": "lib/lib.es5.d.ts",
                  "qualifiedName": "Promise"
                },
                "typeArguments": [
                  {
                    "type": "intrinsic",
                    "name": "void"
                  }
                ],
                "name": "Promise",
                "package": "typescript"
              }
            }
          ]
        },
        {
          "id": 11984,
          "name": "restore",
          "variant": "declaration",
          "kind": 2048,
          "flags": {
            "isStatic": true
          },
          "signatures": [
            {
              "id": 11985,
              "name": "restore",
              "variant": "signature",
              "kind": 4096,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Restores real time."
                  }
                ],
                "blockTags": [
                  {
                    "tag": "@throws",
                    "content": [
                      {
                        "kind": "text",
                        "text": "If time is already restored"
                      }
                    ]
                  },
                  {
                    "tag": "@example",
                    "name": "Usage",
                    "content": [
                      {
                        "kind": "code",
                        "text": "```ts\nimport { FakeTime } from \"@std/testing/time\";\nimport { assertEquals, assertNotEquals } from \"@std/assert\"\n\nconst setTimeout = globalThis.setTimeout;\n\nconst fakeTime = new FakeTime();\n\nassertNotEquals(globalThis.setTimeout, setTimeout);\n\nFakeTime.restore();\n\nassertEquals(globalThis.setTimeout, setTimeout);\n```"
                      }
                    ]
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "void"
              }
            }
          ]
        },
        {
          "id": 11986,
          "name": "restoreFor",
          "variant": "declaration",
          "kind": 2048,
          "flags": {
            "isStatic": true
          },
          "signatures": [
            {
              "id": 11987,
              "name": "restoreFor",
              "variant": "signature",
              "kind": 4096,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Restores real time temporarily until callback returns and resolves."
                  }
                ],
                "blockTags": [
                  {
                    "tag": "@throws",
                    "content": [
                      {
                        "kind": "text",
                        "text": "If time is not faked"
                      }
                    ]
                  },
                  {
                    "tag": "@example",
                    "name": "Usage",
                    "content": [
                      {
                        "kind": "code",
                        "text": "```ts\nimport { FakeTime } from \"@std/testing/time\";\nimport { assertEquals, assertNotEquals } from \"@std/assert\"\n\nconst setTimeout = globalThis.setTimeout;\n\nconst fakeTime = new FakeTime();\n\nassertNotEquals(globalThis.setTimeout, setTimeout);\n\nFakeTime.restoreFor(() => {\n  assertEquals(globalThis.setTimeout, setTimeout);\n});\n```"
                      }
                    ]
                  },
                  {
                    "tag": "@returns",
                    "content": [
                      {
                        "kind": "text",
                        "text": "The returned value from the callback"
                      }
                    ]
                  }
                ]
              },
              "typeParameters": [
                {
                  "id": 11988,
                  "name": "T",
                  "variant": "typeParam",
                  "kind": 131072,
                  "flags": {},
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "The returned value type of the callback"
                      }
                    ]
                  }
                }
              ],
              "parameters": [
                {
                  "id": 11989,
                  "name": "callback",
                  "variant": "param",
                  "kind": 32768,
                  "flags": {},
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "The callback to be called while FakeTime being restored"
                      }
                    ]
                  },
                  "type": {
                    "type": "reflection",
                    "declaration": {
                      "id": 11990,
                      "name": "__type",
                      "variant": "declaration",
                      "kind": 65536,
                      "flags": {},
                      "signatures": [
                        {
                          "id": 11991,
                          "name": "__type",
                          "variant": "signature",
                          "kind": 4096,
                          "flags": {},
                          "parameters": [
                            {
                              "id": 11992,
                              "name": "args",
                              "variant": "param",
                              "kind": 32768,
                              "flags": {
                                "isRest": true
                              },
                              "type": {
                                "type": "array",
                                "elementType": {
                                  "type": "intrinsic",
                                  "name": "any"
                                }
                              }
                            }
                          ],
                          "type": {
                            "type": "union",
                            "types": [
                              {
                                "type": "reference",
                                "target": 11988,
                                "name": "T",
                                "package": "@probitas-test/probitas",
                                "refersToTypeParameter": true
                              },
                              {
                                "type": "reference",
                                "target": {
                                  "packageName": "typescript",
                                  "packagePath": "lib/lib.es5.d.ts",
                                  "qualifiedName": "Promise"
                                },
                                "typeArguments": [
                                  {
                                    "type": "reference",
                                    "target": 11988,
                                    "name": "T",
                                    "package": "@probitas-test/probitas",
                                    "refersToTypeParameter": true
                                  }
                                ],
                                "name": "Promise",
                                "package": "typescript"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                },
                {
                  "id": 11993,
                  "name": "args",
                  "variant": "param",
                  "kind": 32768,
                  "flags": {
                    "isRest": true
                  },
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "The arguments to pass to the callback"
                      }
                    ]
                  },
                  "type": {
                    "type": "array",
                    "elementType": {
                      "type": "intrinsic",
                      "name": "any"
                    }
                  }
                }
              ],
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "typescript",
                  "packagePath": "lib/lib.es5.d.ts",
                  "qualifiedName": "Promise"
                },
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 11988,
                    "name": "T",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "Promise",
                "package": "typescript"
              }
            }
          ]
        }
      ]
    },
    {
      "id": 12210,
      "name": "MockError",
      "variant": "declaration",
      "kind": 128,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "An error related to spying on a function or instance method."
          }
        ],
        "blockTags": [
          {
            "tag": "@example",
            "name": "Usage",
            "content": [
              {
                "kind": "code",
                "text": "```ts\nimport { MockError, spy } from \"@std/testing/mock\";\nimport { assertThrows } from \"@std/assert\";\n\nassertThrows(() => {\n  spy({} as any, \"no-such-method\");\n}, MockError);\n```"
              }
            ]
          }
        ]
      },
      "children": [
        {
          "id": 12211,
          "name": "constructor",
          "variant": "declaration",
          "kind": 512,
          "flags": {},
          "signatures": [
            {
              "id": 12212,
              "name": "MockError",
              "variant": "signature",
              "kind": 16384,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Construct MockError"
                  }
                ]
              },
              "parameters": [
                {
                  "id": 12213,
                  "name": "message",
                  "variant": "param",
                  "kind": 32768,
                  "flags": {},
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "The error message."
                      }
                    ]
                  },
                  "type": {
                    "type": "intrinsic",
                    "name": "string"
                  }
                }
              ],
              "type": {
                "type": "reference",
                "target": 12210,
                "name": "MockError",
                "package": "@probitas-test/probitas"
              },
              "overwrites": {
                "type": "reference",
                "target": -1,
                "name": "Error.constructor",
                "package": "typescript"
              }
            }
          ],
          "overwrites": {
            "type": "reference",
            "target": -1,
            "name": "Error.constructor",
            "package": "typescript"
          }
        }
      ],
      "extendedTypes": [
        {
          "type": "reference",
          "target": {
            "packageName": "typescript",
            "packagePath": "lib/lib.es5.d.ts",
            "qualifiedName": "Error"
          },
          "name": "Error",
          "package": "typescript"
        }
      ]
    },
    {
      "id": 12408,
      "name": "Skip",
      "variant": "declaration",
      "kind": 128,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "Exception class for conditionally skipping scenario execution.\n\nThrow "
          },
          {
            "kind": "code",
            "text": "`Skip`"
          },
          {
            "kind": "text",
            "text": " from any step, setup, or resource fn to skip the\nentire scenario. Skipped scenarios are counted separately in the\nsummary and don't count as failures.\n\nCommon use cases:\n- Feature flags or environment checks\n- Prerequisites not met\n- Platform-specific tests\n- Temporary test disabling with clear reason"
          }
        ],
        "blockTags": [
          {
            "tag": "@example",
            "name": "Skip based on environment",
            "content": [
              {
                "kind": "code",
                "text": "```ts\nimport { scenario } from \"@probitas-test/builder\";\nimport { Skip } from \"@probitas-test/runner\";\n\nconst def = scenario(\"Production Only\")\n  .step(\"Check environment\", () => {\n    if (process.env.ENV !== \"production\") {\n      throw new Skip(\"Only runs in production\");\n    }\n  })\n  .step(\"Production test\", () => {\n    console.log(\"Running in production\");\n  })\n  .build();\nconsole.log(def.name);\n```"
              }
            ]
          },
          {
            "tag": "@example",
            "name": "Skip based on resource availability",
            "content": [
              {
                "kind": "code",
                "text": "```ts\nimport { scenario } from \"@probitas-test/builder\";\nimport { Skip } from \"@probitas-test/runner\";\n\nconst Database = { connect: async () => ({ query: (sql: string) => sql }) };\n\nconst def = scenario(\"Database Test\")\n  .resource(\"db\", async () => {\n    try {\n      return await Database.connect();\n    } catch {\n      throw new Skip(\"Database not available\");\n    }\n  })\n  .step(\"Query data\", (ctx) => ctx.resources.db.query(\"SELECT 1\"))\n  .build();\nconsole.log(def.name);\n```"
              }
            ]
          },
          {
            "tag": "@example",
            "name": "Skip with feature flag",
            "content": [
              {
                "kind": "code",
                "text": "```ts\nimport { scenario } from \"@probitas-test/builder\";\nimport { Skip } from \"@probitas-test/runner\";\n\nconst def = scenario(\"Beta Feature\")\n  .step(\"Check feature flag\", (ctx) => {\n    if (!ctx.store.get(\"betaEnabled\")) {\n      throw new Skip(\"Beta feature not enabled\");\n    }\n  })\n  .build();\nconsole.log(def.name);\n```"
              }
            ]
          }
        ]
      },
      "children": [
        {
          "id": 12409,
          "name": "constructor",
          "variant": "declaration",
          "kind": 512,
          "flags": {},
          "signatures": [
            {
              "id": 12410,
              "name": "Skip",
              "variant": "signature",
              "kind": 16384,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Create a Skip exception."
                  }
                ],
                "blockTags": [
                  {
                    "tag": "@example",
                    "content": [
                      {
                        "kind": "code",
                        "text": "```ts\nimport { Skip } from \"@probitas-test/runner\";\n\nconst skip1 = new Skip();                    // message: \"Skipped\", reason: undefined\nconst skip2 = new Skip(\"Not on Windows\");    // message: \"Not on Windows\", reason: \"Not on Windows\"\nconsole.log(skip1.message, skip2.reason);\n```"
                      }
                    ]
                  }
                ]
              },
              "parameters": [
                {
                  "id": 12411,
                  "name": "reason",
                  "variant": "param",
                  "kind": 32768,
                  "flags": {
                    "isOptional": true
                  },
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "Optional explanation for why the scenario was skipped.\n                Displayed in test reports alongside the scenario name."
                      }
                    ]
                  },
                  "type": {
                    "type": "intrinsic",
                    "name": "string"
                  }
                }
              ],
              "type": {
                "type": "reference",
                "target": 12408,
                "name": "Skip",
                "package": "@probitas-test/runner"
              },
              "overwrites": {
                "type": "reference",
                "target": -1,
                "name": "Error.constructor",
                "package": "typescript"
              }
            }
          ],
          "overwrites": {
            "type": "reference",
            "target": -1,
            "name": "Error.constructor",
            "package": "typescript"
          }
        },
        {
          "id": 12412,
          "name": "reason",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isOptional": true,
            "isReadonly": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Human-readable reason for skipping.\n\nWhen provided, this reason is displayed in test reports.\nIf not provided, defaults to "
              },
              {
                "kind": "code",
                "text": "`undefined`"
              },
              {
                "kind": "text",
                "text": " (the error message\nwill still show \"Skipped\")."
              }
            ]
          },
          "type": {
            "type": "intrinsic",
            "name": "string"
          }
        }
      ],
      "extendedTypes": [
        {
          "type": "reference",
          "target": {
            "packageName": "typescript",
            "packagePath": "lib/lib.es5.d.ts",
            "qualifiedName": "Error"
          },
          "name": "Error",
          "package": "typescript"
        }
      ]
    },
    {
      "id": 11976,
      "name": "TimeError",
      "variant": "declaration",
      "kind": 128,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "Represents an error when trying to execute an invalid operation on fake time,\ngiven the state fake time is in."
          }
        ],
        "blockTags": [
          {
            "tag": "@example",
            "name": "Usage",
            "content": [
              {
                "kind": "code",
                "text": "```ts\nimport { FakeTime, TimeError } from \"@std/testing/time\";\nimport { assertThrows } from \"@std/assert\";\n\nassertThrows(() => {\n  const time = new FakeTime();\n  time.restore();\n  time.restore();\n}, TimeError);\n```"
              }
            ]
          }
        ]
      },
      "children": [
        {
          "id": 11977,
          "name": "constructor",
          "variant": "declaration",
          "kind": 512,
          "flags": {},
          "signatures": [
            {
              "id": 11978,
              "name": "TimeError",
              "variant": "signature",
              "kind": 16384,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Construct TimeError."
                  }
                ]
              },
              "parameters": [
                {
                  "id": 11979,
                  "name": "message",
                  "variant": "param",
                  "kind": 32768,
                  "flags": {},
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "The error message"
                      }
                    ]
                  },
                  "type": {
                    "type": "intrinsic",
                    "name": "string"
                  }
                }
              ],
              "type": {
                "type": "reference",
                "target": 11976,
                "name": "TimeError",
                "package": "@probitas-test/probitas"
              },
              "overwrites": {
                "type": "reference",
                "target": -1,
                "name": "Error.constructor",
                "package": "typescript"
              }
            }
          ],
          "overwrites": {
            "type": "reference",
            "target": -1,
            "name": "Error.constructor",
            "package": "typescript"
          }
        }
      ],
      "extendedTypes": [
        {
          "type": "reference",
          "target": {
            "packageName": "typescript",
            "packagePath": "lib/lib.es5.d.ts",
            "qualifiedName": "Error"
          },
          "name": "Error",
          "package": "typescript"
        }
      ]
    },
    {
      "id": 12392,
      "name": "UnimplementedError",
      "variant": "declaration",
      "kind": 128,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "Error indicating that this part is unimplemented."
          }
        ]
      },
      "children": [
        {
          "id": 12393,
          "name": "constructor",
          "variant": "declaration",
          "kind": 512,
          "flags": {},
          "signatures": [
            {
              "id": 12394,
              "name": "UnimplementedError",
              "variant": "signature",
              "kind": 16384,
              "flags": {},
              "parameters": [
                {
                  "id": 12395,
                  "name": "message",
                  "variant": "param",
                  "kind": 32768,
                  "flags": {},
                  "type": {
                    "type": "intrinsic",
                    "name": "string"
                  },
                  "defaultValue": "\"unimplemented\""
                }
              ],
              "type": {
                "type": "reference",
                "target": 12392,
                "name": "UnimplementedError",
                "package": "@probitas-test/probitas"
              },
              "overwrites": {
                "type": "reference",
                "target": -1,
                "name": "Error.constructor",
                "package": "typescript"
              }
            }
          ],
          "overwrites": {
            "type": "reference",
            "target": -1,
            "name": "Error.constructor",
            "package": "typescript"
          }
        }
      ],
      "extendedTypes": [
        {
          "type": "reference",
          "target": {
            "packageName": "typescript",
            "packagePath": "lib/lib.es5.d.ts",
            "qualifiedName": "Error"
          },
          "name": "Error",
          "package": "typescript"
        }
      ]
    },
    {
      "id": 12399,
      "name": "UnreachableError",
      "variant": "declaration",
      "kind": 128,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "Error indicating that this part is unreachable."
          }
        ]
      },
      "children": [
        {
          "id": 12400,
          "name": "constructor",
          "variant": "declaration",
          "kind": 512,
          "flags": {},
          "signatures": [
            {
              "id": 12401,
              "name": "UnreachableError",
              "variant": "signature",
              "kind": 16384,
              "flags": {},
              "parameters": [
                {
                  "id": 12402,
                  "name": "args",
                  "variant": "param",
                  "kind": 32768,
                  "flags": {},
                  "type": {
                    "type": "array",
                    "elementType": {
                      "type": "intrinsic",
                      "name": "unknown"
                    }
                  }
                }
              ],
              "type": {
                "type": "reference",
                "target": 12399,
                "name": "UnreachableError",
                "package": "@probitas-test/probitas"
              },
              "overwrites": {
                "type": "reference",
                "target": -1,
                "name": "Error.constructor",
                "package": "typescript"
              }
            }
          ],
          "overwrites": {
            "type": "reference",
            "target": -1,
            "name": "Error.constructor",
            "package": "typescript"
          }
        },
        {
          "id": 12403,
          "name": "args",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isReadonly": true
          },
          "type": {
            "type": "array",
            "elementType": {
              "type": "intrinsic",
              "name": "unknown"
            }
          }
        }
      ],
      "extendedTypes": [
        {
          "type": "reference",
          "target": {
            "packageName": "typescript",
            "packagePath": "lib/lib.es5.d.ts",
            "qualifiedName": "Error"
          },
          "name": "Error",
          "package": "typescript"
        }
      ]
    },
    {
      "id": 12254,
      "name": "ConstructorSpy",
      "variant": "declaration",
      "kind": 256,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "A constructor wrapper that records all calls made to it."
          }
        ]
      },
      "children": [
        {
          "id": 12265,
          "name": "constructor",
          "variant": "declaration",
          "kind": 512,
          "flags": {},
          "signatures": [
            {
              "id": 12266,
              "name": "ConstructorSpy",
              "variant": "signature",
              "kind": 16384,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Construct an instance."
                  }
                ]
              },
              "parameters": [
                {
                  "id": 12267,
                  "name": "args",
                  "variant": "param",
                  "kind": 32768,
                  "flags": {
                    "isRest": true
                  },
                  "type": {
                    "type": "reference",
                    "target": 12256,
                    "name": "Args",
                    "package": "@probitas-test/probitas",
                    "qualifiedName": "ConstructorSpy.Args",
                    "refersToTypeParameter": true
                  }
                }
              ],
              "type": {
                "type": "reference",
                "target": 12255,
                "name": "Self",
                "package": "@probitas-test/probitas",
                "qualifiedName": "ConstructorSpy.Self",
                "refersToTypeParameter": true
              }
            }
          ]
        },
        {
          "id": 12261,
          "name": "calls",
          "variant": "declaration",
          "kind": 1024,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Information about calls made to the function or instance method."
              }
            ]
          },
          "type": {
            "type": "array",
            "elementType": {
              "type": "reference",
              "target": 12214,
              "typeArguments": [
                {
                  "type": "reference",
                  "target": 12255,
                  "name": "Self",
                  "package": "@probitas-test/probitas",
                  "qualifiedName": "ConstructorSpy.Self",
                  "refersToTypeParameter": true
                },
                {
                  "type": "reference",
                  "target": 12256,
                  "name": "Args",
                  "package": "@probitas-test/probitas",
                  "qualifiedName": "ConstructorSpy.Args",
                  "refersToTypeParameter": true
                },
                {
                  "type": "reference",
                  "target": 12255,
                  "name": "Self",
                  "package": "@probitas-test/probitas",
                  "qualifiedName": "ConstructorSpy.Self",
                  "refersToTypeParameter": true
                }
              ],
              "name": "SpyCall",
              "package": "@probitas-test/probitas"
            }
          }
        },
        {
          "id": 12257,
          "name": "original",
          "variant": "declaration",
          "kind": 1024,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The function that is being spied on."
              }
            ]
          },
          "type": {
            "type": "reflection",
            "declaration": {
              "id": 12258,
              "name": "__type",
              "variant": "declaration",
              "kind": 512,
              "flags": {},
              "signatures": [
                {
                  "id": 12259,
                  "name": "original",
                  "variant": "signature",
                  "kind": 16384,
                  "flags": {},
                  "parameters": [
                    {
                      "id": 12260,
                      "name": "args",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {
                        "isRest": true
                      },
                      "type": {
                        "type": "reference",
                        "target": 12256,
                        "name": "Args",
                        "package": "@probitas-test/probitas",
                        "qualifiedName": "ConstructorSpy.Args",
                        "refersToTypeParameter": true
                      }
                    }
                  ],
                  "type": {
                    "type": "reference",
                    "target": 12255,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "qualifiedName": "ConstructorSpy.Self",
                    "refersToTypeParameter": true
                  }
                }
              ]
            }
          }
        },
        {
          "id": 12262,
          "name": "restored",
          "variant": "declaration",
          "kind": 1024,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Whether or not the original instance method has been restored."
              }
            ]
          },
          "type": {
            "type": "intrinsic",
            "name": "boolean"
          }
        },
        {
          "id": 12263,
          "name": "restore",
          "variant": "declaration",
          "kind": 2048,
          "flags": {},
          "signatures": [
            {
              "id": 12264,
              "name": "restore",
              "variant": "signature",
              "kind": 4096,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "If spying on an instance method, this restores the original instance method."
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "void"
              }
            }
          ]
        }
      ],
      "typeParameters": [
        {
          "id": 12255,
          "name": "Self",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        },
        {
          "id": 12256,
          "name": "Args",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "type": {
            "type": "array",
            "elementType": {
              "type": "intrinsic",
              "name": "unknown"
            }
          },
          "default": {
            "type": "array",
            "elementType": {
              "type": "intrinsic",
              "name": "any"
            }
          }
        }
      ]
    },
    {
      "id": 12463,
      "name": "DelayOptions",
      "variant": "declaration",
      "kind": 256,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "Options for "
          },
          {
            "kind": "inline-tag",
            "tag": "@linkcode",
            "text": "delay",
            "target": {
              "packageName": "@probitas-test/probitas",
              "packagePath": "src/_vendor/std_async/delay.ts",
              "qualifiedName": "delay"
            }
          },
          {
            "kind": "text",
            "text": "."
          }
        ]
      },
      "children": [
        {
          "id": 12465,
          "name": "persistent",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isOptional": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Indicates whether the process should continue to run as long as the timer exists."
              }
            ],
            "blockTags": [
              {
                "tag": "@default",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\n{true}\n```"
                  }
                ]
              }
            ]
          },
          "type": {
            "type": "intrinsic",
            "name": "boolean"
          }
        },
        {
          "id": 12464,
          "name": "signal",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isOptional": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Signal used to abort the delay."
              }
            ]
          },
          "type": {
            "type": "reference",
            "target": {
              "packageName": "typescript",
              "packagePath": "lib/lib.dom.d.ts",
              "qualifiedName": "AbortSignal"
            },
            "name": "AbortSignal",
            "package": "typescript"
          }
        }
      ]
    },
    {
      "id": 12305,
      "name": "ExpectedSpyCall",
      "variant": "declaration",
      "kind": 256,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "Call information recorded by a spy."
          }
        ]
      },
      "children": [
        {
          "id": 12309,
          "name": "args",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isOptional": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Arguments passed to a function when called."
              }
            ]
          },
          "type": {
            "type": "tuple",
            "elements": [
              {
                "type": "rest",
                "elementType": {
                  "type": "array",
                  "elementType": {
                    "type": "reference",
                    "target": 12307,
                    "name": "Args",
                    "package": "@probitas-test/probitas",
                    "qualifiedName": "ExpectedSpyCall.Args",
                    "refersToTypeParameter": true
                  }
                }
              },
              {
                "type": "rest",
                "elementType": {
                  "type": "array",
                  "elementType": {
                    "type": "intrinsic",
                    "name": "unknown"
                  }
                }
              }
            ]
          }
        },
        {
          "id": 12312,
          "name": "error",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isOptional": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The expected thrown error."
              }
            ]
          },
          "type": {
            "type": "reflection",
            "declaration": {
              "id": 12313,
              "name": "__type",
              "variant": "declaration",
              "kind": 65536,
              "flags": {},
              "children": [
                {
                  "id": 12314,
                  "name": "Class",
                  "variant": "declaration",
                  "kind": 1024,
                  "flags": {
                    "isOptional": true
                  },
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "The class for the error that was thrown by a function."
                      }
                    ]
                  },
                  "type": {
                    "type": "reflection",
                    "declaration": {
                      "id": 12315,
                      "name": "__type",
                      "variant": "declaration",
                      "kind": 512,
                      "flags": {},
                      "signatures": [
                        {
                          "id": 12316,
                          "name": "Class",
                          "variant": "signature",
                          "kind": 16384,
                          "flags": {},
                          "parameters": [
                            {
                              "id": 12317,
                              "name": "args",
                              "variant": "param",
                              "kind": 32768,
                              "flags": {
                                "isRest": true
                              },
                              "type": {
                                "type": "array",
                                "elementType": {
                                  "type": "intrinsic",
                                  "name": "any"
                                }
                              }
                            }
                          ],
                          "type": {
                            "type": "reference",
                            "target": {
                              "packageName": "typescript",
                              "packagePath": "lib/lib.es5.d.ts",
                              "qualifiedName": "Error"
                            },
                            "name": "Error",
                            "package": "typescript"
                          }
                        }
                      ]
                    }
                  }
                },
                {
                  "id": 12318,
                  "name": "msgIncludes",
                  "variant": "declaration",
                  "kind": 1024,
                  "flags": {
                    "isOptional": true
                  },
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "Part of the message for the error that was thrown by a function."
                      }
                    ]
                  },
                  "type": {
                    "type": "intrinsic",
                    "name": "string"
                  }
                }
              ]
            }
          }
        },
        {
          "id": 12311,
          "name": "returned",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isOptional": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The value that was returned by a function.\nIf you expect a promise to reject, expect error instead."
              }
            ]
          },
          "type": {
            "type": "reference",
            "target": 12308,
            "name": "Return",
            "package": "@probitas-test/probitas",
            "qualifiedName": "ExpectedSpyCall.Return",
            "refersToTypeParameter": true
          }
        },
        {
          "id": 12310,
          "name": "self",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isOptional": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The instance that a method was called on."
              }
            ]
          },
          "type": {
            "type": "reference",
            "target": 12306,
            "name": "Self",
            "package": "@probitas-test/probitas",
            "qualifiedName": "ExpectedSpyCall.Self",
            "refersToTypeParameter": true
          }
        }
      ],
      "typeParameters": [
        {
          "id": 12306,
          "name": "Self",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        },
        {
          "id": 12307,
          "name": "Args",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "type": {
            "type": "array",
            "elementType": {
              "type": "intrinsic",
              "name": "unknown"
            }
          },
          "default": {
            "type": "array",
            "elementType": {
              "type": "intrinsic",
              "name": "any"
            }
          }
        },
        {
          "id": 12308,
          "name": "Return",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        }
      ]
    },
    {
      "id": 11980,
      "name": "FakeTimeOptions",
      "variant": "declaration",
      "kind": 256,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "The option for "
          },
          {
            "kind": "inline-tag",
            "tag": "@linkcode",
            "text": "FakeTime",
            "target": 11983
          }
        ]
      },
      "children": [
        {
          "id": 11982,
          "name": "advanceFrequency",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isOptional": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The frequency in milliseconds at which fake time is updated.\nIf advanceRate is set, we will update the time every 10 milliseconds by default."
              }
            ],
            "blockTags": [
              {
                "tag": "@default",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\n{10}\n```"
                  }
                ]
              }
            ]
          },
          "type": {
            "type": "intrinsic",
            "name": "number"
          }
        },
        {
          "id": 11981,
          "name": "advanceRate",
          "variant": "declaration",
          "kind": 1024,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The rate relative to real time at which fake time is updated.\nBy default time only moves forward through calling tick or setting now.\nSet to 1 to have the fake time automatically tick forward at the same rate in milliseconds as real time."
              }
            ],
            "blockTags": [
              {
                "tag": "@default",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\n{0}\n```"
                  }
                ]
              }
            ]
          },
          "type": {
            "type": "intrinsic",
            "name": "number"
          }
        }
      ]
    },
    {
      "id": 12238,
      "name": "MethodSpy",
      "variant": "declaration",
      "kind": 256,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "An instance method wrapper that records all calls made to it."
          }
        ]
      },
      "children": [
        {
          "id": 12247,
          "name": "calls",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isInherited": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Information about calls made to the function or instance method."
              }
            ]
          },
          "type": {
            "type": "array",
            "elementType": {
              "type": "reference",
              "target": 12214,
              "typeArguments": [
                {
                  "type": "reference",
                  "target": 12239,
                  "name": "Self",
                  "package": "@probitas-test/probitas",
                  "qualifiedName": "MethodSpy.Self",
                  "refersToTypeParameter": true
                },
                {
                  "type": "reference",
                  "target": 12240,
                  "name": "Args",
                  "package": "@probitas-test/probitas",
                  "qualifiedName": "MethodSpy.Args",
                  "refersToTypeParameter": true
                },
                {
                  "type": "reference",
                  "target": 12241,
                  "name": "Return",
                  "package": "@probitas-test/probitas",
                  "qualifiedName": "MethodSpy.Return",
                  "refersToTypeParameter": true
                }
              ],
              "name": "SpyCall",
              "package": "@probitas-test/probitas"
            }
          },
          "inheritedFrom": {
            "type": "reference",
            "target": 12231,
            "name": "Spy.calls"
          }
        },
        {
          "id": 12242,
          "name": "original",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isInherited": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The function that is being spied on."
              }
            ]
          },
          "type": {
            "type": "reflection",
            "declaration": {
              "id": 12243,
              "name": "__type",
              "variant": "declaration",
              "kind": 65536,
              "flags": {},
              "signatures": [
                {
                  "id": 12244,
                  "name": "__type",
                  "variant": "signature",
                  "kind": 4096,
                  "flags": {},
                  "parameters": [
                    {
                      "id": 12245,
                      "name": "this",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {},
                      "type": {
                        "type": "reference",
                        "target": 12239,
                        "name": "Self",
                        "package": "@probitas-test/probitas",
                        "qualifiedName": "MethodSpy.Self",
                        "refersToTypeParameter": true
                      }
                    },
                    {
                      "id": 12246,
                      "name": "args",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {
                        "isRest": true
                      },
                      "type": {
                        "type": "reference",
                        "target": 12240,
                        "name": "Args",
                        "package": "@probitas-test/probitas",
                        "qualifiedName": "MethodSpy.Args",
                        "refersToTypeParameter": true
                      }
                    }
                  ],
                  "type": {
                    "type": "reference",
                    "target": 12241,
                    "name": "Return",
                    "package": "@probitas-test/probitas",
                    "qualifiedName": "MethodSpy.Return",
                    "refersToTypeParameter": true
                  }
                }
              ]
            }
          },
          "inheritedFrom": {
            "type": "reference",
            "target": 12226,
            "name": "Spy.original"
          }
        },
        {
          "id": 12248,
          "name": "restored",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isInherited": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Whether or not the original instance method has been restored."
              }
            ]
          },
          "type": {
            "type": "intrinsic",
            "name": "boolean"
          },
          "inheritedFrom": {
            "type": "reference",
            "target": 12232,
            "name": "Spy.restored"
          }
        },
        {
          "id": 12249,
          "name": "restore",
          "variant": "declaration",
          "kind": 2048,
          "flags": {
            "isInherited": true
          },
          "signatures": [
            {
              "id": 12250,
              "name": "restore",
              "variant": "signature",
              "kind": 4096,
              "flags": {
                "isInherited": true
              },
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "If spying on an instance method, this restores the original instance method."
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "void"
              },
              "inheritedFrom": {
                "type": "reference",
                "target": 12234,
                "name": "Spy.restore"
              }
            }
          ],
          "inheritedFrom": {
            "type": "reference",
            "target": 12233,
            "name": "Spy.restore"
          }
        }
      ],
      "typeParameters": [
        {
          "id": 12239,
          "name": "Self",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        },
        {
          "id": 12240,
          "name": "Args",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "type": {
            "type": "array",
            "elementType": {
              "type": "intrinsic",
              "name": "unknown"
            }
          },
          "default": {
            "type": "array",
            "elementType": {
              "type": "intrinsic",
              "name": "any"
            }
          }
        },
        {
          "id": 12241,
          "name": "Return",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        }
      ],
      "signatures": [
        {
          "id": 12251,
          "name": "MethodSpy",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "parameters": [
            {
              "id": 12252,
              "name": "this",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reference",
                "target": 12239,
                "name": "Self",
                "package": "@probitas-test/probitas",
                "qualifiedName": "MethodSpy.Self",
                "refersToTypeParameter": true
              }
            },
            {
              "id": 12253,
              "name": "args",
              "variant": "param",
              "kind": 32768,
              "flags": {
                "isRest": true
              },
              "type": {
                "type": "reference",
                "target": 12240,
                "name": "Args",
                "package": "@probitas-test/probitas",
                "qualifiedName": "MethodSpy.Args",
                "refersToTypeParameter": true
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12241,
            "name": "Return",
            "package": "@probitas-test/probitas",
            "qualifiedName": "MethodSpy.Return",
            "refersToTypeParameter": true
          }
        }
      ],
      "extendedTypes": [
        {
          "type": "reference",
          "target": 12222,
          "typeArguments": [
            {
              "type": "reference",
              "target": 12239,
              "name": "Self",
              "package": "@probitas-test/probitas",
              "qualifiedName": "MethodSpy.Self",
              "refersToTypeParameter": true
            },
            {
              "type": "reference",
              "target": 12240,
              "name": "Args",
              "package": "@probitas-test/probitas",
              "qualifiedName": "MethodSpy.Args",
              "refersToTypeParameter": true
            },
            {
              "type": "reference",
              "target": 12241,
              "name": "Return",
              "package": "@probitas-test/probitas",
              "qualifiedName": "MethodSpy.Return",
              "refersToTypeParameter": true
            }
          ],
          "name": "Spy",
          "package": "@probitas-test/probitas"
        },
        {
          "type": "reference",
          "target": {
            "packageName": "typescript",
            "packagePath": "lib/lib.esnext.disposable.d.ts",
            "qualifiedName": "Disposable"
          },
          "name": "Disposable",
          "package": "typescript"
        }
      ],
      "extendedBy": [
        {
          "type": "reference",
          "target": 12284,
          "name": "Stub"
        }
      ]
    },
    {
      "id": 12222,
      "name": "Spy",
      "variant": "declaration",
      "kind": 256,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "A function or instance method wrapper that records all calls made to it."
          }
        ]
      },
      "children": [
        {
          "id": 12231,
          "name": "calls",
          "variant": "declaration",
          "kind": 1024,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Information about calls made to the function or instance method."
              }
            ]
          },
          "type": {
            "type": "array",
            "elementType": {
              "type": "reference",
              "target": 12214,
              "typeArguments": [
                {
                  "type": "reference",
                  "target": 12223,
                  "name": "Self",
                  "package": "@probitas-test/probitas",
                  "qualifiedName": "Spy.Self",
                  "refersToTypeParameter": true
                },
                {
                  "type": "reference",
                  "target": 12224,
                  "name": "Args",
                  "package": "@probitas-test/probitas",
                  "qualifiedName": "Spy.Args",
                  "refersToTypeParameter": true
                },
                {
                  "type": "reference",
                  "target": 12225,
                  "name": "Return",
                  "package": "@probitas-test/probitas",
                  "qualifiedName": "Spy.Return",
                  "refersToTypeParameter": true
                }
              ],
              "name": "SpyCall",
              "package": "@probitas-test/probitas"
            }
          }
        },
        {
          "id": 12226,
          "name": "original",
          "variant": "declaration",
          "kind": 1024,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The function that is being spied on."
              }
            ]
          },
          "type": {
            "type": "reflection",
            "declaration": {
              "id": 12227,
              "name": "__type",
              "variant": "declaration",
              "kind": 65536,
              "flags": {},
              "signatures": [
                {
                  "id": 12228,
                  "name": "__type",
                  "variant": "signature",
                  "kind": 4096,
                  "flags": {},
                  "parameters": [
                    {
                      "id": 12229,
                      "name": "this",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {},
                      "type": {
                        "type": "reference",
                        "target": 12223,
                        "name": "Self",
                        "package": "@probitas-test/probitas",
                        "qualifiedName": "Spy.Self",
                        "refersToTypeParameter": true
                      }
                    },
                    {
                      "id": 12230,
                      "name": "args",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {
                        "isRest": true
                      },
                      "type": {
                        "type": "reference",
                        "target": 12224,
                        "name": "Args",
                        "package": "@probitas-test/probitas",
                        "qualifiedName": "Spy.Args",
                        "refersToTypeParameter": true
                      }
                    }
                  ],
                  "type": {
                    "type": "reference",
                    "target": 12225,
                    "name": "Return",
                    "package": "@probitas-test/probitas",
                    "qualifiedName": "Spy.Return",
                    "refersToTypeParameter": true
                  }
                }
              ]
            }
          }
        },
        {
          "id": 12232,
          "name": "restored",
          "variant": "declaration",
          "kind": 1024,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Whether or not the original instance method has been restored."
              }
            ]
          },
          "type": {
            "type": "intrinsic",
            "name": "boolean"
          }
        },
        {
          "id": 12233,
          "name": "restore",
          "variant": "declaration",
          "kind": 2048,
          "flags": {},
          "signatures": [
            {
              "id": 12234,
              "name": "restore",
              "variant": "signature",
              "kind": 4096,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "If spying on an instance method, this restores the original instance method."
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "void"
              }
            }
          ]
        }
      ],
      "typeParameters": [
        {
          "id": 12223,
          "name": "Self",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        },
        {
          "id": 12224,
          "name": "Args",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "type": {
            "type": "array",
            "elementType": {
              "type": "intrinsic",
              "name": "unknown"
            }
          },
          "default": {
            "type": "array",
            "elementType": {
              "type": "intrinsic",
              "name": "any"
            }
          }
        },
        {
          "id": 12225,
          "name": "Return",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        }
      ],
      "signatures": [
        {
          "id": 12235,
          "name": "Spy",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "parameters": [
            {
              "id": 12236,
              "name": "this",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reference",
                "target": 12223,
                "name": "Self",
                "package": "@probitas-test/probitas",
                "qualifiedName": "Spy.Self",
                "refersToTypeParameter": true
              }
            },
            {
              "id": 12237,
              "name": "args",
              "variant": "param",
              "kind": 32768,
              "flags": {
                "isRest": true
              },
              "type": {
                "type": "reference",
                "target": 12224,
                "name": "Args",
                "package": "@probitas-test/probitas",
                "qualifiedName": "Spy.Args",
                "refersToTypeParameter": true
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12225,
            "name": "Return",
            "package": "@probitas-test/probitas",
            "qualifiedName": "Spy.Return",
            "refersToTypeParameter": true
          }
        }
      ],
      "extendedBy": [
        {
          "type": "reference",
          "target": 12238,
          "name": "MethodSpy"
        }
      ]
    },
    {
      "id": 12214,
      "name": "SpyCall",
      "variant": "declaration",
      "kind": 256,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "Call information recorded by a spy."
          }
        ]
      },
      "children": [
        {
          "id": 12218,
          "name": "args",
          "variant": "declaration",
          "kind": 1024,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Arguments passed to a function when called."
              }
            ]
          },
          "type": {
            "type": "reference",
            "target": 12216,
            "name": "Args",
            "package": "@probitas-test/probitas",
            "qualifiedName": "SpyCall.Args",
            "refersToTypeParameter": true
          }
        },
        {
          "id": 12220,
          "name": "error",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isOptional": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The error value that was thrown by a function."
              }
            ]
          },
          "type": {
            "type": "reference",
            "target": {
              "packageName": "typescript",
              "packagePath": "lib/lib.es5.d.ts",
              "qualifiedName": "Error"
            },
            "name": "Error",
            "package": "typescript"
          }
        },
        {
          "id": 12219,
          "name": "returned",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isOptional": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The value that was returned by a function."
              }
            ]
          },
          "type": {
            "type": "reference",
            "target": 12217,
            "name": "Return",
            "package": "@probitas-test/probitas",
            "qualifiedName": "SpyCall.Return",
            "refersToTypeParameter": true
          }
        },
        {
          "id": 12221,
          "name": "self",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isOptional": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The instance that a method was called on."
              }
            ]
          },
          "type": {
            "type": "reference",
            "target": 12215,
            "name": "Self",
            "package": "@probitas-test/probitas",
            "qualifiedName": "SpyCall.Self",
            "refersToTypeParameter": true
          }
        }
      ],
      "typeParameters": [
        {
          "id": 12215,
          "name": "Self",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        },
        {
          "id": 12216,
          "name": "Args",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "type": {
            "type": "array",
            "elementType": {
              "type": "intrinsic",
              "name": "unknown"
            }
          },
          "default": {
            "type": "array",
            "elementType": {
              "type": "intrinsic",
              "name": "any"
            }
          }
        },
        {
          "id": 12217,
          "name": "Return",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        }
      ]
    },
    {
      "id": 12284,
      "name": "Stub",
      "variant": "declaration",
      "kind": 256,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "An instance method replacement that records all calls made to it."
          }
        ]
      },
      "children": [
        {
          "id": 12298,
          "name": "calls",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isInherited": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Information about calls made to the function or instance method."
              }
            ]
          },
          "type": {
            "type": "array",
            "elementType": {
              "type": "reference",
              "target": 12214,
              "typeArguments": [
                {
                  "type": "reference",
                  "target": 12285,
                  "name": "Self",
                  "package": "@probitas-test/probitas",
                  "qualifiedName": "Stub.Self",
                  "refersToTypeParameter": true
                },
                {
                  "type": "reference",
                  "target": 12286,
                  "name": "Args",
                  "package": "@probitas-test/probitas",
                  "qualifiedName": "Stub.Args",
                  "refersToTypeParameter": true
                },
                {
                  "type": "reference",
                  "target": 12287,
                  "name": "Return",
                  "package": "@probitas-test/probitas",
                  "qualifiedName": "Stub.Return",
                  "refersToTypeParameter": true
                }
              ],
              "name": "SpyCall",
              "package": "@probitas-test/probitas"
            }
          },
          "inheritedFrom": {
            "type": "reference",
            "target": 12247,
            "name": "MethodSpy.calls"
          }
        },
        {
          "id": 12288,
          "name": "fake",
          "variant": "declaration",
          "kind": 1024,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The function that is used instead of the original."
              }
            ]
          },
          "type": {
            "type": "reflection",
            "declaration": {
              "id": 12289,
              "name": "__type",
              "variant": "declaration",
              "kind": 65536,
              "flags": {},
              "signatures": [
                {
                  "id": 12290,
                  "name": "__type",
                  "variant": "signature",
                  "kind": 4096,
                  "flags": {},
                  "parameters": [
                    {
                      "id": 12291,
                      "name": "this",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {},
                      "type": {
                        "type": "reference",
                        "target": 12285,
                        "name": "Self",
                        "package": "@probitas-test/probitas",
                        "qualifiedName": "Stub.Self",
                        "refersToTypeParameter": true
                      }
                    },
                    {
                      "id": 12292,
                      "name": "args",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {
                        "isRest": true
                      },
                      "type": {
                        "type": "reference",
                        "target": 12286,
                        "name": "Args",
                        "package": "@probitas-test/probitas",
                        "qualifiedName": "Stub.Args",
                        "refersToTypeParameter": true
                      }
                    }
                  ],
                  "type": {
                    "type": "reference",
                    "target": 12287,
                    "name": "Return",
                    "package": "@probitas-test/probitas",
                    "qualifiedName": "Stub.Return",
                    "refersToTypeParameter": true
                  }
                }
              ]
            }
          }
        },
        {
          "id": 12293,
          "name": "original",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isInherited": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The function that is being spied on."
              }
            ]
          },
          "type": {
            "type": "reflection",
            "declaration": {
              "id": 12294,
              "name": "__type",
              "variant": "declaration",
              "kind": 65536,
              "flags": {},
              "signatures": [
                {
                  "id": 12295,
                  "name": "__type",
                  "variant": "signature",
                  "kind": 4096,
                  "flags": {},
                  "parameters": [
                    {
                      "id": 12296,
                      "name": "this",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {},
                      "type": {
                        "type": "reference",
                        "target": 12285,
                        "name": "Self",
                        "package": "@probitas-test/probitas",
                        "qualifiedName": "Stub.Self",
                        "refersToTypeParameter": true
                      }
                    },
                    {
                      "id": 12297,
                      "name": "args",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {
                        "isRest": true
                      },
                      "type": {
                        "type": "reference",
                        "target": 12286,
                        "name": "Args",
                        "package": "@probitas-test/probitas",
                        "qualifiedName": "Stub.Args",
                        "refersToTypeParameter": true
                      }
                    }
                  ],
                  "type": {
                    "type": "reference",
                    "target": 12287,
                    "name": "Return",
                    "package": "@probitas-test/probitas",
                    "qualifiedName": "Stub.Return",
                    "refersToTypeParameter": true
                  }
                }
              ]
            }
          },
          "inheritedFrom": {
            "type": "reference",
            "target": 12242,
            "name": "MethodSpy.original"
          }
        },
        {
          "id": 12299,
          "name": "restored",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isInherited": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Whether or not the original instance method has been restored."
              }
            ]
          },
          "type": {
            "type": "intrinsic",
            "name": "boolean"
          },
          "inheritedFrom": {
            "type": "reference",
            "target": 12248,
            "name": "MethodSpy.restored"
          }
        },
        {
          "id": 12300,
          "name": "restore",
          "variant": "declaration",
          "kind": 2048,
          "flags": {
            "isInherited": true
          },
          "signatures": [
            {
              "id": 12301,
              "name": "restore",
              "variant": "signature",
              "kind": 4096,
              "flags": {
                "isInherited": true
              },
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "If spying on an instance method, this restores the original instance method."
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "void"
              },
              "inheritedFrom": {
                "type": "reference",
                "target": 12250,
                "name": "MethodSpy.restore"
              }
            }
          ],
          "inheritedFrom": {
            "type": "reference",
            "target": 12249,
            "name": "MethodSpy.restore"
          }
        }
      ],
      "typeParameters": [
        {
          "id": 12285,
          "name": "Self",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        },
        {
          "id": 12286,
          "name": "Args",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "type": {
            "type": "array",
            "elementType": {
              "type": "intrinsic",
              "name": "unknown"
            }
          },
          "default": {
            "type": "array",
            "elementType": {
              "type": "intrinsic",
              "name": "any"
            }
          }
        },
        {
          "id": 12287,
          "name": "Return",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        }
      ],
      "signatures": [
        {
          "id": 12302,
          "name": "Stub",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "parameters": [
            {
              "id": 12303,
              "name": "this",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reference",
                "target": 12285,
                "name": "Self",
                "package": "@probitas-test/probitas",
                "qualifiedName": "Stub.Self",
                "refersToTypeParameter": true
              }
            },
            {
              "id": 12304,
              "name": "args",
              "variant": "param",
              "kind": 32768,
              "flags": {
                "isRest": true
              },
              "type": {
                "type": "reference",
                "target": 12286,
                "name": "Args",
                "package": "@probitas-test/probitas",
                "qualifiedName": "Stub.Args",
                "refersToTypeParameter": true
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12287,
            "name": "Return",
            "package": "@probitas-test/probitas",
            "qualifiedName": "Stub.Return",
            "refersToTypeParameter": true
          }
        }
      ],
      "extendedTypes": [
        {
          "type": "reference",
          "target": 12238,
          "typeArguments": [
            {
              "type": "reference",
              "target": 12285,
              "name": "Self",
              "package": "@probitas-test/probitas",
              "qualifiedName": "Stub.Self",
              "refersToTypeParameter": true
            },
            {
              "type": "reference",
              "target": 12286,
              "name": "Args",
              "package": "@probitas-test/probitas",
              "qualifiedName": "Stub.Args",
              "refersToTypeParameter": true
            },
            {
              "type": "reference",
              "target": 12287,
              "name": "Return",
              "package": "@probitas-test/probitas",
              "qualifiedName": "Stub.Return",
              "refersToTypeParameter": true
            }
          ],
          "name": "MethodSpy",
          "package": "@probitas-test/probitas"
        }
      ]
    },
    {
      "id": 12449,
      "name": "ConnectRpcResponse",
      "variant": "declaration",
      "kind": 2097152,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "ConnectRPC response union type.\n\nUse "
          },
          {
            "kind": "code",
            "text": "`processed`"
          },
          {
            "kind": "text",
            "text": " to distinguish between server responses and failures:\n- "
          },
          {
            "kind": "code",
            "text": "`processed === true`"
          },
          {
            "kind": "text",
            "text": ": Server responded (Success or Error)\n- "
          },
          {
            "kind": "code",
            "text": "`processed === false`"
          },
          {
            "kind": "text",
            "text": ": Request failed (Failure)\n\nUse "
          },
          {
            "kind": "code",
            "text": "`ok`"
          },
          {
            "kind": "text",
            "text": " to check for success:\n- "
          },
          {
            "kind": "code",
            "text": "`ok === true`"
          },
          {
            "kind": "text",
            "text": ": Success (statusCode === 0)\n- "
          },
          {
            "kind": "code",
            "text": "`ok === false`"
          },
          {
            "kind": "text",
            "text": ": Error or Failure"
          }
        ]
      },
      "typeParameters": [
        {
          "id": 12450,
          "name": "T",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        }
      ],
      "type": {
        "type": "union",
        "types": [
          {
            "type": "reference",
            "target": 15710,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12450,
                "name": "T",
                "package": "@probitas-test/client-connectrpc",
                "refersToTypeParameter": true
              }
            ],
            "name": "ConnectRpcResponseSuccess",
            "package": "@probitas-test/client-connectrpc"
          },
          {
            "type": "reference",
            "target": 15684,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12450,
                "name": "T",
                "package": "@probitas-test/client-connectrpc",
                "refersToTypeParameter": true
              }
            ],
            "name": "ConnectRpcResponseError",
            "package": "@probitas-test/client-connectrpc"
          },
          {
            "type": "reference",
            "target": 15697,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12450,
                "name": "T",
                "package": "@probitas-test/client-connectrpc",
                "refersToTypeParameter": true
              }
            ],
            "name": "ConnectRpcResponseFailure",
            "package": "@probitas-test/client-connectrpc"
          }
        ]
      }
    },
    {
      "id": 12358,
      "name": "ErrorObject",
      "variant": "declaration",
      "kind": 2097152,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "An error object is a serializable representation of an error"
          }
        ]
      },
      "children": [
        {
          "id": 12364,
          "name": "attributes",
          "variant": "declaration",
          "kind": 1024,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Additional attributes"
              }
            ]
          },
          "type": {
            "type": "reference",
            "target": {
              "packageName": "typescript",
              "packagePath": "lib/lib.es5.d.ts",
              "qualifiedName": "Record"
            },
            "typeArguments": [
              {
                "type": "intrinsic",
                "name": "string"
              },
              {
                "type": "intrinsic",
                "name": "unknown"
              }
            ],
            "name": "Record",
            "package": "typescript"
          }
        },
        {
          "id": 12362,
          "name": "message",
          "variant": "declaration",
          "kind": 1024,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The error message"
              }
            ]
          },
          "type": {
            "type": "intrinsic",
            "name": "string"
          }
        },
        {
          "id": 12361,
          "name": "name",
          "variant": "declaration",
          "kind": 1024,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The name of the error"
              }
            ]
          },
          "type": {
            "type": "intrinsic",
            "name": "string"
          }
        },
        {
          "id": 12360,
          "name": "proto",
          "variant": "declaration",
          "kind": 1024,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The name of the error prototype"
              }
            ]
          },
          "type": {
            "type": "intrinsic",
            "name": "string"
          }
        },
        {
          "id": 12363,
          "name": "stack",
          "variant": "declaration",
          "kind": 1024,
          "flags": {
            "isOptional": true
          },
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "The error stack"
              }
            ]
          },
          "type": {
            "type": "intrinsic",
            "name": "string"
          }
        }
      ]
    },
    {
      "id": 12347,
      "name": "Failure",
      "variant": "declaration",
      "kind": 2097152,
      "flags": {},
      "typeParameters": [
        {
          "id": 12348,
          "name": "E",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {}
        }
      ],
      "type": {
        "type": "tuple",
        "elements": [
          {
            "type": "namedTupleMember",
            "name": "error",
            "isOptional": false,
            "element": {
              "type": "reference",
              "target": 12348,
              "name": "E",
              "package": "@probitas-test/probitas",
              "refersToTypeParameter": true
            }
          },
          {
            "type": "namedTupleMember",
            "name": "value",
            "isOptional": false,
            "element": {
              "type": "intrinsic",
              "name": "undefined"
            }
          }
        ]
      }
    },
    {
      "id": 12451,
      "name": "GraphqlResponse",
      "variant": "declaration",
      "kind": 2097152,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "GraphQL response union type.\n\nUse "
          },
          {
            "kind": "code",
            "text": "`processed`"
          },
          {
            "kind": "text",
            "text": " to distinguish between server responses and failures:\n- "
          },
          {
            "kind": "code",
            "text": "`processed === true`"
          },
          {
            "kind": "text",
            "text": ": Server responded (Success or Error)\n- "
          },
          {
            "kind": "code",
            "text": "`processed === false`"
          },
          {
            "kind": "text",
            "text": ": Request failed (Failure)\n\nUse "
          },
          {
            "kind": "code",
            "text": "`ok`"
          },
          {
            "kind": "text",
            "text": " to check for success:\n- "
          },
          {
            "kind": "code",
            "text": "`ok === true`"
          },
          {
            "kind": "text",
            "text": ": Success (no errors)\n- "
          },
          {
            "kind": "code",
            "text": "`ok === false`"
          },
          {
            "kind": "text",
            "text": ": Error or Failure"
          }
        ]
      },
      "typeParameters": [
        {
          "id": 12452,
          "name": "T",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        }
      ],
      "type": {
        "type": "union",
        "types": [
          {
            "type": "reference",
            "target": 15750,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12452,
                "name": "T",
                "package": "@probitas-test/client-graphql",
                "refersToTypeParameter": true
              }
            ],
            "name": "GraphqlResponseSuccess",
            "package": "@probitas-test/client-graphql"
          },
          {
            "type": "reference",
            "target": 15724,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12452,
                "name": "T",
                "package": "@probitas-test/client-graphql",
                "refersToTypeParameter": true
              }
            ],
            "name": "GraphqlResponseError",
            "package": "@probitas-test/client-graphql"
          },
          {
            "type": "reference",
            "target": 15737,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12452,
                "name": "T",
                "package": "@probitas-test/client-graphql",
                "refersToTypeParameter": true
              }
            ],
            "name": "GraphqlResponseFailure",
            "package": "@probitas-test/client-graphql"
          }
        ]
      }
    },
    {
      "id": 12453,
      "name": "HttpResponse",
      "variant": "declaration",
      "kind": 2097152,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "HTTP response union type representing all possible response states.\n\n- **Success (2xx)**: "
          },
          {
            "kind": "code",
            "text": "`processed: true, ok: true, error: null`"
          },
          {
            "kind": "text",
            "text": "\n- **Error (4xx/5xx)**: "
          },
          {
            "kind": "code",
            "text": "`processed: true, ok: false, error: HttpError`"
          },
          {
            "kind": "text",
            "text": "\n- **Failure (network error)**: "
          },
          {
            "kind": "code",
            "text": "`processed: false, ok: false, error: Error`"
          }
        ],
        "blockTags": [
          {
            "tag": "@example",
            "name": "Type narrowing by ok",
            "content": [
              {
                "kind": "code",
                "text": "```ts\nimport { createHttpClient } from \"@probitas-test/client-http\";\n\nawait using http = createHttpClient({ url: \"http://localhost:3000\" });\nconst response = await http.get(\"/users\");\nif (response.ok) {\n  // TypeScript knows: HttpResponseSuccess\n  console.log(response.status); // number\n} else {\n  // TypeScript knows: HttpResponseError | HttpResponseFailure\n  console.log(response.error); // Error\n}\n```"
              }
            ]
          },
          {
            "tag": "@example",
            "name": "Type narrowing by processed",
            "content": [
              {
                "kind": "code",
                "text": "```ts\nimport { createHttpClient } from \"@probitas-test/client-http\";\n\nawait using http = createHttpClient({ url: \"http://localhost:3000\" });\nconst response = await http.get(\"/users\");\nif (response.processed) {\n  // TypeScript knows: HttpResponseSuccess | HttpResponseError\n  console.log(response.status); // number\n} else {\n  // TypeScript knows: HttpResponseFailure\n  console.log(response.error); // Error (network error)\n}\n```"
              }
            ]
          }
        ]
      },
      "typeParameters": [
        {
          "id": 12454,
          "name": "T",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        }
      ],
      "type": {
        "type": "union",
        "types": [
          {
            "type": "reference",
            "target": 15919,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12454,
                "name": "T",
                "package": "@probitas-test/client-http",
                "refersToTypeParameter": true
              }
            ],
            "name": "HttpResponseSuccess",
            "package": "@probitas-test/client-http"
          },
          {
            "type": "reference",
            "target": 15885,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12454,
                "name": "T",
                "package": "@probitas-test/client-http",
                "refersToTypeParameter": true
              }
            ],
            "name": "HttpResponseError",
            "package": "@probitas-test/client-http"
          },
          {
            "type": "reference",
            "target": 15902,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12454,
                "name": "T",
                "package": "@probitas-test/client-http",
                "refersToTypeParameter": true
              }
            ],
            "name": "HttpResponseFailure",
            "package": "@probitas-test/client-http"
          }
        ]
      }
    },
    {
      "id": 12455,
      "name": "MongoResult",
      "variant": "declaration",
      "kind": 2097152,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "Union of all MongoDB result types."
          }
        ]
      },
      "typeParameters": [
        {
          "id": 12456,
          "name": "T",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        }
      ],
      "type": {
        "type": "union",
        "types": [
          {
            "type": "reference",
            "target": 15941,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12456,
                "name": "T",
                "package": "@probitas-test/client-mongodb",
                "refersToTypeParameter": true
              }
            ],
            "name": "MongoFindResult",
            "package": "@probitas-test/client-mongodb"
          },
          {
            "type": "reference",
            "target": 15944,
            "name": "MongoInsertOneResult",
            "package": "@probitas-test/client-mongodb"
          },
          {
            "type": "reference",
            "target": 15943,
            "name": "MongoInsertManyResult",
            "package": "@probitas-test/client-mongodb"
          },
          {
            "type": "reference",
            "target": 15946,
            "name": "MongoUpdateResult",
            "package": "@probitas-test/client-mongodb"
          },
          {
            "type": "reference",
            "target": 15937,
            "name": "MongoDeleteResult",
            "package": "@probitas-test/client-mongodb"
          },
          {
            "type": "reference",
            "target": 15939,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12456,
                "name": "T",
                "package": "@probitas-test/client-mongodb",
                "refersToTypeParameter": true
              }
            ],
            "name": "MongoFindOneResult",
            "package": "@probitas-test/client-mongodb"
          },
          {
            "type": "reference",
            "target": 15936,
            "name": "MongoCountResult",
            "package": "@probitas-test/client-mongodb"
          }
        ]
      }
    },
    {
      "id": 12457,
      "name": "RabbitMqResult",
      "variant": "declaration",
      "kind": 2097152,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "Union of all RabbitMQ result types."
          }
        ]
      },
      "type": {
        "type": "union",
        "types": [
          {
            "type": "reference",
            "target": 13966,
            "name": "RabbitMqPublishResult",
            "package": "@probitas-test/client-rabbitmq"
          },
          {
            "type": "reference",
            "target": 13988,
            "name": "RabbitMqConsumeResult",
            "package": "@probitas-test/client-rabbitmq"
          },
          {
            "type": "reference",
            "target": 14007,
            "name": "RabbitMqAckResult",
            "package": "@probitas-test/client-rabbitmq"
          },
          {
            "type": "reference",
            "target": 14035,
            "name": "RabbitMqQueueResult",
            "package": "@probitas-test/client-rabbitmq"
          },
          {
            "type": "reference",
            "target": 14054,
            "name": "RabbitMqExchangeResult",
            "package": "@probitas-test/client-rabbitmq"
          }
        ]
      }
    },
    {
      "id": 12458,
      "name": "RedisResult",
      "variant": "declaration",
      "kind": 2097152,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "Union of all Redis result types."
          }
        ]
      },
      "typeParameters": [
        {
          "id": 12459,
          "name": "T",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        }
      ],
      "type": {
        "type": "union",
        "types": [
          {
            "type": "reference",
            "target": 14607,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12459,
                "name": "T",
                "package": "@probitas-test/client-redis",
                "refersToTypeParameter": true
              }
            ],
            "name": "RedisCommonResult",
            "package": "@probitas-test/client-redis"
          },
          {
            "type": "reference",
            "target": 14490,
            "name": "RedisGetResult",
            "package": "@probitas-test/client-redis"
          },
          {
            "type": "reference",
            "target": 14512,
            "name": "RedisSetResult",
            "package": "@probitas-test/client-redis"
          },
          {
            "type": "reference",
            "target": 14534,
            "name": "RedisCountResult",
            "package": "@probitas-test/client-redis"
          },
          {
            "type": "reference",
            "target": 14559,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12459,
                "name": "T",
                "package": "@probitas-test/client-redis",
                "refersToTypeParameter": true
              }
            ],
            "name": "RedisArrayResult",
            "package": "@probitas-test/client-redis"
          },
          {
            "type": "reference",
            "target": 14582,
            "name": "RedisHashResult",
            "package": "@probitas-test/client-redis"
          }
        ]
      }
    },
    {
      "id": 12349,
      "name": "Result",
      "variant": "declaration",
      "kind": 2097152,
      "flags": {},
      "typeParameters": [
        {
          "id": 12350,
          "name": "T",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {}
        },
        {
          "id": 12351,
          "name": "E",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {}
        }
      ],
      "type": {
        "type": "union",
        "types": [
          {
            "type": "reference",
            "target": 12345,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12350,
                "name": "T",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            ],
            "name": "Success",
            "package": "@probitas-test/probitas"
          },
          {
            "type": "reference",
            "target": 12347,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12351,
                "name": "E",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            ],
            "name": "Failure",
            "package": "@probitas-test/probitas"
          }
        ]
      }
    },
    {
      "id": 12280,
      "name": "SpyLike",
      "variant": "declaration",
      "kind": 2097152,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "SpyLink object type."
          }
        ]
      },
      "typeParameters": [
        {
          "id": 12281,
          "name": "Self",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        },
        {
          "id": 12282,
          "name": "Args",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "type": {
            "type": "array",
            "elementType": {
              "type": "intrinsic",
              "name": "unknown"
            }
          },
          "default": {
            "type": "array",
            "elementType": {
              "type": "intrinsic",
              "name": "any"
            }
          }
        },
        {
          "id": 12283,
          "name": "Return",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        }
      ],
      "type": {
        "type": "union",
        "types": [
          {
            "type": "reference",
            "target": 12222,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12281,
                "name": "Self",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              },
              {
                "type": "reference",
                "target": 12282,
                "name": "Args",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              },
              {
                "type": "reference",
                "target": 12283,
                "name": "Return",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            ],
            "name": "Spy",
            "package": "@probitas-test/probitas"
          },
          {
            "type": "reference",
            "target": 12254,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12281,
                "name": "Self",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              },
              {
                "type": "reference",
                "target": 12282,
                "name": "Args",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            ],
            "name": "ConstructorSpy",
            "package": "@probitas-test/probitas"
          }
        ]
      }
    },
    {
      "id": 12460,
      "name": "SqlQueryResult",
      "variant": "declaration",
      "kind": 2097152,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "SQL query result union type representing all possible result states.\n\n- **Success**: "
          },
          {
            "kind": "code",
            "text": "`processed: true, ok: true, error: null`"
          },
          {
            "kind": "text",
            "text": "\n- **Error**: "
          },
          {
            "kind": "code",
            "text": "`processed: true, ok: false, error: SqlError`"
          },
          {
            "kind": "text",
            "text": "\n- **Failure**: "
          },
          {
            "kind": "code",
            "text": "`processed: false, ok: false, error: SqlConnectionError`"
          }
        ],
        "blockTags": [
          {
            "tag": "@example",
            "name": "Type narrowing by ok",
            "content": [
              {
                "kind": "code",
                "text": "```ts\nimport { createPostgresClient } from \"@probitas-test/client-sql-postgres\";\n\nawait using client = await createPostgresClient({ url: \"postgres://localhost/db\" });\nconst result = await client.query(\"SELECT * FROM users\");\nif (result.ok) {\n  // TypeScript knows: SqlQueryResultSuccess\n  console.log(result.rows[0]);\n} else {\n  // TypeScript knows: SqlQueryResultError | SqlQueryResultFailure\n  console.log(result.error.message);\n}\n```"
              }
            ]
          },
          {
            "tag": "@example",
            "name": "Type narrowing by processed",
            "content": [
              {
                "kind": "code",
                "text": "```ts\nimport { createPostgresClient } from \"@probitas-test/client-sql-postgres\";\n\nawait using client = await createPostgresClient({ url: \"postgres://localhost/db\" });\nconst result = await client.query(\"SELECT * FROM users\");\nif (result.processed) {\n  // TypeScript knows: SqlQueryResultSuccess | SqlQueryResultError\n  console.log(result.rowCount);\n} else {\n  // TypeScript knows: SqlQueryResultFailure\n  console.log(result.error.message); // Connection error\n}\n```"
              }
            ]
          }
        ]
      },
      "typeParameters": [
        {
          "id": 12461,
          "name": "T",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "default": {
            "type": "intrinsic",
            "name": "any"
          }
        }
      ],
      "type": {
        "type": "union",
        "types": [
          {
            "type": "reference",
            "target": 14939,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12461,
                "name": "T",
                "package": "@probitas-test/client-sql",
                "refersToTypeParameter": true
              }
            ],
            "name": "SqlQueryResultSuccess",
            "package": "@probitas-test/client-sql"
          },
          {
            "type": "reference",
            "target": 14964,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12461,
                "name": "T",
                "package": "@probitas-test/client-sql",
                "refersToTypeParameter": true
              }
            ],
            "name": "SqlQueryResultError",
            "package": "@probitas-test/client-sql"
          },
          {
            "type": "reference",
            "target": 14989,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12461,
                "name": "T",
                "package": "@probitas-test/client-sql",
                "refersToTypeParameter": true
              }
            ],
            "name": "SqlQueryResultFailure",
            "package": "@probitas-test/client-sql"
          }
        ]
      }
    },
    {
      "id": 12462,
      "name": "SqsResult",
      "variant": "declaration",
      "kind": 2097152,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "Union type of all SQS result types."
          }
        ]
      },
      "type": {
        "type": "union",
        "types": [
          {
            "type": "reference",
            "target": 16524,
            "name": "SqsSendResult",
            "package": "@probitas-test/client-sqs"
          },
          {
            "type": "reference",
            "target": 16523,
            "name": "SqsSendBatchResult",
            "package": "@probitas-test/client-sqs"
          },
          {
            "type": "reference",
            "target": 16521,
            "name": "SqsReceiveResult",
            "package": "@probitas-test/client-sqs"
          },
          {
            "type": "reference",
            "target": 16519,
            "name": "SqsDeleteResult",
            "package": "@probitas-test/client-sqs"
          },
          {
            "type": "reference",
            "target": 16517,
            "name": "SqsDeleteBatchResult",
            "package": "@probitas-test/client-sqs"
          },
          {
            "type": "reference",
            "target": 16520,
            "name": "SqsEnsureQueueResult",
            "package": "@probitas-test/client-sqs"
          },
          {
            "type": "reference",
            "target": 16518,
            "name": "SqsDeleteQueueResult",
            "package": "@probitas-test/client-sqs"
          }
        ]
      }
    },
    {
      "id": 12413,
      "name": "StepContext",
      "variant": "declaration",
      "kind": 2097152,
      "flags": {},
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "Execution context provided to steps, resources, and setup hooks.\n\nThe context provides access to:\n- Previous step results with full type inference\n- All accumulated results as a typed tuple\n- Named resources registered with "
          },
          {
            "kind": "code",
            "text": "`.resource()`"
          },
          {
            "kind": "text",
            "text": "\n- Shared storage for cross-step communication\n- Abort signal for timeout and cancellation handling"
          }
        ],
        "blockTags": [
          {
            "tag": "@example",
            "name": "Accessing previous result",
            "content": [
              {
                "kind": "code",
                "text": "```ts\nimport { scenario } from \"@probitas-test/builder\";\n\nscenario(\"Chained Steps\")\n  .step(\"First\", () => ({ id: 123 }))\n  .step(\"Second\", (ctx) => {\n    console.log(ctx.previous.id);  // 123 (typed as number)\n  })\n  .build();\n```"
              }
            ]
          },
          {
            "tag": "@example",
            "name": "Using shared store",
            "content": [
              {
                "kind": "code",
                "text": "```ts\nimport { scenario } from \"@probitas-test/builder\";\n\nscenario(\"Store Example\")\n  .setup((ctx) => {\n    ctx.store.set(\"startTime\", Date.now());\n  })\n  .step(\"Check duration\", (ctx) => {\n    const start = ctx.store.get(\"startTime\") as number;\n    console.log(`Elapsed: ${Date.now() - start}ms`);\n  })\n  .build();\n```"
              }
            ]
          }
        ]
      },
      "typeParameters": [
        {
          "id": 12418,
          "name": "P",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Type of the previous step's return value"
              }
            ]
          },
          "default": {
            "type": "intrinsic",
            "name": "unknown"
          }
        },
        {
          "id": 12419,
          "name": "A",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Tuple type of all accumulated results from previous steps"
              }
            ]
          },
          "type": {
            "type": "typeOperator",
            "operator": "readonly",
            "target": {
              "type": "array",
              "elementType": {
                "type": "intrinsic",
                "name": "unknown"
              }
            }
          },
          "default": {
            "type": "typeOperator",
            "operator": "readonly",
            "target": {
              "type": "array",
              "elementType": {
                "type": "intrinsic",
                "name": "unknown"
              }
            }
          }
        },
        {
          "id": 12420,
          "name": "R",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Record type mapping resource names to their types"
              }
            ]
          },
          "type": {
            "type": "reference",
            "target": {
              "packageName": "typescript",
              "packagePath": "lib/lib.es5.d.ts",
              "qualifiedName": "Record"
            },
            "typeArguments": [
              {
                "type": "intrinsic",
                "name": "string"
              },
              {
                "type": "intrinsic",
                "name": "unknown"
              }
            ],
            "name": "Record",
            "package": "typescript"
          },
          "default": {
            "type": "reference",
            "target": {
              "packageName": "typescript",
              "packagePath": "lib/lib.es5.d.ts",
              "qualifiedName": "Record"
            },
            "typeArguments": [
              {
                "type": "intrinsic",
                "name": "string"
              },
              {
                "type": "intrinsic",
                "name": "unknown"
              }
            ],
            "name": "Record",
            "package": "typescript"
          }
        }
      ],
      "type": {
        "type": "intersection",
        "types": [
          {
            "type": "reference",
            "target": {
              "packageName": "@probitas-test/core",
              "packagePath": "dist/types/step.d.ts",
              "qualifiedName": "StepContext"
            },
            "name": "StepContext",
            "package": "@probitas-test/core"
          },
          {
            "type": "reflection",
            "declaration": {
              "id": 12414,
              "name": "__type",
              "variant": "declaration",
              "kind": 65536,
              "flags": {},
              "children": [
                {
                  "id": 12415,
                  "name": "previous",
                  "variant": "declaration",
                  "kind": 1024,
                  "flags": {
                    "isReadonly": true
                  },
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "Result from the previous step.\n\nFully typed based on what the previous step returned.\nFor the first step, this is "
                      },
                      {
                        "kind": "code",
                        "text": "`unknown`"
                      },
                      {
                        "kind": "text",
                        "text": "."
                      }
                    ]
                  },
                  "type": {
                    "type": "reference",
                    "target": 12418,
                    "name": "P",
                    "package": "@probitas-test/builder",
                    "refersToTypeParameter": true
                  }
                },
                {
                  "id": 12417,
                  "name": "resources",
                  "variant": "declaration",
                  "kind": 1024,
                  "flags": {
                    "isReadonly": true
                  },
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "Named resources registered with "
                      },
                      {
                        "kind": "code",
                        "text": "`.resource()`"
                      },
                      {
                        "kind": "text",
                        "text": ".\n\nResources are typed based on their registration:\n"
                      },
                      {
                        "kind": "code",
                        "text": "```ts\nimport { scenario } from \"@probitas-test/builder\";\n\n// Mock database connection for example\nconst createDbConnection = () => ({ query: (_sql: string) => [{ id: 1 }] });\n\nscenario(\"test\")\n  .resource(\"db\", () => createDbConnection())\n  .step((ctx) => ctx.resources.db.query(\"SELECT 1\"))\n  .build();\n```"
                      }
                    ]
                  },
                  "type": {
                    "type": "reference",
                    "target": 12420,
                    "name": "R",
                    "package": "@probitas-test/builder",
                    "refersToTypeParameter": true
                  }
                },
                {
                  "id": 12416,
                  "name": "results",
                  "variant": "declaration",
                  "kind": 1024,
                  "flags": {
                    "isReadonly": true
                  },
                  "comment": {
                    "summary": [
                      {
                        "kind": "text",
                        "text": "All accumulated results as a typed tuple.\n\nAllows accessing any previous result by index:\n- "
                      },
                      {
                        "kind": "code",
                        "text": "`ctx.results[0]`"
                      },
                      {
                        "kind": "text",
                        "text": " - First step's result\n- "
                      },
                      {
                        "kind": "code",
                        "text": "`ctx.results[1]`"
                      },
                      {
                        "kind": "text",
                        "text": " - Second step's result"
                      }
                    ]
                  },
                  "type": {
                    "type": "reference",
                    "target": 12419,
                    "name": "A",
                    "package": "@probitas-test/builder",
                    "refersToTypeParameter": true
                  }
                }
              ]
            }
          }
        ]
      }
    },
    {
      "id": 12345,
      "name": "Success",
      "variant": "declaration",
      "kind": 2097152,
      "flags": {},
      "typeParameters": [
        {
          "id": 12346,
          "name": "T",
          "variant": "typeParam",
          "kind": 131072,
          "flags": {}
        }
      ],
      "type": {
        "type": "tuple",
        "elements": [
          {
            "type": "namedTupleMember",
            "name": "error",
            "isOptional": false,
            "element": {
              "type": "intrinsic",
              "name": "undefined"
            }
          },
          {
            "type": "namedTupleMember",
            "name": "value",
            "isOptional": false,
            "element": {
              "type": "reference",
              "target": 12346,
              "name": "T",
              "package": "@probitas-test/probitas",
              "refersToTypeParameter": true
            }
          }
        ]
      }
    },
    {
      "id": 12365,
      "name": "isErrorObject",
      "variant": "declaration",
      "kind": 32,
      "flags": {
        "isConst": true
      },
      "comment": {
        "summary": [
          {
            "kind": "text",
            "text": "Check if a value is an error object"
          }
        ]
      },
      "type": {
        "type": "reflection",
        "declaration": {
          "id": 12366,
          "name": "__type",
          "variant": "declaration",
          "kind": 65536,
          "flags": {},
          "signatures": [
            {
              "id": 12367,
              "name": "__type",
              "variant": "signature",
              "kind": 4096,
              "flags": {},
              "parameters": [
                {
                  "id": 12368,
                  "name": "x",
                  "variant": "param",
                  "kind": 32768,
                  "flags": {},
                  "type": {
                    "type": "intrinsic",
                    "name": "unknown"
                  }
                }
              ],
              "type": {
                "type": "predicate",
                "name": "x",
                "asserts": false,
                "targetType": {
                  "type": "reference",
                  "target": 12358,
                  "name": "ErrorObject",
                  "package": "@probitas-test/probitas"
                }
              }
            }
          ]
        }
      },
      "defaultValue": "..."
    },
    {
      "id": 12319,
      "name": "alter",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12320,
          "name": "alter",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Alter the error of a function if an error is thrown."
              }
            ],
            "blockTags": [
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "The result of the function."
                  }
                ]
              },
              {
                "tag": "@throws",
                "content": [
                  {
                    "kind": "text",
                    "text": "The value of alt."
                  }
                ]
              },
              {
                "tag": "@example",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { assertThrows } from \"@std/assert\";\nimport { alter } from \"@core/errorutil/alter\";\n\nconsole.log(alter(() => 1, \"err2\")); // 1\nassertThrows(() => alter(() => { throw \"err1\" }, \"err2\"), \"err2\"); // \"err2\" is thrown\n```"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12321,
              "name": "T",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {}
            },
            {
              "id": 12322,
              "name": "E",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {}
            }
          ],
          "parameters": [
            {
              "id": 12323,
              "name": "fn",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The function to execute."
                  }
                ]
              },
              "type": {
                "type": "reflection",
                "declaration": {
                  "id": 12324,
                  "name": "__type",
                  "variant": "declaration",
                  "kind": 65536,
                  "flags": {},
                  "signatures": [
                    {
                      "id": 12325,
                      "name": "__type",
                      "variant": "signature",
                      "kind": 4096,
                      "flags": {},
                      "type": {
                        "type": "reference",
                        "target": 12321,
                        "name": "T",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    }
                  ]
                }
              }
            },
            {
              "id": 12326,
              "name": "alt",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The value to throw if an error is thrown."
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12322,
                "name": "E",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12321,
            "name": "T",
            "package": "@probitas-test/probitas",
            "refersToTypeParameter": true
          }
        }
      ]
    },
    {
      "id": 12327,
      "name": "alterElse",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12328,
          "name": "alterElse",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Alter the error of a function if an error is thrown."
              }
            ],
            "blockTags": [
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "The result of the function."
                  }
                ]
              },
              {
                "tag": "@throws",
                "content": [
                  {
                    "kind": "text",
                    "text": "The result of the modifier function."
                  }
                ]
              },
              {
                "tag": "@example",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { assertThrows } from \"@std/assert\";\nimport { alterElse } from \"@core/errorutil/alter-else\";\n\nconsole.log(alterElse(() => 1, () => \"err\")); // 1\nassertThrows(() => alterElse(() => { throw \"err\" }, (err) => \"new \" + err), \"new err\"); // \"new err\" is thrown\n```"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12329,
              "name": "T",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {}
            },
            {
              "id": 12330,
              "name": "E",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {}
            }
          ],
          "parameters": [
            {
              "id": 12331,
              "name": "fn",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The function to execute."
                  }
                ]
              },
              "type": {
                "type": "reflection",
                "declaration": {
                  "id": 12332,
                  "name": "__type",
                  "variant": "declaration",
                  "kind": 65536,
                  "flags": {},
                  "signatures": [
                    {
                      "id": 12333,
                      "name": "__type",
                      "variant": "signature",
                      "kind": 4096,
                      "flags": {},
                      "type": {
                        "type": "reference",
                        "target": 12329,
                        "name": "T",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    }
                  ]
                }
              }
            },
            {
              "id": 12334,
              "name": "elseFn",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reflection",
                "declaration": {
                  "id": 12335,
                  "name": "__type",
                  "variant": "declaration",
                  "kind": 65536,
                  "flags": {},
                  "signatures": [
                    {
                      "id": 12336,
                      "name": "__type",
                      "variant": "signature",
                      "kind": 4096,
                      "flags": {},
                      "parameters": [
                        {
                          "id": 12337,
                          "name": "err",
                          "variant": "param",
                          "kind": 32768,
                          "flags": {},
                          "type": {
                            "type": "intrinsic",
                            "name": "unknown"
                          }
                        }
                      ],
                      "type": {
                        "type": "reference",
                        "target": 12330,
                        "name": "E",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    }
                  ]
                }
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12329,
            "name": "T",
            "package": "@probitas-test/probitas",
            "refersToTypeParameter": true
          }
        }
      ]
    },
    {
      "id": 12109,
      "name": "assertSpyCall",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12110,
          "name": "assertSpyCall",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Asserts that a spy is called as expected."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { assertSpyCall, spy } from \"@std/testing/mock\";\n\nconst func = spy((a: number, b: number) => a + b);\n\nfunc(3, 4);\nfunc(5, 6);\n\n// asserts each call made to the spy function.\nassertSpyCall(func, 0, { args: [3, 4], returned: 7 });\nassertSpyCall(func, 1, { args: [5, 6], returned: 11 });\n```"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12111,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the spy function."
                  }
                ]
              }
            },
            {
              "id": 12112,
              "name": "Args",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The arguments type of the spy function."
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              }
            },
            {
              "id": 12113,
              "name": "Return",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The return type of the spy function."
                  }
                ]
              }
            }
          ],
          "parameters": [
            {
              "id": 12114,
              "name": "spy",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The spy to check"
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12280,
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12111,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12112,
                    "name": "Args",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12113,
                    "name": "Return",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "SpyLike",
                "package": "@probitas-test/probitas"
              }
            },
            {
              "id": 12115,
              "name": "callIndex",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The index of the call to check"
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "number"
              }
            },
            {
              "id": 12116,
              "name": "expected",
              "variant": "param",
              "kind": 32768,
              "flags": {
                "isOptional": true
              },
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The expected spy call."
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12305,
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12111,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12112,
                    "name": "Args",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12113,
                    "name": "Return",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "ExpectedSpyCall",
                "package": "@probitas-test/probitas"
              }
            }
          ],
          "type": {
            "type": "intrinsic",
            "name": "void"
          }
        }
      ]
    },
    {
      "id": 12125,
      "name": "assertSpyCallArg",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12126,
          "name": "assertSpyCallArg",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Asserts that a spy is called with a specific arg as expected."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { assertSpyCallArg, spy } from \"@std/testing/mock\";\n\nconst func = spy((a: number, b: number) => a + b);\n\nfunc(3, 4);\nfunc(5, 6);\n\n// asserts each call made to the spy function.\nassertSpyCallArg(func, 0, 0, 3);\nassertSpyCallArg(func, 0, 1, 4);\nassertSpyCallArg(func, 1, 0, 5);\nassertSpyCallArg(func, 1, 1, 6);\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "The actual argument."
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12127,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the spy function."
                  }
                ]
              }
            },
            {
              "id": 12128,
              "name": "Args",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The arguments type of the spy function."
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              }
            },
            {
              "id": 12129,
              "name": "Return",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The return type of the spy function."
                  }
                ]
              }
            },
            {
              "id": 12130,
              "name": "ExpectedArg",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The expected type of the argument for the spy to be called."
                  }
                ]
              }
            }
          ],
          "parameters": [
            {
              "id": 12131,
              "name": "spy",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The spy to check."
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12280,
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12127,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12128,
                    "name": "Args",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12129,
                    "name": "Return",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "SpyLike",
                "package": "@probitas-test/probitas"
              }
            },
            {
              "id": 12132,
              "name": "callIndex",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The index of the call to check."
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "number"
              }
            },
            {
              "id": 12133,
              "name": "argIndex",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The index of the arguments to check."
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "number"
              }
            },
            {
              "id": 12134,
              "name": "expected",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The expected argument."
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12130,
                "name": "ExpectedArg",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12130,
            "name": "ExpectedArg",
            "package": "@probitas-test/probitas",
            "refersToTypeParameter": true
          }
        }
      ]
    },
    {
      "id": 12135,
      "name": "assertSpyCallArgs",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12136,
          "name": "assertSpyCallArgs",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Asserts that an spy is called with a specific range of args as expected.\nIf a start and end index is not provided, the expected will be compared against all args.\nIf a start is provided without an end index, the expected will be compared against all args from the start index to the end.\nThe end index is not included in the range of args that are compared."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { assertSpyCallArgs, spy } from \"@std/testing/mock\";\n\nconst func = spy((a: number, b: number) => a + b);\n\nfunc(3, 4);\nfunc(5, 6);\n\n// asserts each call made to the spy function.\nassertSpyCallArgs(func, 0, [3, 4]);\nassertSpyCallArgs(func, 1, [5, 6]);\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "The actual arguments."
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12137,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the spy function."
                  }
                ]
              }
            },
            {
              "id": 12138,
              "name": "Args",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The arguments type of the spy function."
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              }
            },
            {
              "id": 12139,
              "name": "Return",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The return type of the spy function."
                  }
                ]
              }
            },
            {
              "id": 12140,
              "name": "ExpectedArgs",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The expected type of the arguments for the spy to be called."
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              }
            }
          ],
          "parameters": [
            {
              "id": 12141,
              "name": "spy",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The spy to check."
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12280,
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12137,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12138,
                    "name": "Args",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12139,
                    "name": "Return",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "SpyLike",
                "package": "@probitas-test/probitas"
              }
            },
            {
              "id": 12142,
              "name": "callIndex",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The index of the call to check."
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "number"
              }
            },
            {
              "id": 12143,
              "name": "expected",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The expected arguments."
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12140,
                "name": "ExpectedArgs",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12140,
            "name": "ExpectedArgs",
            "package": "@probitas-test/probitas",
            "refersToTypeParameter": true
          }
        },
        {
          "id": 12144,
          "name": "assertSpyCallArgs",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Asserts that an spy is called with a specific range of args as expected.\nIf a start and end index is not provided, the expected will be compared against all args.\nIf a start is provided without an end index, the expected will be compared against all args from the start index to the end.\nThe end index is not included in the range of args that are compared."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { assertSpyCallArgs, spy } from \"@std/testing/mock\";\n\nconst func = spy((...args) => {});\n\nfunc(0, 1, 2, 3, 4, 5);\n\nassertSpyCallArgs(func, 0, 3, [3, 4, 5]);\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "The actual arguments."
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12145,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the spy function."
                  }
                ]
              }
            },
            {
              "id": 12146,
              "name": "Args",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The arguments type of the spy function."
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              }
            },
            {
              "id": 12147,
              "name": "Return",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The return type of the spy function."
                  }
                ]
              }
            },
            {
              "id": 12148,
              "name": "ExpectedArgs",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The expected type of the arguments for the spy to be called."
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              }
            }
          ],
          "parameters": [
            {
              "id": 12149,
              "name": "spy",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The spy to check."
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12280,
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12145,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12146,
                    "name": "Args",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12147,
                    "name": "Return",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "SpyLike",
                "package": "@probitas-test/probitas"
              }
            },
            {
              "id": 12150,
              "name": "callIndex",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The index of the call to check."
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "number"
              }
            },
            {
              "id": 12151,
              "name": "argsStart",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The start index of the arguments to check. If not specified, it checks the arguments from the beignning."
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "number"
              }
            },
            {
              "id": 12152,
              "name": "expected",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The expected arguments."
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12148,
                "name": "ExpectedArgs",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12148,
            "name": "ExpectedArgs",
            "package": "@probitas-test/probitas",
            "refersToTypeParameter": true
          }
        },
        {
          "id": 12153,
          "name": "assertSpyCallArgs",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Asserts that an spy is called with a specific range of args as expected.\nIf a start and end index is not provided, the expected will be compared against all args.\nIf a start is provided without an end index, the expected will be compared against all args from the start index to the end.\nThe end index is not included in the range of args that are compared."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { assertSpyCallArgs, spy } from \"@std/testing/mock\";\n\nconst func = spy((...args) => {});\n\nfunc(0, 1, 2, 3, 4, 5);\n\nassertSpyCallArgs(func, 0, 3, 4, [3]);\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "The actual arguments"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12154,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the spy function."
                  }
                ]
              }
            },
            {
              "id": 12155,
              "name": "Args",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The arguments type of the spy function."
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              }
            },
            {
              "id": 12156,
              "name": "Return",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The return type of the spy function."
                  }
                ]
              }
            },
            {
              "id": 12157,
              "name": "ExpectedArgs",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The expected type of the arguments for the spy to be called."
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              }
            }
          ],
          "parameters": [
            {
              "id": 12158,
              "name": "spy",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The spy to check"
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12280,
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12154,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12155,
                    "name": "Args",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12156,
                    "name": "Return",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "SpyLike",
                "package": "@probitas-test/probitas"
              }
            },
            {
              "id": 12159,
              "name": "callIndex",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The index of the call to check"
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "number"
              }
            },
            {
              "id": 12160,
              "name": "argsStart",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The start index of the arguments to check. If not specified, it checks the arguments from the beignning."
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "number"
              }
            },
            {
              "id": 12161,
              "name": "argsEnd",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The end index of the arguments to check. If not specified, it checks the arguments until the end."
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "number"
              }
            },
            {
              "id": 12162,
              "name": "expected",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The expected arguments."
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12157,
                "name": "ExpectedArgs",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12157,
            "name": "ExpectedArgs",
            "package": "@probitas-test/probitas",
            "refersToTypeParameter": true
          }
        }
      ]
    },
    {
      "id": 12117,
      "name": "assertSpyCallAsync",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12118,
          "name": "assertSpyCallAsync",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Asserts that an async spy is called as expected."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { assertSpyCallAsync, spy } from \"@std/testing/mock\";\n\nconst func = spy((a: number, b: number) => new Promise((resolve) => {\n  setTimeout(() => resolve(a + b), 100)\n}));\n\nawait func(3, 4);\nawait func(5, 6);\n\n// asserts each call made to the spy function.\nawait assertSpyCallAsync(func, 0, { args: [3, 4], returned: 7 });\nawait assertSpyCallAsync(func, 1, { args: [5, 6], returned: 11 });\n```"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12119,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the spy function."
                  }
                ]
              }
            },
            {
              "id": 12120,
              "name": "Args",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The arguments type of the spy function."
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              }
            },
            {
              "id": 12121,
              "name": "Return",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The return type of the spy function."
                  }
                ]
              }
            }
          ],
          "parameters": [
            {
              "id": 12122,
              "name": "spy",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The spy to check"
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12280,
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12119,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12120,
                    "name": "Args",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": {
                      "packageName": "typescript",
                      "packagePath": "lib/lib.es5.d.ts",
                      "qualifiedName": "Promise"
                    },
                    "typeArguments": [
                      {
                        "type": "reference",
                        "target": 12121,
                        "name": "Return",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    ],
                    "name": "Promise",
                    "package": "typescript"
                  }
                ],
                "name": "SpyLike",
                "package": "@probitas-test/probitas"
              }
            },
            {
              "id": 12123,
              "name": "callIndex",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The index of the call to check"
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "number"
              }
            },
            {
              "id": 12124,
              "name": "expected",
              "variant": "param",
              "kind": 32768,
              "flags": {
                "isOptional": true
              },
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The expected spy call."
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12305,
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12119,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12120,
                    "name": "Args",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "union",
                    "types": [
                      {
                        "type": "reference",
                        "target": 12121,
                        "name": "Return",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      },
                      {
                        "type": "reference",
                        "target": {
                          "packageName": "typescript",
                          "packagePath": "lib/lib.es5.d.ts",
                          "qualifiedName": "Promise"
                        },
                        "typeArguments": [
                          {
                            "type": "reference",
                            "target": 12121,
                            "name": "Return",
                            "package": "@probitas-test/probitas",
                            "refersToTypeParameter": true
                          }
                        ],
                        "name": "Promise",
                        "package": "typescript"
                      }
                    ]
                  }
                ],
                "name": "ExpectedSpyCall",
                "package": "@probitas-test/probitas"
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": {
              "packageName": "typescript",
              "packagePath": "lib/lib.es5.d.ts",
              "qualifiedName": "Promise"
            },
            "typeArguments": [
              {
                "type": "intrinsic",
                "name": "void"
              }
            ],
            "name": "Promise",
            "package": "typescript"
          }
        }
      ]
    },
    {
      "id": 12102,
      "name": "assertSpyCalls",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12103,
          "name": "assertSpyCalls",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Asserts that a spy is called as much as expected and no more."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { assertSpyCalls, spy } from \"@std/testing/mock\";\n\nconst func = spy();\n\nfunc();\nfunc();\n\nassertSpyCalls(func, 2);\n```"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12104,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the spy function."
                  }
                ]
              }
            },
            {
              "id": 12105,
              "name": "Args",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The arguments type of the spy function."
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              }
            },
            {
              "id": 12106,
              "name": "Return",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The return type of the spy function."
                  }
                ]
              }
            }
          ],
          "parameters": [
            {
              "id": 12107,
              "name": "spy",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The spy to check"
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12280,
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12104,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12105,
                    "name": "Args",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12106,
                    "name": "Return",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "SpyLike",
                "package": "@probitas-test/probitas"
              }
            },
            {
              "id": 12108,
              "name": "expectedCalls",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The number of the expected calls."
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "number"
              }
            }
          ],
          "type": {
            "type": "intrinsic",
            "name": "void"
          }
        }
      ]
    },
    {
      "id": 12338,
      "name": "attempt",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12339,
          "name": "attempt",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Attempt to execute a function and return a Result<T, E>."
              }
            ],
            "blockTags": [
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "A Result<T, E> where T is the return type of the function and E is the error type."
                  }
                ]
              },
              {
                "tag": "@example",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { attempt } from \"@core/errorutil/attempt\";\n\nconsole.log(attempt(() => 1)); // [undefined, 1]\nconsole.log(attempt(() => { throw \"err\" })); // [\"err\", undefined]\n```"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12340,
              "name": "T",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {}
            },
            {
              "id": 12341,
              "name": "E",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "default": {
                "type": "intrinsic",
                "name": "unknown"
              }
            }
          ],
          "parameters": [
            {
              "id": 12342,
              "name": "fn",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The function to execute."
                  }
                ]
              },
              "type": {
                "type": "reflection",
                "declaration": {
                  "id": 12343,
                  "name": "__type",
                  "variant": "declaration",
                  "kind": 65536,
                  "flags": {},
                  "signatures": [
                    {
                      "id": 12344,
                      "name": "__type",
                      "variant": "signature",
                      "kind": 4096,
                      "flags": {},
                      "type": {
                        "type": "reference",
                        "target": 12340,
                        "name": "T",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    }
                  ]
                }
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12349,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12340,
                "name": "T",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              },
              {
                "type": "reference",
                "target": 12341,
                "name": "E",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            ],
            "name": "Result",
            "package": "@probitas-test/probitas"
          }
        }
      ]
    },
    {
      "id": 12422,
      "name": "expect",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12423,
          "name": "expect",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Unified expect function that dispatches to the appropriate expectation function\nbased on the type of the input object."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { expect } from \"./expect.ts\";\n\n// Falls back to expectAnything (chainable @std/expect) for other values\nexpect(42).toBe(42).toBeGreaterThan(40);\nexpect(\"hello world\").toContain(\"world\");\nexpect({ a: 1, b: 2 }).toMatchObject({ a: 1 });\n```"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12424,
              "name": "T",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "type": {
                "type": "reference",
                "target": 12453,
                "name": "HttpResponse",
                "package": "@probitas-test/client-http"
              }
            }
          ],
          "parameters": [
            {
              "id": 12425,
              "name": "value",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "@probitas-test/expect",
                  "packagePath": "dist/expect.d.ts",
                  "qualifiedName": "NotAny"
                },
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12424,
                    "name": "T",
                    "package": "@probitas-test/expect",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "NotAny",
                "package": "@probitas-test/expect"
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": {
              "packageName": "@probitas-test/expect",
              "packagePath": "dist/http.d.ts",
              "qualifiedName": "HttpResponseExpectation"
            },
            "name": "HttpResponseExpectation",
            "package": "@probitas-test/expect"
          }
        },
        {
          "id": 12426,
          "name": "expect",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Unified expect function that dispatches to the appropriate expectation function\nbased on the type of the input object."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { expect } from \"./expect.ts\";\n\n// Falls back to expectAnything (chainable @std/expect) for other values\nexpect(42).toBe(42).toBeGreaterThan(40);\nexpect(\"hello world\").toContain(\"world\");\nexpect({ a: 1, b: 2 }).toMatchObject({ a: 1 });\n```"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12427,
              "name": "T",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "type": {
                "type": "reference",
                "target": 12449,
                "name": "ConnectRpcResponse",
                "package": "@probitas-test/client-connectrpc"
              }
            }
          ],
          "parameters": [
            {
              "id": 12428,
              "name": "value",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "@probitas-test/expect",
                  "packagePath": "dist/expect.d.ts",
                  "qualifiedName": "NotAny"
                },
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12427,
                    "name": "T",
                    "package": "@probitas-test/expect",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "NotAny",
                "package": "@probitas-test/expect"
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": {
              "packageName": "@probitas-test/expect",
              "packagePath": "dist/connectrpc.d.ts",
              "qualifiedName": "ConnectRpcResponseExpectation"
            },
            "name": "ConnectRpcResponseExpectation",
            "package": "@probitas-test/expect"
          }
        },
        {
          "id": 12429,
          "name": "expect",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Unified expect function that dispatches to the appropriate expectation function\nbased on the type of the input object."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { expect } from \"./expect.ts\";\n\n// Falls back to expectAnything (chainable @std/expect) for other values\nexpect(42).toBe(42).toBeGreaterThan(40);\nexpect(\"hello world\").toContain(\"world\");\nexpect({ a: 1, b: 2 }).toMatchObject({ a: 1 });\n```"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12430,
              "name": "T",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "type": {
                "type": "reference",
                "target": 12451,
                "name": "GraphqlResponse",
                "package": "@probitas-test/client-graphql"
              }
            }
          ],
          "parameters": [
            {
              "id": 12431,
              "name": "value",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "@probitas-test/expect",
                  "packagePath": "dist/expect.d.ts",
                  "qualifiedName": "NotAny"
                },
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12430,
                    "name": "T",
                    "package": "@probitas-test/expect",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "NotAny",
                "package": "@probitas-test/expect"
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": {
              "packageName": "@probitas-test/expect",
              "packagePath": "dist/graphql.d.ts",
              "qualifiedName": "GraphqlResponseExpectation"
            },
            "name": "GraphqlResponseExpectation",
            "package": "@probitas-test/expect"
          }
        },
        {
          "id": 12432,
          "name": "expect",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Unified expect function that dispatches to the appropriate expectation function\nbased on the type of the input object."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { expect } from \"./expect.ts\";\n\n// Falls back to expectAnything (chainable @std/expect) for other values\nexpect(42).toBe(42).toBeGreaterThan(40);\nexpect(\"hello world\").toContain(\"world\");\nexpect({ a: 1, b: 2 }).toMatchObject({ a: 1 });\n```"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12433,
              "name": "T",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "type": {
                "type": "reference",
                "target": 12460,
                "name": "SqlQueryResult",
                "package": "@probitas-test/client-sql"
              }
            }
          ],
          "parameters": [
            {
              "id": 12434,
              "name": "value",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "@probitas-test/expect",
                  "packagePath": "dist/expect.d.ts",
                  "qualifiedName": "NotAny"
                },
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12433,
                    "name": "T",
                    "package": "@probitas-test/expect",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "NotAny",
                "package": "@probitas-test/expect"
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": {
              "packageName": "@probitas-test/expect",
              "packagePath": "dist/sql.d.ts",
              "qualifiedName": "SqlQueryResultExpectation"
            },
            "name": "SqlQueryResultExpectation",
            "package": "@probitas-test/expect"
          }
        },
        {
          "id": 12435,
          "name": "expect",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Unified expect function that dispatches to the appropriate expectation function\nbased on the type of the input object."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { expect } from \"./expect.ts\";\n\n// Falls back to expectAnything (chainable @std/expect) for other values\nexpect(42).toBe(42).toBeGreaterThan(40);\nexpect(\"hello world\").toContain(\"world\");\nexpect({ a: 1, b: 2 }).toMatchObject({ a: 1 });\n```"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12436,
              "name": "T",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "type": {
                "type": "reference",
                "target": 12458,
                "name": "RedisResult",
                "package": "@probitas-test/client-redis"
              }
            }
          ],
          "parameters": [
            {
              "id": 12437,
              "name": "value",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "@probitas-test/expect",
                  "packagePath": "dist/expect.d.ts",
                  "qualifiedName": "NotAny"
                },
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12436,
                    "name": "T",
                    "package": "@probitas-test/expect",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "NotAny",
                "package": "@probitas-test/expect"
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": {
              "packageName": "@probitas-test/expect",
              "packagePath": "dist/redis.d.ts",
              "qualifiedName": "RedisExpectation"
            },
            "typeArguments": [
              {
                "type": "reference",
                "target": 12436,
                "name": "T",
                "package": "@probitas-test/expect",
                "refersToTypeParameter": true
              }
            ],
            "name": "RedisExpectation",
            "package": "@probitas-test/expect"
          }
        },
        {
          "id": 12438,
          "name": "expect",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Unified expect function that dispatches to the appropriate expectation function\nbased on the type of the input object."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { expect } from \"./expect.ts\";\n\n// Falls back to expectAnything (chainable @std/expect) for other values\nexpect(42).toBe(42).toBeGreaterThan(40);\nexpect(\"hello world\").toContain(\"world\");\nexpect({ a: 1, b: 2 }).toMatchObject({ a: 1 });\n```"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12439,
              "name": "T",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "type": {
                "type": "reference",
                "target": 12455,
                "name": "MongoResult",
                "package": "@probitas-test/client-mongodb"
              }
            }
          ],
          "parameters": [
            {
              "id": 12440,
              "name": "value",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "@probitas-test/expect",
                  "packagePath": "dist/expect.d.ts",
                  "qualifiedName": "NotAny"
                },
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12439,
                    "name": "T",
                    "package": "@probitas-test/expect",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "NotAny",
                "package": "@probitas-test/expect"
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": {
              "packageName": "@probitas-test/expect",
              "packagePath": "dist/mongodb.d.ts",
              "qualifiedName": "MongoExpectation"
            },
            "typeArguments": [
              {
                "type": "reference",
                "target": 12439,
                "name": "T",
                "package": "@probitas-test/expect",
                "refersToTypeParameter": true
              }
            ],
            "name": "MongoExpectation",
            "package": "@probitas-test/expect"
          }
        },
        {
          "id": 12441,
          "name": "expect",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Unified expect function that dispatches to the appropriate expectation function\nbased on the type of the input object."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { expect } from \"./expect.ts\";\n\n// Falls back to expectAnything (chainable @std/expect) for other values\nexpect(42).toBe(42).toBeGreaterThan(40);\nexpect(\"hello world\").toContain(\"world\");\nexpect({ a: 1, b: 2 }).toMatchObject({ a: 1 });\n```"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12442,
              "name": "T",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "type": {
                "type": "reference",
                "target": 12457,
                "name": "RabbitMqResult",
                "package": "@probitas-test/client-rabbitmq"
              }
            }
          ],
          "parameters": [
            {
              "id": 12443,
              "name": "value",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "@probitas-test/expect",
                  "packagePath": "dist/expect.d.ts",
                  "qualifiedName": "NotAny"
                },
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12442,
                    "name": "T",
                    "package": "@probitas-test/expect",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "NotAny",
                "package": "@probitas-test/expect"
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": {
              "packageName": "@probitas-test/expect",
              "packagePath": "dist/rabbitmq.d.ts",
              "qualifiedName": "RabbitMqExpectation"
            },
            "typeArguments": [
              {
                "type": "reference",
                "target": 12442,
                "name": "T",
                "package": "@probitas-test/expect",
                "refersToTypeParameter": true
              }
            ],
            "name": "RabbitMqExpectation",
            "package": "@probitas-test/expect"
          }
        },
        {
          "id": 12444,
          "name": "expect",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Unified expect function that dispatches to the appropriate expectation function\nbased on the type of the input object."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { expect } from \"./expect.ts\";\n\n// Falls back to expectAnything (chainable @std/expect) for other values\nexpect(42).toBe(42).toBeGreaterThan(40);\nexpect(\"hello world\").toContain(\"world\");\nexpect({ a: 1, b: 2 }).toMatchObject({ a: 1 });\n```"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12445,
              "name": "T",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "type": {
                "type": "reference",
                "target": 12462,
                "name": "SqsResult",
                "package": "@probitas-test/client-sqs"
              }
            }
          ],
          "parameters": [
            {
              "id": 12446,
              "name": "value",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "@probitas-test/expect",
                  "packagePath": "dist/expect.d.ts",
                  "qualifiedName": "NotAny"
                },
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12445,
                    "name": "T",
                    "package": "@probitas-test/expect",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "NotAny",
                "package": "@probitas-test/expect"
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": {
              "packageName": "@probitas-test/expect",
              "packagePath": "dist/sqs.d.ts",
              "qualifiedName": "SqsExpectation"
            },
            "typeArguments": [
              {
                "type": "reference",
                "target": 12445,
                "name": "T",
                "package": "@probitas-test/expect",
                "refersToTypeParameter": true
              }
            ],
            "name": "SqsExpectation",
            "package": "@probitas-test/expect"
          }
        },
        {
          "id": 12447,
          "name": "expect",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Unified expect function that dispatches to the appropriate expectation function\nbased on the type of the input object."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { expect } from \"./expect.ts\";\n\n// Falls back to expectAnything (chainable @std/expect) for other values\nexpect(42).toBe(42).toBeGreaterThan(40);\nexpect(\"hello world\").toContain(\"world\");\nexpect({ a: 1, b: 2 }).toMatchObject({ a: 1 });\n```"
                  }
                ]
              }
            ]
          },
          "parameters": [
            {
              "id": 12448,
              "name": "value",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "intrinsic",
                "name": "any"
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": {
              "packageName": "@probitas-test/expect",
              "packagePath": "dist/anything.d.ts",
              "qualifiedName": "AnythingExpectation"
            },
            "name": "AnythingExpectation",
            "package": "@probitas-test/expect"
          }
        }
      ]
    },
    {
      "id": 12355,
      "name": "fromErrorObject",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12356,
          "name": "fromErrorObject",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Convert an error object to an error"
              }
            ]
          },
          "parameters": [
            {
              "id": 12357,
              "name": "obj",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reference",
                "target": 12358,
                "name": "ErrorObject",
                "package": "@probitas-test/probitas"
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": {
              "packageName": "typescript",
              "packagePath": "lib/lib.es5.d.ts",
              "qualifiedName": "Error"
            },
            "name": "Error",
            "package": "typescript"
          }
        }
      ]
    },
    {
      "id": 12028,
      "name": "mockSession",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12029,
          "name": "mockSession",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Creates a session that tracks all mocks created before it's restored.\nIf a callback is provided, it restores all mocks created within it."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { mockSession, restore, stub } from \"@std/testing/mock\";\nimport { assertEquals, assertNotEquals } from \"@std/assert\";\n\nconst setTimeout = globalThis.setTimeout;\nconst id = mockSession();\n\nstub(globalThis, \"setTimeout\");\n\nassertNotEquals(globalThis.setTimeout, setTimeout);\n\nrestore(id);\n\nassertEquals(globalThis.setTimeout, setTimeout);\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "The id of the created session."
                  }
                ]
              }
            ]
          },
          "type": {
            "type": "intrinsic",
            "name": "number"
          }
        },
        {
          "id": 12030,
          "name": "mockSession",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Creates a session that tracks all mocks created before it's restored.\nIf a callback is provided, it restores all mocks created within it."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { mockSession, restore, stub } from \"@std/testing/mock\";\nimport { assertEquals, assertNotEquals } from \"@std/assert\";\n\nconst setTimeout = globalThis.setTimeout;\nconst session = mockSession(() => {\n  stub(globalThis, \"setTimeout\");\n  assertNotEquals(globalThis.setTimeout, setTimeout);\n});\n\nsession();\n\nassertEquals(globalThis.setTimeout, setTimeout); // stub is restored\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "The function to execute the session."
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12031,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the function."
                  }
                ]
              }
            },
            {
              "id": 12032,
              "name": "Args",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The arguments type of the function."
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              }
            },
            {
              "id": 12033,
              "name": "Return",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The return type of the function."
                  }
                ]
              }
            }
          ],
          "parameters": [
            {
              "id": 12034,
              "name": "func",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The function to be used for the created session."
                  }
                ]
              },
              "type": {
                "type": "reflection",
                "declaration": {
                  "id": 12035,
                  "name": "__type",
                  "variant": "declaration",
                  "kind": 65536,
                  "flags": {},
                  "signatures": [
                    {
                      "id": 12036,
                      "name": "__type",
                      "variant": "signature",
                      "kind": 4096,
                      "flags": {},
                      "parameters": [
                        {
                          "id": 12037,
                          "name": "this",
                          "variant": "param",
                          "kind": 32768,
                          "flags": {},
                          "type": {
                            "type": "reference",
                            "target": 12031,
                            "name": "Self",
                            "package": "@probitas-test/probitas",
                            "refersToTypeParameter": true
                          }
                        },
                        {
                          "id": 12038,
                          "name": "args",
                          "variant": "param",
                          "kind": 32768,
                          "flags": {
                            "isRest": true
                          },
                          "type": {
                            "type": "reference",
                            "target": 12032,
                            "name": "Args",
                            "package": "@probitas-test/probitas",
                            "refersToTypeParameter": true
                          }
                        }
                      ],
                      "type": {
                        "type": "reference",
                        "target": 12033,
                        "name": "Return",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    }
                  ]
                }
              }
            }
          ],
          "type": {
            "type": "reflection",
            "declaration": {
              "id": 12039,
              "name": "__type",
              "variant": "declaration",
              "kind": 65536,
              "flags": {},
              "signatures": [
                {
                  "id": 12040,
                  "name": "__type",
                  "variant": "signature",
                  "kind": 4096,
                  "flags": {},
                  "parameters": [
                    {
                      "id": 12041,
                      "name": "this",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {},
                      "type": {
                        "type": "reference",
                        "target": 12031,
                        "name": "Self",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    },
                    {
                      "id": 12042,
                      "name": "args",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {
                        "isRest": true
                      },
                      "type": {
                        "type": "reference",
                        "target": 12032,
                        "name": "Args",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    }
                  ],
                  "type": {
                    "type": "reference",
                    "target": 12033,
                    "name": "Return",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                }
              ]
            }
          }
        }
      ]
    },
    {
      "id": 12043,
      "name": "mockSessionAsync",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12044,
          "name": "mockSessionAsync",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Creates an async session that tracks all mocks created before the promise resolves."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { mockSessionAsync, restore, stub } from \"@std/testing/mock\";\nimport { assertEquals, assertNotEquals } from \"@std/assert\";\n\nconst setTimeout = globalThis.setTimeout;\nconst session = mockSessionAsync(async () => {\n  stub(globalThis, \"setTimeout\");\n  assertNotEquals(globalThis.setTimeout, setTimeout);\n});\n\nawait session();\n\nassertEquals(globalThis.setTimeout, setTimeout); // stub is restored\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "The return value of the function."
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12045,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the function."
                  }
                ]
              }
            },
            {
              "id": 12046,
              "name": "Args",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The arguments type of the function."
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              }
            },
            {
              "id": 12047,
              "name": "Return",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The return type of the function."
                  }
                ]
              }
            }
          ],
          "parameters": [
            {
              "id": 12048,
              "name": "func",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The function."
                  }
                ]
              },
              "type": {
                "type": "reflection",
                "declaration": {
                  "id": 12049,
                  "name": "__type",
                  "variant": "declaration",
                  "kind": 65536,
                  "flags": {},
                  "signatures": [
                    {
                      "id": 12050,
                      "name": "__type",
                      "variant": "signature",
                      "kind": 4096,
                      "flags": {},
                      "parameters": [
                        {
                          "id": 12051,
                          "name": "this",
                          "variant": "param",
                          "kind": 32768,
                          "flags": {},
                          "type": {
                            "type": "reference",
                            "target": 12045,
                            "name": "Self",
                            "package": "@probitas-test/probitas",
                            "refersToTypeParameter": true
                          }
                        },
                        {
                          "id": 12052,
                          "name": "args",
                          "variant": "param",
                          "kind": 32768,
                          "flags": {
                            "isRest": true
                          },
                          "type": {
                            "type": "reference",
                            "target": 12046,
                            "name": "Args",
                            "package": "@probitas-test/probitas",
                            "refersToTypeParameter": true
                          }
                        }
                      ],
                      "type": {
                        "type": "reference",
                        "target": {
                          "packageName": "typescript",
                          "packagePath": "lib/lib.es5.d.ts",
                          "qualifiedName": "Promise"
                        },
                        "typeArguments": [
                          {
                            "type": "reference",
                            "target": 12047,
                            "name": "Return",
                            "package": "@probitas-test/probitas",
                            "refersToTypeParameter": true
                          }
                        ],
                        "name": "Promise",
                        "package": "typescript"
                      }
                    }
                  ]
                }
              }
            }
          ],
          "type": {
            "type": "reflection",
            "declaration": {
              "id": 12053,
              "name": "__type",
              "variant": "declaration",
              "kind": 65536,
              "flags": {},
              "signatures": [
                {
                  "id": 12054,
                  "name": "__type",
                  "variant": "signature",
                  "kind": 4096,
                  "flags": {},
                  "parameters": [
                    {
                      "id": 12055,
                      "name": "this",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {},
                      "type": {
                        "type": "reference",
                        "target": 12045,
                        "name": "Self",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    },
                    {
                      "id": 12056,
                      "name": "args",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {
                        "isRest": true
                      },
                      "type": {
                        "type": "reference",
                        "target": 12046,
                        "name": "Args",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    }
                  ],
                  "type": {
                    "type": "reference",
                    "target": {
                      "packageName": "typescript",
                      "packagePath": "lib/lib.es5.d.ts",
                      "qualifiedName": "Promise"
                    },
                    "typeArguments": [
                      {
                        "type": "reference",
                        "target": 12047,
                        "name": "Return",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    ],
                    "name": "Promise",
                    "package": "typescript"
                  }
                }
              ]
            }
          }
        }
      ]
    },
    {
      "id": 12369,
      "name": "raise",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12370,
          "name": "raise",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Throw an error.\n\nThis is function thus can be used as an expression.\n\n"
              },
              {
                "kind": "code",
                "text": "```typescript\nimport { raise } from \"@core/errorutil/raise\";\n\nconst fn = () => raise(new Error(\"fail\"));\n```"
              }
            ]
          },
          "parameters": [
            {
              "id": 12371,
              "name": "err",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "intrinsic",
                "name": "unknown"
              }
            }
          ],
          "type": {
            "type": "intrinsic",
            "name": "never"
          }
        }
      ]
    },
    {
      "id": 12200,
      "name": "resolvesNext",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12201,
          "name": "resolvesNext",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Creates a function that resolves the awaited iterable values. Any awaited iterable values that are errors will be thrown."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { resolvesNext } from \"@std/testing/mock\";\nimport { assertEquals, assertRejects } from \"@std/assert\";\n\nconst func = resolvesNext([1, 2, new Error(\"foo\"), 3]);\nassertEquals(await func(), 1);\nassertEquals(await func(), 2);\nassertRejects(() => func(), Error, \"foo\");\nassertEquals(await func(), 3);\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "A function that resolves the awaited iterable values"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12202,
              "name": "Return",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The type of each item of the iterable"
                  }
                ]
              }
            },
            {
              "id": 12203,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the returned function"
                  }
                ]
              },
              "default": {
                "type": "intrinsic",
                "name": "any"
              }
            },
            {
              "id": 12204,
              "name": "Args",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The type of arguments of the returned function"
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              },
              "default": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "any"
                }
              }
            }
          ],
          "parameters": [
            {
              "id": 12205,
              "name": "iterable",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The iterable to use"
                  }
                ]
              },
              "type": {
                "type": "union",
                "types": [
                  {
                    "type": "reference",
                    "target": {
                      "packageName": "typescript",
                      "packagePath": "lib/lib.es2015.iterable.d.ts",
                      "qualifiedName": "Iterable"
                    },
                    "typeArguments": [
                      {
                        "type": "union",
                        "types": [
                          {
                            "type": "reference",
                            "target": {
                              "packageName": "typescript",
                              "packagePath": "lib/lib.es5.d.ts",
                              "qualifiedName": "Error"
                            },
                            "name": "Error",
                            "package": "typescript"
                          },
                          {
                            "type": "reference",
                            "target": 12202,
                            "name": "Return",
                            "package": "@probitas-test/probitas",
                            "refersToTypeParameter": true
                          },
                          {
                            "type": "reference",
                            "target": {
                              "packageName": "typescript",
                              "packagePath": "lib/lib.es5.d.ts",
                              "qualifiedName": "Promise"
                            },
                            "typeArguments": [
                              {
                                "type": "union",
                                "types": [
                                  {
                                    "type": "reference",
                                    "target": {
                                      "packageName": "typescript",
                                      "packagePath": "lib/lib.es5.d.ts",
                                      "qualifiedName": "Error"
                                    },
                                    "name": "Error",
                                    "package": "typescript"
                                  },
                                  {
                                    "type": "reference",
                                    "target": 12202,
                                    "name": "Return",
                                    "package": "@probitas-test/probitas",
                                    "refersToTypeParameter": true
                                  }
                                ]
                              }
                            ],
                            "name": "Promise",
                            "package": "typescript"
                          }
                        ]
                      },
                      {
                        "type": "intrinsic",
                        "name": "any"
                      },
                      {
                        "type": "intrinsic",
                        "name": "any"
                      }
                    ],
                    "name": "Iterable",
                    "package": "typescript"
                  },
                  {
                    "type": "reference",
                    "target": {
                      "packageName": "typescript",
                      "packagePath": "lib/lib.es2018.asynciterable.d.ts",
                      "qualifiedName": "AsyncIterable"
                    },
                    "typeArguments": [
                      {
                        "type": "union",
                        "types": [
                          {
                            "type": "reference",
                            "target": {
                              "packageName": "typescript",
                              "packagePath": "lib/lib.es5.d.ts",
                              "qualifiedName": "Error"
                            },
                            "name": "Error",
                            "package": "typescript"
                          },
                          {
                            "type": "reference",
                            "target": 12202,
                            "name": "Return",
                            "package": "@probitas-test/probitas",
                            "refersToTypeParameter": true
                          },
                          {
                            "type": "reference",
                            "target": {
                              "packageName": "typescript",
                              "packagePath": "lib/lib.es5.d.ts",
                              "qualifiedName": "Promise"
                            },
                            "typeArguments": [
                              {
                                "type": "union",
                                "types": [
                                  {
                                    "type": "reference",
                                    "target": {
                                      "packageName": "typescript",
                                      "packagePath": "lib/lib.es5.d.ts",
                                      "qualifiedName": "Error"
                                    },
                                    "name": "Error",
                                    "package": "typescript"
                                  },
                                  {
                                    "type": "reference",
                                    "target": 12202,
                                    "name": "Return",
                                    "package": "@probitas-test/probitas",
                                    "refersToTypeParameter": true
                                  }
                                ]
                              }
                            ],
                            "name": "Promise",
                            "package": "typescript"
                          }
                        ]
                      },
                      {
                        "type": "intrinsic",
                        "name": "any"
                      },
                      {
                        "type": "intrinsic",
                        "name": "any"
                      }
                    ],
                    "name": "AsyncIterable",
                    "package": "typescript"
                  }
                ]
              }
            }
          ],
          "type": {
            "type": "reflection",
            "declaration": {
              "id": 12206,
              "name": "__type",
              "variant": "declaration",
              "kind": 65536,
              "flags": {},
              "signatures": [
                {
                  "id": 12207,
                  "name": "__type",
                  "variant": "signature",
                  "kind": 4096,
                  "flags": {},
                  "parameters": [
                    {
                      "id": 12208,
                      "name": "this",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {},
                      "type": {
                        "type": "reference",
                        "target": 12203,
                        "name": "Self",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    },
                    {
                      "id": 12209,
                      "name": "args",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {
                        "isRest": true
                      },
                      "type": {
                        "type": "reference",
                        "target": 12204,
                        "name": "Args",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    }
                  ],
                  "type": {
                    "type": "reference",
                    "target": {
                      "packageName": "typescript",
                      "packagePath": "lib/lib.es5.d.ts",
                      "qualifiedName": "Promise"
                    },
                    "typeArguments": [
                      {
                        "type": "reference",
                        "target": 12202,
                        "name": "Return",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    ],
                    "name": "Promise",
                    "package": "typescript"
                  }
                }
              ]
            }
          }
        }
      ]
    },
    {
      "id": 12057,
      "name": "restore",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12058,
          "name": "restore",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Restores all mocks registered in the current session that have not already been restored.\nIf an id is provided, it will restore all mocks registered in the session associed with that id that have not already been restored."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { mockSession, restore, stub } from \"@std/testing/mock\";\nimport { assertEquals, assertNotEquals } from \"@std/assert\";\n\nconst setTimeout = globalThis.setTimeout;\n\nstub(globalThis, \"setTimeout\");\n\nassertNotEquals(globalThis.setTimeout, setTimeout);\n\nrestore();\n\nassertEquals(globalThis.setTimeout, setTimeout);\n```"
                  }
                ]
              }
            ]
          },
          "parameters": [
            {
              "id": 12059,
              "name": "id",
              "variant": "param",
              "kind": 32768,
              "flags": {
                "isOptional": true
              },
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The id of the session to restore. If not provided, all mocks registered in the current session are restored."
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "number"
              }
            }
          ],
          "type": {
            "type": "intrinsic",
            "name": "void"
          }
        }
      ]
    },
    {
      "id": 12171,
      "name": "returnsArg",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12172,
          "name": "returnsArg",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Creates a function that returns one of its arguments."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { returnsArg } from \"@std/testing/mock\";\nimport { assertEquals } from \"@std/assert\";\n\nconst func = returnsArg(1);\nassertEquals(func(1, 2, 3), 2);\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "A function that returns one of its arguments."
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12173,
              "name": "Arg",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The type of returned argument."
                  }
                ]
              }
            },
            {
              "id": 12174,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the returned function."
                  }
                ]
              },
              "default": {
                "type": "intrinsic",
                "name": "any"
              }
            }
          ],
          "parameters": [
            {
              "id": 12175,
              "name": "idx",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The index of the arguments to use."
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "number"
              }
            }
          ],
          "type": {
            "type": "reflection",
            "declaration": {
              "id": 12176,
              "name": "__type",
              "variant": "declaration",
              "kind": 65536,
              "flags": {},
              "signatures": [
                {
                  "id": 12177,
                  "name": "__type",
                  "variant": "signature",
                  "kind": 4096,
                  "flags": {},
                  "parameters": [
                    {
                      "id": 12178,
                      "name": "this",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {},
                      "type": {
                        "type": "reference",
                        "target": 12174,
                        "name": "Self",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    },
                    {
                      "id": 12179,
                      "name": "args",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {
                        "isRest": true
                      },
                      "type": {
                        "type": "array",
                        "elementType": {
                          "type": "reference",
                          "target": 12173,
                          "name": "Arg",
                          "package": "@probitas-test/probitas",
                          "refersToTypeParameter": true
                        }
                      }
                    }
                  ],
                  "type": {
                    "type": "union",
                    "types": [
                      {
                        "type": "reference",
                        "target": 12173,
                        "name": "Arg",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      },
                      {
                        "type": "intrinsic",
                        "name": "undefined"
                      }
                    ]
                  }
                }
              ]
            }
          }
        }
      ]
    },
    {
      "id": 12180,
      "name": "returnsArgs",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12181,
          "name": "returnsArgs",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Creates a function that returns its arguments or a subset of them. If end is specified, it will return arguments up to but not including the end."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { returnsArgs } from \"@std/testing/mock\";\nimport { assertEquals } from \"@std/assert\";\n\nconst func = returnsArgs();\nassertEquals(func(1, 2, 3), [1, 2, 3]);\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "A function that returns its arguments or a subset of them."
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12182,
              "name": "Args",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The arguments type of the returned function"
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              }
            },
            {
              "id": 12183,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the returned function"
                  }
                ]
              },
              "default": {
                "type": "intrinsic",
                "name": "any"
              }
            }
          ],
          "parameters": [
            {
              "id": 12184,
              "name": "start",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The start index of the arguments to return. Default is 0."
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "number"
              },
              "defaultValue": "0"
            },
            {
              "id": 12185,
              "name": "end",
              "variant": "param",
              "kind": 32768,
              "flags": {
                "isOptional": true
              },
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The end index of the arguments to return."
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "number"
              }
            }
          ],
          "type": {
            "type": "reflection",
            "declaration": {
              "id": 12186,
              "name": "__type",
              "variant": "declaration",
              "kind": 65536,
              "flags": {},
              "signatures": [
                {
                  "id": 12187,
                  "name": "__type",
                  "variant": "signature",
                  "kind": 4096,
                  "flags": {},
                  "parameters": [
                    {
                      "id": 12188,
                      "name": "this",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {},
                      "type": {
                        "type": "reference",
                        "target": 12183,
                        "name": "Self",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    },
                    {
                      "id": 12189,
                      "name": "args",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {
                        "isRest": true
                      },
                      "type": {
                        "type": "reference",
                        "target": 12182,
                        "name": "Args",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    }
                  ],
                  "type": {
                    "type": "reference",
                    "target": 12182,
                    "name": "Args",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                }
              ]
            }
          }
        }
      ]
    },
    {
      "id": 12190,
      "name": "returnsNext",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12191,
          "name": "returnsNext",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Creates a function that returns the iterable values. Any iterable values that are errors will be thrown."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { returnsNext } from \"@std/testing/mock\";\nimport { assertEquals, assertThrows } from \"@std/assert\";\n\nconst func = returnsNext([1, 2, new Error(\"foo\"), 3]);\nassertEquals(func(), 1);\nassertEquals(func(), 2);\nassertThrows(() => func(), Error, \"foo\");\nassertEquals(func(), 3);\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "A function that returns the iterable values"
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12192,
              "name": "Return",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The type of each item of the iterable"
                  }
                ]
              }
            },
            {
              "id": 12193,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the returned function"
                  }
                ]
              },
              "default": {
                "type": "intrinsic",
                "name": "any"
              }
            },
            {
              "id": 12194,
              "name": "Args",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The arguments type of the returned function"
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              },
              "default": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "any"
                }
              }
            }
          ],
          "parameters": [
            {
              "id": 12195,
              "name": "values",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The iterable values"
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "typescript",
                  "packagePath": "lib/lib.es2015.iterable.d.ts",
                  "qualifiedName": "Iterable"
                },
                "typeArguments": [
                  {
                    "type": "union",
                    "types": [
                      {
                        "type": "reference",
                        "target": {
                          "packageName": "typescript",
                          "packagePath": "lib/lib.es5.d.ts",
                          "qualifiedName": "Error"
                        },
                        "name": "Error",
                        "package": "typescript"
                      },
                      {
                        "type": "reference",
                        "target": 12192,
                        "name": "Return",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    ]
                  }
                ],
                "name": "Iterable",
                "package": "typescript"
              }
            }
          ],
          "type": {
            "type": "reflection",
            "declaration": {
              "id": 12196,
              "name": "__type",
              "variant": "declaration",
              "kind": 65536,
              "flags": {},
              "signatures": [
                {
                  "id": 12197,
                  "name": "__type",
                  "variant": "signature",
                  "kind": 4096,
                  "flags": {},
                  "parameters": [
                    {
                      "id": 12198,
                      "name": "this",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {},
                      "type": {
                        "type": "reference",
                        "target": 12193,
                        "name": "Self",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    },
                    {
                      "id": 12199,
                      "name": "args",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {
                        "isRest": true
                      },
                      "type": {
                        "type": "reference",
                        "target": 12194,
                        "name": "Args",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    }
                  ],
                  "type": {
                    "type": "reference",
                    "target": 12192,
                    "name": "Return",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                }
              ]
            }
          }
        }
      ]
    },
    {
      "id": 12163,
      "name": "returnsThis",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12164,
          "name": "returnsThis",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Creates a function that returns the instance the method was called on."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { returnsThis } from \"@std/testing/mock\";\nimport { assertEquals } from \"@std/assert\";\n\nconst func = returnsThis();\nconst obj = { func };\nassertEquals(obj.func(), obj);\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "A function that returns the instance the method was called on."
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12165,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the returned function."
                  }
                ]
              },
              "default": {
                "type": "intrinsic",
                "name": "any"
              }
            },
            {
              "id": 12166,
              "name": "Args",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The arguments type of the returned function."
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              },
              "default": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "any"
                }
              }
            }
          ],
          "type": {
            "type": "reflection",
            "declaration": {
              "id": 12167,
              "name": "__type",
              "variant": "declaration",
              "kind": 65536,
              "flags": {},
              "signatures": [
                {
                  "id": 12168,
                  "name": "__type",
                  "variant": "signature",
                  "kind": 4096,
                  "flags": {},
                  "parameters": [
                    {
                      "id": 12169,
                      "name": "this",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {},
                      "type": {
                        "type": "reference",
                        "target": 12165,
                        "name": "Self",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    },
                    {
                      "id": 12170,
                      "name": "args",
                      "variant": "param",
                      "kind": 32768,
                      "flags": {
                        "isRest": true
                      },
                      "type": {
                        "type": "reference",
                        "target": 12166,
                        "name": "Args",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    }
                  ],
                  "type": {
                    "type": "reference",
                    "target": 12165,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                }
              ]
            }
          }
        }
      ]
    },
    {
      "id": 12404,
      "name": "scenario",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12405,
          "name": "scenario",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Create a new scenario builder with a fluent API.\n\nThis is the primary entry point for defining scenarios. It returns a builder\nthat provides a type-safe, chainable API for constructing test scenarios."
              }
            ],
            "blockTags": [
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "New "
                  },
                  {
                    "kind": "inline-tag",
                    "tag": "@linkcode",
                    "text": "ScenarioBuilderInit",
                    "target": {
                      "packageName": "@probitas-test/builder",
                      "packagePath": "dist/scenario_builder.d.ts",
                      "qualifiedName": "ScenarioBuilderInit"
                    }
                  },
                  {
                    "kind": "text",
                    "text": " instance ready for chaining"
                  }
                ]
              },
              {
                "tag": "@remarks",
                "content": [
                  {
                    "kind": "text",
                    "text": "The builder pattern enables:\n- **Type-safe chaining**: Return values flow through steps with full type inference\n- **Resource management**: Automatic lifecycle handling with Disposable support\n- **Flexible configuration**: Override defaults at scenario or step level"
                  }
                ]
              },
              {
                "tag": "@example",
                "name": "Basic scenario with type-safe step chaining",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { scenario } from \"@probitas-test/builder\";\n\n// Mock user service for example\nconst createUser = (_data: { email: string }) =>\n  Promise.resolve({ id: \"user-123\" });\nconst verifyEmail = (_userId: string) => Promise.resolve();\n\nexport default scenario(\"User Registration\")\n  .step(\"Create user\", async () => {\n    const user = await createUser({ email: \"test@example.com\" });\n    return { userId: user.id };\n  })\n  .step(\"Verify email\", async (ctx) => {\n    // ctx.previous is typed as { userId: string }\n    await verifyEmail(ctx.previous.userId);\n  })\n  .build();\n```"
                  }
                ]
              },
              {
                "tag": "@example",
                "name": "Scenario with tags for filtering",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { scenario } from \"@probitas-test/builder\";\n\nscenario(\"Payment Integration\", {\n  tags: [\"integration\", \"payment\", \"slow\"],\n  stepOptions: { timeout: 60000 }  // 1 minute timeout for all steps\n})\n  .step(\"Process payment\", async () => {\n    return { success: true };\n  })\n  .build();\n\n// Run with: probitas run -s \"tag:payment\"\n```"
                  }
                ]
              },
              {
                "tag": "@example",
                "name": "Scenario with resources and setup",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { scenario } from \"@probitas-test/builder\";\n\n// Mock Database for example\nconst Database = {\n  connect: () =>\n    Promise.resolve({\n      rollback: () => {},\n      insert: (_data: { id: number }) => {},\n      query: (_sql: string) => [{ id: 1 }],\n    }),\n};\n\nscenario(\"Database Test\")\n  .resource(\"db\", async () => await Database.connect())\n  .setup((ctx) => {\n    // Run migrations\n    return () => ctx.resources.db.rollback();\n  })\n  .step(\"Insert data\", (ctx) => ctx.resources.db.insert({ id: 1 }))\n  .step(\"Query data\", (ctx) => ctx.resources.db.query(\"SELECT * FROM users\"))\n  .build();\n```"
                  }
                ]
              },
              {
                "tag": "@see",
                "content": [
                  {
                    "kind": "text",
                    "text": " - "
                  },
                  {
                    "kind": "inline-tag",
                    "tag": "@linkcode",
                    "text": "ScenarioBuilderInit",
                    "target": {
                      "packageName": "@probitas-test/builder",
                      "packagePath": "dist/scenario_builder.d.ts",
                      "qualifiedName": "ScenarioBuilderInit"
                    }
                  },
                  {
                    "kind": "text",
                    "text": " for available builder methods"
                  },
                  {
                    "kind": "text",
                    "text": "\n"
                  },
                  {
                    "kind": "text",
                    "text": " - "
                  },
                  {
                    "kind": "inline-tag",
                    "tag": "@linkcode",
                    "text": "BuilderScenarioOptions"
                  },
                  {
                    "kind": "text",
                    "text": " for configuration options"
                  },
                  {
                    "kind": "text",
                    "text": "\n"
                  }
                ]
              }
            ]
          },
          "parameters": [
            {
              "id": 12406,
              "name": "name",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Human-readable scenario name (shown in test reports)"
                  }
                ]
              },
              "type": {
                "type": "intrinsic",
                "name": "string"
              }
            },
            {
              "id": 12407,
              "name": "options",
              "variant": "param",
              "kind": 32768,
              "flags": {
                "isOptional": true
              },
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "Optional configuration for tags, timeouts, and retry behavior"
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "@probitas-test/core",
                  "packagePath": "dist/types/scenario.d.ts",
                  "qualifiedName": "ScenarioOptions"
                },
                "name": "ScenarioOptions",
                "package": "@probitas-test/core"
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": {
              "packageName": "@probitas-test/builder",
              "packagePath": "dist/scenario_builder.d.ts",
              "qualifiedName": "ScenarioBuilderInit"
            },
            "name": "ScenarioBuilderInit",
            "package": "@probitas-test/builder"
          }
        }
      ]
    },
    {
      "id": 12060,
      "name": "spy",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12061,
          "name": "spy",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Creates a spy function."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport {\n  assertSpyCall,\n  assertSpyCalls,\n  spy,\n} from \"@std/testing/mock\";\n\nconst func = spy();\n\nfunc();\nfunc(1);\nfunc(2, 3);\n\nassertSpyCalls(func, 3);\n\n// asserts each call made to the spy function.\nassertSpyCall(func, 0, { args: [] });\nassertSpyCall(func, 1, { args: [1] });\nassertSpyCall(func, 2, { args: [2, 3] });\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "The spy function."
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12062,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the function."
                  }
                ]
              },
              "default": {
                "type": "intrinsic",
                "name": "any"
              }
            },
            {
              "id": 12063,
              "name": "Args",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The arguments type of the function."
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              },
              "default": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "any"
                }
              }
            },
            {
              "id": 12064,
              "name": "Return",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The return type of the function."
                  }
                ]
              },
              "default": {
                "type": "intrinsic",
                "name": "undefined"
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12222,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12062,
                "name": "Self",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              },
              {
                "type": "reference",
                "target": 12063,
                "name": "Args",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              },
              {
                "type": "reference",
                "target": 12064,
                "name": "Return",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            ],
            "name": "Spy",
            "package": "@probitas-test/probitas"
          }
        },
        {
          "id": 12065,
          "name": "spy",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Create a spy function with the given implementation."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport {\n  assertSpyCall,\n  assertSpyCalls,\n  spy,\n} from \"@std/testing/mock\";\n\nconst func = spy((a: number, b: number) => a + b);\n\nfunc(3, 4);\nfunc(5, 6);\n\nassertSpyCalls(func, 2);\n\n// asserts each call made to the spy function.\nassertSpyCall(func, 0, { args: [3, 4], returned: 7 });\nassertSpyCall(func, 1, { args: [5, 6], returned: 11 });\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "The wrapped function."
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12066,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the function to wrap"
                  }
                ]
              }
            },
            {
              "id": 12067,
              "name": "Args",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The arguments type of the function to wrap"
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              }
            },
            {
              "id": 12068,
              "name": "Return",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The return type of the function to wrap"
                  }
                ]
              }
            }
          ],
          "parameters": [
            {
              "id": 12069,
              "name": "func",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The function to wrap"
                  }
                ]
              },
              "type": {
                "type": "reflection",
                "declaration": {
                  "id": 12070,
                  "name": "__type",
                  "variant": "declaration",
                  "kind": 65536,
                  "flags": {},
                  "signatures": [
                    {
                      "id": 12071,
                      "name": "__type",
                      "variant": "signature",
                      "kind": 4096,
                      "flags": {},
                      "parameters": [
                        {
                          "id": 12072,
                          "name": "this",
                          "variant": "param",
                          "kind": 32768,
                          "flags": {},
                          "type": {
                            "type": "reference",
                            "target": 12066,
                            "name": "Self",
                            "package": "@probitas-test/probitas",
                            "refersToTypeParameter": true
                          }
                        },
                        {
                          "id": 12073,
                          "name": "args",
                          "variant": "param",
                          "kind": 32768,
                          "flags": {
                            "isRest": true
                          },
                          "type": {
                            "type": "reference",
                            "target": 12067,
                            "name": "Args",
                            "package": "@probitas-test/probitas",
                            "refersToTypeParameter": true
                          }
                        }
                      ],
                      "type": {
                        "type": "reference",
                        "target": 12068,
                        "name": "Return",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    }
                  ]
                }
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12222,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12066,
                "name": "Self",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              },
              {
                "type": "reference",
                "target": 12067,
                "name": "Args",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              },
              {
                "type": "reference",
                "target": 12068,
                "name": "Return",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            ],
            "name": "Spy",
            "package": "@probitas-test/probitas"
          }
        },
        {
          "id": 12074,
          "name": "spy",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Create a spy constructor."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport {\n  assertSpyCall,\n  assertSpyCalls,\n  spy,\n} from \"@std/testing/mock\";\n\nclass Foo {\n  constructor(value: string) {}\n};\n\nconst Constructor = spy(Foo);\n\nnew Constructor(\"foo\");\nnew Constructor(\"bar\");\n\nassertSpyCalls(Constructor, 2);\n\n// asserts each call made to the spy function.\nassertSpyCall(Constructor, 0, { args: [\"foo\"] });\nassertSpyCall(Constructor, 1, { args: [\"bar\"] });\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "The wrapped constructor."
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12075,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The type of the instance of the class."
                  }
                ]
              }
            },
            {
              "id": 12076,
              "name": "Args",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The arguments type of the constructor"
                  }
                ]
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "unknown"
                }
              }
            }
          ],
          "parameters": [
            {
              "id": 12077,
              "name": "constructor",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The constructor to spy."
                  }
                ]
              },
              "type": {
                "type": "reflection",
                "declaration": {
                  "id": 12078,
                  "name": "__type",
                  "variant": "declaration",
                  "kind": 512,
                  "flags": {},
                  "signatures": [
                    {
                      "id": 12079,
                      "name": "constructor",
                      "variant": "signature",
                      "kind": 16384,
                      "flags": {},
                      "parameters": [
                        {
                          "id": 12080,
                          "name": "args",
                          "variant": "param",
                          "kind": 32768,
                          "flags": {
                            "isRest": true
                          },
                          "type": {
                            "type": "reference",
                            "target": 12076,
                            "name": "Args",
                            "package": "@probitas-test/probitas",
                            "refersToTypeParameter": true
                          }
                        }
                      ],
                      "type": {
                        "type": "reference",
                        "target": 12075,
                        "name": "Self",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    }
                  ]
                }
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12254,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12075,
                "name": "Self",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              },
              {
                "type": "reference",
                "target": 12076,
                "name": "Args",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            ],
            "name": "ConstructorSpy",
            "package": "@probitas-test/probitas"
          }
        },
        {
          "id": 12081,
          "name": "spy",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Wraps a instance method with a Spy."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport {\n  assertSpyCall,\n  assertSpyCalls,\n  spy,\n} from \"@std/testing/mock\";\n\nconst obj = {\n  method(a: number, b: number): number {\n    return a + b;\n  },\n};\n\nconst methodSpy = spy(obj, \"method\");\n\nobj.method(1, 2);\nobj.method(3, 4);\n\nassertSpyCalls(methodSpy, 2);\n\n// asserts each call made to the spy function.\nassertSpyCall(methodSpy, 0, { args: [1, 2], returned: 3 });\nassertSpyCall(methodSpy, 1, { args: [3, 4], returned: 7 });\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "The spy function."
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12082,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The type of the instance to spy the method of."
                  }
                ]
              }
            },
            {
              "id": 12083,
              "name": "Prop",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The property to spy."
                  }
                ]
              },
              "type": {
                "type": "union",
                "types": [
                  {
                    "type": "intrinsic",
                    "name": "string"
                  },
                  {
                    "type": "intrinsic",
                    "name": "number"
                  },
                  {
                    "type": "intrinsic",
                    "name": "symbol"
                  }
                ]
              }
            }
          ],
          "parameters": [
            {
              "id": 12084,
              "name": "self",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The instance to spy."
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12082,
                "name": "Self",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            },
            {
              "id": 12085,
              "name": "property",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The property of the method to spy."
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12083,
                "name": "Prop",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12238,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12082,
                "name": "Self",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              },
              {
                "type": "reference",
                "target": -1,
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12082,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12083,
                    "name": "Prop",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "GetParametersFromProp",
                "package": "@probitas-test/probitas"
              },
              {
                "type": "reference",
                "target": -1,
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12082,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12083,
                    "name": "Prop",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "GetReturnFromProp",
                "package": "@probitas-test/probitas"
              }
            ],
            "name": "MethodSpy",
            "package": "@probitas-test/probitas"
          }
        }
      ]
    },
    {
      "id": 12086,
      "name": "stub",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12087,
          "name": "stub",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Replaces an instance method with a Stub with empty implementation."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { stub, assertSpyCalls } from \"@std/testing/mock\";\n\nconst obj = {\n  method() {\n    // some inconventient feature for testing\n  },\n};\n\nconst methodStub = stub(obj, \"method\");\n\nfor (const _ of Array(5)) {\n  obj.method();\n}\n\nassertSpyCalls(methodStub, 5);\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "The stub function which replaced the original."
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12088,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the instance to replace a method of."
                  }
                ]
              }
            },
            {
              "id": 12089,
              "name": "Prop",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The property of the instance to replace."
                  }
                ]
              },
              "type": {
                "type": "union",
                "types": [
                  {
                    "type": "intrinsic",
                    "name": "string"
                  },
                  {
                    "type": "intrinsic",
                    "name": "number"
                  },
                  {
                    "type": "intrinsic",
                    "name": "symbol"
                  }
                ]
              }
            }
          ],
          "parameters": [
            {
              "id": 12090,
              "name": "self",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The instance to replace a method of."
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12088,
                "name": "Self",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            },
            {
              "id": 12091,
              "name": "property",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The property of the instance to replace."
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12089,
                "name": "Prop",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12284,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12088,
                "name": "Self",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              },
              {
                "type": "reference",
                "target": -1,
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12088,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12089,
                    "name": "Prop",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "GetParametersFromProp",
                "package": "@probitas-test/probitas"
              },
              {
                "type": "reference",
                "target": -1,
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12088,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12089,
                    "name": "Prop",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "GetReturnFromProp",
                "package": "@probitas-test/probitas"
              }
            ],
            "name": "Stub",
            "package": "@probitas-test/probitas"
          }
        },
        {
          "id": 12092,
          "name": "stub",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Replaces an instance method with a Stub with the given implementation."
              }
            ],
            "blockTags": [
              {
                "tag": "@example",
                "name": "Usage",
                "content": [
                  {
                    "kind": "code",
                    "text": "```ts\nimport { stub } from \"@std/testing/mock\";\nimport { assertEquals } from \"@std/assert\";\n\nconst obj = {\n  method(): number {\n    return Math.random();\n  },\n};\n\nconst methodStub = stub(obj, \"method\", () => 0.5);\n\nassertEquals(obj.method(), 0.5);\n```"
                  }
                ]
              },
              {
                "tag": "@returns",
                "content": [
                  {
                    "kind": "text",
                    "text": "The stub function which replaced the original."
                  }
                ]
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12093,
              "name": "Self",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The self type of the instance to replace a method of."
                  }
                ]
              }
            },
            {
              "id": 12094,
              "name": "Prop",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The property of the instance to replace."
                  }
                ]
              },
              "type": {
                "type": "union",
                "types": [
                  {
                    "type": "intrinsic",
                    "name": "string"
                  },
                  {
                    "type": "intrinsic",
                    "name": "number"
                  },
                  {
                    "type": "intrinsic",
                    "name": "symbol"
                  }
                ]
              }
            }
          ],
          "parameters": [
            {
              "id": 12095,
              "name": "self",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The instance to replace a method of."
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12093,
                "name": "Self",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            },
            {
              "id": 12096,
              "name": "property",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The property of the instance to replace."
                  }
                ]
              },
              "type": {
                "type": "reference",
                "target": 12094,
                "name": "Prop",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            },
            {
              "id": 12097,
              "name": "func",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "comment": {
                "summary": [
                  {
                    "kind": "text",
                    "text": "The fake implementation of the function."
                  }
                ]
              },
              "type": {
                "type": "reflection",
                "declaration": {
                  "id": 12098,
                  "name": "__type",
                  "variant": "declaration",
                  "kind": 65536,
                  "flags": {},
                  "signatures": [
                    {
                      "id": 12099,
                      "name": "__type",
                      "variant": "signature",
                      "kind": 4096,
                      "flags": {},
                      "parameters": [
                        {
                          "id": 12100,
                          "name": "this",
                          "variant": "param",
                          "kind": 32768,
                          "flags": {},
                          "type": {
                            "type": "reference",
                            "target": 12093,
                            "name": "Self",
                            "package": "@probitas-test/probitas",
                            "refersToTypeParameter": true
                          }
                        },
                        {
                          "id": 12101,
                          "name": "args",
                          "variant": "param",
                          "kind": 32768,
                          "flags": {
                            "isRest": true
                          },
                          "type": {
                            "type": "reference",
                            "target": -1,
                            "typeArguments": [
                              {
                                "type": "reference",
                                "target": 12093,
                                "name": "Self",
                                "package": "@probitas-test/probitas",
                                "refersToTypeParameter": true
                              },
                              {
                                "type": "reference",
                                "target": 12094,
                                "name": "Prop",
                                "package": "@probitas-test/probitas",
                                "refersToTypeParameter": true
                              }
                            ],
                            "name": "GetParametersFromProp",
                            "package": "@probitas-test/probitas"
                          }
                        }
                      ],
                      "type": {
                        "type": "reference",
                        "target": -1,
                        "typeArguments": [
                          {
                            "type": "reference",
                            "target": 12093,
                            "name": "Self",
                            "package": "@probitas-test/probitas",
                            "refersToTypeParameter": true
                          },
                          {
                            "type": "reference",
                            "target": 12094,
                            "name": "Prop",
                            "package": "@probitas-test/probitas",
                            "refersToTypeParameter": true
                          }
                        ],
                        "name": "GetReturnFromProp",
                        "package": "@probitas-test/probitas"
                      }
                    }
                  ]
                }
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12284,
            "typeArguments": [
              {
                "type": "reference",
                "target": 12093,
                "name": "Self",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              },
              {
                "type": "reference",
                "target": -1,
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12093,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12094,
                    "name": "Prop",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "GetParametersFromProp",
                "package": "@probitas-test/probitas"
              },
              {
                "type": "reference",
                "target": -1,
                "typeArguments": [
                  {
                    "type": "reference",
                    "target": 12093,
                    "name": "Self",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  },
                  {
                    "type": "reference",
                    "target": 12094,
                    "name": "Prop",
                    "package": "@probitas-test/probitas",
                    "refersToTypeParameter": true
                  }
                ],
                "name": "GetReturnFromProp",
                "package": "@probitas-test/probitas"
              }
            ],
            "name": "Stub",
            "package": "@probitas-test/probitas"
          }
        }
      ]
    },
    {
      "id": 12352,
      "name": "toErrorObject",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12353,
          "name": "toErrorObject",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Convert an error to an error object"
              }
            ]
          },
          "parameters": [
            {
              "id": 12354,
              "name": "err",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reference",
                "target": {
                  "packageName": "typescript",
                  "packagePath": "lib/lib.es5.d.ts",
                  "qualifiedName": "Error"
                },
                "name": "Error",
                "package": "typescript"
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12358,
            "name": "ErrorObject",
            "package": "@probitas-test/probitas"
          }
        }
      ]
    },
    {
      "id": 12372,
      "name": "tryOr",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12373,
          "name": "tryOr",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Try to execute a function and return the result or a default value if an error occurs.\n\n"
              },
              {
                "kind": "code",
                "text": "```ts\nimport { tryOr } from \"@core/errorutil/try-or\";\n\nconsole.log(tryOr(() => 1, 2)); // 1\nconsole.log(tryOr(() => { throw \"err\"; }, 2)); // 2\n```"
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12374,
              "name": "T",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {}
            }
          ],
          "parameters": [
            {
              "id": 12375,
              "name": "fn",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reflection",
                "declaration": {
                  "id": 12376,
                  "name": "__type",
                  "variant": "declaration",
                  "kind": 65536,
                  "flags": {},
                  "signatures": [
                    {
                      "id": 12377,
                      "name": "__type",
                      "variant": "signature",
                      "kind": 4096,
                      "flags": {},
                      "type": {
                        "type": "reference",
                        "target": 12374,
                        "name": "T",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    }
                  ]
                }
              }
            },
            {
              "id": 12378,
              "name": "orValue",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reference",
                "target": 12374,
                "name": "T",
                "package": "@probitas-test/probitas",
                "refersToTypeParameter": true
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12374,
            "name": "T",
            "package": "@probitas-test/probitas",
            "refersToTypeParameter": true
          }
        }
      ]
    },
    {
      "id": 12379,
      "name": "tryOrElse",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12380,
          "name": "tryOrElse",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Try to execute a function and return the result or execute another function and return its result if an error occurs.\n\n"
              },
              {
                "kind": "code",
                "text": "```ts\nimport { tryOrElse } from \"@core/errorutil/try-or-else\";\n\nconsole.log(tryOrElse(() => 1, () => 2)); // 1\nconsole.log(tryOrElse(() => { throw \"err\" }, () => 2)); // 2\n```"
              }
            ]
          },
          "typeParameters": [
            {
              "id": 12381,
              "name": "T",
              "variant": "typeParam",
              "kind": 131072,
              "flags": {}
            }
          ],
          "parameters": [
            {
              "id": 12382,
              "name": "fn",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reflection",
                "declaration": {
                  "id": 12383,
                  "name": "__type",
                  "variant": "declaration",
                  "kind": 65536,
                  "flags": {},
                  "signatures": [
                    {
                      "id": 12384,
                      "name": "__type",
                      "variant": "signature",
                      "kind": 4096,
                      "flags": {},
                      "type": {
                        "type": "reference",
                        "target": 12381,
                        "name": "T",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    }
                  ]
                }
              }
            },
            {
              "id": 12385,
              "name": "elseFn",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "reflection",
                "declaration": {
                  "id": 12386,
                  "name": "__type",
                  "variant": "declaration",
                  "kind": 65536,
                  "flags": {},
                  "signatures": [
                    {
                      "id": 12387,
                      "name": "__type",
                      "variant": "signature",
                      "kind": 4096,
                      "flags": {},
                      "parameters": [
                        {
                          "id": 12388,
                          "name": "err",
                          "variant": "param",
                          "kind": 32768,
                          "flags": {},
                          "type": {
                            "type": "intrinsic",
                            "name": "unknown"
                          }
                        }
                      ],
                      "type": {
                        "type": "reference",
                        "target": 12381,
                        "name": "T",
                        "package": "@probitas-test/probitas",
                        "refersToTypeParameter": true
                      }
                    }
                  ]
                }
              }
            }
          ],
          "type": {
            "type": "reference",
            "target": 12381,
            "name": "T",
            "package": "@probitas-test/probitas",
            "refersToTypeParameter": true
          }
        }
      ]
    },
    {
      "id": 12389,
      "name": "unimplemented",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12390,
          "name": "unimplemented",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Function indicating that this part is unimplemented.\n\nFor example, defining a mock object with "
              },
              {
                "kind": "code",
                "text": "`unimplemented`"
              },
              {
                "kind": "text",
                "text": " function should look like this:\n\n"
              },
              {
                "kind": "code",
                "text": "```ts\nimport { unimplemented } from \"@core/errorutil/unimplemented\";\n\ntype Service = {\n  get(id: string): Promise<string>;\n  set(id: string, item: string): Promise<void>;\n};\n\nconst _mock: Service = {\n  get: () => unimplemented(),\n  set: () => unimplemented(),\n};\n```"
              }
            ]
          },
          "parameters": [
            {
              "id": 12391,
              "name": "message",
              "variant": "param",
              "kind": 32768,
              "flags": {},
              "type": {
                "type": "intrinsic",
                "name": "string"
              },
              "defaultValue": "\"unimplemented\""
            }
          ],
          "type": {
            "type": "intrinsic",
            "name": "never"
          }
        }
      ]
    },
    {
      "id": 12396,
      "name": "unreachable",
      "variant": "declaration",
      "kind": 64,
      "flags": {},
      "signatures": [
        {
          "id": 12397,
          "name": "unreachable",
          "variant": "signature",
          "kind": 4096,
          "flags": {},
          "comment": {
            "summary": [
              {
                "kind": "text",
                "text": "Function indicating that this part is unreachable.\n\nFor example, the following code passed type checking.\n\n"
              },
              {
                "kind": "code",
                "text": "```ts\nimport { unreachable } from \"@core/errorutil/unreachable\";\n\ntype Animal = \"dog\" | \"cat\";\n\nfunction say(animal: Animal): void {\n  switch (animal) {\n    case \"dog\":\n      console.log(\"dog\");\n      break;\n    case \"cat\":\n      console.log(\"dog\");\n      break;\n    default:\n      unreachable(animal);\n  }\n}\nsay(\"dog\");\n```"
              },
              {
                "kind": "text",
                "text": "\n\nBut the following code because a case for \"bird\" is missing.\n\n"
              },
              {
                "kind": "code",
                "text": "```ts\nimport { unreachable } from \"@core/errorutil/unreachable\";\n\ntype Animal = \"dog\" | \"cat\" | \"bird\";\n\nfunction say(animal: Animal): void {\n  switch (animal) {\n    case \"dog\":\n      console.log(\"dog\");\n      break;\n    case \"cat\":\n      console.log(\"dog\");\n      break;\n    default: {\n      // The line below causes a type error if we uncomment it.\n      // error: TS2345 [ERROR]: Argument of type 'string' is not assignable to parameter of type 'never'.\n      //unreachable(animal);\n    }\n  }\n}\nsay(\"dog\");\n```"
              }
            ]
          },
          "parameters": [
            {
              "id": 12398,
              "name": "args",
              "variant": "param",
              "kind": 32768,
              "flags": {
                "isRest": true
              },
              "type": {
                "type": "array",
                "elementType": {
                  "type": "intrinsic",
                  "name": "never"
                }
              }
            }
          ],
          "type": {
            "type": "intrinsic",
            "name": "never"
          }
        }
      ]
    }
  ],
  "packageName": "@probitas-test/probitas",
  "packageVersion": "2.0.3"
}
