import type { ToolCall } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
import type { ToolCategory } from "./tool-categories.js";
/** Props for {@link ToolRunGroup}. */
export interface ToolRunGroupProps {
    /** Shared category of every call in the run (e.g. `"read"`). */
    readonly category: ToolCategory;
    /** The consecutive same-category calls folded into this chip (length >= 2). */
    readonly toolCalls: readonly ToolCall[];
    /**
     * Custom label formatter for the collapsed chip. When omitted, a
     * category-aware default is used ("Read 5 files"). Receives the run's calls so
     * a platform builder can phrase the summary however they like.
     */
    readonly formatLabel?: (toolCalls: readonly ToolCall[]) => string;
    /** Additional CSS class names for the root container. */
    readonly className?: string;
}
/**
 * The thread's *only* collapse: a run of consecutive low-signal same-category
 * calls (read / list / search) folded into one chip — the noise-reduction half
 * of the persistent-row timeline. Collapsed, it reads as one line ("Read 5
 * files"); expanded, it reveals the individual {@link ToolCallItem} rows.
 *
 * Unlike the old per-turn group, this folds *only* genuine repetition, and it
 * auto-opens (and stays open) if any folded call is awaiting approval — a gate
 * raised inside a run must never be buried. It otherwise settles closed when
 * the run finishes, unless the user has taken manual control (see
 * {@link useAutoDisclosure}).
 *
 * `React.memo` with a by-reference comparator: structural sharing keeps each
 * folded `ToolCall` stable, so a settled chip skips re-renders while siblings
 * stream (DD-009/010).
 *
 * @example
 * ```tsx
 * <ToolRunGroup category="read" toolCalls={reads} />
 * ```
 */
export declare const ToolRunGroup: import("react").NamedExoticComponent<ToolRunGroupProps>;
/**
 * Shallow comparison for {@link ToolRunGroupProps}. Structural sharing keeps the
 * folded `ToolCall` objects stable, so we compare the array element-wise by
 * reference rather than by identity of the (freshly sliced) array.
 *
 * @internal Exported for testing — not part of the public API.
 */
export declare function toolRunGroupPropsEqual(prev: Readonly<ToolRunGroupProps>, next: Readonly<ToolRunGroupProps>): boolean;
//# sourceMappingURL=ToolRunGroup.d.ts.map