import type { ToolCall } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
import type { SubAgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/subagent_pb";
import { type ToolCategory } from "./tool-categories.js";
/** Props for {@link ToolCallItem}. */
export interface ToolCallItemProps {
    /** The tool call to render as a summary row. */
    readonly toolCall: ToolCall;
    /**
     * When present, this tool call is a sub-agent delegation. The
     * detail panel renders a {@link SubAgentSection} instead of
     * a {@link ToolCallDetail}.
     */
    readonly subAgentExecution?: SubAgentExecution | null;
    /**
     * Forces the detail panel open on first render regardless of the
     * auto-disclosure policy. Defaults to `false`.
     */
    readonly defaultExpanded?: boolean;
    /**
     * Whether the row renders as its own self-contained card (a thin rounded
     * border). Defaults to `true`. Set to `false` when the row is nested inside a
     * container that already provides the border — e.g. the folded
     * `ToolRunGroup` chip — where the row falls back to a divider-separated
     * row to avoid a card-in-a-card.
     */
    readonly bordered?: boolean;
    /** Additional CSS class names for the root container. */
    readonly className?: string;
}
/**
 * Renders a single tool call as a row in the tool call group.
 *
 * Three rendering modes, set by one rule — **does the body carry content the
 * one-line row cannot?**
 *
 * - **Non-expandable** (completed/skipped Read): a static `<div>` row with a
 *   clickable {@link FilePathLink}. The path IS the complete information.
 * - **Preview** (content-bearing: shell / edit / write / fetch / web-search /
 *   unknown / mcp): a plain (non-button) header above an **always-visible**
 *   {@link ToolCallDetail} body — Cursor-style "previews aren't collapsible".
 *   There is no header chevron; each content block self-bounds with its own
   *   single in-place reveal (`RevealToggle`), so a long diff or output
 *   never floods the thread. The body is suppressed only for an `empty` result
 *   (e.g. a no-output shell), which stays a clean one-line row.
 * - **Summary / sub-agent** (read / list / search / delete / think, and
 *   sub-agent delegations): a chevron-gated `div[role=button]` header that
 *   discloses a body hidden by default — {@link ToolCallDetail}, a
 *   {@link SubAgentSection}, or, when gated, an inline {@link ApprovalCardBody}.
 *   {@link useAutoDisclosure} force-opens it while *running* or *awaiting
 *   approval*, then settles it closed; a manual click always wins thereafter.
 *
 * The two disclosure axes — the card-level chevron and a block's
 * content-overflow reveal — never govern the same body, which is what removes
 * the old "expand, then Show more" double control.
 *
 * Shows category-aware labels (e.g., "Shell", "Read", "Edit") with
 * the primary argument as a subtitle, a category-specific icon, and
 * an inline approval decision badge when applicable.
 *
 * Wrapped in `React.memo` — structural sharing (DD-009/010) preserves
 * the `ToolCall` reference when unchanged, so a settled row skips
 * re-renders while sibling tools stream.
 *
 * @example
 * ```tsx
 * <ToolCallItem toolCall={tc} />
 * <ToolCallItem toolCall={tc} subAgentExecution={sub} />
 * ```
 */
export declare const ToolCallItem: import("react").NamedExoticComponent<ToolCallItemProps>;
export declare const CATEGORY_ICON: Record<ToolCategory, () => React.JSX.Element>;
//# sourceMappingURL=ToolCallItem.d.ts.map