import { type IEventsManager } from "../../common/events/IEventsManager";
import { type IServerInternalEvents } from "../../common/events/types";
import { type IClientToServerEvents, type IServerToClientEvents } from "../../../../shared";
import { type RagePlayer } from "../../../entities/ragemp/player/RagePlayer";
interface IRageServerInternalEvents extends IServerInternalEvents, IServerEvents {
}
export declare class RageEventsManager implements IEventsManager {
    onInternal(events: Partial<IRageServerInternalEvents>): void;
    offInternal<K extends keyof IRageServerInternalEvents>(eventName: K): void;
    emitInternal<K extends keyof IRageServerInternalEvents>(eventName: K, ...args: Parameters<IRageServerInternalEvents[K]>): void;
    onClient(events: Partial<IClientToServerEvents>): void;
    offClient<K extends keyof IClientToServerEvents>(eventName: K): void;
    emitClient<K extends keyof IServerToClientEvents>(player: RagePlayer, eventName: K, ...args: Parameters<IServerToClientEvents[K]>): void;
    emitAllClients<K extends keyof IServerToClientEvents>(eventName: K, ...args: Parameters<IServerToClientEvents[K]>): void;
}
export {};
