// Typed gRPC client for the `{{ service_name }}` service.
//
// Generated by `tonin service new`. Hand-editing this file is fine —
// `npm run gen` regenerates the `gen/` directory from `../proto/*.proto`
// but does NOT touch the items below it.
//
// Two transports, one SDK
// =======================
//
// The generated stubs work with both:
//
//   - **Node** via `@grpc/grpc-js` — server-to-server HTTP/2, full gRPC
//     framing. Use {{ ServiceCamel }}Client (the default export).
//
//   - **Browser** via `grpc-web` — HTTP/1.1+JSON, needs an Envoy proxy
//     in front of the gRPC service. Pin `grpc-web` as an explicit
//     dependency in your app (it's an optional peer dep here so the
//     Node bundle doesn't carry it).
//
// Auth + retry + circuit-breaker configs are shared with Rust/Python
// peers via the generated AuthCtx / RetryPolicy / CircuitBreaker types
// — see `./shared.ts`.

// Generated stubs (regenerate via `npm run gen`).
export * from "./gen/{{ service_name_snake }}";

// Shared client-side primitives. AuthCtx + retry/breaker configs that
// match the Rust + Python sides byte-for-byte (the codegen for this
// file is planned — for now it's hand-written but the shape is stable).
export {
  AuthCtx,
  type AuthCtxInit,
  AuthError,
  PrincipalKind,
  type RawToken,
  RetryPolicy,
  CircuitBreaker,
} from "./shared.js";
