UNPKG

@gitorial/sync

Version:

Universal sync library for real-time tutorial state synchronization between websites and VS Code extensions with built-in relay server orchestration

48 lines 1.66 kB
import { SyncMessage } from '../types/messages'; import { ConnectionStatus, SyncClientError } from '../types'; export interface ConnectionManagerConfig { wsUrl: string; connectionTimeout: number; autoReconnect: boolean; maxReconnectAttempts: number; reconnectDelay: number; } export interface ConnectionManagerEvents { connected: () => void; disconnected: () => void; statusChanged: (status: ConnectionStatus) => void; error: (error: SyncClientError) => void; } /** * Manages WebSocket connections with automatic reconnection logic */ export declare class ConnectionManager { private readonly config; private readonly eventEmitter; private socket; private connectionStatus; private currentSessionId; private reconnectAttempts; private reconnectTimer; private isConnecting; private connectionTimeout; constructor(config: ConnectionManagerConfig); on(event: string, listener: (...args: any[]) => void): this; off(event: string, listener: (...args: any[]) => void): this; emit(event: string, ...args: any[]): boolean; once(event: string, listener: (...args: any[]) => void): this; removeAllListeners(event?: string): this; connect(sessionId: string): Promise<void>; disconnect(): void; sendMessage(message: SyncMessage): void; isConnected(): boolean; getStatus(): ConnectionStatus; getCurrentSessionId(): string | null; private setStatus; private handleError; private scheduleReconnect; private clearReconnectTimer; private clearConnectionTimeout; private cleanup; } //# sourceMappingURL=ConnectionManager.d.ts.map