import { Metadata } from '../../decorator/metadata';
import { BaseRequest } from '../request/base.request';
import { ConditionExpressionDefinitionChain } from './type/condition-expression-definition-chain';
import { ConditionOperator } from './type/condition-operator.type';
import { ExpressionType } from './type/expression-type.type';
import { RequestConditionFunction } from './type/request-condition-function';
import { RequestSortKeyConditionFunction } from './type/sort-key-condition-function';
import { UpdateExpressionDefinitionChain, UpdateExpressionDefinitionChainTyped } from './type/update-expression-definition-chain';
/**
 * Adds a condition to the given query.
 */
export declare function addCondition<R extends BaseRequest<any, any>>(expressionType: ExpressionType, attributePath: string, request: R, metadata?: Metadata<any>): RequestConditionFunction<R>;
export declare function addSortKeyCondition<R extends BaseRequest<any, any>>(keyName: keyof any, request: R): RequestSortKeyConditionFunction<R>;
export declare function addSortKeyCondition<T, R extends BaseRequest<T, any>>(keyName: keyof T, request: R, metadata: Metadata<T>): RequestSortKeyConditionFunction<R>;
export declare function doAddCondition<T, R extends BaseRequest<T, any>>(expressionType: ExpressionType, attributePath: string, request: R, metadata: Metadata<T> | undefined, operator: ConditionOperator, ...values: any[]): R;
export declare function addPartitionKeyCondition<R extends BaseRequest<any, any>>(keyName: keyof any, keyValue: any, request: R): R;
export declare function addPartitionKeyCondition<T, R extends BaseRequest<T, any>>(keyName: keyof T, keyValue: any, request: R, metadata: Metadata<T>): R;
export declare function updateDefinitionFunction(attributePath: string): UpdateExpressionDefinitionChain;
export declare function updateDefinitionFunction<T>(attributePath: keyof T): UpdateExpressionDefinitionChain;
export declare function updateDefinitionFunction<T, K extends keyof T>(attributePath: K): UpdateExpressionDefinitionChainTyped<T, K>;
export declare function propertyDefinitionFunction<T>(attributePath: keyof T): ConditionExpressionDefinitionChain;
