import type { TurnResult } from "./turn-controller.js"; export interface TurnDisplayOptions { displayPrompt?: string | null | undefined; } interface SessionPromptQueueDeps { readonly isRunning: () => boolean; readonly abort: (reason?: string) => void; readonly notifyState: () => void; readonly notice: (text: string) => void; readonly runTurn: (prompt: string, options?: TurnDisplayOptions) => Promise; /** Structured result of the last settled turn, whoever started it. */ readonly lastTurnResult?: (() => TurnResult | undefined) | undefined; } export declare class SessionPromptQueue { private readonly deps; private readonly items; private priorityPrompt; private priorityQueueIndex; private nextDisplayPrompt; private nextDisplayArmed; private activeDrain; constructor(deps: SessionPromptQueueDeps); snapshot(): readonly string[]; hasPending(): boolean; clear(clearDisplay?: boolean): void; enqueue(prompt: string, options?: TurnDisplayOptions): void; remove(index: number): void; take(index: number): string | undefined; edit(index: number, text: string): void; reorder(fromIndex: number, toIndex: number): void; sendNow(index: number): void; enqueuePriority(prompt: string, displayPrompt?: string | undefined): void; continue(): Promise; settle(result: TurnResult): void; preservePendingPriority(): void; private continuationGate; submit(prompt: string, options?: TurnDisplayOptions): Promise; drain(): Promise; private drainPending; private consumeDisplay; } export {};