/** @jsxImportSource @opentui/react */ /** * Tool card: flat single-border pane (classic parity — no 3D depth / outer plate). * * Click (body or footer) opens the full-output pager modal — unless the card is * already expanded in place via Ctrl+O. Ctrl+O expands every card to show the * full cleaned body; click does not toggle expand (classic: keyboard expands, * click opens the unbounded viewer). * * tool.batch: parent card nests one mini-card per sub-tool **while live and * after completion**. As each child settles, its full section body streams in * so nested cards look like normal expanded tool output (not a compact * "x ok, y ok" status list). Click the parent for the full batch; click a * sub-card for that call only. Ctrl+O expands sub-bodies in place. * * File diffs: compact single-height rows; chevron collapses hunks to a one-line * title (verb + relative path). Collapse-all applies to every file-diff card. */ import { type ReactNode } from "react"; import type { OutputSpool } from "../../../app/events/event-buffer.js"; import type { AppServices } from "../../../ui-core/bootstrap/composition-root.js"; import type { ToolItem } from "../../../ui-core/state/transcript-types.js"; import type { Theme } from "../../../ui-core/rendering/theme.js"; export declare function ToolCard(props: { item: ToolItem; theme: Theme; spool: OutputSpool; expanded: boolean; services: AppServices; onToggle: () => void; /** Collapse/expand every tool OUTPUT card (collapse all / expand all). */ onCollapseAllOutput?: () => void; onExpandAllOutput?: () => void; /** File-diff hunks visible (vs one-line collapsed title). */ fileDiffExpanded?: boolean; onToggleFileDiff?: () => void; onCollapseAllFileDiffs?: () => void; onExpandAllFileDiffs?: () => void; }): ReactNode;