# `LLMProxy.ProviderUsage`
[🔗](https://github.com/elixir-vibe/llm_proxy/blob/v0.3.1/lib/llm_proxy/provider_usage.ex#L1)

Live upstream usage-window state for configured provider accounts.

Provider credentials stay behind the provider-token codec boundary. Public
functions return only redacted account labels, quota values, timestamps, and
safe status text.

# `account_count`

```elixir
@spec account_count() :: non_neg_integer()
```

# `attention_count`

```elixir
@spec attention_count() :: non_neg_integer()
```

# `available_count`

```elixir
@spec available_count() :: non_neg_integer()
```

# `refresh_account`

```elixir
@spec refresh_account(pos_integer()) ::
  {:ok, :started | :already_refreshing} | {:error, :unsupported | :unavailable}
```

# `refresh_all`

```elixir
@spec refresh_all() :: {:ok, :started | :already_refreshing} | {:error, :unavailable}
```

# `rows`

```elixir
@spec rows() :: %{columns: [atom()], rows: [map()]}
```

# `snapshots`

```elixir
@spec snapshots() :: [LLMProxy.ProviderUsage.Snapshot.t()]
```

# `token_available?`

```elixir
@spec token_available?(integer(), DateTime.t()) :: boolean()
```

---

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