import { RealtimeDelegationHandoff, type RealtimeHandoffChannel, type RealtimeHandoffTarget } from "./handoff.ts"; import type { CodexRealtimePeer } from "./peer.ts"; import { RealtimePlayback } from "./playback.ts"; import type { CodexConversationCallbacks } from "./session.ts"; /** Owns transcript/delegation turns, spoken interruption and context framing for one peer. */ export declare class ConversationTurns { private readonly delegationAbort; private finishing; private completedOutputs; private inputGeneration; private delegationTail; private readonly pendingDelegations; private readonly turnTracker; readonly handoff: RealtimeDelegationHandoff; readonly playback: RealtimePlayback; speakableResponsePending: boolean; private readonly callId; private readonly callbacks; private readonly peer; private readonly isActive; private readonly onFailure; constructor(callbacks: CodexConversationCallbacks, peer: CodexRealtimePeer, isActive: () => boolean, onFailure: (error: Error) => void); get hasPendingInput(): boolean; receive(value: unknown): void; private enqueueDelegation; finishDelegations(): Promise; waitForDelegations(signal: AbortSignal): Promise; private handleCompletedTurn; sendContext(target: RealtimeHandoffTarget, channel: RealtimeHandoffChannel, content: string): void; drainConversation(): void; }