///
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(handler: MessageHandler): void;
/**
* Register an event listener
*/
on(event: TKey, handler: TransportEvents[TKey]): this;
/**
* Remove an event listener
*/
off(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;
abstract send(message: TRequest): Promise;
abstract close(): Promise;
abstract isReady(): boolean;
}
//# sourceMappingURL=BaseTransport.d.ts.map