UNPKG

nostr-websocket-utils

Version:

Robust WebSocket utilities for Nostr applications with automatic reconnection, supporting both ESM and CommonJS. Features channel-based messaging, heartbeat monitoring, message queueing, and comprehensive error handling with type-safe handlers.

59 lines 1.59 kB
/** * @file Scoring and metrics type definitions * @module types/scoring */ /** * Metric value types */ export type MetricValue = number | string | boolean | Date; /** * Transport data types */ export type TransportData = string | Buffer | ArrayBuffer | SharedArrayBuffer; /** * Metrics update event */ export interface MetricUpdateEvent { endpoint: string; metricType: string; value: MetricValue; timestamp: number; } export interface BaseMetrics { totalConnections: number; activeConnections: number; connectionErrors: number; messagesReceived: number; messagesSent: number; bytesReceived: number; bytesSent: number; averageLatency: number; lastSeen: number; } export interface ScoringStrategy { calculateScore(metrics: BaseMetrics): number; } export interface MetricsProvider<T extends BaseMetrics = BaseMetrics> { getMetrics(endpoint: string): T; getAllMetrics(): Map<string, T>; trackMetric(endpoint: string, metricType: string, value: any): void; } export declare const DEFAULT_WEIGHTS: { readonly latency: 0.2; readonly reliability: 0.3; readonly uptime: 0.2; readonly errors: 0.2; readonly activity: 0.1; }; export declare class DefaultScoringStrategy implements ScoringStrategy { private weights; constructor(weights?: { readonly latency: 0.2; readonly reliability: 0.3; readonly uptime: 0.2; readonly errors: 0.2; readonly activity: 0.1; }); calculateScore(metrics: BaseMetrics): number; } //# sourceMappingURL=scoring.d.ts.map