import type { ToolCall, ToolResultMessage } from "indusagi/ai";
import type { InkThemeAdapter } from "../theme-adapter.js";
import type { ToolExecutionState } from "../types.js";
import { type StructuredDiff } from "../diff/structured.js";
export interface ToolCardDescriptor {
    title: string;
    summary?: string;
    body?: string;
    emptyText: string;
    /**
     * When true the `body` already carries syntax-highlight ANSI and must be
     * rendered verbatim — the renderer keeps the escapes instead of stripping
     * them. Set for read/write/edit bodies highlighted from their file path.
     */
    preformatted?: boolean;
    /**
     * A structured edit/write diff. When present the renderer draws a colored
     * diff block (line-number gutter, +/- backgrounds, word-level emphasis)
     * instead of the plain `body`.
     */
    diff?: StructuredDiff;
}
interface ToolSource {
    toolName: string;
    args?: unknown;
    output?: unknown;
    fallbackArgsText?: string;
    fallbackOutputText?: string;
    showImages?: boolean;
    /** When present, read/write/edit bodies are syntax-highlighted against it. */
    theme?: InkThemeAdapter;
}
export declare function describeToolSource(source: ToolSource): ToolCardDescriptor;
export declare function describeToolExecution(tool: ToolExecutionState): ToolCardDescriptor;
export declare function describeToolCall(toolCall: ToolCall): ToolCardDescriptor;
export declare function describeToolResult(message: ToolResultMessage, showImages: boolean, args?: unknown, theme?: InkThemeAdapter): ToolCardDescriptor;
export {};
