/// import rpc from 'rage-rpc' type ServerEvent = K extends keyof IServerEvents ? K : never type ServerEventCallback = K extends keyof IServerEvents ? ThisifyServerEvents[K] : never declare class Server { public register>( eventName: K, callback: ServerEventCallback, ): void public registerMultiple(events: { [name: string]: (player: PlayerMp, ...args: any[]) => any }): void registerMultiple(events: { [name: string]: (...args: any[]) => any }) { Object.entries(events).forEach(([name, callback]) => rpc.register(name, (data: any[]) => { return Array.isArray(data) ? callback(...data) : callback(data) }), ) } register() {} } export const rage = { event: new Server(), } rage.event.register('customevent', vehicle => {}) function test() {}