// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { RouterProvider } from "./RouterProvider";

/**
 * One model entry, denormalised from the router response into a
 * shape the picker can render directly. `providers` is the
 * authoritative list of routes available for this model id; the
 * picker renders each as an expandable sub-row with context /
 * pricing / throughput / TTFT, and the user clicks the specific
 * `(model, provider)` pair they want — the runner concatenates
 * `model.id` + `:` + `provider.provider` and saves that as the
 * wire slug.
 */
export type RouterModel = { 
/**
 * Canonical model slug — what goes into the `model` field of
 * the chat-completions request, **without** any `:provider`
 * suffix.
 */
id: string, 
/**
 * Org or user that owns the model on the Hub. Surfaced as a
 * secondary label in the picker so a long list with multiple
 * `Qwen3.5-*` entries can be visually grouped.
 */
owned_by: string, 
/**
 * `true` iff at least one provider in [`providers`] reports
 * `supports_tools: true`. The picker uses this to filter the
 * standard-model list — the main agent loop calls `tool_calls`
 * every iteration, so a non-tool-capable model wouldn't work
 * at all there. The cheap-model list is unfiltered because the
 * cheap call sites (auto-rename, branch-name suggester,
 * compaction summary) don't use tools.
 */
supports_tools_anywhere: boolean, 
/**
 * Whether the model accepts image input, per the router's
 * `architecture.input_modalities`. Model-level — the router
 * doesn't expose per-provider modality info. `None` when the
 * catalog entry didn't carry the field; consumers treat that
 * as "assume yes" (wrongly stripping images from a capable
 * model is worse than an explainable provider error).
 */
supports_image_input?: boolean | null, 
/**
 * Provider routes. Each entry corresponds to one of the
 * `:provider` suffixes the router accepts. The router's
 * "most-popular first" ordering is preserved here too.
 */
providers: Array<RouterProvider>, };
