UNPKG

agentjs-core

Version:

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

120 lines 3.59 kB
import { EventEmitter } from 'eventemitter3'; export interface SimulationConfig { simulation: { maxSteps: number; stepInterval: number; autoStart: boolean; randomSeed?: number; }; agents: { initialCount: number; maxCount: number; defaultProperties: Record<string, any>; spawnRate: number; despawnConditions: Record<string, any>; }; environment: { type: 'continuous' | 'grid'; width: number; height: number; boundaries: 'wrap' | 'bounce' | 'open'; zones?: Array<{ id: string; type: string; x: number; y: number; width: number; height: number; properties: Record<string, any>; }>; }; network: { enableNetworking: boolean; maxConnections: number; connectionTypes: string[]; formationRules: Record<string, any>; decayRate: number; }; visualization: { enabled: boolean; fps: number; canvas: { width: number; height: number; backgroundColor: string; }; agents: { showTrails: boolean; trailLength: number; showConnections: boolean; showProperties: boolean; }; effects: { animations: boolean; particles: boolean; heatMaps: boolean; }; }; dataCollection: { enabled: boolean; collectInterval: number; maxDataPoints: number; enableAgentTracking: boolean; enableNetworkMetrics: boolean; customMetrics: string[]; }; export: { format: 'csv' | 'json'; includeTimestamps: boolean; includeMetadata: boolean; precision: number; }; } export interface ParameterDefinition { key: string; type: 'number' | 'string' | 'boolean' | 'array' | 'object'; defaultValue: any; min?: number; max?: number; step?: number; options?: any[]; description: string; category: string; validation?: (value: any) => boolean | string; } export interface ConfigurationSchema { version: string; parameters: ParameterDefinition[]; presets: Record<string, Partial<SimulationConfig>>; } export declare class ConfigurationManager extends EventEmitter { private config; private schema; private presets; private validationErrors; constructor(initialConfig?: Partial<SimulationConfig>); private createDefaultConfig; private createDefaultSchema; private loadPresets; getConfig(): SimulationConfig; updateConfig(updates: Partial<SimulationConfig>): boolean; setParameter(key: string, value: any): boolean; getParameter(key: string): any; loadPreset(presetName: string): boolean; savePreset(name: string, config?: Partial<SimulationConfig>): void; getAvailablePresets(): string[]; private validateConfig; private validateParameter; exportConfig(format?: 'json' | 'yaml'): string; importConfig(configString: string, format?: 'json' | 'yaml'): boolean; private deepMerge; private getNestedValue; private objectToYaml; private yamlToObject; private parseValue; getSchema(): ConfigurationSchema; getValidationErrors(): string[]; getParameterDefinition(key: string): ParameterDefinition | undefined; getParametersByCategory(): Record<string, ParameterDefinition[]>; } //# sourceMappingURL=ConfigurationManager.d.ts.map