import { Container, type TUI } from "@dreb/tui";
import type { ToolDefinition } from "../../../core/extensions/types.js";
export interface ToolExecutionOptions {
    showImages?: boolean;
}
export declare class ToolExecutionComponent extends Container {
    private contentBox;
    private contentText;
    private callRendererComponent?;
    private resultRendererComponent?;
    private rendererState;
    private imageComponents;
    private imageSpacers;
    private toolName;
    private toolCallId;
    private args;
    private expanded;
    private showImages;
    private isPartial;
    private toolDefinition?;
    private builtInToolDefinition?;
    private ui;
    private cwd;
    private executionStarted;
    private argsComplete;
    private result?;
    private convertedImages;
    private pendingConversionCount;
    private hideComponent;
    /** Callback fired when all pending Kitty image conversions settle. */
    onConversionComplete?: () => void;
    constructor(toolName: string, toolCallId: string, args: any, options: ToolExecutionOptions | undefined, toolDefinition: ToolDefinition<any, any> | undefined, ui: TUI, cwd?: string);
    private isBuiltInDefinition;
    private getCallRenderer;
    private getResultRenderer;
    private hasRendererDefinition;
    private getRenderContext;
    private createCallFallback;
    private createResultFallback;
    updateArgs(args: any): void;
    markExecutionStarted(): void;
    setArgsComplete(): void;
    updateResult(result: {
        content: Array<{
            type: string;
            text?: string;
            data?: string;
            mimeType?: string;
        }>;
        details?: any;
        isError: boolean;
    }, isPartial?: boolean): void;
    private maybeConvertImagesForKitty;
    /** Whether this component has pending Kitty PNG conversions that haven't settled yet. */
    hasPendingConversions(): boolean;
    /** Get the tool call ID for this component. */
    getToolCallId(): string;
    setExpanded(expanded: boolean): void;
    setShowImages(show: boolean): void;
    invalidate(): void;
    render(width: number): string[];
    private updateDisplay;
    private getTextOutput;
    private formatToolExecution;
}
//# sourceMappingURL=tool-execution.d.ts.map