/**
 * LocalGreenChain Agents
 *
 * 10 autonomous agents for managing the LocalGreenChain ecosystem:
 *
 * 1. PlantLineageAgent - Tracks plant ancestry and lineage integrity
 * 2. TransportTrackerAgent - Monitors transport events and carbon footprint
 * 3. DemandForecastAgent - Predicts consumer demand and market trends
 * 4. VerticalFarmAgent - Manages vertical farm operations and optimization
 * 5. EnvironmentAnalysisAgent - Analyzes growing conditions and provides recommendations
 * 6. MarketMatchingAgent - Connects grower supply with consumer demand
 * 7. SustainabilityAgent - Monitors environmental impact and sustainability metrics
 * 8. NetworkDiscoveryAgent - Maps geographic distribution and network analysis
 * 9. QualityAssuranceAgent - Verifies blockchain integrity and data quality
 * 10. GrowerAdvisoryAgent - Provides personalized growing recommendations
 */

// Types
export * from './types';

// Base class
export { BaseAgent } from './BaseAgent';

// Individual agents
export { PlantLineageAgent, getPlantLineageAgent } from './PlantLineageAgent';
export { TransportTrackerAgent, getTransportTrackerAgent } from './TransportTrackerAgent';
export { DemandForecastAgent, getDemandForecastAgent } from './DemandForecastAgent';
export { VerticalFarmAgent, getVerticalFarmAgent } from './VerticalFarmAgent';
export { EnvironmentAnalysisAgent, getEnvironmentAnalysisAgent } from './EnvironmentAnalysisAgent';
export { MarketMatchingAgent, getMarketMatchingAgent } from './MarketMatchingAgent';
export { SustainabilityAgent, getSustainabilityAgent } from './SustainabilityAgent';
export { NetworkDiscoveryAgent, getNetworkDiscoveryAgent } from './NetworkDiscoveryAgent';
export { QualityAssuranceAgent, getQualityAssuranceAgent } from './QualityAssuranceAgent';
export { GrowerAdvisoryAgent, getGrowerAdvisoryAgent } from './GrowerAdvisoryAgent';

// Orchestrator
export {
  AgentOrchestrator,
  getOrchestrator,
  startAllAgents,
  stopAllAgents
} from './AgentOrchestrator';

/**
 * Quick start guide:
 *
 * ```typescript
 * import { getOrchestrator, startAllAgents, stopAllAgents } from './lib/agents';
 *
 * // Start all agents
 * await startAllAgents();
 *
 * // Get orchestrator for management
 * const orchestrator = getOrchestrator();
 *
 * // Check status
 * const status = orchestrator.getStatus();
 * console.log(`Running: ${status.runningAgents}/${status.totalAgents} agents`);
 *
 * // Get dashboard data
 * const dashboard = orchestrator.getDashboard();
 *
 * // Access specific agents
 * const lineageAgent = orchestrator.getPlantLineageAgent();
 * const networkStats = lineageAgent?.getNetworkStats();
 *
 * // Stop all agents
 * await stopAllAgents();
 * ```
 */
