/** * Society Protocol - Metrics & Monitoring * * Collects and exposes performance metrics for monitoring and debugging. */ import { EventEmitter } from 'events'; export interface MetricValue { value: number; timestamp: number; labels?: Record; } export interface MetricSeries { name: string; help: string; type: 'counter' | 'gauge' | 'histogram'; values: MetricValue[]; } /** * Metrics collector */ export declare class MetricsCollector extends EventEmitter { private metrics; private histogramBuckets; private server?; /** * Record a counter metric */ counter(name: string, value?: number, labels?: Record): void; /** * Record a gauge metric */ gauge(name: string, value: number, labels?: Record): void; /** * Record a histogram observation */ histogram(name: string, value: number, labels?: Record): void; /** * Time a function execution */ time(name: string, fn: () => Promise, labels?: Record): Promise; /** * Get or create a metric series */ private getOrCreateSeries; /** * Get metric value */ getValue(name: string): number | undefined; /** * Get all metrics */ getAllMetrics(): MetricSeries[]; /** * Get system metrics */ getSystemMetrics(): { memory: { rss: number; heapUsed: number; heapTotal: number; external: number; }; cpu: { user: number; system: number; }; uptime: number; }; /** * Export metrics in Prometheus format */ exportPrometheus(): string; /** * Export metrics as JSON */ exportJSON(): object; /** * Start metrics HTTP server */ startServer(port?: number): void; /** * Stop metrics server */ stopServer(): void; /** * Clear all metrics */ clear(): void; } /** * Global metrics instance */ export declare const globalMetrics: MetricsCollector; /** * Decorator for auto-instrumenting methods */ export declare function timed(name?: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor; //# sourceMappingURL=metrics.d.ts.map