/**
 * Smart progress controller for research-cli operations
 */
import type { ProviderEvent } from "../types.js";
export interface ProgressManagerOptions {
    /** Enable multi-progress for concurrent operations */
    useMultiProgress?: boolean;
    /** Silent mode - no progress bars */
    silent?: boolean;
    /** Custom theme selection */
    theme?: "research" | "tool";
}
/**
 * Intelligent progress manager that adapts to different operation types
 */
export declare class ProgressManager {
    private singleBar?;
    private multiBar?;
    private options;
    private isToolOperationActive;
    private toolCount;
    private activeOperations;
    constructor(options?: ProgressManagerOptions);
    /**
     * Handle provider events and update progress accordingly
     */
    handleProviderEvent(event: ProviderEvent): void;
    private handleStartEvent;
    private handleToolCallEvent;
    private handleToolResultEvent;
    private handleChunkEvent;
    private handleFinalEvent;
    private handleErrorEvent;
    private updateMainProgress;
    private ensureSingleProgress;
    private ensureMultiProgress;
    /**
     * Enable multi-progress mode for complex operations
     */
    enableMultiProgress(): void;
    /**
     * Disable multi-progress mode
     */
    disableMultiProgress(): void;
    /**
     * Log a message (will appear above progress bars if active)
     */
    log(message: string): void;
    /**
     * Manually create a progress bar for custom operations
     */
    createCustomProgress(id: string, total: number, operation: string, startValue?: number): void;
    /**
     * Update a custom progress bar
     */
    updateCustomProgress(id: string, value?: number | null, stage?: string): void;
    /**
     * Complete a custom progress bar
     */
    completeCustomProgress(id: string, finalStage?: string): void;
    /**
     * Check if any progress bars are currently active
     */
    get hasActiveProgress(): boolean;
    /**
     * Get count of active operations
     */
    get activeOperationCount(): number;
    /**
     * Force cleanup of all progress bars
     */
    cleanup(): void;
    /**
     * Enable silent mode (no progress bars)
     */
    setSilent(silent: boolean): void;
}
/**
 * Create a new progress manager instance
 */
export declare function createProgressManager(options?: ProgressManagerOptions): ProgressManager;
/**
 * Get or create the global progress manager
 */
export declare function getGlobalProgressManager(): ProgressManager;
/**
 * Reset the global progress manager
 */
export declare function resetGlobalProgressManager(): void;
//# sourceMappingURL=progress-manager.d.ts.map