import type { ToolCall, ToolResult } from "../../../types.js"; import type { SessionPolicy } from "../../session-policy.js"; import type { ConfirmPort } from "../../confirm-port.js"; import type { LoopGuard } from "../../loop-guard.js"; import type { PromptMutex } from "../tool-call-preparation.js"; export interface McpAgentPortsInput { readonly askMode: boolean; readonly autoConfirm: boolean; readonly session: SessionPolicy; readonly confirmPort: ConfirmPort; readonly promptMutex: PromptMutex; readonly loopGuard: LoopGuard; readonly step: () => number; readonly isPrinted: (toolEventId: string) => boolean; readonly markPrinted: (toolEventId: string) => void; readonly writeToolCall: (toolEventId: string, call: ToolCall) => void; readonly writeToolOutput: (toolEventId: string, chunk: string, options?: { replace?: boolean; }) => void; readonly emitToolResult: (toolEventId: string, result: ToolResult, contextOutput: string, artifactPath?: string) => void; } export declare const buildMcpAgentToolPorts: (input: McpAgentPortsInput) => { askMode: boolean; showCall: (toolEventId: string, call: ToolCall) => void; writeOutput: (toolEventId: string, chunk: string) => void; emitResult: (toolEventId: string, result: ToolResult, contextOutput: string, artifactPath?: string) => void; confirm: (call: ToolCall) => Promise; recordAttempt: (call: ToolCall, ok: boolean, output: string) => void; };