export declare type EventHeader = { app_id: string; node_id: string; event_name: string; }; export declare type AppEvent = { header: string; data: string; }; export declare type Topic = string; export declare type Handler = (payload: string) => void | Promise; export declare type SubscriberToken = `_${Topic}_token_${number}_`; export interface IPubSub { publish(topic: Topic, payload: string): void; subscribe(topic: Topic, handler: Handler): SubscriberToken; hasSubscribers(topic?: Topic): boolean; unSubsribeByTopic(topic: Topic): boolean; unSubsribeByToken(token: SubscriberToken): boolean; unSubsribeByHandler(hanlder: Handler): boolean; clearAllSubscriptions(): void; }