/**
 * Stream display manager for real-time Claude/Codex output.
 *
 * Handles text, thinking, tool use/result events and renders them
 * to the terminal with appropriate formatting and spinners.
 */
import type { StreamCallback } from '../types/provider.js';
/** Progress information for stream display */
type ProgressMaxSteps = number | 'infinite';
export interface ProgressInfo {
    /** Current iteration (1-indexed) */
    iteration: number;
    /** Maximum steps allowed */
    maxSteps: ProgressMaxSteps;
    /** Current step index within the workflow (0-indexed) */
    stepIndex: number;
    /** Total number of steps in the workflow */
    totalSteps: number;
}
/** Stream display manager for real-time Claude output */
export declare class StreamDisplay {
    private agentName;
    private quiet;
    private progressInfo?;
    private lastToolUse;
    private currentToolInputPreview;
    private toolOutputBuffer;
    private toolOutputPrinted;
    private textBuffer;
    private thinkingBuffer;
    private isFirstText;
    private isFirstThinking;
    private toolSpinner;
    private spinnerFrames;
    private spinnerFrame;
    constructor(agentName: string, quiet: boolean, progressInfo?: ProgressInfo | undefined);
    /**
     * Build progress prefix string for display.
     * Format: `(iteration/maxSteps) step stepIndex/totalSteps`
     * Example: `(3/10) step 2/4`
     */
    private buildProgressPrefix;
    showInit(model: string): void;
    private startToolSpinner;
    private stopToolSpinner;
    showToolUse(tool: string, input: Record<string, unknown>): void;
    showToolOutput(output: string, tool?: string): void;
    showToolResult(content: string, isError: boolean): void;
    showThinking(thinking: string): void;
    flushThinking(): void;
    showText(text: string): void;
    flushText(): void;
    flush(): void;
    showResult(success: boolean, error?: string): void;
    reset(): void;
    createHandler(): StreamCallback;
    private formatToolInput;
    private ensureToolOutputHeader;
    private printToolOutputLines;
}
export {};
//# sourceMappingURL=StreamDisplay.d.ts.map