/**
 * OptimizedAgentManager.tsx
 *
 * Consolidates 11 agent-related components into a single, unified manager:
 * - AgentControlActions.tsx
 * - AgentDashboard.tsx
 * - AgentFleetDashboard.tsx
 * - AgentFleetLogs.tsx
 * - AgentFleetMetrics.tsx
 * - AgentFleetOrchestration.tsx
 * - AgentFleetTopology.tsx
 * - AgentHealthMonitor.tsx
 * - AgentInteractionPanel.tsx
 * - AgentLogs.tsx
 * - AgentStatusIndicator.tsx
 *
 * Key improvements:
 * - Single source of truth for agent state
 * - Unified API client integration
 * - Consolidated type definitions
 * - Optimized rendering with React.memo
 * - Real-time updates with proper caching
 * - Comprehensive error boundaries
 * - Accessibility compliance
 * - Performance monitoring
 */
import React from 'react';
export interface Agent {
    id: string;
    name: string;
    type: 'llm' | 'workflow' | 'ci' | 'monitoring' | 'data' | 'analysis';
    status: 'active' | 'idle' | 'error' | 'deploying' | 'stopped';
    version: string;
    createdAt: string;
    lastActivity: string;
    metadata: {
        description?: string;
        tags?: string[];
        priority?: 'low' | 'medium' | 'high' | 'critical';
        environment?: 'development' | 'staging' | 'production';
        owner?: string;
        team?: string;
    };
    health: {
        score: number;
        uptime: number;
        errors: number;
        warnings: number;
    };
    performance: {
        avgResponseTime: number;
        requestsPerMinute: number;
        successRate: number;
        resourceUsage: {
            cpu: number;
            memory: number;
            storage: number;
        };
    };
    configuration: {
        maxConcurrency: number;
        timeout: number;
        retryPolicy: {
            maxRetries: number;
            backoffMultiplier: number;
        };
    };
}
export interface AgentFleetStatus {
    totalAgents: number;
    activeAgents: number;
    idleAgents: number;
    errorAgents: number;
    deployingAgents: number;
    stoppedAgents: number;
    totalTasks: number;
    runningTasks: number;
    queuedTasks: number;
    completedTasks: number;
    failedTasks: number;
    avgResponseTime: number;
    throughput: number;
    globalHealth: number;
    resourceUtilization: {
        cpu: number;
        memory: number;
        storage: number;
        tokens: number;
        bandwidth: number;
    };
    recentActivity: AgentActivity[];
    alerts: AgentAlert[];
    topology: AgentTopology;
}
export interface AgentActivity {
    id: string;
    timestamp: string;
    type: 'task_started' | 'task_completed' | 'task_failed' | 'agent_deployed' | 'agent_scaled' | 'agent_stopped' | 'config_updated' | 'health_alert';
    agentId: string;
    agentName: string;
    message: string;
    severity: 'info' | 'warning' | 'error' | 'critical';
    metadata?: Record<string, any>;
    duration?: number;
    resourceImpact?: {
        cpu?: number;
        memory?: number;
        tokens?: number;
    };
}
export interface AgentAlert {
    id: string;
    agentId: string;
    type: 'performance' | 'error' | 'resource' | 'security' | 'compliance';
    severity: 'low' | 'medium' | 'high' | 'critical';
    title: string;
    description: string;
    timestamp: string;
    acknowledged: boolean;
    resolvedAt?: string;
    actions?: Array<{
        label: string;
        action: string;
        payload?: Record<string, any>;
    }>;
}
export interface AgentTopology {
    nodes: Array<{
        id: string;
        type: 'agent' | 'service' | 'database' | 'queue';
        position: {
            x: number;
            y: number;
        };
        status: 'healthy' | 'warning' | 'error';
        metadata: Record<string, any>;
    }>;
    edges: Array<{
        id: string;
        source: string;
        target: string;
        type: 'api' | 'queue' | 'stream' | 'webhook';
        status: 'active' | 'inactive' | 'error';
        throughput?: number;
        latency?: number;
    }>;
}
export interface AgentTask {
    id: string;
    agentId: string;
    type: string;
    status: 'queued' | 'running' | 'completed' | 'failed' | 'cancelled';
    priority: number;
    createdAt: string;
    startedAt?: string;
    completedAt?: string;
    input: any;
    output?: any;
    error?: string;
    metrics: {
        duration?: number;
        resourceUsage?: {
            cpu: number;
            memory: number;
            tokens?: number;
        };
    };
}
export interface AgentLog {
    id: string;
    timestamp: string;
    level: 'debug' | 'info' | 'warn' | 'error';
    message: string;
    agentId: string;
    taskId?: string;
    metadata?: Record<string, any>;
    tags?: string[];
}
interface OptimizedAgentManagerProps {
    mode?: 'single' | 'fleet';
    agentId?: string;
    refreshInterval?: number;
    enableRealTime?: boolean;
    showAdvancedMetrics?: boolean;
    enableInteraction?: boolean;
    onAgentAction?: (action: string, agentId: string, payload?: any) => Promise<any>;
    onTaskSubmit?: (agentId: string, task: Partial<AgentTask>) => Promise<any>;
    height?: string;
    autoRefresh?: boolean;
}
export declare const OptimizedAgentManager: React.FC<OptimizedAgentManagerProps>;
export default OptimizedAgentManager;
//# sourceMappingURL=OptimizedAgentManager.d.ts.map