export declare class EventToken { readonly name: string; constructor(name: string); } type EventHandler = (event: TEvent) => void | Promise; type ListenerMethodKey = string | symbol; export interface ListenerMethodMetadata { token: EventToken; methodName: ListenerMethodKey; order: number; } export declare class EventBus { private handlers; listen(token: EventToken, handler: EventHandler, order?: number): () => void; dispatch(token: EventToken, event: TEvent): Promise; } declare function listen(token: EventToken, order?: number): MethodDecorator; export declare const event: { listen: typeof listen; }; export declare const eventDispatcher: { listen: typeof listen; }; export declare function getListenerMethodMetadata(instanceOrPrototype: object): ListenerMethodMetadata[]; export {}; //# sourceMappingURL=event-bus.d.ts.map