import EventEmitter from 'eventemitter3'; import type { Cluster } from 'cluster'; import type { LogEvent } from './logEvent'; import type { LevelName, LoggerArg } from './types'; import type { LogWriter, ShutdownCb } from './logWriter'; import type { Logger } from './logger'; export type EventListenerConfig, TContext extends Record, TFormattedData, TConfigA extends Record, TDataOut extends Array = TData> = { levelName: LevelName; listener: (event: LogEvent) => void; logger: Logger; logWriter: LogWriter; }; export declare function getEventBus(): EventBus; export declare function shutdown(callback?: ShutdownCb): Promise; declare class EventBus extends EventEmitter<'log4ts:pause'> { private _logWriterListeners; private _logWriters; private _loggers; cluster: Cluster | false; enabled: boolean; constructor(); isMaster(): boolean; private sendToListeners; private receiver; send(msg: LogEvent): void; addMessageListener(conf: EventListenerConfig & { logWriter: LogWriter; }): void; shutdown(callback?: ShutdownCb): Promise; } export {};