@comake/skl-js-engine
Version:
Standard Knowledge Language Javascript Engine
51 lines • 1.8 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'node:events';
import { Logger } from '../../../logger';
import type { MessageHandler, Transport, TransportConfig, TransportEvents } from '../Transport';
import { TransportStatus } from '../Transport';
/**
* Base transport class providing common functionality for all transport implementations
*/
export declare abstract class BaseTransport extends EventEmitter implements Transport {
protected internalStatus: TransportStatus;
protected messageHandler?: MessageHandler;
protected name?: string;
readonly logger: Logger;
constructor();
/**
* Set a name for this transport (used in logging)
*/
setName(name: string): void;
/**
* Get current transport status
*/
get status(): TransportStatus;
/**
* Register a message handler for incoming messages
*/
onMessage<T>(handler: MessageHandler<T>): void;
/**
* Register an event listener
*/
on<TKey extends keyof TransportEvents>(event: TKey, handler: TransportEvents[TKey]): this;
/**
* Remove an event listener
*/
off<TKey extends keyof TransportEvents>(event: TKey, handler: TransportEvents[TKey]): this;
/**
* Set transport status and emit event
*/
protected setStatus(status: TransportStatus): void;
/**
* Handle errors and emit error events
*/
handleError(error: Error, context?: string): void;
/**
* Abstract methods to be implemented by concrete transport classes
*/
abstract initialize(config?: TransportConfig): Promise<void>;
abstract send<TRequest, TResponse>(message: TRequest): Promise<TResponse>;
abstract close(): Promise<void>;
abstract isReady(): boolean;
}
//# sourceMappingURL=BaseTransport.d.ts.map