import { KeysOfValueType } from "../types";
export interface IdBatcherParams<Entity extends object, CallResult> {
    waitTime: number;
    idField: KeysOfValueType<Entity, string | number>;
    useFirstEntity?: boolean;
    resolveAllDuplicates?: boolean;
    processBatch(entities: Entity[]): Promise<CallResult[]>;
}
/**
 * Dedupes queue items by their id field. Deduped items will be rejected
 *
 * @template Entity
 * @template CallResult
 * @param {IdBatcherParams<Entity, CallResult>} params
 */
export declare const createIdBatcher: <Entity extends object, CallResult>(params: IdBatcherParams<Entity, CallResult>) => (args_0: Entity) => Promise<CallResult>;
