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