import { Topic, TopicSettings, IMessageBusSubscriptionHandler, IMessageBusTopicSubscription, IMessageBusTopicPublishSubscriber, IMessageBusTopicPublication, TopicCreatedFunc } from "../../models"; export declare class SubscriptionHandler implements IMessageBusSubscriptionHandler { private unSubcribeHandlers; constructor(); /** * Unsubscribe to the related subscription(s) * and/or any subscriptions added using add method) * */ unsubscribe: () => void; /** * Adds another unsubscribe handler, all will be unsubscribed to if calling unsubscribe * @param unSubscriptionHandler */ add: (unSubscriptionHandler: IMessageBusSubscriptionHandler) => void; } export declare class MessageBusExposeOnlySubscription implements IMessageBusTopicSubscription { subscribe: (fn: (obj: T) => void) => IMessageBusSubscriptionHandler; constructor(publishSubscriber: IMessageBusTopicPublishSubscriber); } export declare class MessageBusExposeOnlyPublication implements IMessageBusTopicPublication { publish: (msg: T) => void; constructor(publishSubscriber: IMessageBusTopicPublishSubscriber); } export declare class MessageBusTopicMediator implements IMessageBusTopicPublishSubscriber { private _topic; constructor(topic: Topic, settings?: TopicSettings, onTopicCreated?: TopicCreatedFunc); publish: (msg: T) => void; subscribe: (fn: (obj: T) => void) => IMessageBusSubscriptionHandler; clearMessageCache: () => number; }