/**
 * Streaming Executor Proxy
 *
 * Wraps an IAgentExecutor, transparently intercepting execute() calls
 * and routing them through executeStream(). Stream events are forwarded
 * to a shared EventChannel while the accumulated result is returned
 * to the caller (the graph node) as if execute() had been called normally.
 *
 * This allows graph nodes to remain unaware of streaming — they call
 * execute() and get an AgentExecutionResult back, while consumers of
 * the EventChannel receive real-time events.
 */
import type { AgentType, AgentFeature } from '../../../../domain/generated/output.js';
import type { IAgentExecutor, AgentExecutionOptions, AgentExecutionResult, AgentExecutionStreamEvent } from '../../../../application/ports/output/agents/agent-executor.interface.js';
import type { EventChannel } from './event-channel.js';
export declare class StreamingExecutorProxy implements IAgentExecutor {
    private readonly inner;
    private readonly channel;
    get agentType(): AgentType;
    constructor(inner: IAgentExecutor, channel: EventChannel<AgentExecutionStreamEvent>);
    execute(prompt: string, options?: AgentExecutionOptions): Promise<AgentExecutionResult>;
    executeStream(prompt: string, options?: AgentExecutionOptions): AsyncIterable<AgentExecutionStreamEvent>;
    supportsFeature(feature: AgentFeature): boolean;
}
//# sourceMappingURL=streaming-executor-proxy.d.ts.map