import { Agent } from '../agent'; import { RunItem, RunToolApprovalItem } from '../items'; import { RunState } from '../runState'; import { FunctionToolResult } from '../tool'; import * as protocol from '../types/protocol'; import type { ToolRunMCPApprovalRequest } from './types'; type ResolveApproval = (rawItem: protocol.HostedToolCallItem) => boolean | undefined; type HandleHostedMcpApprovalsParams = { requests: ToolRunMCPApprovalRequest[]; agent: Agent; state: RunState>; functionResults: FunctionToolResult[]; appendIfNew: (item: RunItem) => void; resolveApproval?: ResolveApproval; }; export type HandleHostedMcpApprovalsResult = { pendingApprovals: Set; pendingApprovalIds: Set; }; /** * Normalizes hosted MCP approval flows so streaming and non-streaming loops share identical * behavior. Handles synchronous approvals, previously decided approvals, and pending approvals. */ export declare function handleHostedMcpApprovals({ requests, agent, state, functionResults, appendIfNew, resolveApproval, }: HandleHostedMcpApprovalsParams): Promise; export {};