import { IAgent, AgentMemory } from './IAgent';
import { AgentMessage } from './AgentMessage';
import { Task } from './Task';
import { MiddlewareFunction } from '../middleware/AgentMiddleware';
import { ToolRegistry } from '../tools/ToolRegistry';
import { ITool } from '../tools/ITool';
import { AgentConfig } from './types';
import { EnhancedMemoryClient, MemoryType } from '../memory/EnhancedMemoryClient';
import { EnhancedToolOrchestrator } from '../tools/EnhancedToolOrchestrator';
export declare class Agent implements IAgent {
    id: string;
    name: string;
    lore: string;
    role: string;
    goals: string[];
    shortTermMemory: AgentMemory;
    longTermMemory: AgentMemory;
    tools: ITool[];
    private llmClient;
    private toolRegistry;
    private toolOrchestrator;
    private memoryClient;
    private middlewares;
    private taskQueue;
    private isExecuting;
    private model;
    constructor(id: string, name: string, lore: string, role: string, goals: string[], tools?: ITool[], model?: AgentConfig['model']);
    initializeMemory(): Promise<void>;
    useMiddleware(middleware: MiddlewareFunction): void;
    getMemoryClient(): EnhancedMemoryClient;
    getToolRegistry(): ToolRegistry;
    getToolOrchestrator(): EnhancedToolOrchestrator;
    receiveMessage(message: AgentMessage): Promise<AgentMessage>;
    planAndExecute(goal: string): Promise<void>;
    private executeTaskQueue;
    private planToolCalls;
    generateTasks(goal: string): Promise<Task[]>;
    executeTask(task: Task): Promise<void>;
    sendMessage(message: AgentMessage): Promise<void>;
    private updateMemory;
    saveToMemory(message: string, response: string): Promise<void>;
    recallRelevantMemories(query: string, type?: MemoryType): Promise<string[]>;
}
