import { EventEmitter } from 'eventemitter3';
export interface OrchestratorConfig {
    stellar: {
        apiUrl: string;
        apiToken: string;
    };
    agents: {
        hub: {
            enabled: boolean;
            config?: any;
        };
        investigation: {
            enabled: boolean;
            config?: any;
        };
        correlation: {
            enabled: boolean;
            config?: any;
        };
        network: {
            enabled: boolean;
            config?: any;
        };
    };
    logging: {
        level: 'debug' | 'info' | 'warn' | 'error';
        enableConsole: boolean;
        enableFile: boolean;
        filePath?: string;
    };
    metrics: {
        enabled: boolean;
        endpoint?: string;
        interval?: number;
    };
}
export interface OrchestratorStatus {
    status: 'initializing' | 'running' | 'stopping' | 'stopped' | 'error';
    uptime: number;
    agents: {
        total: number;
        running: number;
        healthy: number;
        degraded: number;
        unhealthy: number;
    };
    performance: {
        totalRequests: number;
        successfulRequests: number;
        failedRequests: number;
        averageResponseTime: number;
    };
    lastUpdate: string;
}
export declare class MultiAgentOrchestrator extends EventEmitter {
    private config;
    private registry;
    private channel;
    private logger;
    private metrics;
    private agents;
    private hubAgent;
    private status;
    private startTime;
    constructor(config: OrchestratorConfig);
    start(): Promise<void>;
    stop(): Promise<void>;
    getStatus(): Promise<OrchestratorStatus>;
    executeWorkflow(workflowId: string, input: any): Promise<string>;
    investigateCase(caseId: string, options?: any): Promise<any>;
    correlateCase(caseId: string, method?: string): Promise<any>;
    analyzeNetwork(caseId: string, timeRange: any, options?: any): Promise<any>;
    getAgentMetrics(): Promise<any>;
    searchCases(query: string, filters?: any): Promise<any>;
    getCaseActivities(caseId: string): Promise<any>;
    getCaseObservables(caseId: string): Promise<any>;
    getCaseAlerts(caseId: string): Promise<any>;
    getCaseComments(caseId: string): Promise<any>;
    getCaseDetailedSummary(caseId: string): Promise<any>;
    getCaseScores(caseId: string): Promise<any>;
    analyzeCaseObservables(caseId: string): Promise<any>;
    getCaseTimeline(caseId: string): Promise<any>;
    getCaseArtifacts(caseId: string): Promise<any>;
    suggestWorkflow(caseId: string): Promise<any>;
    updateCaseStatus(caseId: string, status: string, comment?: string): Promise<any>;
    addCaseComment(caseId: string, comment: string): Promise<any>;
    getRelatedCases(caseId: string, method?: string): Promise<any>;
    getThreatIntelligence(caseId: string): Promise<any>;
    detectCampaigns(criteria?: any): Promise<any>;
    analyzeCaseSimilarity(caseId1: string, caseId2: string): Promise<any>;
    detectLateralMovement(caseId: string, timeRange: any): Promise<any>;
    detectC2Communication(caseId: string, timeRange: any): Promise<any>;
    huntNetworkThreats(query: any, timeRange: any): Promise<any>;
    getWorkflowStatus(workflowId: string): Promise<any>;
    cancelWorkflow(workflowId: string): Promise<any>;
    private initializeAgents;
    private createHubAgent;
    private createInvestigationAgent;
    private createCorrelationAgent;
    private createNetworkAgent;
    private startAgents;
    private stopAgents;
    private setupMonitoring;
    private performHealthCheck;
    private collectMetrics;
    private getAgentSpecificMetrics;
    private findAgentByType;
    private getAgentKey;
}
export declare function createDefaultConfig(): OrchestratorConfig;
export declare function main(): Promise<void>;
//# sourceMappingURL=orchestrator.d.ts.map