import * as DynamoDB from 'aws-sdk/clients/dynamodb';
import { Observable } from 'rxjs';
import { ModelConstructor } from '../../../model';
import { DynamoRx } from '../../dynamo-rx';
import { RequestUpdateFunction, UpdateExpression, UpdateExpressionDefinitionFunction } from '../../expression/type';
import { UpdateActionKeyword } from '../../expression/type/update-action-keyword.type';
import { WriteRequest } from '../write.request';
export declare type SortedUpdateExpressions = Record<UpdateActionKeyword, UpdateExpression[]>;
export declare class UpdateRequest<T> extends WriteRequest<T, DynamoDB.UpdateItemInput, UpdateRequest<T>> {
    private readonly logger;
    constructor(dynamoRx: DynamoRx, modelClazz: ModelConstructor<T>, partitionKey: any, sortKey?: any);
    updateAttribute<K extends keyof T>(attributePath: K): RequestUpdateFunction<UpdateRequest<T>, T, K>;
    operations(...updateDefFns: UpdateExpressionDefinitionFunction[]): UpdateRequest<T>;
    execFullResponse(): Observable<DynamoDB.UpdateItemOutput>;
}
