// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.

export type RouterProvider = { 
/**
 * Provider slug (`novita`, `scaleway`, `together`, …). This
 * is what gets concatenated after `:` to form the wire model
 * id — e.g. `Qwen/Qwen3.5-397B-A17B` + `scaleway` →
 * `Qwen/Qwen3.5-397B-A17B:scaleway`.
 */
provider: string, 
/**
 * Context window in tokens. `None` when the provider didn't
 * advertise one; the picker shows "—" in that case and the
 * runner falls back to
 * [`moon_coder::defaults::context_window_for`] for the usage
 * ring.
 */
context_length?: number | null, 
/**
 * Whether the provider supports `tool_calls`. Picker uses
 * this per-row to grey out provider chips that the standard
 * model can't actually route to.
 */
supports_tools: boolean, 
/**
 * Optional USD-per-1M-tokens pricing pair. `None` when the
 * provider didn't expose it — usually a self-hosted route
 * where pricing is per-deployment rather than per-token.
 */
pricing?: RouterPricing | null, 
/**
 * Mean time-to-first-token in milliseconds, as measured by
 * the router's internal probes. `None` when the route is too
 * young to have measurements (e.g. `featherless-ai` entries
 * on first day a model is exposed) or simply too rarely
 * hit. Picker surfaces this so the user can compare
 * latency between providers at a glance.
 */
first_token_latency_ms?: number | null, 
/**
 * Mean output throughput in tokens-per-second, again from
 * the router's probes. Same `None` semantics as
 * [`first_token_latency_ms`].
 */
throughput?: number | null, };
