import type { ContextEvent, ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent"; import type { RealtimeVoiceTurn } from "./turns.ts"; import { type CodexVoiceMode } from "./ui.ts"; export interface PreparedVoiceDelegation { commit(): boolean; rollback(): void; } export interface CodexVoiceSessionMessageCallbacks { canDelegate(): boolean; prepareDelegation(ctx: ExtensionContext, signal: AbortSignal): Promise; onDelegation(id: string): void; onDelegationFailed(id: string): void; onWorking(): void; } export declare class CodexVoiceSessionMessages { private readonly pi; private readonly callbacks; private context; private piTurnActive; private dictationAnnounced; private delegationTail; private delegationAbortController; private contextGeneration; constructor(pi: ExtensionAPI, callbacks: CodexVoiceSessionMessageCallbacks); setContext(ctx: ExtensionContext): void; contextSummary(summary: string): void; userTranscript(transcript: string): void; modeStarted(mode: CodexVoiceMode): void; resetContextAnnouncements(): void; resetSessionContext(): void; conversationInputStopped(): void; voiceStopped(mode?: CodexVoiceMode): void; voiceTurn(turn: RealtimeVoiceTurn): Promise; waitForDelegations(): Promise; cancelPendingDelegations(): void; retainTranscriptTail(transcriptDelta: string): void; filterContext(messages: ContextEvent["messages"]): ContextEvent["messages"]; agentStarted(): void; agentSettled(): void; private appendMode; private replaceContext; private deliverDelegation; }