agentjs-core
Version:
A comprehensive agent-based modeling framework with built-in p5.js visualization
80 lines • 2.56 kB
TypeScript
import { EventEmitter } from 'eventemitter3';
import type { DataCollector } from './DataCollector';
export interface StatisticsResult {
name: string;
value: number;
confidence?: number;
metadata?: Record<string, any>;
}
export interface TrendAnalysis {
slope: number;
correlation: number;
direction: 'increasing' | 'decreasing' | 'stable';
strength: 'weak' | 'moderate' | 'strong';
significance: number;
}
export interface DistributionAnalysis {
mean: number;
median: number;
mode: number[];
standardDeviation: number;
variance: number;
skewness: number;
kurtosis: number;
quartiles: [number, number, number];
outliers: number[];
}
export interface NetworkAnalysis {
density: number;
clustering: number;
averagePathLength: number;
centralityMetrics: {
degree: Record<string, number>;
betweenness: Record<string, number>;
closeness: Record<string, number>;
};
communities: string[][];
smallWorldCoefficient: number;
}
export interface StatisticsEngineConfig {
analysisInterval: number;
enableTrendAnalysis: boolean;
enableDistributionAnalysis: boolean;
enableNetworkAnalysis: boolean;
minDataPointsForAnalysis: number;
confidenceLevel: number;
}
export declare class StatisticsEngine extends EventEmitter {
private dataCollector;
private config;
private analysisResults;
private lastAnalysisTime;
constructor(dataCollector: DataCollector, config?: Partial<StatisticsEngineConfig>);
private setupEventListeners;
private shouldPerformAnalysis;
private performAnalysis;
private analyzeTimeSeries;
private calculateBasicStatistics;
private analyzeTrend;
private analyzeDistribution;
private analyzeSimulationMetrics;
private analyzeNetworkMetrics;
private storeResult;
getStatistic(category: string, metric: string): StatisticsResult | null;
getStatisticHistory(category: string, metric: string): StatisticsResult[];
getAllCurrentStatistics(): Record<string, StatisticsResult>;
getAvailableMetrics(): string[];
generateReport(): {
summary: Record<string, number>;
trends: Record<string, TrendAnalysis>;
distributions: Record<string, DistributionAnalysis>;
timestamp: number;
};
reset(): void;
exportResults(): {
statistics: Record<string, StatisticsResult[]>;
config: StatisticsEngineConfig;
exportTimestamp: number;
};
}
//# sourceMappingURL=StatisticsEngine.d.ts.map