import type { AgentToolCall, BaseToolCall, PendingToolCallInfo } from "./ToolCallDisplay";
/**
 * Decide whether a message group's batch-approval bar should be shown.
 *
 * The bar's visibility MUST agree with the session-wide pending count it
 * renders. That count comes from `selectPendingApprovals`
 * (see agentSessionSelectors.ts), which excludes any tool call that has already
 * completed (`isCompleted`) or been resolved. By deriving "does this group have
 * a pending approval?" from that same `allPendingApprovals` list — instead of
 * re-inspecting local tool-call fields — the gate and the count can never
 * diverge.
 *
 * The previous heuristic (`requiresApproval` set AND name lacking
 * "(approved)"/"(rejected)") ignored completion, so a tool call that finished
 * via any path other than a local Approve click — autonomous mode, an
 * auto-approve policy, server-side/other-tab execution, or a run resync — kept
 * its sticky `requiresApproval` metadata and its un-renamed function name. That
 * made the gate fire while the count was 0, leaking an empty
 * "Approve All (0)" / "Reject All (0)" bar onto an already-finished tool call.
 */
export declare function groupHasPendingApproval(toolCalls: (BaseToolCall | AgentToolCall)[] | undefined, allPendingApprovals: PendingToolCallInfo[]): boolean;
