import { ClusterInfo, NodeId } from "./cluster-state"; import { PubSub } from "./pub-sub"; export declare type MessageHeaders = { [key: string]: any; }; export declare type ClusterMessageHandler = (contents: any, headers: MessageHeaders) => void; declare class ClusterMessaging { private clusterInfo; private pubSub; private clusterChannelKey; private nodeChannelKey; private handlers; constructor(clusterInfo: ClusterInfo, pubSub: PubSub); openChannels(): Promise; sendMessage(targetNode: NodeId, subsystem: string, contents: any, headers?: MessageHeaders): Promise; broadcastMessage(subsystem: string, contents: any, headers?: MessageHeaders): Promise; addHandler(subsystem: string, handler: ClusterMessageHandler): void; private onMessage(channelName, message); private publishToChannel(channelName, subsystem, contents, headers); } export default ClusterMessaging; export { ClusterMessaging };