///
import { Operation, FetchResult, NextLink } from '../core';
import { Observable } from '../../utilities';
export declare type BatchHandler = (operations: Operation[], forward?: (NextLink | undefined)[]) => Observable | null;
export interface BatchableRequest {
operation: Operation;
forward?: NextLink;
observable?: Observable;
next?: Array<(result: FetchResult) => void>;
error?: Array<(error: Error) => void>;
complete?: Array<() => void>;
}
export declare class OperationBatcher {
queuedRequests: Map;
private batchInterval?;
private batchMax;
private batchHandler;
private batchKey;
constructor({ batchInterval, batchMax, batchHandler, batchKey, }: {
batchInterval?: number;
batchMax?: number;
batchHandler: BatchHandler;
batchKey?: (operation: Operation) => string;
});
enqueueRequest(request: BatchableRequest): Observable;
consumeQueue(key?: string): (Observable | undefined)[] | undefined;
private scheduleQueueConsumption;
}
//# sourceMappingURL=batching.d.ts.map