/**
 * Agent Executor
 * Executes agents using NVIDIA models
 */
import { NVIDIAAdapter, ChatOptions } from '../nvidia/adapter.js';
import { AgentLoader } from './agent-loader.js';
export interface ExecutionConfig {
    agent: string;
    task: string;
    model?: string;
    temperature?: number;
    maxTokens?: number;
    stream?: boolean;
}
export interface ExecutionResult {
    success: boolean;
    content: string;
    agent: string;
    model: string;
    error?: string;
    usage?: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    };
}
export interface StreamingExecutionResult {
    success: boolean;
    content: AsyncGenerator<string>;
    agent: string;
    model: string;
}
export declare class AgentExecutor {
    private nvidia;
    private loader;
    private executedCount;
    constructor(nvidia: NVIDIAAdapter, loader: AgentLoader);
    /**
     * Execute agent synchronously
     */
    execute(config: ExecutionConfig): Promise<ExecutionResult>;
    /**
     * Execute agent with streaming
     */
    executeStreaming(config: ExecutionConfig): Promise<StreamingExecutionResult>;
    /**
     * Build chat messages from agent
     */
    private buildMessages;
    /**
     * Get execution count
     */
    getExecutedCount(): number;
    /**
     * Reset execution count
     */
    resetCount(): void;
    /**
     * Get available models
     */
    getAvailableModels(): string[];
    /**
     * Get default model
     */
    getDefaultModel(): string;
}
/**
 * Quick execute function
 */
export declare function quickExecute(nvidia: NVIDIAAdapter, loader: AgentLoader, agentId: string, task: string, options?: ChatOptions): Promise<ExecutionResult>;
//# sourceMappingURL=agent-executor.d.ts.map