/**
 * Tool HTML renderer for custom tools in HTML export.
 *
 * Renders custom tool calls and results to HTML by invoking their TUI renderers
 * and converting the ANSI output to HTML.
 */
import type { Theme } from "../../modes/interactive/theme/theme.js";
import type { ToolDefinition } from "../extensions/types.js";
export interface ToolHtmlRendererDeps {
    /** Function to look up tool definition by name */
    getToolDefinition: (name: string) => ToolDefinition | undefined;
    /** Theme for styling */
    theme: Theme;
    /** Terminal width for rendering (default: 100) */
    width?: number;
}
export interface ToolHtmlRenderer {
    /** Render a tool call to HTML. Returns undefined if tool has no custom renderer. */
    renderCall(toolCallId: string, toolName: string, args: unknown): string | undefined;
    /** Render a tool result to collapsed/expanded HTML. Returns undefined if tool has no custom renderer. */
    renderResult(toolCallId: string, toolName: string, result: Array<{
        type: string;
        text?: string;
        data?: string;
        mimeType?: string;
    }>, details: unknown, isError: boolean): {
        collapsed?: string;
        expanded?: string;
    } | undefined;
}
/**
 * Create a tool HTML renderer.
 *
 * The renderer looks up tool definitions and invokes their renderCall/renderResult
 * methods, converting the resulting TUI Component output (ANSI) to HTML.
 */
export declare function createToolHtmlRenderer(deps: ToolHtmlRendererDeps): ToolHtmlRenderer;
//# sourceMappingURL=tool-renderer.d.ts.map