@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
TypeScript
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