UNPKG

agentjs-core

Version:

A comprehensive agent-based modeling framework with built-in p5.js visualization

149 lines 4.03 kB
import type { Agent } from '../core/agents/Agent'; import type { AgentManager } from '../core/AgentManager'; import type { NetworkManager } from '../core/network/NetworkManager'; import type { Environment } from '../core/environment/Environment'; import type { PropertyValue } from '../types/core'; /** * Configuration for trajectory export */ export interface TrajectoryExportConfig { /** Fields to include in export */ fields?: string[]; /** Filter function for agents */ filter?: (agent: Agent) => boolean; /** Include timestamps */ includeTimestamps?: boolean; /** Sample rate (export every N steps) */ sampleRate?: number; /** Maximum records to export */ maxRecords?: number; /** Include position data */ includePosition?: boolean; /** Include velocity data */ includeVelocity?: boolean; } /** * Data point for trajectory export */ export interface TrajectoryDataPoint { step: number; timestamp: number; agentId: string; position?: { x: number; y: number; }; velocity?: { x: number; y: number; }; [key: string]: PropertyValue; } /** * Network export data structure */ export interface NetworkExportData { nodes: Array<{ id: string; type: string; position?: { x: number; y: number; }; properties: Record<string, PropertyValue>; }>; edges: Array<{ source: string; target: string; type: string; strength: number; }>; metrics: { nodeCount: number; edgeCount: number; density: number; averageDegree: number; }; } /** * Environmental metrics export data */ export interface EnvironmentalMetricsData { type: string; dimensions: { width: number; height: number; }; agentCount: number; densityMap?: number[][]; spatialMetrics: { centerOfMass: { x: number; y: number; }; dispersion: number; clustering: number; }; resourceDistribution?: Record<string, any>; } /** * Enhanced trajectory and network exporter for AgentJS */ export declare class TrajectoryExporter { private trajectoryData; private config; constructor(config?: TrajectoryExportConfig); /** * Record current simulation state for trajectory export */ recordTrajectoryStep(agentManager: AgentManager, step: number): void; /** * Export trajectories as CSV with proper formatting */ exportTrajectoriesCSV(): string; /** * Export network data with comprehensive metrics */ exportNetwork(networkManager: NetworkManager, agentManager: AgentManager): NetworkExportData; /** * Export network as GraphML format for visualization tools */ exportNetworkGraphML(networkManager: NetworkManager, agentManager: AgentManager): string; /** * Export environmental metrics with spatial analysis */ exportEnvironmentalMetrics(environment: Environment, agentManager: AgentManager): EnvironmentalMetricsData; /** * Stream export for memory-efficient large dataset handling */ streamTrajectoryData(batchSize?: number): Generator<TrajectoryDataPoint[]>; /** * Get summary statistics for the recorded data */ getExportSummary(): { totalRecords: number; uniqueAgents: number; timeRange: { start: number; end: number; }; stepRange: { start: number; end: number; }; averageRecordsPerStep: number; }; /** * Clear recorded trajectory data */ clear(): void; /** * Format value for CSV export */ private formatCSVValue; } /** * Factory function for creating trajectory exporters */ export declare function createTrajectoryExporter(config?: TrajectoryExportConfig): TrajectoryExporter; //# sourceMappingURL=TrajectoryExporter.d.ts.map