{
  "name": "client-grpc",
  "specifier": "@probitas/client-grpc",
  "version": "0.6.0",
  "moduleDoc": "gRPC client for [Probitas](https://github.com/probitas-test/probitas) scenario testing framework.\n\nThis package provides a gRPC client with Server Reflection support, designed for\nintegration testing of gRPC services. It is a thin wrapper around\n[`@probitas/client-connectrpc`](https://jsr.io/@probitas/client-connectrpc) with\n`protocol: \"grpc\"` pre-configured.\n\n## Features\n\n- **Native gRPC**: Uses gRPC protocol (HTTP/2 with binary protobuf)\n- **Server Reflection**: Auto-discover services and methods at runtime\n- **Field Name Conversion**: Automatic snake_case ↔ camelCase conversion\n- **TLS Support**: Configure secure connections with custom certificates\n- **Duration Tracking**: Built-in timing for performance monitoring\n- **Error Handling**: Test error responses without throwing exceptions\n- **Resource Management**: Implements `AsyncDisposable` for proper cleanup\n\n## Installation\n\n```bash\ndeno add jsr:@probitas/client-grpc\n```\n\n## Quick Start\n\n```ts\nimport { createGrpcClient } from \"@probitas/client-grpc\";\n\n// Create client (uses reflection by default)\nconst client = createGrpcClient({\n  url: \"http://localhost:50051\",\n});\n\n// Call a method\nconst response = await client.call(\n  \"echo.EchoService\",\n  \"echo\",\n  { message: \"Hello!\" }\n);\nconsole.log(response.data);\n\nawait client.close();\n```\n\n## Service Discovery\n\n```ts\nimport { createGrpcClient } from \"@probitas/client-grpc\";\n\nconst client = createGrpcClient({ url: \"http://localhost:50051\" });\n\n// Discover available services\nconst services = await client.reflection.listServices();\nconsole.log(\"Services:\", services);\n\n// Get method information\nconst info = await client.reflection.getServiceInfo(\"echo.EchoService\");\nconsole.log(\"Methods:\", info.methods);\n\nawait client.close();\n```\n\n## Field Name Conventions\n\nThe client automatically handles field name conversion between protobuf and JavaScript:\n\n- **Request**: Accept both `snake_case` (protobuf) and `camelCase` (JavaScript) field names\n- **Response**:\n  - `response.data` — Plain JSON with `camelCase` fields (no `$typeName`)\n  - `response.raw` — Original protobuf Message with metadata (includes `$typeName`)\n\n```ts\nimport { createGrpcClient } from \"@probitas/client-grpc\";\n\nconst client = createGrpcClient({ url: \"http://localhost:50051\" });\n\n// Request: Both camelCase and snake_case work\nconst response = await client.call(\"echo.Echo\", \"echoWithDelay\", {\n  message: \"hello\",\n  delayMs: 100,        // camelCase (recommended for JavaScript)\n  // delay_ms: 100,    // snake_case (protobuf style) also works\n});\n\n// Response data: JSON with camelCase fields\nconsole.log(response.data);\n// { message: \"hello\", metadata: {...} }  ← no $typeName\n\n// Response raw: protobuf Message with metadata\nconsole.log(response.raw);\n// { $typeName: \"echo.EchoResponse\", message: \"hello\", ... }\n\nawait client.close();\n```\n\n## Using with `using` Statement\n\n```ts\nimport { createGrpcClient } from \"@probitas/client-grpc\";\n\nawait using client = createGrpcClient({ url: \"http://localhost:50051\" });\n\nconst res = await client.call(\"echo.EchoService\", \"echo\", { message: \"test\" });\nconsole.log(res.data);\n// Client automatically closed when block exits\n```\n\n## Related Packages\n\n| Package | Description |\n|---------|-------------|\n| [`@probitas/client`](https://jsr.io/@probitas/client) | Core utilities and types |\n| [`@probitas/client-connectrpc`](https://jsr.io/@probitas/client-connectrpc) | ConnectRPC client (supports Connect, gRPC, gRPC-Web) |\n\n## Links\n\n- [GitHub Repository](https://github.com/probitas-test/probitas-client)\n- [Probitas Framework](https://github.com/probitas-test/probitas)\n- [gRPC](https://grpc.io/)\n",
  "exports": [
    {
      "name": "GrpcClient",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/client.ts",
        "line": 136,
        "col": 0,
        "byteIndex": 4080
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "ConnectRPC client interface.\n\n## Field Name Conventions\n\nThis client automatically handles field name conversion between protobuf and JavaScript:\n\n- **Request fields**: Accept both `snake_case` (protobuf style) and `camelCase` (JavaScript style)\n- **Response fields**: Converted to JavaScript conventions based on response type:\n  - `response.data`: Plain JSON object with `camelCase` field names (no `$typeName`)\n  - `response.raw`: Original protobuf Message object with all metadata (includes `$typeName`)\n",
        "tags": [
          {
            "kind": "example",
            "doc": "```ts\nconst client = createConnectRpcClient({ url: \"http://localhost:50051\" });\n\n// Request: Both formats work\nawait client.call(\"echo.Echo\", \"echoWithDelay\", {\n  message: \"hello\",\n  delayMs: 100,        // camelCase (recommended)\n  // delay_ms: 100,    // snake_case also works\n});\n\n// Response: data is JSON, raw is protobuf Message\nconst response = await client.call(\"echo.Echo\", \"echo\", { message: \"test\" });\nconsole.log(response.data);  // { message: \"test\", metadata: {...} }\nconsole.log(response.raw);   // { $typeName: \"echo.EchoResponse\", message: \"test\", ... }\n```"
          }
        ]
      },
      "kind": "interface",
      "interfaceDef": {
        "extends": [
          {
            "repr": "AsyncDisposable",
            "kind": "typeRef",
            "typeRef": {
              "typeParams": null,
              "typeName": "AsyncDisposable"
            }
          }
        ],
        "constructors": [],
        "methods": [
          {
            "name": "call",
            "jsDoc": {
              "doc": "Make a unary RPC call.",
              "tags": [
                {
                  "kind": "param",
                  "name": "serviceName",
                  "doc": "- Service name (e.g., \"echo.EchoService\")"
                },
                {
                  "kind": "param",
                  "name": "methodName",
                  "doc": "- Method name (e.g., \"echo\")"
                },
                {
                  "kind": "param",
                  "name": "request",
                  "doc": "- Request message"
                },
                {
                  "kind": "param",
                  "name": "options",
                  "doc": "- Call options"
                }
              ]
            },
            "kind": "method",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/client.ts",
              "line": 150,
              "col": 2,
              "byteIndex": 4553
            },
            "params": [
              {
                "kind": "identifier",
                "name": "serviceName",
                "optional": false,
                "tsType": {
                  "repr": "string",
                  "kind": "keyword",
                  "keyword": "string"
                }
              },
              {
                "kind": "identifier",
                "name": "methodName",
                "optional": false,
                "tsType": {
                  "repr": "string",
                  "kind": "keyword",
                  "keyword": "string"
                }
              },
              {
                "kind": "identifier",
                "name": "request",
                "optional": false,
                "tsType": {
                  "repr": "TRequest",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": null,
                    "typeName": "TRequest"
                  }
                }
              },
              {
                "kind": "identifier",
                "name": "options",
                "optional": true,
                "tsType": {
                  "repr": "ConnectRpcOptions",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": null,
                    "typeName": "ConnectRpcOptions"
                  }
                }
              }
            ],
            "optional": false,
            "returnType": {
              "repr": "Promise",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": [
                  {
                    "repr": "ConnectRpcResponse",
                    "kind": "typeRef",
                    "typeRef": {
                      "typeParams": null,
                      "typeName": "ConnectRpcResponse"
                    }
                  }
                ],
                "typeName": "Promise"
              }
            },
            "typeParams": [
              {
                "name": "TRequest"
              }
            ]
          },
          {
            "name": "serverStream",
            "jsDoc": {
              "doc": "Make a server streaming RPC call.",
              "tags": [
                {
                  "kind": "param",
                  "name": "serviceName",
                  "doc": "- Service name"
                },
                {
                  "kind": "param",
                  "name": "methodName",
                  "doc": "- Method name"
                },
                {
                  "kind": "param",
                  "name": "request",
                  "doc": "- Request message"
                },
                {
                  "kind": "param",
                  "name": "options",
                  "doc": "- Call options"
                }
              ]
            },
            "kind": "method",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/client.ts",
              "line": 164,
              "col": 2,
              "byteIndex": 4911
            },
            "params": [
              {
                "kind": "identifier",
                "name": "serviceName",
                "optional": false,
                "tsType": {
                  "repr": "string",
                  "kind": "keyword",
                  "keyword": "string"
                }
              },
              {
                "kind": "identifier",
                "name": "methodName",
                "optional": false,
                "tsType": {
                  "repr": "string",
                  "kind": "keyword",
                  "keyword": "string"
                }
              },
              {
                "kind": "identifier",
                "name": "request",
                "optional": false,
                "tsType": {
                  "repr": "TRequest",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": null,
                    "typeName": "TRequest"
                  }
                }
              },
              {
                "kind": "identifier",
                "name": "options",
                "optional": true,
                "tsType": {
                  "repr": "ConnectRpcOptions",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": null,
                    "typeName": "ConnectRpcOptions"
                  }
                }
              }
            ],
            "optional": false,
            "returnType": {
              "repr": "AsyncIterable",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": [
                  {
                    "repr": "ConnectRpcResponse",
                    "kind": "typeRef",
                    "typeRef": {
                      "typeParams": null,
                      "typeName": "ConnectRpcResponse"
                    }
                  }
                ],
                "typeName": "AsyncIterable"
              }
            },
            "typeParams": [
              {
                "name": "TRequest"
              }
            ]
          },
          {
            "name": "clientStream",
            "jsDoc": {
              "doc": "Make a client streaming RPC call.",
              "tags": [
                {
                  "kind": "param",
                  "name": "serviceName",
                  "doc": "- Service name"
                },
                {
                  "kind": "param",
                  "name": "methodName",
                  "doc": "- Method name"
                },
                {
                  "kind": "param",
                  "name": "requests",
                  "doc": "- Async iterable of request messages"
                },
                {
                  "kind": "param",
                  "name": "options",
                  "doc": "- Call options"
                }
              ]
            },
            "kind": "method",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/client.ts",
              "line": 178,
              "col": 2,
              "byteIndex": 5303
            },
            "params": [
              {
                "kind": "identifier",
                "name": "serviceName",
                "optional": false,
                "tsType": {
                  "repr": "string",
                  "kind": "keyword",
                  "keyword": "string"
                }
              },
              {
                "kind": "identifier",
                "name": "methodName",
                "optional": false,
                "tsType": {
                  "repr": "string",
                  "kind": "keyword",
                  "keyword": "string"
                }
              },
              {
                "kind": "identifier",
                "name": "requests",
                "optional": false,
                "tsType": {
                  "repr": "AsyncIterable",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": [
                      {
                        "repr": "TRequest",
                        "kind": "typeRef",
                        "typeRef": {
                          "typeParams": null,
                          "typeName": "TRequest"
                        }
                      }
                    ],
                    "typeName": "AsyncIterable"
                  }
                }
              },
              {
                "kind": "identifier",
                "name": "options",
                "optional": true,
                "tsType": {
                  "repr": "ConnectRpcOptions",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": null,
                    "typeName": "ConnectRpcOptions"
                  }
                }
              }
            ],
            "optional": false,
            "returnType": {
              "repr": "Promise",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": [
                  {
                    "repr": "ConnectRpcResponse",
                    "kind": "typeRef",
                    "typeRef": {
                      "typeParams": null,
                      "typeName": "ConnectRpcResponse"
                    }
                  }
                ],
                "typeName": "Promise"
              }
            },
            "typeParams": [
              {
                "name": "TRequest"
              }
            ]
          },
          {
            "name": "bidiStream",
            "jsDoc": {
              "doc": "Make a bidirectional streaming RPC call.",
              "tags": [
                {
                  "kind": "param",
                  "name": "serviceName",
                  "doc": "- Service name"
                },
                {
                  "kind": "param",
                  "name": "methodName",
                  "doc": "- Method name"
                },
                {
                  "kind": "param",
                  "name": "requests",
                  "doc": "- Async iterable of request messages"
                },
                {
                  "kind": "param",
                  "name": "options",
                  "doc": "- Call options"
                }
              ]
            },
            "kind": "method",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/client.ts",
              "line": 192,
              "col": 2,
              "byteIndex": 5712
            },
            "params": [
              {
                "kind": "identifier",
                "name": "serviceName",
                "optional": false,
                "tsType": {
                  "repr": "string",
                  "kind": "keyword",
                  "keyword": "string"
                }
              },
              {
                "kind": "identifier",
                "name": "methodName",
                "optional": false,
                "tsType": {
                  "repr": "string",
                  "kind": "keyword",
                  "keyword": "string"
                }
              },
              {
                "kind": "identifier",
                "name": "requests",
                "optional": false,
                "tsType": {
                  "repr": "AsyncIterable",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": [
                      {
                        "repr": "TRequest",
                        "kind": "typeRef",
                        "typeRef": {
                          "typeParams": null,
                          "typeName": "TRequest"
                        }
                      }
                    ],
                    "typeName": "AsyncIterable"
                  }
                }
              },
              {
                "kind": "identifier",
                "name": "options",
                "optional": true,
                "tsType": {
                  "repr": "ConnectRpcOptions",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": null,
                    "typeName": "ConnectRpcOptions"
                  }
                }
              }
            ],
            "optional": false,
            "returnType": {
              "repr": "AsyncIterable",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": [
                  {
                    "repr": "ConnectRpcResponse",
                    "kind": "typeRef",
                    "typeRef": {
                      "typeParams": null,
                      "typeName": "ConnectRpcResponse"
                    }
                  }
                ],
                "typeName": "AsyncIterable"
              }
            },
            "typeParams": [
              {
                "name": "TRequest"
              }
            ]
          },
          {
            "name": "close",
            "jsDoc": {
              "doc": "Close the client connection."
            },
            "kind": "method",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/client.ts",
              "line": 202,
              "col": 2,
              "byteIndex": 5944
            },
            "params": [],
            "optional": false,
            "returnType": {
              "repr": "Promise",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": [
                  {
                    "repr": "void",
                    "kind": "keyword",
                    "keyword": "void"
                  }
                ],
                "typeName": "Promise"
              }
            },
            "typeParams": []
          }
        ],
        "properties": [
          {
            "name": "config",
            "jsDoc": {
              "doc": "Client configuration"
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/client.ts",
              "line": 138,
              "col": 2,
              "byteIndex": 4172
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "ConnectRpcClientConfig",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "ConnectRpcClientConfig"
              }
            },
            "typeParams": []
          },
          {
            "name": "reflection",
            "jsDoc": {
              "doc": "Reflection API (only available when schema: \"reflection\")"
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/client.ts",
              "line": 141,
              "col": 2,
              "byteIndex": 4283
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "ReflectionApi",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "ReflectionApi"
              }
            },
            "typeParams": []
          }
        ],
        "callSignatures": [],
        "indexSignatures": [],
        "typeParams": []
      }
    },
    {
      "name": "GrpcError",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
        "line": 71,
        "col": 0,
        "byteIndex": 1999
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "Error class for ConnectRPC/gRPC errors.\n\nUse `statusCode` to distinguish between different gRPC error codes."
      },
      "kind": "class",
      "classDef": {
        "isAbstract": false,
        "constructors": [
          {
            "accessibility": null,
            "hasBody": true,
            "name": "constructor",
            "params": [
              {
                "kind": "identifier",
                "name": "message",
                "optional": false,
                "tsType": {
                  "repr": "string",
                  "kind": "keyword",
                  "keyword": "string"
                }
              },
              {
                "kind": "identifier",
                "name": "statusCode",
                "optional": false,
                "tsType": {
                  "repr": "ConnectRpcStatusCode",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": null,
                    "typeName": "ConnectRpcStatusCode"
                  }
                }
              },
              {
                "kind": "identifier",
                "name": "statusMessage",
                "optional": false,
                "tsType": {
                  "repr": "string",
                  "kind": "keyword",
                  "keyword": "string"
                }
              },
              {
                "kind": "identifier",
                "name": "options",
                "optional": true,
                "tsType": {
                  "repr": "ConnectRpcErrorOptions",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": null,
                    "typeName": "ConnectRpcErrorOptions"
                  }
                }
              }
            ],
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
              "line": 79,
              "col": 2,
              "byteIndex": 2317
            }
          }
        ],
        "properties": [
          {
            "tsType": {
              "repr": "string",
              "kind": "keyword",
              "keyword": "string"
            },
            "readonly": true,
            "accessibility": null,
            "optional": false,
            "isAbstract": false,
            "isStatic": false,
            "isOverride": true,
            "name": "name",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
              "line": 72,
              "col": 2,
              "byteIndex": 2052
            }
          },
          {
            "tsType": {
              "repr": "connectrpc",
              "kind": "literal",
              "literal": {
                "kind": "string",
                "string": "connectrpc"
              }
            },
            "readonly": true,
            "accessibility": null,
            "optional": false,
            "isAbstract": false,
            "isStatic": false,
            "isOverride": true,
            "name": "kind",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
              "line": 73,
              "col": 2,
              "byteIndex": 2106
            }
          },
          {
            "tsType": {
              "repr": "ConnectRpcStatusCode",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "ConnectRpcStatusCode"
              }
            },
            "readonly": true,
            "accessibility": null,
            "optional": false,
            "isAbstract": false,
            "isStatic": false,
            "name": "statusCode",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
              "line": 74,
              "col": 2,
              "byteIndex": 2156
            }
          },
          {
            "tsType": {
              "repr": "string",
              "kind": "keyword",
              "keyword": "string"
            },
            "readonly": true,
            "accessibility": null,
            "optional": false,
            "isAbstract": false,
            "isStatic": false,
            "name": "statusMessage",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
              "line": 75,
              "col": 2,
              "byteIndex": 2201
            }
          },
          {
            "tsType": {
              "repr": "",
              "kind": "union",
              "union": [
                {
                  "repr": "Headers",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": null,
                    "typeName": "Headers"
                  }
                },
                {
                  "repr": "null",
                  "kind": "keyword",
                  "keyword": "null"
                }
              ]
            },
            "readonly": true,
            "accessibility": null,
            "optional": false,
            "isAbstract": false,
            "isStatic": false,
            "name": "metadata",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
              "line": 76,
              "col": 2,
              "byteIndex": 2235
            }
          },
          {
            "tsType": {
              "repr": "",
              "kind": "typeOperator",
              "typeOperator": {
                "operator": "readonly",
                "tsType": {
                  "repr": "",
                  "kind": "array",
                  "array": {
                    "repr": "ErrorDetail",
                    "kind": "typeRef",
                    "typeRef": {
                      "typeParams": null,
                      "typeName": "ErrorDetail"
                    }
                  }
                }
              }
            },
            "readonly": true,
            "accessibility": null,
            "optional": false,
            "isAbstract": false,
            "isStatic": false,
            "name": "details",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
              "line": 77,
              "col": 2,
              "byteIndex": 2272
            }
          }
        ],
        "indexSignatures": [],
        "methods": [],
        "extends": "ClientError",
        "implements": [],
        "typeParams": [],
        "superTypeParams": []
      }
    },
    {
      "name": "GrpcErrorOptions",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
        "line": 54,
        "col": 0,
        "byteIndex": 1593
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "Options for ConnectRpcError construction."
      },
      "kind": "interface",
      "interfaceDef": {
        "extends": [
          {
            "repr": "ErrorOptions",
            "kind": "typeRef",
            "typeRef": {
              "typeParams": null,
              "typeName": "ErrorOptions"
            }
          }
        ],
        "constructors": [],
        "methods": [],
        "properties": [
          {
            "name": "metadata",
            "jsDoc": {
              "doc": "Headers/metadata from the ConnectRPC response."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
              "line": 58,
              "col": 2,
              "byteIndex": 1722
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": true,
            "tsType": {
              "repr": "",
              "kind": "union",
              "union": [
                {
                  "repr": "Headers",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": null,
                    "typeName": "Headers"
                  }
                },
                {
                  "repr": "null",
                  "kind": "keyword",
                  "keyword": "null"
                }
              ]
            },
            "typeParams": []
          },
          {
            "name": "details",
            "jsDoc": {
              "doc": "Rich error details from google.rpc.Status."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
              "line": 63,
              "col": 2,
              "byteIndex": 1821
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": true,
            "tsType": {
              "repr": "",
              "kind": "union",
              "union": [
                {
                  "repr": "",
                  "kind": "typeOperator",
                  "typeOperator": {
                    "operator": "readonly",
                    "tsType": {
                      "repr": "",
                      "kind": "array",
                      "array": {
                        "repr": "ErrorDetail",
                        "kind": "typeRef",
                        "typeRef": {
                          "typeParams": null,
                          "typeName": "ErrorDetail"
                        }
                      }
                    }
                  }
                },
                {
                  "repr": "null",
                  "kind": "keyword",
                  "keyword": "null"
                }
              ]
            },
            "typeParams": []
          }
        ],
        "callSignatures": [],
        "indexSignatures": [],
        "typeParams": []
      }
    },
    {
      "name": "GrpcNetworkError",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
        "line": 18,
        "col": 0,
        "byteIndex": 578
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "Error thrown when a network-level failure occurs.\n\nThis error indicates that the request could not be processed by the server\ndue to network issues (connection refused, DNS resolution failure, timeout, etc.).\nUnlike ConnectRpcError, this error means the server was never reached."
      },
      "kind": "class",
      "classDef": {
        "isAbstract": false,
        "constructors": [
          {
            "accessibility": null,
            "hasBody": true,
            "name": "constructor",
            "params": [
              {
                "kind": "identifier",
                "name": "message",
                "optional": false,
                "tsType": {
                  "repr": "string",
                  "kind": "keyword",
                  "keyword": "string"
                }
              },
              {
                "kind": "identifier",
                "name": "options",
                "optional": true,
                "tsType": {
                  "repr": "ErrorOptions",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": null,
                    "typeName": "ErrorOptions"
                  }
                }
              }
            ],
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
              "line": 22,
              "col": 2,
              "byteIndex": 750
            }
          }
        ],
        "properties": [
          {
            "tsType": {
              "repr": "string",
              "kind": "keyword",
              "keyword": "string"
            },
            "readonly": true,
            "accessibility": null,
            "optional": false,
            "isAbstract": false,
            "isStatic": false,
            "isOverride": true,
            "name": "name",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
              "line": 19,
              "col": 2,
              "byteIndex": 638
            }
          },
          {
            "tsType": {
              "repr": "connectrpc",
              "kind": "literal",
              "literal": {
                "kind": "string",
                "string": "connectrpc"
              }
            },
            "readonly": true,
            "accessibility": null,
            "optional": false,
            "isAbstract": false,
            "isStatic": false,
            "isOverride": true,
            "name": "kind",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
              "line": 20,
              "col": 2,
              "byteIndex": 699
            }
          }
        ],
        "indexSignatures": [],
        "methods": [],
        "extends": "ClientError",
        "implements": [],
        "typeParams": [],
        "superTypeParams": []
      }
    },
    {
      "name": "GrpcOptions",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
        "line": 143,
        "col": 0,
        "byteIndex": 3785
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "Options for individual ConnectRPC calls."
      },
      "kind": "interface",
      "interfaceDef": {
        "extends": [
          {
            "repr": "CommonOptions",
            "kind": "typeRef",
            "typeRef": {
              "typeParams": null,
              "typeName": "CommonOptions"
            }
          }
        ],
        "constructors": [],
        "methods": [],
        "properties": [
          {
            "name": "metadata",
            "jsDoc": {
              "doc": "Metadata to send with the request."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 145,
              "col": 2,
              "byteIndex": 3890
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": true,
            "tsType": {
              "repr": "HeadersInit",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "HeadersInit"
              }
            },
            "typeParams": []
          },
          {
            "name": "throwOnError",
            "jsDoc": {
              "doc": "Whether to throw ConnectRpcError on non-OK responses (code !== 0) or failures.\nOverrides ConnectRpcClientConfig.throwOnError.",
              "tags": [
                {
                  "kind": "unsupported",
                  "value": "@default false (inherited from client config if not specified)"
                }
              ]
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 152,
              "col": 2,
              "byteIndex": 4142
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": true,
            "tsType": {
              "repr": "boolean",
              "kind": "keyword",
              "keyword": "boolean"
            },
            "typeParams": []
          }
        ],
        "callSignatures": [],
        "indexSignatures": [],
        "typeParams": []
      }
    },
    {
      "name": "GrpcResponse",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
        "line": 232,
        "col": 0,
        "byteIndex": 6489
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "ConnectRPC response union type.\n\nUse `processed` to distinguish between server responses and failures:\n- `processed === true`: Server responded (Success or Error)\n- `processed === false`: Request failed (Failure)\n\nUse `ok` to check for success:\n- `ok === true`: Success (statusCode === 0)\n- `ok === false`: Error or Failure"
      },
      "kind": "typeAlias",
      "typeAliasDef": {
        "tsType": {
          "repr": "",
          "kind": "union",
          "union": [
            {
              "repr": "ConnectRpcResponseSuccess",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": [
                  {
                    "repr": "T",
                    "kind": "typeRef",
                    "typeRef": {
                      "typeParams": null,
                      "typeName": "T"
                    }
                  }
                ],
                "typeName": "ConnectRpcResponseSuccess"
              }
            },
            {
              "repr": "ConnectRpcResponseError",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": [
                  {
                    "repr": "T",
                    "kind": "typeRef",
                    "typeRef": {
                      "typeParams": null,
                      "typeName": "T"
                    }
                  }
                ],
                "typeName": "ConnectRpcResponseError"
              }
            },
            {
              "repr": "ConnectRpcResponseFailure",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": [
                  {
                    "repr": "T",
                    "kind": "typeRef",
                    "typeRef": {
                      "typeParams": null,
                      "typeName": "T"
                    }
                  }
                ],
                "typeName": "ConnectRpcResponseFailure"
              }
            }
          ]
        },
        "typeParams": [
          {
            "name": "T",
            "default": {
              "repr": "any",
              "kind": "keyword",
              "keyword": "any"
            }
          }
        ]
      }
    },
    {
      "name": "GrpcResponseError",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
        "line": 164,
        "col": 0,
        "byteIndex": 4684
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "ConnectRPC response with gRPC error (statusCode !== 0).\n\nThe server processed the request but returned an error status."
      },
      "kind": "interface",
      "interfaceDef": {
        "extends": [
          {
            "repr": "ConnectRpcResponseBase",
            "kind": "typeRef",
            "typeRef": {
              "typeParams": [
                {
                  "repr": "T",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": null,
                    "typeName": "T"
                  }
                }
              ],
              "typeName": "ConnectRpcResponseBase"
            }
          }
        ],
        "constructors": [],
        "methods": [],
        "properties": [
          {
            "name": "processed",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 166,
              "col": 2,
              "byteIndex": 4774
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "true",
              "kind": "literal",
              "literal": {
                "kind": "boolean",
                "boolean": true
              }
            },
            "typeParams": []
          },
          {
            "name": "ok",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 167,
              "col": 2,
              "byteIndex": 4802
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "false",
              "kind": "literal",
              "literal": {
                "kind": "boolean",
                "boolean": false
              }
            },
            "typeParams": []
          },
          {
            "name": "error",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 168,
              "col": 2,
              "byteIndex": 4824
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "ConnectRpcError",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "ConnectRpcError"
              }
            },
            "typeParams": []
          },
          {
            "name": "statusCode",
            "jsDoc": {
              "doc": "gRPC status code (1-16)."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 171,
              "col": 2,
              "byteIndex": 4894
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "ConnectRpcStatusCode",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "ConnectRpcStatusCode"
              }
            },
            "typeParams": []
          },
          {
            "name": "statusMessage",
            "jsDoc": {
              "doc": "Status message describing the error."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 174,
              "col": 2,
              "byteIndex": 4986
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "string",
              "kind": "keyword",
              "keyword": "string"
            },
            "typeParams": []
          },
          {
            "name": "headers",
            "jsDoc": {
              "doc": "Response headers."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 177,
              "col": 2,
              "byteIndex": 5048
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "Headers",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "Headers"
              }
            },
            "typeParams": []
          },
          {
            "name": "trailers",
            "jsDoc": {
              "doc": "Response trailers (sent at end of RPC)."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 180,
              "col": 2,
              "byteIndex": 5127
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "Headers",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "Headers"
              }
            },
            "typeParams": []
          },
          {
            "name": "raw",
            "jsDoc": {
              "doc": "Raw ConnectError."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 183,
              "col": 2,
              "byteIndex": 5185
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "ConnectError",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "ConnectError"
              }
            },
            "typeParams": []
          },
          {
            "name": "data",
            "jsDoc": {
              "doc": "No data for error responses."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 186,
              "col": 2,
              "byteIndex": 5254
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "null",
              "kind": "keyword",
              "keyword": "null"
            },
            "typeParams": []
          }
        ],
        "callSignatures": [],
        "indexSignatures": [],
        "typeParams": [
          {
            "name": "T",
            "default": {
              "repr": "any",
              "kind": "keyword",
              "keyword": "any"
            }
          }
        ]
      }
    },
    {
      "name": "GrpcResponseFailure",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
        "line": 195,
        "col": 0,
        "byteIndex": 5443
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "Failed ConnectRPC request (network error, connection refused, etc.).\n\nThe request did not reach gRPC processing."
      },
      "kind": "interface",
      "interfaceDef": {
        "extends": [
          {
            "repr": "ConnectRpcResponseBase",
            "kind": "typeRef",
            "typeRef": {
              "typeParams": [
                {
                  "repr": "T",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": null,
                    "typeName": "T"
                  }
                }
              ],
              "typeName": "ConnectRpcResponseBase"
            }
          }
        ],
        "constructors": [],
        "methods": [],
        "properties": [
          {
            "name": "processed",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 197,
              "col": 2,
              "byteIndex": 5535
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "false",
              "kind": "literal",
              "literal": {
                "kind": "boolean",
                "boolean": false
              }
            },
            "typeParams": []
          },
          {
            "name": "ok",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 198,
              "col": 2,
              "byteIndex": 5564
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "false",
              "kind": "literal",
              "literal": {
                "kind": "boolean",
                "boolean": false
              }
            },
            "typeParams": []
          },
          {
            "name": "error",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 199,
              "col": 2,
              "byteIndex": 5586
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "ConnectRpcFailureError",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "ConnectRpcFailureError"
              }
            },
            "typeParams": []
          },
          {
            "name": "statusCode",
            "jsDoc": {
              "doc": "Status code (null for network failures)."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 202,
              "col": 2,
              "byteIndex": 5679
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "null",
              "kind": "keyword",
              "keyword": "null"
            },
            "typeParams": []
          },
          {
            "name": "statusMessage",
            "jsDoc": {
              "doc": "Status message (null for network failures)."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 205,
              "col": 2,
              "byteIndex": 5762
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "null",
              "kind": "keyword",
              "keyword": "null"
            },
            "typeParams": []
          },
          {
            "name": "headers",
            "jsDoc": {
              "doc": "Response headers (null for failures)."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 208,
              "col": 2,
              "byteIndex": 5842
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "null",
              "kind": "keyword",
              "keyword": "null"
            },
            "typeParams": []
          },
          {
            "name": "trailers",
            "jsDoc": {
              "doc": "Response trailers (null for failures)."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 211,
              "col": 2,
              "byteIndex": 5917
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "null",
              "kind": "keyword",
              "keyword": "null"
            },
            "typeParams": []
          },
          {
            "name": "raw",
            "jsDoc": {
              "doc": "No raw response (request didn't reach server)."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 214,
              "col": 2,
              "byteIndex": 6001
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "null",
              "kind": "keyword",
              "keyword": "null"
            },
            "typeParams": []
          },
          {
            "name": "data",
            "jsDoc": {
              "doc": "No data (request didn't reach server)."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 217,
              "col": 2,
              "byteIndex": 6072
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "null",
              "kind": "keyword",
              "keyword": "null"
            },
            "typeParams": []
          }
        ],
        "callSignatures": [],
        "indexSignatures": [],
        "typeParams": [
          {
            "name": "T",
            "default": {
              "repr": "any",
              "kind": "keyword",
              "keyword": "any"
            }
          }
        ]
      }
    },
    {
      "name": "GrpcResponseSuccess",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
        "line": 133,
        "col": 0,
        "byteIndex": 3877
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "Successful ConnectRPC response (statusCode === 0)."
      },
      "kind": "interface",
      "interfaceDef": {
        "extends": [
          {
            "repr": "ConnectRpcResponseBase",
            "kind": "typeRef",
            "typeRef": {
              "typeParams": [
                {
                  "repr": "T",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": null,
                    "typeName": "T"
                  }
                }
              ],
              "typeName": "ConnectRpcResponseBase"
            }
          }
        ],
        "constructors": [],
        "methods": [],
        "properties": [
          {
            "name": "processed",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 135,
              "col": 2,
              "byteIndex": 3969
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "true",
              "kind": "literal",
              "literal": {
                "kind": "boolean",
                "boolean": true
              }
            },
            "typeParams": []
          },
          {
            "name": "ok",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 136,
              "col": 2,
              "byteIndex": 3997
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "true",
              "kind": "literal",
              "literal": {
                "kind": "boolean",
                "boolean": true
              }
            },
            "typeParams": []
          },
          {
            "name": "error",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 137,
              "col": 2,
              "byteIndex": 4018
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "null",
              "kind": "keyword",
              "keyword": "null"
            },
            "typeParams": []
          },
          {
            "name": "statusCode",
            "jsDoc": {
              "doc": "gRPC status code (always 0 for success)."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 140,
              "col": 2,
              "byteIndex": 4093
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "0",
              "kind": "literal",
              "literal": {
                "kind": "number",
                "number": 0
              }
            },
            "typeParams": []
          },
          {
            "name": "statusMessage",
            "jsDoc": {
              "doc": "Status message (null for successful responses)."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 143,
              "col": 2,
              "byteIndex": 4177
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "null",
              "kind": "keyword",
              "keyword": "null"
            },
            "typeParams": []
          },
          {
            "name": "headers",
            "jsDoc": {
              "doc": "Response headers."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 146,
              "col": 2,
              "byteIndex": 4237
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "Headers",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "Headers"
              }
            },
            "typeParams": []
          },
          {
            "name": "trailers",
            "jsDoc": {
              "doc": "Response trailers (sent at end of RPC)."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 149,
              "col": 2,
              "byteIndex": 4316
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "Headers",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "Headers"
              }
            },
            "typeParams": []
          },
          {
            "name": "raw",
            "jsDoc": {
              "doc": "Raw protobuf Message object."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 152,
              "col": 2,
              "byteIndex": 4385
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "unknown",
              "kind": "keyword",
              "keyword": "unknown"
            },
            "typeParams": []
          },
          {
            "name": "data",
            "jsDoc": {
              "doc": "Response data as plain JavaScript object (JSON representation)."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/response.ts",
              "line": 155,
              "col": 2,
              "byteIndex": 4484
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "",
              "kind": "union",
              "union": [
                {
                  "repr": "T",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": null,
                    "typeName": "T"
                  }
                },
                {
                  "repr": "null",
                  "kind": "keyword",
                  "keyword": "null"
                }
              ]
            },
            "typeParams": []
          }
        ],
        "callSignatures": [],
        "indexSignatures": [],
        "typeParams": [
          {
            "name": "T",
            "default": {
              "repr": "any",
              "kind": "keyword",
              "keyword": "any"
            }
          }
        ]
      }
    },
    {
      "name": "GrpcStatus",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
        "line": 13,
        "col": 13,
        "byteIndex": 317
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "ConnectRPC/gRPC status codes.\nThese codes are used by both gRPC and ConnectRPC protocols."
      },
      "kind": "variable",
      "variableDef": {
        "tsType": {
          "repr": "",
          "kind": "typeLiteral",
          "typeLiteral": {
            "constructors": [],
            "methods": [],
            "properties": [
              {
                "name": "OK",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 14,
                  "col": 2,
                  "byteIndex": 340
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              },
              {
                "name": "CANCELLED",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 15,
                  "col": 2,
                  "byteIndex": 349
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              },
              {
                "name": "UNKNOWN",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 16,
                  "col": 2,
                  "byteIndex": 365
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              },
              {
                "name": "INVALID_ARGUMENT",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 17,
                  "col": 2,
                  "byteIndex": 379
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              },
              {
                "name": "DEADLINE_EXCEEDED",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 18,
                  "col": 2,
                  "byteIndex": 402
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              },
              {
                "name": "NOT_FOUND",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 19,
                  "col": 2,
                  "byteIndex": 426
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              },
              {
                "name": "ALREADY_EXISTS",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 20,
                  "col": 2,
                  "byteIndex": 442
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              },
              {
                "name": "PERMISSION_DENIED",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 21,
                  "col": 2,
                  "byteIndex": 463
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              },
              {
                "name": "RESOURCE_EXHAUSTED",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 22,
                  "col": 2,
                  "byteIndex": 487
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              },
              {
                "name": "FAILED_PRECONDITION",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 23,
                  "col": 2,
                  "byteIndex": 512
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              },
              {
                "name": "ABORTED",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 24,
                  "col": 2,
                  "byteIndex": 538
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              },
              {
                "name": "OUT_OF_RANGE",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 25,
                  "col": 2,
                  "byteIndex": 553
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              },
              {
                "name": "UNIMPLEMENTED",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 26,
                  "col": 2,
                  "byteIndex": 573
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              },
              {
                "name": "INTERNAL",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 27,
                  "col": 2,
                  "byteIndex": 594
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              },
              {
                "name": "UNAVAILABLE",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 28,
                  "col": 2,
                  "byteIndex": 610
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              },
              {
                "name": "DATA_LOSS",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 29,
                  "col": 2,
                  "byteIndex": 629
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              },
              {
                "name": "UNAUTHENTICATED",
                "location": {
                  "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
                  "line": 30,
                  "col": 2,
                  "byteIndex": 646
                },
                "params": [],
                "computed": false,
                "optional": false,
                "tsType": {
                  "repr": "number",
                  "kind": "keyword",
                  "keyword": "number"
                },
                "typeParams": []
              }
            ],
            "callSignatures": [],
            "indexSignatures": []
          }
        },
        "kind": "const"
      }
    },
    {
      "name": "GrpcStatusCode",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
        "line": 37,
        "col": 0,
        "byteIndex": 766
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "ConnectRPC/gRPC status code type.\nDerived from ConnectRpcStatus values."
      },
      "kind": "typeAlias",
      "typeAliasDef": {
        "tsType": {
          "repr": "",
          "kind": "indexedAccess",
          "indexedAccess": {
            "readonly": false,
            "objType": {
              "repr": "",
              "kind": "parenthesized",
              "parenthesized": {
                "repr": "ConnectRpcStatus",
                "kind": "typeQuery",
                "typeQuery": "ConnectRpcStatus"
              }
            },
            "indexType": {
              "repr": "",
              "kind": "typeOperator",
              "typeOperator": {
                "operator": "keyof",
                "tsType": {
                  "repr": "ConnectRpcStatus",
                  "kind": "typeQuery",
                  "typeQuery": "ConnectRpcStatus"
                }
              }
            }
          }
        },
        "typeParams": []
      }
    },
    {
      "name": "ErrorDetail",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
        "line": 33,
        "col": 0,
        "byteIndex": 1070
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "Rich error detail from google.rpc.Status.\n\nConnectRPC errors can include structured details encoded in error responses.\nThese details follow the google.protobuf.Any format with a type URL and value."
      },
      "kind": "interface",
      "interfaceDef": {
        "extends": [],
        "constructors": [],
        "methods": [],
        "properties": [
          {
            "name": "typeUrl",
            "jsDoc": {
              "doc": "Type URL identifying the error detail type.\nCommon types include:\n- \"type.googleapis.com/google.rpc.BadRequest\"\n- \"type.googleapis.com/google.rpc.DebugInfo\"\n- \"type.googleapis.com/google.rpc.RetryInfo\"\n- \"type.googleapis.com/google.rpc.QuotaFailure\""
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
              "line": 42,
              "col": 2,
              "byteIndex": 1395
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "string",
              "kind": "keyword",
              "keyword": "string"
            },
            "typeParams": []
          },
          {
            "name": "value",
            "jsDoc": {
              "doc": "Decoded error detail value.\nThe structure depends on the typeUrl."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/errors.ts",
              "line": 48,
              "col": 2,
              "byteIndex": 1512
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "unknown",
              "kind": "keyword",
              "keyword": "unknown"
            },
            "typeParams": []
          }
        ],
        "callSignatures": [],
        "indexSignatures": [],
        "typeParams": []
      }
    },
    {
      "name": "FileDescriptorSet",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
        "line": 28,
        "col": 0,
        "byteIndex": 705
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "FileDescriptorSet message type from @bufbuild/protobuf.\nThis is the decoded protobuf message containing file descriptors."
      },
      "kind": "typeAlias",
      "typeAliasDef": {
        "tsType": {
          "repr": "MessageShape",
          "kind": "typeRef",
          "typeRef": {
            "typeParams": [
              {
                "repr": "FileDescriptorSetSchema",
                "kind": "typeQuery",
                "typeQuery": "FileDescriptorSetSchema"
              }
            ],
            "typeName": "MessageShape"
          }
        },
        "typeParams": []
      }
    },
    {
      "name": "getGrpcStatusName",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
        "line": 58,
        "col": 0,
        "byteIndex": 1349
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "Get the name of a ConnectRPC/gRPC status code.\n",
        "tags": [
          {
            "kind": "example",
            "doc": "```typescript\ngetStatusName(0);  // \"OK\"\ngetStatusName(5);  // \"NOT_FOUND\"\ngetStatusName(16); // \"UNAUTHENTICATED\"\n```"
          }
        ]
      },
      "kind": "function",
      "functionDef": {
        "params": [
          {
            "kind": "identifier",
            "name": "code",
            "optional": false,
            "tsType": {
              "repr": "ConnectRpcStatusCode",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "ConnectRpcStatusCode"
              }
            }
          }
        ],
        "returnType": {
          "repr": "string",
          "kind": "keyword",
          "keyword": "string"
        },
        "hasBody": true,
        "isAsync": false,
        "isGenerator": false,
        "typeParams": []
      }
    },
    {
      "name": "isGrpcStatusCode",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/status.ts",
        "line": 72,
        "col": 0,
        "byteIndex": 1677
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "Check if a number is a valid ConnectRPC/gRPC status code.\n",
        "tags": [
          {
            "kind": "example",
            "doc": "```typescript\nisConnectRpcStatusCode(0);   // true\nisConnectRpcStatusCode(16);  // true\nisConnectRpcStatusCode(99);  // false\n```"
          }
        ]
      },
      "kind": "function",
      "functionDef": {
        "params": [
          {
            "kind": "identifier",
            "name": "code",
            "optional": false,
            "tsType": {
              "repr": "number",
              "kind": "keyword",
              "keyword": "number"
            }
          }
        ],
        "returnType": {
          "repr": "code is ConnectRpcStatusCode",
          "kind": "typePredicate",
          "typePredicate": {
            "asserts": false,
            "param": {
              "type": "identifier",
              "name": "code"
            },
            "type": {
              "repr": "ConnectRpcStatusCode",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "ConnectRpcStatusCode"
              }
            }
          }
        },
        "hasBody": true,
        "isAsync": false,
        "isGenerator": false,
        "typeParams": []
      }
    },
    {
      "name": "MethodInfo",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
        "line": 168,
        "col": 0,
        "byteIndex": 4447
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "Method information from reflection."
      },
      "kind": "interface",
      "interfaceDef": {
        "extends": [],
        "constructors": [],
        "methods": [],
        "properties": [
          {
            "name": "name",
            "jsDoc": {
              "doc": "Method name (e.g., \"Echo\")"
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 170,
              "col": 2,
              "byteIndex": 4515
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "string",
              "kind": "keyword",
              "keyword": "string"
            },
            "typeParams": []
          },
          {
            "name": "localName",
            "jsDoc": {
              "doc": "Local name (camelCase)"
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 172,
              "col": 2,
              "byteIndex": 4572
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "string",
              "kind": "keyword",
              "keyword": "string"
            },
            "typeParams": []
          },
          {
            "name": "kind",
            "jsDoc": {
              "doc": "Method kind"
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 174,
              "col": 2,
              "byteIndex": 4623
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "",
              "kind": "union",
              "union": [
                {
                  "repr": "unary",
                  "kind": "literal",
                  "literal": {
                    "kind": "string",
                    "string": "unary"
                  }
                },
                {
                  "repr": "server_streaming",
                  "kind": "literal",
                  "literal": {
                    "kind": "string",
                    "string": "server_streaming"
                  }
                },
                {
                  "repr": "client_streaming",
                  "kind": "literal",
                  "literal": {
                    "kind": "string",
                    "string": "client_streaming"
                  }
                },
                {
                  "repr": "bidi_streaming",
                  "kind": "literal",
                  "literal": {
                    "kind": "string",
                    "string": "bidi_streaming"
                  }
                }
              ]
            },
            "typeParams": []
          },
          {
            "name": "inputType",
            "jsDoc": {
              "doc": "Input message type name"
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 180,
              "col": 2,
              "byteIndex": 4761
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "string",
              "kind": "keyword",
              "keyword": "string"
            },
            "typeParams": []
          },
          {
            "name": "outputType",
            "jsDoc": {
              "doc": "Output message type name"
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 182,
              "col": 2,
              "byteIndex": 4825
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "string",
              "kind": "keyword",
              "keyword": "string"
            },
            "typeParams": []
          },
          {
            "name": "idempotent",
            "jsDoc": {
              "doc": "Whether the method is idempotent"
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 184,
              "col": 2,
              "byteIndex": 4898
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "boolean",
              "kind": "keyword",
              "keyword": "boolean"
            },
            "typeParams": []
          }
        ],
        "callSignatures": [],
        "indexSignatures": [],
        "typeParams": []
      }
    },
    {
      "name": "ReflectionApi",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/client.ts",
        "line": 73,
        "col": 0,
        "byteIndex": 1960
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "Reflection API for ConnectRPC client.\nOnly available when client is created with schema: \"reflection\"."
      },
      "kind": "interface",
      "interfaceDef": {
        "extends": [],
        "constructors": [],
        "methods": [
          {
            "name": "listServices",
            "jsDoc": {
              "doc": "List all available services on the server.",
              "tags": [
                {
                  "kind": "throws",
                  "type": null,
                  "doc": "Error if reflection is not enabled"
                }
              ]
            },
            "kind": "method",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/client.ts",
              "line": 83,
              "col": 2,
              "byteIndex": 2182
            },
            "params": [],
            "optional": false,
            "returnType": {
              "repr": "Promise",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": [
                  {
                    "repr": "",
                    "kind": "array",
                    "array": {
                      "repr": "ServiceInfo",
                      "kind": "typeRef",
                      "typeRef": {
                        "typeParams": null,
                        "typeName": "ServiceInfo"
                      }
                    }
                  }
                ],
                "typeName": "Promise"
              }
            },
            "typeParams": []
          },
          {
            "name": "getServiceInfo",
            "jsDoc": {
              "doc": "Get detailed information about a specific service.",
              "tags": [
                {
                  "kind": "param",
                  "name": "serviceName",
                  "doc": "- Fully qualified service name (e.g., \"echo.EchoService\")"
                },
                {
                  "kind": "throws",
                  "type": null,
                  "doc": "Error if reflection is not enabled"
                }
              ]
            },
            "kind": "method",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/client.ts",
              "line": 90,
              "col": 2,
              "byteIndex": 2423
            },
            "params": [
              {
                "kind": "identifier",
                "name": "serviceName",
                "optional": false,
                "tsType": {
                  "repr": "string",
                  "kind": "keyword",
                  "keyword": "string"
                }
              }
            ],
            "optional": false,
            "returnType": {
              "repr": "Promise",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": [
                  {
                    "repr": "ServiceDetail",
                    "kind": "typeRef",
                    "typeRef": {
                      "typeParams": null,
                      "typeName": "ServiceDetail"
                    }
                  }
                ],
                "typeName": "Promise"
              }
            },
            "typeParams": []
          },
          {
            "name": "listMethods",
            "jsDoc": {
              "doc": "Get methods for a specific service.",
              "tags": [
                {
                  "kind": "param",
                  "name": "serviceName",
                  "doc": "- Fully qualified service name"
                },
                {
                  "kind": "throws",
                  "type": null,
                  "doc": "Error if reflection is not enabled"
                }
              ]
            },
            "kind": "method",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/client.ts",
              "line": 97,
              "col": 2,
              "byteIndex": 2643
            },
            "params": [
              {
                "kind": "identifier",
                "name": "serviceName",
                "optional": false,
                "tsType": {
                  "repr": "string",
                  "kind": "keyword",
                  "keyword": "string"
                }
              }
            ],
            "optional": false,
            "returnType": {
              "repr": "Promise",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": [
                  {
                    "repr": "",
                    "kind": "array",
                    "array": {
                      "repr": "MethodInfo",
                      "kind": "typeRef",
                      "typeRef": {
                        "typeParams": null,
                        "typeName": "MethodInfo"
                      }
                    }
                  }
                ],
                "typeName": "Promise"
              }
            },
            "typeParams": []
          },
          {
            "name": "hasService",
            "jsDoc": {
              "doc": "Check if a service exists.",
              "tags": [
                {
                  "kind": "param",
                  "name": "serviceName",
                  "doc": "- Fully qualified service name"
                },
                {
                  "kind": "throws",
                  "type": null,
                  "doc": "Error if reflection is not enabled"
                }
              ]
            },
            "kind": "method",
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/client.ts",
              "line": 104,
              "col": 2,
              "byteIndex": 2850
            },
            "params": [
              {
                "kind": "identifier",
                "name": "serviceName",
                "optional": false,
                "tsType": {
                  "repr": "string",
                  "kind": "keyword",
                  "keyword": "string"
                }
              }
            ],
            "optional": false,
            "returnType": {
              "repr": "Promise",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": [
                  {
                    "repr": "boolean",
                    "kind": "keyword",
                    "keyword": "boolean"
                  }
                ],
                "typeName": "Promise"
              }
            },
            "typeParams": []
          }
        ],
        "properties": [
          {
            "name": "enabled",
            "jsDoc": {
              "doc": "Check if reflection is enabled."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/client.ts",
              "line": 77,
              "col": 2,
              "byteIndex": 2044
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "boolean",
              "kind": "keyword",
              "keyword": "boolean"
            },
            "typeParams": []
          }
        ],
        "callSignatures": [],
        "indexSignatures": [],
        "typeParams": []
      }
    },
    {
      "name": "ServiceDetail",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
        "line": 190,
        "col": 0,
        "byteIndex": 4972
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "Detailed service information."
      },
      "kind": "interface",
      "interfaceDef": {
        "extends": [],
        "constructors": [],
        "methods": [],
        "properties": [
          {
            "name": "name",
            "jsDoc": {
              "doc": "Service name"
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 192,
              "col": 2,
              "byteIndex": 5029
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "string",
              "kind": "keyword",
              "keyword": "string"
            },
            "typeParams": []
          },
          {
            "name": "fullName",
            "jsDoc": {
              "doc": "Fully qualified service name"
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 194,
              "col": 2,
              "byteIndex": 5092
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "string",
              "kind": "keyword",
              "keyword": "string"
            },
            "typeParams": []
          },
          {
            "name": "packageName",
            "jsDoc": {
              "doc": "Package name"
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 196,
              "col": 2,
              "byteIndex": 5143
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "string",
              "kind": "keyword",
              "keyword": "string"
            },
            "typeParams": []
          },
          {
            "name": "protoFile",
            "jsDoc": {
              "doc": "Proto file name"
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 198,
              "col": 2,
              "byteIndex": 5200
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "string",
              "kind": "keyword",
              "keyword": "string"
            },
            "typeParams": []
          },
          {
            "name": "methods",
            "jsDoc": {
              "doc": "All methods"
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 200,
              "col": 2,
              "byteIndex": 5251
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "",
              "kind": "typeOperator",
              "typeOperator": {
                "operator": "readonly",
                "tsType": {
                  "repr": "",
                  "kind": "array",
                  "array": {
                    "repr": "MethodInfo",
                    "kind": "typeRef",
                    "typeRef": {
                      "typeParams": null,
                      "typeName": "MethodInfo"
                    }
                  }
                }
              }
            },
            "typeParams": []
          }
        ],
        "callSignatures": [],
        "indexSignatures": [],
        "typeParams": []
      }
    },
    {
      "name": "ServiceInfo",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
        "line": 158,
        "col": 0,
        "byteIndex": 4226
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "Service information from reflection."
      },
      "kind": "interface",
      "interfaceDef": {
        "extends": [],
        "constructors": [],
        "methods": [],
        "properties": [
          {
            "name": "name",
            "jsDoc": {
              "doc": "Fully qualified service name (e.g., \"echo.EchoService\")"
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 160,
              "col": 2,
              "byteIndex": 4324
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "string",
              "kind": "keyword",
              "keyword": "string"
            },
            "typeParams": []
          },
          {
            "name": "file",
            "jsDoc": {
              "doc": "Proto file name"
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 162,
              "col": 2,
              "byteIndex": 4374
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": false,
            "tsType": {
              "repr": "string",
              "kind": "keyword",
              "keyword": "string"
            },
            "typeParams": []
          }
        ],
        "callSignatures": [],
        "indexSignatures": [],
        "typeParams": []
      }
    },
    {
      "name": "TlsConfig",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
        "line": 43,
        "col": 0,
        "byteIndex": 1037
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "TLS configuration for ConnectRPC connections."
      },
      "kind": "interface",
      "interfaceDef": {
        "extends": [],
        "constructors": [],
        "methods": [],
        "properties": [
          {
            "name": "rootCerts",
            "jsDoc": {
              "doc": "Root CA certificate (PEM format)."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 45,
              "col": 2,
              "byteIndex": 1111
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": true,
            "tsType": {
              "repr": "Uint8Array",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "Uint8Array"
              }
            },
            "typeParams": []
          },
          {
            "name": "clientCert",
            "jsDoc": {
              "doc": "Client certificate (PEM format)."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 47,
              "col": 2,
              "byteIndex": 1188
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": true,
            "tsType": {
              "repr": "Uint8Array",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "Uint8Array"
              }
            },
            "typeParams": []
          },
          {
            "name": "clientKey",
            "jsDoc": {
              "doc": "Client private key (PEM format)."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 49,
              "col": 2,
              "byteIndex": 1266
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": true,
            "tsType": {
              "repr": "Uint8Array",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "Uint8Array"
              }
            },
            "typeParams": []
          },
          {
            "name": "insecure",
            "jsDoc": {
              "doc": "Skip server certificate verification (use only for testing)."
            },
            "location": {
              "filename": "https://jsr.io/@probitas/client-connectrpc/0.7.0/types.ts",
              "line": 51,
              "col": 2,
              "byteIndex": 1371
            },
            "params": [],
            "readonly": true,
            "computed": false,
            "optional": true,
            "tsType": {
              "repr": "boolean",
              "kind": "keyword",
              "keyword": "boolean"
            },
            "typeParams": []
          }
        ],
        "callSignatures": [],
        "indexSignatures": [],
        "typeParams": []
      }
    },
    {
      "name": "GrpcClientConfig",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-grpc/0.6.0/mod.ts",
        "line": 164,
        "col": 0,
        "byteIndex": 5198
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "Configuration for creating a gRPC client.\n\nThis is a subset of ConnectRpcClientConfig with protocol fixed to \"grpc\"."
      },
      "kind": "interface",
      "interfaceDef": {
        "extends": [
          {
            "repr": "Omit",
            "kind": "typeRef",
            "typeRef": {
              "typeParams": [
                {
                  "repr": "ConnectRpcClientConfig",
                  "kind": "typeRef",
                  "typeRef": {
                    "typeParams": null,
                    "typeName": "ConnectRpcClientConfig"
                  }
                },
                {
                  "repr": "protocol",
                  "kind": "literal",
                  "literal": {
                    "kind": "string",
                    "string": "protocol"
                  }
                }
              ],
              "typeName": "Omit"
            }
          }
        ],
        "constructors": [],
        "methods": [],
        "properties": [],
        "callSignatures": [],
        "indexSignatures": [],
        "typeParams": []
      }
    },
    {
      "name": "createGrpcClient",
      "isDefault": false,
      "location": {
        "filename": "https://jsr.io/@probitas/client-grpc/0.6.0/mod.ts",
        "line": 247,
        "col": 0,
        "byteIndex": 7394
      },
      "declarationKind": "export",
      "jsDoc": {
        "doc": "Create a new gRPC client instance.\n\nThis is a thin wrapper around `createConnectRpcClient` with `protocol: \"grpc\"` fixed.\nThe client provides Server Reflection support for runtime service discovery.\n",
        "tags": [
          {
            "kind": "param",
            "name": "config",
            "doc": "- Client configuration including server address"
          },
          {
            "kind": "return",
            "doc": "A new gRPC client instance\n"
          },
          {
            "kind": "example",
            "doc": "Basic usage with reflection\n```ts\nimport { createGrpcClient } from \"@probitas/client-grpc\";\n\nconst client = createGrpcClient({\n  url: \"http://localhost:50051\",\n});\n\n// Call a method\nconst response = await client.call(\n  \"echo.EchoService\",\n  \"echo\",\n  { message: \"Hello!\" }\n);\nconsole.log(response.data);\n\nawait client.close();\n```\n"
          },
          {
            "kind": "example",
            "doc": "Service discovery with reflection\n```ts\nimport { createGrpcClient } from \"@probitas/client-grpc\";\n\nconst client = createGrpcClient({\n  url: \"http://localhost:50051\",\n});\n\n// Discover available services\nconst services = await client.reflection.listServices();\nconsole.log(\"Available services:\", services);\n\n// Get method information\nconst info = await client.reflection.getServiceInfo(\"echo.EchoService\");\nconsole.log(\"Methods:\", info.methods);\n\nawait client.close();\n```\n"
          },
          {
            "kind": "example",
            "doc": "Testing error responses\n```ts\nimport { createGrpcClient } from \"@probitas/client-grpc\";\n\nconst client = createGrpcClient({ url: \"http://localhost:50051\" });\n\nconst response = await client.call(\n  \"user.UserService\",\n  \"getUser\",\n  { id: \"non-existent\" },\n  { throwOnError: false }\n);\n\nif (!response.ok) {\n  console.log(\"Error code:\", response.statusCode);  // NOT_FOUND = 5\n}\n\nawait client.close();\n```\n"
          },
          {
            "kind": "example",
            "doc": "Using `await using` for automatic cleanup\n```ts\nimport { createGrpcClient } from \"@probitas/client-grpc\";\n\nawait using client = createGrpcClient({\n  url: \"http://localhost:50051\",\n});\n\nconst res = await client.call(\"echo.EchoService\", \"echo\", { message: \"test\" });\nconsole.log(res.data);\n// Client automatically closed when scope exits\n```"
          }
        ]
      },
      "kind": "function",
      "functionDef": {
        "params": [
          {
            "kind": "identifier",
            "name": "config",
            "optional": false,
            "tsType": {
              "repr": "GrpcClientConfig",
              "kind": "typeRef",
              "typeRef": {
                "typeParams": null,
                "typeName": "GrpcClientConfig"
              }
            }
          }
        ],
        "returnType": {
          "repr": "ConnectRpcClient",
          "kind": "typeRef",
          "typeRef": {
            "typeParams": null,
            "typeName": "ConnectRpcClient"
          }
        },
        "hasBody": true,
        "isAsync": false,
        "isGenerator": false,
        "typeParams": []
      }
    }
  ]
}
