import { ApiProvider, CallApiContextParams, CallApiOptionsParams, ProviderOptions, ProviderResponse } from 'promptfoo';
export type Message = {
    role: 'user' | 'assistant' | 'system';
    content: string;
};
export type AgentProviderOptions = ProviderOptions & {
    config: {
        userProvider?: ProviderOptions;
        agentProvider?: ProviderOptions;
        maxTurns?: number;
    };
};
export declare class AgentProvider implements ApiProvider {
    private readonly identifier;
    private readonly maxTurns;
    private readonly userProviderOptions?;
    private readonly agentProviderOptions?;
    protected userProvider?: ApiProvider;
    protected agentProvider?: ApiProvider;
    private readonly logger;
    constructor({ id, label, config }: AgentProviderOptions);
    get agentProviderInstance(): ApiProvider | undefined;
    private loadProvider;
    protected ensureProviders(): Promise<void>;
    id(): string;
    private sendMessageToUser;
    private sendMessageToAgent;
    callApi(prompt: string, context?: CallApiContextParams, _callApiOptions?: CallApiOptionsParams): Promise<ProviderResponse>;
    toString(): string;
}
export default AgentProvider;
//# sourceMappingURL=agent.d.ts.map