/** * MCP Task Executor (spec v2025-11-25) * * Runs tool execution in the background with support for input resumption. * Decoupled from transport — works with both Streamable HTTP and STDIO. */ import { type Task, type TaskState } from './types.js'; type OutputHandler = (data: any) => void; type InputProvider = (ask: any) => Promise; interface ExecutionOptions { signal: AbortSignal; caller?: any; outputHandler?: OutputHandler; } /** * Resolve pending input for a task, resuming generator execution. * Returns true if there was pending input to resolve. */ export declare function resolveTaskInput(taskId: string, value: any): boolean; /** * Reject pending input (e.g., on cancellation or timeout). */ export declare function rejectTaskInput(taskId: string, reason: string): boolean; /** * Check if a task has pending input waiting. */ export declare function hasPendingInput(taskId: string): boolean; /** * Wait for a task to reach a specific state (or any state change). * Resolves with the updated task when the condition is met. */ export declare function waitForStateChange(taskId: string, predicate?: (state: TaskState) => boolean, signal?: AbortSignal): Promise; /** * Wait for a task to reach a terminal state or input_required. * Used by tasks/result handler. */ export declare function waitForTerminalOrInput(taskId: string, signal?: AbortSignal): Promise; /** * Run tool execution as a background task. * * Fire-and-forget — caller does not await this. * Updates task state in store as execution progresses. * Generator yields { ask } → task enters input_required, blocks until resolveTaskInput(). */ export declare function runTaskExecution(taskId: string, executeFn: (inputProvider: InputProvider, outputHandler: OutputHandler) => Promise, options: ExecutionOptions): void; export {}; //# sourceMappingURL=executor.d.ts.map