import * as DynamoDB from 'aws-sdk/clients/dynamodb';
import { Observable } from 'rxjs';
import { DynamoRx } from '../dynamo-rx';
/**
 * Function which executes batchGetItem operations until all given items (as params) are processed (fetched).
 * Between each follow-up request (in case of unprocessed items) a delay is interposed calculated by the given backoffTime and throttleTimeSlot.
 * @param dynamoRx
 * @param params containing the keys per table to create the batchGet operation
 * @param backoffTimer used to determine how many time slots the follow-up request should be delayed
 * @param throttleTimeSlot used to calculate the effective wait time
 */
export declare function batchGetItemsFetchAll(dynamoRx: DynamoRx, params: DynamoDB.BatchGetItemInput, backoffTimer: IterableIterator<number>, throttleTimeSlot: number): Observable<DynamoDB.BatchGetItemOutput>;
export declare type BatchGetItemOutputWithUnprocessedKeys = DynamoDB.BatchGetItemOutput & {
    UnprocessedKeys: DynamoDB.BatchGetRequestMap;
};
export declare function hasUnprocessedKeys(response: DynamoDB.BatchGetItemOutput): response is BatchGetItemOutputWithUnprocessedKeys;
/**
 * combines a first with a second response. ConsumedCapacity is always from the latter.
 * @param response1
 */
export declare function combineBatchGetResponses(response1: DynamoDB.BatchGetItemOutput): (response2: DynamoDB.BatchGetItemOutput) => DynamoDB.BatchGetItemOutput;
