import { EventMap, EventsDefinition, EventSource } from './eventsource'; import { Mixable, MixableConstructor, MixinsState } from './mixins'; export { EventMap, EventsDefinition }; export interface MessengerDefinition { _localEvents?: EventMap; localEvents?: EventsDefinition; properties?: PropertyMap; [name: string]: any; } export interface PropertyMap { [name: string]: Property; } export declare type Property = PropertyDescriptor | (() => any); export interface MessengersByCid { [cid: string]: Messenger; } export declare type EventCallbacks = { [events: string]: EventCallback; }; export declare type EventCallback = (this: Context, ...args: any[]) => void; export declare class Messenger implements Mixable, EventSource { static mixins: MixinsState; static onExtend: (BaseClass: Function) => void; static define: (definition?: MessengerDefinition, statics?: object) => MixableConstructor; static extend: (definition?: MessengerDefinition, statics?: object) => MixableConstructor; static onDefine({ localEvents, _localEvents, properties }: MessengerDefinition, BaseClass?: typeof Mixable): void; cid: string; constructor(); initialize(): void; on(events: string | EventCallbacks, callback?: any, context?: any): this; once(events: string | EventCallbacks, callback?: any, context?: any): this; off(events?: string | EventCallbacks, callback?: any, context?: any): this; trigger(name: string, a?: any, b?: any, c?: any, d?: any, e?: any): this; listenTo(source: Messenger, a: string | EventCallbacks, b?: Function): this; listenToOnce(source: Messenger, a: string | EventCallbacks, b?: Function): this; stopListening(a_source?: Messenger, a?: string | EventCallbacks, b?: Function): this; _disposed: boolean; dispose(): void; } export declare const Events: Messenger;