import { EventEmitter } from 'events';
export interface EventCallback {
    (...args: any[]): void;
}
interface BaseConfig {
    name?: string;
    maxListeners?: number;
}
export declare abstract class BaseClass {
    protected readonly config: BaseConfig;
    protected readonly eventEmitter: EventEmitter;
    protected readonly logger: Console;
    protected isDestroyed: boolean;
    constructor(config?: BaseConfig);
    protected error(...args: unknown[]): void;
    /**
     * 添加事件监听器
     * @param event 事件名称
     * @param listener 监听器回调函数
     */
    on(event: string, listener: EventCallback): void;
    /**
     * 一次性事件监听器
     * @param event 事件名称
     * @param listener 监听器回调函数
     */
    once(event: string, listener: EventCallback): void;
    /**
     * 移除事件监听器
     * @param event 事件名称
     * @param listener 监听器回调函数
     */
    off(event: string, listener: EventCallback): void;
    /**
     * 触发事件
     * @param event 事件名称
     * @param args 事件参数
     */
    protected emit(event: string, ...args: unknown[]): void;
    isDestroy(): boolean;
    /**
     * 获取当前注册的所有事件
     */
    getEvents(): string[];
    /**
     * 获取特定事件的监听器数量
     * @param event 事件名称
     */
    listenerCount(event: string): number;
    destroy(): void;
    protected checkDestroyed(): void;
}
export {};
