import { MessageHandler } from "./types/message-handler.type";
import { PubSubService } from "./types/pubsub-service.type";
export declare class Channel<MessageType> implements PubSubService<MessageType> {
    private subscriptions;
    publish<T>(message: MessageType, data: T): void;
    subscribe<T>(message: MessageType, handler: MessageHandler<T, MessageType>): void;
    unsubscribe<T>(message: MessageType, handler: MessageHandler<T, MessageType>): void;
    /**
     * Unregister all subscriptions for the channel
     */
    unsubscribeAll(): void;
}
