# `TypeSafeAPISDK.Client`
[🔗](https://github.com/nshkrdotcom/typesafe_api_sdk/blob/v0.1.0/lib/typesafe_api_sdk/client.ex#L1)

Thin TypeSafe API client layered on Pristine.

Runtime code reads application configuration only. The included `runtime.exs`
maps the standard TypeSafe environment variables when this repository is the
top-level Mix project.

# `t`

```elixir
@type t() :: %TypeSafeAPISDK.Client{
  api_key: String.t(),
  base_url: String.t(),
  context: Pristine.SDK.Context.t(),
  default_model: String.t(),
  headers: map(),
  pristine_client: Pristine.Client.t(),
  retry: TypeSafeAPISDK.RetryPolicy.t() | false,
  timeout_ms: pos_integer(),
  transport: module(),
  transport_opts: keyword()
}
```

# `extra_headers`

```elixir
@spec extra_headers(keyword()) :: map()
```

# `new`

```elixir
@spec new(keyword()) :: t()
```

# `pristine_client`

```elixir
@spec pristine_client(t()) :: Pristine.Client.t()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
