# `Pristine.Client`
[🔗](https://github.com/nshkrdotcom/pristine/blob/pristine-v0.4.0/lib/pristine/client.ex#L1)

Provider-agnostic runtime client used by generated providers and thin facades.

# `runtime_defaults_t`

```elixir
@type runtime_defaults_t() :: %{
  retry: module() | nil,
  timeout_ms: non_neg_integer() | nil,
  telemetry: module() | nil,
  serializer: module() | nil,
  stream_transport: module() | nil,
  rate_limiter: module() | nil,
  circuit_breaker: module() | nil
}
```

# `t`

```elixir
@type t() :: %Pristine.Client{
  base_url: String.t() | nil,
  context: Pristine.Core.Context.t(),
  default_auth: term(),
  default_headers: map(),
  runtime_defaults: runtime_defaults_t(),
  transport: module() | nil
}
```

# `foundation`

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

# `from_context`

```elixir
@spec from_context(Pristine.Core.Context.t()) :: t()
```

# `new`

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

---

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