/**
 * Run Agent Use Case
 *
 * Executes a named agent workflow by resolving it from the registry
 * and delegating to the agent runner.
 *
 * Business Rules:
 * - Agent must be registered in the registry before running
 * - Error messages include available agent names for discoverability
 * - Options are passed through to the runner as-is
 */
import type { AgentRun, AgentRunEvent } from '../../../domain/generated/output.js';
import type { IAgentRunner, AgentRunOptions } from '../../ports/output/agents/agent-runner.interface.js';
import type { IAgentRegistry } from '../../ports/output/agents/agent-registry.interface.js';
/**
 * Input for running an agent workflow.
 */
export interface RunAgentInput {
    agentName: string;
    prompt: string;
    options?: AgentRunOptions;
}
/**
 * Use case for running a named agent workflow.
 *
 * Algorithm:
 * 1. Validate agent exists in the registry
 * 2. Delegate to agent runner with name, prompt, and options
 * 3. Return the resulting AgentRun record
 */
export declare class RunAgentUseCase {
    private readonly agentRunner;
    private readonly agentRegistry;
    constructor(agentRunner: IAgentRunner, agentRegistry: IAgentRegistry);
    /**
     * Execute the run agent use case.
     *
     * @param input - Agent run input including name, prompt, and options
     * @returns AgentRun record tracking the execution
     * @throws Error if the agent name is not registered
     */
    execute(input: RunAgentInput): Promise<AgentRun>;
    /**
     * Execute the run agent use case with streaming events.
     *
     * @param input - Agent run input including name, prompt, and options
     * @returns An async iterable of agent run events
     * @throws Error if the agent name is not registered
     */
    executeStream(input: RunAgentInput): AsyncIterable<AgentRunEvent>;
}
//# sourceMappingURL=run-agent.use-case.d.ts.map