UNPKG

@quartal/bridge-client

Version:

Universal client library for embedding applications with URL-configurable transport support (iframe, postMessage) and framework adapters for Angular and Vue

87 lines 2.62 kB
import { QuartalLogger } from '../utils/logger'; import { QuartalEventType, QuartalEventData, EventHandler, ErrorHandler, BaseClientConfig } from '../types'; import { TransportAdapter } from '../transports/transport-adapter'; export declare abstract class BaseClient { protected transport: TransportAdapter | null; protected logger: QuartalLogger; protected config: BaseClientConfig; protected eventHandlers: Map<QuartalEventType, Set<EventHandler>>; protected errorHandlers: Set<ErrorHandler>; protected isDestroyed: boolean; protected connectionStatus: { connected: boolean; lastConnected: Date | null; }; constructor(config: BaseClientConfig, clientType: string, transport: TransportAdapter); /** * Initialize the client and establish connection */ protected initialize(): Promise<void>; /** * Initialize transport communication */ protected abstract initializeTransport(): Promise<void>; /** * Set up event listeners for transport events */ protected setupEventListeners(): void; /** * Handle incoming events */ protected handleEvent(eventType: QuartalEventType, data: QuartalEventData): void; /** * Handle errors */ protected handleError(error: Error): void; /** * Connect to the other side */ protected connect(): Promise<void>; /** * Disconnect from the other side */ protected disconnect(): Promise<void>; /** * Send an event to the other side */ protected sendEvent(eventType: QuartalEventType, data?: QuartalEventData): void; /** * Register an event handler */ on(eventType: QuartalEventType, handler: EventHandler): () => void; /** * Register an error handler */ onError(handler: ErrorHandler): () => void; /** * Check if client is connected */ isConnected(): boolean; /** * Check if client is ready */ abstract isReady(): boolean; /** * Get current state */ abstract getState(): any; /** * Destroy the client and clean up resources */ destroy(): Promise<void>; /** * Get the logger instance for sharing with other components */ getLogger(): QuartalLogger; /** * Check if client has been destroyed */ isClientDestroyed(): boolean; /** * Update configuration */ updateConfig(newConfig: Partial<BaseClientConfig>): void; protected abstract onConnect(): void; protected abstract onDisconnect(): void; } //# sourceMappingURL=base-client.d.ts.map