import * as DynamoDB from 'aws-sdk/clients/dynamodb';
import { Metadata } from '../../decorator/metadata/metadata';
import { ModelConstructor } from '../../model/model-constructor';
import { DynamoRx } from '../dynamo-rx';
/**
 * Base Request for all Request classes usable with DynamoStore.
 * which means they have only one table they work with
 * (even if the actual operation would allow to use multiple tables. e.g. BatchWriteSingleTable)
 */
export declare abstract class BaseRequest<T, I extends DynamoDB.DeleteItemInput | DynamoDB.GetItemInput | DynamoDB.PutItemInput | DynamoDB.UpdateItemInput | DynamoDB.QueryInput | DynamoDB.ScanInput | DynamoDB.BatchGetItemInput | DynamoDB.BatchWriteItemInput | DynamoDB.TransactGetItemsInput | DynamoDB.TransactWriteItemsInput, R extends BaseRequest<T, I, any>> {
    readonly dynamoRx: DynamoRx;
    readonly modelClazz: ModelConstructor<T>;
    readonly metadata: Metadata<T>;
    readonly tableName: string;
    readonly params: I;
    protected constructor(dynamoRx: DynamoRx, modelClazz: ModelConstructor<T>);
    returnConsumedCapacity(level: DynamoDB.ReturnConsumedCapacity): R;
}
