import ExpressionAttributeNames from './ExpressionAttributeNames'; import ExpressionAttributeValues from './ExpressionAttributeValues'; export type Operand = '+' | '-'; export type ValueFn = V | ((exp: UpdateValueExpression) => string); export type ListValue = [V] extends [unknown[]] ? V : never; export default class UpdateValueExpression { private names; private values; private pathName; private valueKey; constructor(names: ExpressionAttributeNames, values: ExpressionAttributeValues, pathName: string, valueKey: string); name(...path: [K1, K2?, K3?, K4?, K5?, K6?, K7?, K8?, ...(string | number)[]]): string; value(value: V): string; inc(a: ValueFn, b?: ValueFn): string; dec(a: ValueFn, b?: ValueFn): string; operand(operand: Operand, a: ValueFn, b?: ValueFn): string; listAppend(list1: ValueFn>, list2?: ValueFn>): string; ifNotExists(value: ValueFn): string; protected calcValueFn(value: ValueFn): string; }