import { MaybePromise } from '../../types'; export type BatchCallbackLookup = (value: V) => MaybePromise; export type BatchCallback = (values: V[]) => MaybePromise | BatchCallbackLookup>; export type BatchOptions = { maxBatchSize?: number; maxWaitMilliseconds?: number; }; export declare class BatchProcessor { private readonly callback; private readonly options; private readonly queue; private timeout; private waitingSince; constructor(callback: BatchCallback, options?: BatchOptions); batch(value: V): Promise; process(): void; private requestProcessQueue; private waitToProcessQueue; private shouldProcessNow; private maxBatchSizeReached; private maxWaitReached; private getBatchToProcess; private processQueue; private resolveBatchUsingMap; private resolveBatchUsingLookup; private rejectBatch; private isBatchCallbackLookup; }