import { DynamoDB } from 'aws-sdk';
import { Observable } from 'rxjs';
import { randomExponentialBackoffTimer } from '../../helper';
import { ModelConstructor } from '../../model/model-constructor';
import { BatchGetFullResponse } from './batch-get-full.response';
import { BatchGetResponse } from './batch-get.response';
export declare class BatchGetRequest {
    readonly params: DynamoDB.BatchGetItemInput;
    private readonly dynamoRx;
    private readonly tables;
    private itemCounter;
    constructor();
    /**
     * @param {ModelConstructor<T>} modelClazz
     * @param {Partial<T>[]} keys a partial of T that contains Partition key and SortKey (if necessary). Throws if missing.
     * @param consistentRead
     * @returns {BatchGetSingleTableRequest}
     */
    forModel<T>(modelClazz: ModelConstructor<T>, keys: Array<Partial<T>>, consistentRead?: boolean): BatchGetRequest;
    execNoMap(backoffTimer?: typeof randomExponentialBackoffTimer, throttleTimeSlot?: number): Observable<DynamoDB.BatchGetItemOutput>;
    execFullResponse(backoffTimer?: typeof randomExponentialBackoffTimer, throttleTimeSlot?: number): Observable<BatchGetFullResponse>;
    exec(backoffTimer?: typeof randomExponentialBackoffTimer, throttleTimeSlot?: number): Observable<BatchGetResponse>;
    private fetch;
    private mapResponse;
}
