UNPKG

sveltekit-sync

Version:
86 lines (85 loc) 2.26 kB
import type { RealtimeClientConfig, RealtimeStatus } from './types.js'; import { EventEmitter } from './event-emitter.js'; /** * Client-side realtime connection manager. * Handles SSE connections with automatic reconnection and polling fallback. */ export declare class RealtimeClient extends EventEmitter { private config; private eventSource; private status; private reconnectAttempts; private reconnectTimer; private heartbeatTimer; private clientId; private lastEventId; constructor(config?: RealtimeClientConfig); private resolveConfig; /** * Initialize the realtime client with a client ID */ init(clientId: string): void; /** * Update configuration at runtime */ configure(config: Partial<RealtimeClientConfig>): void; /** * Get current connection status */ getStatus(): RealtimeStatus; /** * Check if currently connected */ isConnected(): boolean; /** * Connect to the SSE endpoint */ connect(): void; /** * Disconnect from the SSE endpoint */ disconnect(): void; /** * Force reconnection */ reconnect(): void; /** * Enable realtime and connect */ enable(): void; /** * Disable realtime and disconnect */ disable(): void; /** * Send a message to the server via POST * This enables bidirectional communication (client -> server) */ send(type: string, data: any): Promise<void>; /** * Join a channel to receive channel-specific events */ joinChannel(channel: string): Promise<void>; /** * Leave a channel */ leaveChannel(channel: string): Promise<void>; /** * Clean up resources */ destroy(): void; private buildEndpointUrl; private handleMessage; private handleOperationsEvent; private handleError; private scheduleReconnect; private startHeartbeatMonitor; private resetHeartbeatMonitor; private clearTimers; private setStatus; } /** * Create a realtime client with the given configuration. * Simple factory function for ease of use. */ export declare function createRealtimeClient(config?: RealtimeClientConfig): RealtimeClient;