import { Content } from '../models/types';
import { Event } from '../events/Event';
import { BaseAgent, AgentOptions } from './BaseAgent';
import { InvocationContext } from './InvocationContext';
/**
 * Options for the RemoteAgent.
 */
export interface RemoteAgentOptions extends AgentOptions {
    /** The URL to send requests to */
    url: string;
}
/**
 * Remote agent that delegates processing to an external service.
 * Experimental, do not use.
 */
export declare class RemoteAgent extends BaseAgent {
    /** The URL to send requests to */
    private readonly url;
    /**
     * Creates a new RemoteAgent.
     *
     * @param name The name of the agent
     * @param options Options for the agent
     */
    constructor(name: string, options: RemoteAgentOptions);
    /**
     * @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;
    /**
     * Override the addSubAgent method to prevent adding sub-agents.
     * Sub-agents are disabled in RemoteAgent.
     */
    addSubAgent(agent: BaseAgent): this;
}
