/**
 * ToolGroupComponent — groups concurrent tool calls into a single visual container.
 *
 * When a ToolDefinition provides `renderGroup`, the framework creates one of these
 * instead of adding individual ToolExecutionComponents to the chat. The group owns
 * the member components, delegates all rendering to `renderGroup`, and re-renders
 * whenever any member is updated.
 *
 * Each member ToolExecutionComponent is a child of the group (so the framework's
 * existing updateResult/setExpanded calls still work), but they render zero lines
 * individually — the group's Box renders the unified tree.
 */
import type { ToolDefinition } from '../../../core/core-types.js';
import type { TUI } from '../../../tui/index.js';
import { Container } from '../../../tui/index.js';
import { ToolExecutionComponent, type ToolExecutionOptions } from './tool-execution.js';
/**
 * A Container that groups multiple tool calls and renders them as one unit.
 */
export declare class ToolGroupComponent extends Container {
    private contentBox;
    private members;
    private toolDefinition;
    private expanded;
    private ui;
    private isPending;
    private hasError;
    private blinkOn;
    private blinkTimer?;
    private suppressOuterPrefix;
    constructor(toolDefinition: ToolDefinition, ui: TUI);
    /**
     * Add a new member tool call to the group.
     * Returns the ToolExecutionComponent (so interactive-mode can track it in pendingTools).
     */
    addMember(toolCallId: string, toolName: string, args: any, options: ToolExecutionOptions, cwd?: string): ToolExecutionComponent;
    /** True when any member is still waiting for a result. */
    hasPendingMembers(): boolean;
    setSuppressOuterPrefix(suppress: boolean): void;
    render(width: number): string[];
    private stopBlink;
    dispose(): void;
    setExpanded(expanded: boolean): void;
    /** Build member snapshots and call renderGroup */
    private updateGroupDisplay;
}
//# sourceMappingURL=tool-group.d.ts.map