/**
* [WHO]: ToolHtmlRenderer, exportSessionToHtml()
* [FROM]: Depends on agent-core, node:fs, node:path, config, modes/theme, extensions, session
* [TO]: Consumed by core/runtime/agent-session.ts, extensions/optional/export-html/index.ts
* [HERE]: core/export-html/index.ts - HTML export functionality
*/
import type { AgentState } from "@catui/agent-core";
import { SessionManager } from "../session/session-manager.js";
/**
* Interface for rendering custom tools to HTML.
* Used by agent-session to pre-render extension tool output.
*/
export interface ToolHtmlRenderer {
/** Render a tool call to HTML. Returns undefined if tool has no custom renderer. */
renderCall(toolName: string, args: unknown): string | undefined;
/** Render a tool result to HTML. Returns undefined if tool has no custom renderer. */
renderResult(toolName: string, result: Array<{
type: string;
text?: string;
data?: string;
mimeType?: string;
}>, details: unknown, isError: boolean): string | undefined;
}
export interface ExportOptions {
outputPath?: string;
themeName?: string;
/** Optional tool renderer for custom tools */
toolRenderer?: ToolHtmlRenderer;
}
/**
* Export session to HTML using SessionManager and AgentState.
* Used by TUI's /export command.
*/
export declare function exportSessionToHtml(sm: SessionManager, state?: AgentState, options?: ExportOptions | string): Promise;
/**
* Export session file to HTML (standalone, without AgentState).
* Used by CLI for exporting arbitrary session files.
*/
export declare function exportFromFile(inputPath: string, options?: ExportOptions | string): Promise;