agentjs-core
Version:
A comprehensive agent-based modeling framework with built-in p5.js visualization
120 lines • 3.59 kB
TypeScript
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