import { Agent, Task, ConversationThread, Message, OrchestrationSession, AgentTemplate, OrchestrationStrategy, TaskResult } from './types.js';
export declare class AgentOrchestrator {
    private agents;
    private sessions;
    private activeSession;
    private messageQueue;
    constructor();
    /**
     * Create a new orchestration session
     */
    createSession(name: string, goal: string): OrchestrationSession;
    /**
     * Create an agent from a template
     */
    createAgent(template: AgentTemplate, customName?: string): Agent;
    /**
     * Send a message from one agent to another
     */
    sendMessage(from: string, to: string | string[], content: string, type?: Message['type']): Promise<void>;
    /**
     * Process a message for a specific agent
     */
    private processMessageForAgent;
    /**
     * Create a task and assign it to agents
     */
    createTask(description: string, requiredCapabilities: string[], dependencies?: string[]): Task;
    /**
     * Execute a task with assigned agents
     */
    executeTask(taskId: string): Promise<TaskResult>;
    /**
     * Apply an orchestration strategy
     */
    applyStrategy(strategy: OrchestrationStrategy): Promise<void>;
    /**
     * Get conversation history between agents
     */
    getConversationHistory(agentIds: string[]): ConversationThread[];
    /**
     * Get agent's current state and memory
     */
    getAgentState(agentId: string): Agent | undefined;
    /**
     * Complete the current session
     */
    completeSession(): void;
    private findConversationThread;
    private createConversationThread;
    private findAgentsWithCapabilities;
    private findTask;
    private findAgentByRole;
    private createAgentFromRole;
    private executeAction;
    private handleQuery;
    private handleInstruction;
    private handleResult;
    private generateSessionSummary;
    private collectSessionArtifacts;
    private extractSessionInsights;
    private suggestNextSteps;
    private generateId;
    private initializeDefaultTemplates;
    private getTemplateForRole;
}
//# sourceMappingURL=orchestrator.d.ts.map