import { ChatContext } from '@/types/models/classes'; import { EventEmitter } from '@/utils/event-emitter'; import { Logger } from '@/utils/logger'; export type EventHandler = (context: ChatContext) => void | Promise; export type ErrorHandler = (context: any) => void | Promise; export declare class EventManager { private emitter; private logger; constructor(emitter: EventEmitter, logger: Logger); /** * Register event handlers manually */ on(event: 'chat', handler: EventHandler): void; on(event: 'message', handler: EventHandler): void; on(event: 'new_member', handler: EventHandler): void; on(event: 'del_member', handler: EventHandler): void; on(event: 'feed', handler: EventHandler): void; on(event: 'unknown', handler: EventHandler): void; on(event: 'error', handler: ErrorHandler): void; /** * Remove event handler */ off(event: string, handler: EventHandler | ErrorHandler): void; /** * Emit event */ emit(event: string, args: any[]): void; /** * Register controller methods as event handlers */ registerControllerMethods(controller: any): void; /** * Register message controller */ private registerMessageController; /** * Register new member controller */ private registerNewMemberController; /** * Register delete member controller */ private registerDelMemberController; /** * Register error controller */ private registerErrorController; /** * Register feed controller */ private registerFeedController; /** * Register unknown controller */ private registerUnknownController; /** * Register chat controller */ private registerChatController; /** * Get descriptive text for different message types */ private getMessageTypeDescription; /** * Check if the current room is allowed for the controller/method */ private isRoomAllowed; } //# sourceMappingURL=EventManager.d.ts.map