import { type IEventsManager } from "../../common/events/IEventsManager";
import { type IClientInternalEvents } from "../../../net/common/events/types";
import { type IClientToServerEvents, type IServerToClientEvents } from "../../../../shared/net/common/events/types";
export declare class RageEventsManager implements IEventsManager {
    onRaw(events: Partial<IClientEvents>): void;
    offRaw<K extends keyof IClientEvents>(eventName: K, listener?: IClientEvents[K]): void;
    onInternal(events: Partial<IClientInternalEvents>): void;
    offInternal<K extends keyof IClientInternalEvents>(eventName: K, listener?: IClientInternalEvents[K]): void;
    emitInternal<K extends keyof IClientInternalEvents>(eventName: K, ...args: Parameters<IClientInternalEvents[K]>): void;
    onServer(events: Partial<IServerToClientEvents>): void;
    offServer<K extends keyof IServerToClientEvents>(eventName: K, listener?: IServerToClientEvents[K]): void;
    emitServer<K extends keyof IClientToServerEvents>(eventName: K, ...args: Parameters<IClientToServerEvents[K]>): void;
    register(event: string, listener: (...args: unknown[]) => void): void;
    unregister(event: string): void;
}
