UNPKG

seyfert

Version:

The most advanced framework for discord bots

37 lines (36 loc) 1.89 kB
import type { Awaitable, CamelCase } from '../common'; import type { CallbackEventHandler, CustomEventsKeys, GatewayEvents } from '../events'; export type AllClientEvents = CustomEventsKeys | GatewayEvents; export type ParseClientEventName<T extends AllClientEvents> = T extends CustomEventsKeys ? T : CamelCase<T>; export type CollectorRunPameters<T extends AllClientEvents> = Awaited<Parameters<CallbackEventHandler[ParseClientEventName<T>]>[0]>; type RunData<T extends AllClientEvents> = { options: { event: T; idle?: number; timeout?: number; onStop?: (reason: string) => unknown; onStopError?: (reason: string, error: unknown) => unknown; filter: (arg: CollectorRunPameters<T>) => Awaitable<boolean>; run: (arg: CollectorRunPameters<T>, stop: (reason?: string) => void) => unknown; onRunError?: (arg: CollectorRunPameters<T>, error: unknown, stop: (reason?: string) => void) => unknown; }; idle?: NodeJS.Timeout; timeout?: NodeJS.Timeout; nonce: string; }; export declare class Collectors { readonly values: Map<AllClientEvents, RunData<any>[]>; private generateRandomUUID; create<T extends AllClientEvents>(options: RunData<T>['options']): { event: T; idle?: number; timeout?: number; onStop?: (reason: string) => unknown; onStopError?: (reason: string, error: unknown) => unknown; filter: (arg: Awaited<Parameters<CallbackEventHandler[ParseClientEventName<T>]>[0]>) => Awaitable<boolean>; run: (arg: Awaited<Parameters<CallbackEventHandler[ParseClientEventName<T>]>[0]>, stop: (reason?: string) => void) => unknown; onRunError?: ((arg: Awaited<Parameters<CallbackEventHandler[ParseClientEventName<T>]>[0]>, error: unknown, stop: (reason?: string) => void) => unknown) | undefined; }; private delete; } export {};