/// declare interface RageFW_ICustomServerEvent { customServerEvent(arg1: string, arg2: number): boolean } type RageFW_ServerEvent = | keyof RageFW_ICustomServerEvent | keyof IServerEvents type RageFW_ServerEventCallback< K extends keyof RageFW_ICustomServerEvent | keyof IServerEvents, > = K extends keyof RageFW_ICustomServerEvent ? ( player: PlayerMp, ...args: Parameters ) => ReturnType : K extends keyof IServerEvents ? ThisifyServerEvents[K] : never declare class RageFW_Server { declare register( eventName: EventName, callback: RageFW_ServerEventCallback, ): void declare registerMany(events: { [key: EventName]: RageFW_ServerEventCallback }): void }