import { ReturnConsumedCapacity, ReturnItemCollectionMetrics, UpdateItemOutput } from 'aws-sdk/clients/dynamodb';
import { Observable } from 'rxjs';
import { ModelConstructor } from '../../../model/model-constructor';
import { DynamoRx } from '../../dynamo-rx';
import { ConditionExpressionDefinitionFunction } from '../../expression/type/condition-expression-definition-function';
import { RequestConditionFunction } from '../../expression/type/request-condition-function';
import { UpdateActionKeyword } from '../../expression/type/update-action-keyword.type';
import { UpdateExpressionDefinitionFunction } from '../../expression/type/update-expression-definition-function';
import { UpdateExpression } from '../../expression/type/update-expression.type';
import { BaseRequest } from '../base.request';
export declare type SortedUpdateExpressions = {
    [key in UpdateActionKeyword]: UpdateExpression[];
};
export declare class UpdateRequest<T> extends BaseRequest<T, any> {
    constructor(dynamoRx: DynamoRx, modelClazz: ModelConstructor<T>, tableName: string, partitionKey: any, sortKey?: any);
    whereAttribute(attributePath: keyof T): RequestConditionFunction<UpdateRequest<T>>;
    where(...conditionDefFns: ConditionExpressionDefinitionFunction[]): UpdateRequest<T>;
    operations(...updateDefFns: UpdateExpressionDefinitionFunction[]): UpdateRequest<T>;
    returnConsumedCapacity(level: ReturnConsumedCapacity): UpdateRequest<T>;
    returnItemCollectionMetrics(returnItemCollectionMetrics: ReturnItemCollectionMetrics): UpdateRequest<T>;
    returnValues(returnValues: 'NONE' | 'ALL_OLD' | 'UPDATED_OLD' | 'ALL_NEW' | 'UPDATED_NEW'): UpdateRequest<T>;
    execFullResponse(): Observable<UpdateItemOutput>;
    exec(): Observable<void>;
}
