import { Serializable, SerializableInput } from '../types'; import { ClusterManager } from '../core/clusterManager'; import { ClusterClient } from '../core/clusterClient'; /** Type of the broker message sent. */ export type BrokerMessage = { _data: unknown; broker: string; }; /** Type of the broker message handler. */ export type BrokerMessageHandler = (message: T) => void; /** The IPC Broker Abstract class. */ declare abstract class IPCBrokerAbstract { readonly instance: ClusterManager | ClusterClient; /** The listeners of the IPC Broker. */ private listeners; /** Creates an instance of IPCBrokerAbstract. */ constructor(instance: ClusterManager | ClusterClient); /** Listens to a specific channel. */ listen(channelName: string, callback: BrokerMessageHandler): void; /** Handles the message received, and executes the callback. (Not meant to be used by the user.) */ handleMessage(message: BrokerMessage | unknown): void; } /** IPC Broker Manager class. */ export declare class IPCBrokerManager extends IPCBrokerAbstract { /** Sends a message to a specific channel. */ send(channelName: string, message: SerializableInput, clusterId?: number): Promise; } /** IPC Broker Client class. */ export declare class IPCBrokerClient extends IPCBrokerAbstract { /** Sends a message to a specific channel. */ send(channelName: string, message: SerializableInput): Promise; } export {};