import type { MessageBus, MessageBusConnection } from './MessageBus.js';
/** Abstract base class for MessageBus implementations. */
export declare abstract class AbstractMessageBus<T> implements MessageBus<T> {
    protected connections: MessageBusConnection<T>[];
    protected readonly name: string;
    protected readonly sessionId: string | undefined;
    /** Creates an instance with the supplied configuration. */
    constructor(sessionId?: string, name?: string);
    /** Adds connection through the backing provider. */
    addConnection(connection: MessageBusConnection<T>): void;
    /** Removes connection from this instance. */
    removeConnection(connection: MessageBusConnection<T>): void;
    protected validateSessionId(sessionId?: string): boolean;
    /** Configures or sends traffic over the post-message transport. */
    abstract postMessage(message: unknown): void;
    /** Starts the transport or provider lifecycle. */
    abstract start(): void;
    /** Stops the transport or provider lifecycle and releases owned listeners. */
    abstract stop(): void;
}
//# sourceMappingURL=Abstract.d.ts.map