/** * @file Transport type definitions * @module types/transport */ import { NostrEvent } from './events.js'; import { NostrWSMessage } from './messages.js'; /** * Base transport interface */ export interface Transport { /** * Connect to the transport */ connect(): Promise; /** * Disconnect from the transport */ disconnect(): Promise; /** * Send a message through the transport */ send(message: NostrWSMessage): Promise; /** * Subscribe to events */ subscribe(filter: NostrEvent): Promise; /** * Unsubscribe from events */ unsubscribe(subscriptionId: string): Promise; /** * Check if transport is connected */ isConnected(): boolean; /** * Get transport metrics */ getMetrics(): TransportMetrics; } /** * Transport metrics */ export interface TransportMetrics { /** * Total number of messages sent */ messagesSent: number; /** * Total number of messages received */ messagesReceived: number; /** * Total number of bytes sent */ bytesSent: number; /** * Total number of bytes received */ bytesReceived: number; /** * Average message latency in milliseconds */ averageLatency: number; /** * Number of active subscriptions */ activeSubscriptions: number; /** * Connection uptime in milliseconds */ uptime: number; /** * Number of connection attempts */ connectionAttempts: number; /** * Number of successful connections */ successfulConnections: number; /** * Number of failed connections */ failedConnections: number; /** * Transport-specific metrics */ [key: string]: number | string | boolean | undefined; } /** * Transport factory interface */ export interface TransportFactory { /** * Create a new transport instance */ create(options: unknown): Transport; } //# sourceMappingURL=transport.d.ts.map