/** * Updates session config mid-stream. `language_code`, `mode`, `prompt`, * `stream_type`, and `endpointing` are boundary-gated: validated on arrival * but deferred and applied at the next utterance boundary while an utterance * is in progress, so each utterance's partials and final use one consistent * config snapshot. The VAD detector knobs (`threshold`, * `silence_duration_ms`, `min_speech_duration_ms`) apply immediately on the * next VAD rebuild and are ignored under `endpointing=manual`. Changing * `stream_type` to/from `simulated` is rejected (`invalid_config`). * * The server replies with `config.updated` (listing the applied keys), or an * `error` with code `invalid_config` on a rejected value. */ export interface RealtimeConfigUpdate { event: "config.update"; /** Re-arms auto-LID and resets the sticky language. Boundary-gated. */ language_code?: string | undefined; /** Non-streaming context hint (empty string clears it). Boundary-gated. */ prompt?: string | undefined; /** Non-streaming task selector. Boundary-gated. */ mode?: RealtimeConfigUpdate.Mode | undefined; /** `fast`↔`balanced` swap. Boundary-gated. Changing to/from `simulated` is rejected. */ stream_type?: RealtimeConfigUpdate.StreamType | undefined; /** `vad`/`manual` swap. Boundary-gated. */ endpointing?: RealtimeConfigUpdate.Endpointing | undefined; /** VAD activation threshold; applied immediately (vad only). */ threshold?: number | undefined; /** End-of-turn silence; applied immediately (vad only). */ silence_duration_ms?: number | undefined; /** Minimum speech duration; applied immediately (vad only). */ min_speech_duration_ms?: number | undefined; } export declare namespace RealtimeConfigUpdate { /** Non-streaming task selector. Boundary-gated. */ const Mode: { readonly Transcribe: "transcribe"; readonly Translate: "translate"; readonly Verbatim: "verbatim"; readonly Translit: "translit"; readonly Codemix: "codemix"; }; type Mode = (typeof Mode)[keyof typeof Mode]; /** `fast`↔`balanced` swap. Boundary-gated. Changing to/from `simulated` is rejected. */ const StreamType: { readonly Fast: "fast"; readonly Balanced: "balanced"; }; type StreamType = (typeof StreamType)[keyof typeof StreamType]; /** `vad`/`manual` swap. Boundary-gated. */ const Endpointing: { readonly Vad: "vad"; readonly Manual: "manual"; }; type Endpointing = (typeof Endpointing)[keyof typeof Endpointing]; }