import * as DynamoDB from 'aws-sdk/clients/dynamodb';
import { Observable } from 'rxjs';
import { randomExponentialBackoffTimer } from '../../../helper';
import { ModelConstructor } from '../../../model';
import { DynamoRx } from '../../dynamo-rx';
import { BaseRequest } from '../base.request';
import { BatchGetSingleTableResponse } from './batch-get-single-table.response';
export declare class BatchGetSingleTableRequest<T> extends BaseRequest<T, DynamoDB.BatchGetItemInput, BatchGetSingleTableRequest<T>> {
    private readonly logger;
    constructor(dynamoRx: DynamoRx, modelClazz: ModelConstructor<T>, keys: Array<Partial<T>>);
    consistentRead(value?: boolean): BatchGetSingleTableRequest<T>;
    /**
     * fetch all entries and return an the raw response (no mapping of items)
     * @param backoffTimer when unprocessed keys are returned the next value of backoffTimer is used to determine how many time slots to wait before doing the next request
     * @param throttleTimeSlot the duration of a time slot in ms
     */
    execNoMap(backoffTimer?: typeof randomExponentialBackoffTimer, throttleTimeSlot?: number): Observable<DynamoDB.BatchGetItemOutput>;
    /**
     * fetch all entries and return an object containing the mapped items and the other response data
     * @param backoffTimer when unprocessed keys are returned the next value of backoffTimer is used to determine how many time slots to wait before doing the next request
     * @param throttleTimeSlot the duration of a time slot in ms
     */
    execFullResponse(backoffTimer?: typeof randomExponentialBackoffTimer, throttleTimeSlot?: number): Observable<BatchGetSingleTableResponse<T>>;
    /**
     * fetch all entries and return the mapped entries as an array
     * @param backoffTimer when unprocessed keys are returned the next value of backoffTimer is used to determine how many time slots to wait before doing the next request
     * @param throttleTimeSlot the duration of a time slot in ms
     */
    exec(backoffTimer?: typeof randomExponentialBackoffTimer, throttleTimeSlot?: number): Observable<T[]>;
    private mapResponse;
    private fetch;
}
