import { EventHandleMap, EventKey, HandlerResMap, type MessageHandler, type MessageSentHandler, type MetaEventHandler, type NoticeHandler, type RequestHandler, type WSReceiveHandler } from './Interfaces.js';
import type { NCWebsocketBase } from './NCWebsocketBase.js';
export declare class NCEventBus {
    #private;
    constructor(ws: NCWebsocketBase);
    on<T extends EventKey>(event: T, handler: EventHandleMap[T]): this;
    off<T extends EventKey>(event: T, handler: EventHandleMap[T]): this;
    /**
     * @deprecated 因为once方法会创建一个函数包裹，无法正确的off，所以不推荐使用once方法，建议使用subscribeOnce方法替代
     */
    once<T extends EventKey>(event: T, handler: EventHandleMap[T]): this;
    subscribe<T extends EventKey>(event: T, handler: EventHandleMap[T]): () => void;
    subscribeOnce<T extends EventKey>(event: T, handler: EventHandleMap[T]): () => void;
    emit<T extends EventKey>(event: T, context: HandlerResMap[T]): boolean;
    parseMessage(json: WSReceiveHandler[keyof WSReceiveHandler]): boolean;
    meta_event(json: MetaEventHandler[keyof MetaEventHandler]): boolean;
    life_cycle(json: MetaEventHandler['meta_event.lifecycle']): boolean;
    message(json: MessageHandler[keyof MessageHandler]): boolean;
    message_private(json: MessageHandler['message.private']): boolean;
    message_group(json: MessageHandler['message.group']): boolean;
    message_sent(json: MessageSentHandler[keyof MessageSentHandler]): boolean;
    message_sent_private(json: MessageSentHandler['message_sent.private']): boolean;
    message_sent_group(json: MessageSentHandler['message_sent.group']): boolean;
    request(json: RequestHandler[keyof RequestHandler]): boolean;
    request_group(json: RequestHandler['request.group']): boolean;
    notice(json: NoticeHandler[keyof NoticeHandler]): boolean;
    notice_group_admin(json: NoticeHandler['notice.group_admin']): boolean;
    notice_group_ban(json: NoticeHandler['notice.group_ban']): boolean;
    notice_group_decrease(json: NoticeHandler['notice.group_decrease']): boolean;
    notice_group_increase(json: NoticeHandler['notice.group_increase']): boolean;
    notice_essence(json: NoticeHandler['notice.essence']): boolean;
    notice_notify(json: NoticeHandler['notice.notify']): boolean;
    notice_notify_input_status(json: NoticeHandler['notice.notify.input_status']): boolean;
    notice_notify_poke(json: NoticeHandler['notice.notify.poke']): boolean;
}
