/** * TODO auto adjust concurrent size to optimize concurrency * currently solely relay on maxConcurrent * * data loading can be in arbitrary order, * data processing must be in order * * this impl is faster than TaskPool for large number of keys * * @param args.maxConcurrent: manually adjust to avoid out of memory * */ export declare function batchProcess(args: { keys: K[]; loader: (key: K) => Promise; processor: (datum: D, key: K) => void | Promise; maxConcurrent?: number; }): Promise;