import * as React from 'react'; /** * Tool-specific result renderers — Tier 2 of the tool-call UX work. * * Claude Code's terminal UI renders each tool's result in a bespoke * shape (Bash: split stdout/stderr; Read: line-numbered file view; * Edit/Write: diff). Our web ToolCallCard defaulted to `JsonTree` * (structured) or a raw monospace `
` (string) for everything,
* which buried the intent.
*
* The dispatcher below picks a per-tool component when the tool name
* + result shape match a known pattern; anything else falls through to
* the caller's default renderer.
*
* These are pure presentation components — no state, no side effects.
* Live event handlers and session-JSONL replay both route through the
* same dispatcher, so live and refresh render the same way.
*/
export interface ToolResultViewProps {
name: string;
result: unknown;
args?: unknown;
}
declare function BashResultView({ result, args }: ToolResultViewProps): import("react/jsx-runtime").JSX.Element | null;
declare function ReadResultView({ result, args }: ToolResultViewProps): import("react/jsx-runtime").JSX.Element | null;
declare function EditResultView({ result, args, name }: ToolResultViewProps): import("react/jsx-runtime").JSX.Element | null;
/**
* ToolResultView — choose a per-tool renderer based on the tool name.
*
* Returns `null` if no specialized renderer matches, letting the caller
* render its default (JsonTree for structured, monospace pre for strings).
* ToolCallCard uses this as a layered fallback.
*/
declare function ToolResultView(props: ToolResultViewProps): React.ReactElement | null;
export { ToolResultView, BashResultView, ReadResultView, EditResultView };