// GENERATED CODE! DO NOT MODIFY BY HAND!
// This file was mechanically normalized after generation by scripts/generate-app-server-types.mjs.

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

/**
 * EXPERIMENTAL - start a thread-scoped realtime session.
 */
export type ThreadRealtimeStartParams = { threadId: string,
/**
 * Leaves Codex response handoffs to the client's explicit append calls instead of forwarding
 * them automatically. Defaults to false.
 */
clientManagedHandoffs?: boolean | null,
/**
 * Routes any transcript tail remaining at session end through Codex. Defaults to false.
 * TODO: Remove this rollout knob once transcript-tail flushing is always enabled.
 */
flushTranscriptTailOnSessionEnd?: boolean | null,
/**
 * Sends automatic Codex responses as realtime conversation items instead of handoff appends.
 */
codexResponsesAsItems?: boolean | null,
/**
 * Optional prefix added to automatic Codex response items when `codexResponsesAsItems` is true.
 */
codexResponseItemPrefix?: string | null,
/**
 * Optional prefix added to automatic V1 Codex commentary sent with
 * `conversation.handoff.append` when `codexResponsesAsItems` is not true. Final answers are
 * sent without the prefix.
 */
codexResponseHandoffPrefix?: string | null,
/**
 * Overrides the configured realtime model for this session only.
 */
model?: string | null,
/**
 * Selects text or audio output for the realtime session. Transport and voice stay
 * independent so clients can choose how they connect separately from what the model emits.
 */
outputModality: RealtimeOutputModality,
/**
 * Set to false to start without Codex's startup context. Omitted or null includes it.
 */
includeStartupContext?: boolean | null, prompt?: string | null, realtimeSessionId?: string | null, transport?: ThreadRealtimeStartTransport | null,
/**
 * Overrides the configured realtime protocol version for this session only.
 */
version?: RealtimeConversationVersion | null, voice?: RealtimeVoice | null, };
