export declare type PromiseFunction<T> = (...args: any) => Promise<T>; export interface PromiseQueueItemResponse<T> { item: T; res?: T; err?: Error; } export interface PublicEvents { ITEM_ERROR: string; ITEM_PROCESSED: string; ITEM_PROCESSING: string; QUEUE_PROCESSED: string; } export interface PrivateEvents { ERROR: string; PROCESSED: string; } export interface Config<T> { concurrence: number; shouldStopOnError?: boolean; items?: Array<T>; promise?: PromiseFunction<T>; promises?: Array<PromiseFunction<T>>; }