import { AssistantConversationProcessing, Message } from './conversation'; import { AssistantTr } from './i18n'; /** * The text a spoken turn shows in the voice transcript, the saved transcript * and the live session — through the same projection as the typed thread, so no * surface shows loading copy and a turn that ended with nothing reads "Stopped" * everywhere. Tool-activity markup is stripped, as it is for the caption. */ export declare function spokenTurnText(message: Message, processing: AssistantConversationProcessing | null | undefined, tr: AssistantTr): string; /** * How many spoken turns there are, for the "Continue in chat" watermark and the * session baseline. * * ★★ The turn in flight COUNTS from its first moment, although the transcript * lists it only once it has prose. The watermark is persisted on the note (`continuedVoiceTurns`), * and before BOFF-7277 that turn was counted because it held loading copy. * Leaving it out would record a watermark one short when "Continue in chat" is * pressed mid-turn; the reply then lands, the count moves past it, and the * action is offered again — appending a second note with nothing new in it. * * Only the newest turn can be live, so the transcript's indices and this count * agree for every turn that is listed. */ export declare function countSpokenTurns(voiceMessages: readonly Message[], processing: AssistantConversationProcessing | null | undefined, tr: AssistantTr): number; //# sourceMappingURL=spokenTurns.d.ts.map