UNPKG

seyfert

Version:

The most advanced framework for discord bots

25 lines (24 loc) 848 B
import type { UsingClient } from '../commands'; import type { ClientEvents } from './hooks'; export interface CustomEvents { } export type ClientNameEvents = Extract<keyof ClientEvents, string>; export type CustomEventsKeys = Extract<keyof CustomEvents, string>; export interface ClientDataEvent { name: ClientNameEvents; once: boolean; } export type CallbackEventHandler = { [K in keyof ClientEvents]: (...data: [Awaited<ClientEvents[K]>, UsingClient, number]) => unknown; } & { [K in keyof CustomEvents]: (...data: [Parameters<CustomEvents[K]>, UsingClient, number]) => unknown; }; export type EventContext<T extends { data: { name: ClientNameEvents; }; }> = Parameters<CallbackEventHandler[T['data']['name']]>; export interface ClientEvent { data: ClientDataEvent; run(...args: EventContext<any>): any; }