import { Content } from '../models/types';
import { Event } from '../events/Event';
import { BaseAgent, AgentOptions } from './BaseAgent';
import { InvocationContext } from './InvocationContext';
/**
 * Options for the LoopAgent.
 */
export interface LoopAgentOptions extends AgentOptions {
    /** The maximum number of iterations to run the loop agent */
    maxIterations?: number;
}
/**
 * A shell agent that runs its sub-agents in a loop.
 *
 * When sub-agent generates an event with escalate or max_iterations are
 * reached, the loop agent will stop.
 */
export declare class LoopAgent extends BaseAgent {
    /**
     * The maximum number of iterations to run the loop agent.
     * If not set, the loop agent will run indefinitely until a sub-agent escalates.
     */
    private readonly maxIterations?;
    /**
     * Creates a new LoopAgent.
     *
     * @param name The name of the agent
     * @param options Options for the agent
     */
    constructor(name: string, options?: LoopAgentOptions);
    /**
     * @inheritdoc
     */
    protected runAsyncImpl(ctx: InvocationContext): AsyncGenerator<Event, void, unknown>;
    /**
     * @inheritdoc
     */
    protected runLiveImpl(ctx: InvocationContext): AsyncGenerator<Event, void, unknown>;
    /**
     * @inheritdoc
     */
    setUserContent(content: Content, invocationContext: InvocationContext): void;
}
