export interface AgentConfig {
    name: string;
    model: string;
    temperature?: number;
    maxTokens?: number;
    memoryCapacity?: number;
    tools?: Tool[];
    workflow?: WorkflowStep[];
}
export interface Tool {
    name: string;
    description: string;
    function: (...args: any[]) => Promise<any>;
    parameters?: Record<string, any>;
}
export interface WorkflowStep {
    id: string;
    name: string;
    action: string;
    dependencies?: string[];
    condition?: string;
    retryCount?: number;
}
export interface MemoryEntry {
    id: string;
    timestamp: string;
    type: 'short_term' | 'long_term';
    content: any;
    metadata?: Record<string, any>;
}
export interface AgentResponse {
    response: string;
    toolsUsed: string[];
    memoryAccessed: string[];
    confidence: number;
    reasoning?: string;
}
export declare class AdvancedAgent {
    private agent;
    private config;
    private memory;
    private tools;
    constructor(config: AgentConfig);
    initialize(): Promise<{
        success: boolean;
        message: string;
    }>;
    addTool(name: string, tool: Tool): Promise<{
        success: boolean;
        message: string;
    }>;
    removeTool(name: string): Promise<{
        success: boolean;
        message: string;
    }>;
    addMemory(entry: Omit<MemoryEntry, 'id' | 'timestamp'>): Promise<{
        success: boolean;
        message: string;
        id: string;
    }>;
    getMemory(query?: string, type?: 'short_term' | 'long_term', limit?: number): Promise<MemoryEntry[]>;
    clearMemory(type?: 'short_term' | 'long_term'): Promise<{
        success: boolean;
        message: string;
    }>;
    run(input: string, context?: any): Promise<AgentResponse>;
    executeWorkflow(workflowId: string, input: any): Promise<any>;
    setupWorkflow(steps: WorkflowStep[]): Promise<{
        success: boolean;
        message: string;
    }>;
    addWorkflowStep(step: WorkflowStep): Promise<{
        success: boolean;
        message: string;
    }>;
    getWorkflowStatus(workflowId: string): Promise<any>;
    chainModels(models: string[], input: string, strategy?: 'sequential' | 'parallel' | 'ensemble'): Promise<any>;
    getAgentStats(): Promise<any>;
    updateConfig(updates: Partial<AgentConfig>): Promise<{
        success: boolean;
        message: string;
    }>;
}
export declare const builtInTools: {
    search: {
        name: string;
        description: string;
        function: (query: string) => Promise<string>;
    };
    calculator: {
        name: string;
        description: string;
        function: (expression: string) => Promise<any>;
    };
    weather: {
        name: string;
        description: string;
        function: (location: string) => Promise<string>;
    };
};
//# sourceMappingURL=advancedAgent.d.ts.map