seyfert
Version:
The most advanced framework for discord bots
25 lines (24 loc) • 848 B
TypeScript
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;
}