import type { CodexConversionConfig } from "../../adapter/activation/config.ts"; import type { CodexVoiceAuth } from "../auth.ts"; import type { RealtimeInitialMessageItem } from "../context.ts"; import { type RealtimeVoiceTurn } from "../turns.ts"; import { type RealtimeHandoffChannel } from "./handoff.ts"; import { type CodexRealtimePeer } from "./peer.ts"; export { buildRealtimeCallRequest } from "./call-setup.ts"; export interface CodexConversationCallbacks { onError(error: Error): void; onStatus(status: string): void; onTurn(turn: RealtimeVoiceTurn): void; onUserTranscript(transcript: string): void; onTranscriptTail(transcriptDelta: string): void; } export declare class CodexRealtimeConversation { private readonly callbacks; private readonly peer; private readonly turnTracker; private readonly handoff; private state; private setupAbortController; private peerReady; private callSetup; private inputMuted; constructor(callbacks: CodexConversationCallbacks, peer: CodexRealtimePeer); start(auth: CodexVoiceAuth, config: CodexConversionConfig, instructions: string, initialItems?: RealtimeInitialMessageItem[]): Promise; activateDelegation(id: string): void; get microphoneMuted(): boolean; setInputMuted(muted: boolean): void; mirrorPiSteer(input: unknown): boolean; streamAgentDelta(delta: string): void; finishAgentMessage(channel: RealtimeHandoffChannel): void; settleAgentTurn(): void; close(): Promise; private handlePeerEvent; private handleHelperState; private handleServerEvent; private handleCompletedTurn; private abortSetup; private drainConversation; private fail; }