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";
/** Props for {@link ToolCallGroup}. */
export interface ToolCallGroupProps {
    /** Tool calls in this group, ordered by invocation time. */
    readonly toolCalls: readonly ToolCall[];
    /**
     * Sub-agent executions from the parent `AgentExecutionStatus`.
     * When provided, tool calls whose `id` matches a
     * `SubAgentExecution.id` are rendered with a nested sub-agent
     * thread instead of a standard detail panel.
     */
    readonly subAgentExecutions?: readonly SubAgentExecution[];
    /**
     * Custom summary formatter. Receives the tool calls and returns a
     * display string. When omitted, the component uses a default that
     * shows the tool name for single calls and a count for multiple.
     */
    readonly formatSummary?: (toolCalls: readonly ToolCall[]) => string;
    /**
     * Initial expansion state. Defaults to `false`.
     */
    readonly defaultExpanded?: boolean;
    /** Additional CSS class names for the root container. */
    readonly className?: string;
}
/**
 * Shallow comparison for `ToolCallGroupProps`.
 *
 * The `toolCalls` array may be a newly allocated subset (e.g.
 * `buildThreadItems` filters out `task` calls). Structural sharing
 * (T04) keeps individual `ToolCall` objects stable, so we compare
 * array elements by reference rather than the array itself.
 *
 * @internal Exported for testing — not part of the public API.
 */
export declare function toolCallGroupPropsEqual(prev: Readonly<ToolCallGroupProps>, next: Readonly<ToolCallGroupProps>): boolean;
/**
 * Renders a summary line for a group of tool calls from a single
 * AI turn. Click to expand and see individual tool calls.
 *
 * Two-level progressive disclosure:
 * 1. **Collapsed** — aggregate status icon + summary label.
 * 2. **Expanded** — list of {@link ToolCallItem} rows, each
 *    expandable to show detail (args, result, error, timing) or
 *    a nested sub-agent thread.
 *
 * Default summaries use active-voice phrasing ("Ran 3 tools",
 * "Running 2 tools") with category-aware labels for single tools
 * (e.g., "Shell: ls -la /tmp"). Platform builders can override
 * via the `formatSummary` prop.
 *
 * Wrapped in `React.memo` with a custom comparator that checks
 * `toolCalls` elements by reference (structural sharing keeps
 * individual `ToolCall` objects stable for unchanged calls).
 *
 * @example
 * ```tsx
 * <ToolCallGroup toolCalls={message.toolCalls} />
 * ```
 */
export declare const ToolCallGroup: import("react").NamedExoticComponent<ToolCallGroupProps>;
//# sourceMappingURL=ToolCallGroup.d.ts.map