export interface Message { category: string; data: Data_type; source: any; } export declare function addListener(objWithObservable: { observable: Observable; }, listener: ObserverType, category?: PotentialMessages | PotentialMessages[]): void; export declare function listenTo(listener: ObserverType, objWithObservable: { observable: Observable; }, category?: PotentialMessages | PotentialMessages[]): void; export declare function removeListener(objWithObservable: { observable: Observable; }, listener: ObserverType, category?: PotentialMessages | PotentialMessages[]): void; export declare function stopListeningTo(listener: ObserverType, objWithObservable: { observable: Observable; }, category?: PotentialMessages | PotentialMessages[]): void; export declare function messageResponse(messageCategory?: string, unwrap?: "unwrap"): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; export interface MessageResponses { [index: string]: ((msg: Message) => void); } export interface ObserverType { _act: MessageResponses; } export declare class Observable { private universalObservers; private observers; private readonly source; constructor(source: any); send(category: PotentialMessages, data?: any): void; private sendMessageToObservers; addListener(listener: ObserverType, category?: PotentialMessages | PotentialMessages[]): this; removeListener(listener: ObserverType, category?: PotentialMessages | PotentialMessages[]): this; protected listenerAdded(listener: ObserverType, category?: PotentialMessages): void; protected listenerRemoved(listener: ObserverType, category?: PotentialMessages): void; }