import { TEventID } from '../../../../types/index';
export declare class ApplicationEventPublisher {
    protected eventBus: Map<string, {
        instance: any;
        method: Function;
        sort?: number;
    }[]>;
    constructor(eventBus?: Map<string, {
        instance: any;
        method: Function;
        sort?: number;
    }[]>);
    /**
     * 发布事件
     * @param args 事件参数
     */
    publishEvent(...args: any[]): void;
    /**
     * 发布异步事件
     * @param args 事件参数
     */
    publishAsyncEvent(...args: any[]): Promise<void>;
    /**
     * 发布事件 根据事件ID
     * @param eventID 事件ID 自动识别参数类型为TEventID类型，比如 'SignSendEmail' as TEventID
     * @param args 事件参数 自动识别参数类型为any[]类型
     */
    publishEventByID(eventID: TEventID, ...args: any[]): void;
    /**
     * 发布异步事件 根据事件ID
     * @param eventID 事件ID 自动识别参数类型为TEventID类型，比如 'SignSendEmail' as TEventID
     * @param args 事件参数 自动识别参数类型为any[]类型
     */
    publishAsyncEventByID(eventID: TEventID, ...args: any[]): Promise<void>;
}
