import { Result } from '@polywrap/result';
import { AgentFunctionBase } from './AgentFunctionBase.js';
import { Agent } from '../../agents/index.js';
import { AgentContext, AgentOutput, LlmApi, LlmModel, LlmQueryBuilder, Tokenizer } from '../../agent-core/index.js';
export declare abstract class LlmAgentFunctionBase<TParams> extends AgentFunctionBase<TParams> {
    protected llm: LlmApi;
    protected tokenizer: Tokenizer;
    constructor(llm: LlmApi, tokenizer: Tokenizer);
    protected queryBuilder(): LlmQueryBuilder;
    protected askLlm(question: string, opts?: {
        maxResponseTokens?: number;
        model?: LlmModel;
    }): Promise<string>;
    protected askAgent<TRunArgs>(agent: Agent<TRunArgs>, runArgs: TRunArgs, context: AgentContext): Promise<Result<{
        output: AgentOutput;
        messages: string[];
    }, string | undefined>>;
}
