import { DeleteItemInput, PutItemInput, ReturnConsumedCapacity, ReturnItemCollectionMetrics, UpdateItemInput } from 'aws-sdk/clients/dynamodb';
import { ModelConstructor } from '../../model';
import { DynamoRx } from '../dynamo-rx';
import { ConditionExpressionDefinitionFunction, RequestConditionFunction } from '../expression/type';
import { BaseRequest } from './base.request';
export declare abstract class WriteRequest<R extends BaseRequest<T, I>, T, I extends DeleteItemInput | PutItemInput | UpdateItemInput> extends BaseRequest<T, I> {
    constructor(dynamoRx: DynamoRx, modelClazz: ModelConstructor<T>, tableName: string);
    returnConsumedCapacity(level: ReturnConsumedCapacity): R;
    returnItemCollectionMetrics(returnItemCollectionMetrics: ReturnItemCollectionMetrics): R;
    onlyIfAttribute(attributePath: keyof T): RequestConditionFunction<R>;
    /**
     * @param conditionDefFns
     */
    onlyIf(...conditionDefFns: ConditionExpressionDefinitionFunction[]): R;
    returnValues(returnValues: 'NONE' | 'ALL_OLD'): R;
}
