import * as DynamoDB from 'aws-sdk/clients/dynamodb';
import { Metadata } from '../../decorator/metadata/index';
import { ModelConstructor } from '../../model/model-constructor';
import { RequestConditionFunction } from '../expression';
import { ConditionExpressionDefinitionFunction } from '../expression/type/index';
import { ConditionalParamsHost } from '../operation-params.type';
export declare abstract class TransactBaseOperation<T, I extends DynamoDB.ConditionCheck | DynamoDB.Put | DynamoDB.Update | DynamoDB.Delete, R extends TransactBaseOperation<T, I, any>> implements ConditionalParamsHost {
    readonly params: I;
    readonly metadata: Metadata<T>;
    readonly modelClazz: ModelConstructor<T>;
    abstract readonly transactItem: DynamoDB.TransactWriteItem;
    protected constructor(modelClazz: ModelConstructor<T>);
    onlyIfAttribute<K extends keyof T>(attributePath: K): RequestConditionFunction<R, T, K>;
    onlyIf(...conditionDefFns: ConditionExpressionDefinitionFunction[]): R;
    returnValuesOnConditionCheckFailure(value: DynamoDB.ReturnValuesOnConditionCheckFailure): R;
}
