import { IPublicApiEvent } from '@alilc/lowcode-types';
import EventEmitter from 'events';
export interface IEventBus extends IPublicApiEvent {
    removeListener(event: string | symbol, listener: (...args: any[]) => void): any;
    addListener(event: string | symbol, listener: (...args: any[]) => void): any;
    setMaxListeners(n: number): any;
    removeAllListeners(event?: string | symbol): any;
}
export declare class EventBus implements IEventBus {
    private readonly eventEmitter;
    private readonly name?;
    /**
     * 内核触发的事件名
     */
    readonly names: any[];
    constructor(emitter: EventEmitter, name?: string);
    private getMsgPrefix;
    private getLogger;
    /**
     * 监听事件
     * @param event 事件名称
     * @param listener 事件回调
     */
    on(event: string, listener: (...args: any[]) => void): () => void;
    prependListener(event: string, listener: (...args: any[]) => void): () => void;
    /**
     * 取消监听事件
     * @param event 事件名称
     * @param listener 事件回调
     */
    off(event: string, listener: (...args: any[]) => void): void;
    /**
     * 触发事件
     * @param event 事件名称
     * @param args 事件参数
     * @returns
     */
    emit(event: string, ...args: any[]): void;
    removeListener(event: string | symbol, listener: (...args: any[]) => void): any;
    addListener(event: string | symbol, listener: (...args: any[]) => void): any;
    setMaxListeners(n: number): any;
    removeAllListeners(event?: string | symbol): any;
}
export declare const createModuleEventBus: (moduleName: string, maxListeners?: number) => IEventBus;
