import type { RepeatFailureGuard } from './repeat-failure-guard.js'; import type { ToolCall, ToolResult } from '../providers/anthropic-direct/types.js'; import type { SubagentExecutor } from './subagent-executor.js'; import type { Batch } from './dispatch-batching.js'; export interface IndexedCall { call: ToolCall; originalIndex: number; } export interface BatchExecDeps { repeatFailureGuard: RepeatFailureGuard; repeatBreakerExemptTools: ReadonlySet; executeCore: (call: ToolCall) => Promise; subagentExecutor: SubagentExecutor | undefined; sessionId: string | undefined; maxConcurrentSafeCalls: number; onActivity?: (activeIds: readonly string[]) => void; } export declare function reconcileOutcomes(settled: PromiseSettledResult<{ result: ToolResult; originalIndex: number; }>[], wave: readonly number[], executableCalls: readonly IndexedCall[], results: ToolResult[]): void; export declare function stampBatchMetadata(batch: Batch, executableCalls: readonly IndexedCall[], results: ToolResult[]): void; export declare function runConcurrentBatch(batch: Batch, executableCalls: IndexedCall[], results: ToolResult[], deps: BatchExecDeps): Promise; export declare function runSequentialBatch(batch: Batch, executableCalls: IndexedCall[], results: ToolResult[], deps: BatchExecDeps): Promise; export declare function runParallelGates(indices: readonly number[], calls: readonly ToolCall[], results: ToolResult[], blocked: Set, runGates: (call: ToolCall) => Promise): Promise;