import type { UsingClient } from '../commands'; import type { ClientEvents } from './hooks'; export interface CustomEvents {} export type ClientNameEvents = Extract; export type CustomEventsKeys = Extract; export interface ClientDataEvent { name: ClientNameEvents | CustomEventsKeys; once: boolean; } export type CallbackEventHandler = { [K in keyof ClientEvents]: (...data: [Awaited, UsingClient, number]) => unknown; } & { [K in keyof CustomEvents]: (...data: [Parameters, UsingClient, number]) => unknown; }; export type EventContext = Parameters< CallbackEventHandler[T['data']['name']] >; export interface ClientEvent { data: ClientDataEvent; run(...args: EventContext): any; /**@internal */ __filePath?: string; }