# `Mojentic.Realtime.Config`
[🔗](https://github.com/svetzal/mojentic-ex/blob/v1.5.0/lib/mojentic/realtime/config.ex#L26)

Vendor-neutral configuration for a realtime voice session.

The library forwards a curated subset to the active gateway and
translates vendor-specific shapes at the boundary. Mirrors
RealtimeVoiceConfig in mojentic-py / mojentic-ts.

# `audio_format`

```elixir
@type audio_format() :: :pcm16 | :g711_ulaw | :g711_alaw
```

# `interrupt_policy`

```elixir
@type interrupt_policy() :: :drop | :submit | :submit_completed_only
```

# `modality`

```elixir
@type modality() :: :audio | :text
```

# `t`

```elixir
@type t() :: %Mojentic.Realtime.Config{
  input_audio_format: audio_format() | nil,
  input_audio_transcription: map() | false | nil,
  instructions: String.t() | nil,
  max_response_output_tokens: pos_integer() | nil,
  modalities: [modality()] | nil,
  on_interrupt: interrupt_policy() | nil,
  output_audio_format: audio_format() | nil,
  provider_extras: map() | nil,
  temperature: float() | nil,
  tool_choice: tool_choice() | nil,
  tools: [module() | struct()] | nil,
  turn_detection: turn_detection_mode() | nil,
  voice: String.t() | nil
}
```

# `tool_choice`

```elixir
@type tool_choice() :: :auto | :none | :required | %{name: String.t()}
```

# `turn_detection_mode`

```elixir
@type turn_detection_mode() ::
  :server_vad
  | :semantic_vad
  | :none
  | Mojentic.Realtime.ServerVadConfig.t()
  | Mojentic.Realtime.SemanticVadConfig.t()
```

# `defaults`

Defaults applied when a field is omitted.

# `new`

---

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