import DynamoDBDocument, { Item, UpdateCommandInput, UpdateCommandOutput } from '../DocumentClient'; import Query from './Query'; import { SetValue, AddValue, DeleteValue } from '../expressions/UpdateExpression'; import { ConditionGenerator } from '../expressions/ConditionExpression'; type QueryInput = Omit & { Key: K; }; type QueryOutput = Omit & { Attributes?: T; }; export default class UpdateQuery extends Query, QueryOutput> { private values; private conditions; private update; constructor(client: DynamoDBDocument, params: QueryInput); protected handleInputUpdated(): void; protected syncInput(): void; condition(fn: ConditionGenerator): this; set(path: K1 | [K1], value: SetValue): this; set>(path: [K1, K2], value: SetValue[K2]>): this; set, K3 extends keyof NonNullable[K2]>>(path: [K1, K2, K3], value: SetValue[K2]>[K3]>): this; set, K3 extends keyof NonNullable[K2]>, K4 extends keyof NonNullable[K2]>[K3]>>(path: [K1, K2, K3, K4], value: SetValue[K2]>[K3]>[K4]>): this; set, K3 extends keyof NonNullable[K2]>, K4 extends keyof NonNullable[K2]>[K3]>, K5 extends keyof NonNullable[K2]>[K3]>[K4]>>(path: [K1, K2, K3, K4, K5], value: SetValue[K2]>[K3]>[K4]>[K5]>): this; set, K3 extends keyof NonNullable[K2]>, K4 extends keyof NonNullable[K2]>[K3]>, K5 extends keyof NonNullable[K2]>[K3]>[K4]>, K6 extends keyof NonNullable[K2]>[K3]>[K4]>[K5]>>(path: [K1, K2, K3, K4, K5, K6], value: SetValue[K2]>[K3]>[K4]>[K5]>[K6]>): this; set, K3 extends keyof NonNullable[K2]>, K4 extends keyof NonNullable[K2]>[K3]>, K5 extends keyof NonNullable[K2]>[K3]>[K4]>, K6 extends keyof NonNullable[K2]>[K3]>[K4]>[K5]>, K7 extends keyof NonNullable[K2]>[K3]>[K4]>[K5]>[K6]>>(path: [K1, K2, K3, K4, K5, K6, K7], value: SetValue[K2]>[K3]>[K4]>[K5]>[K6]>[K7]>): this; set, K3 extends keyof NonNullable[K2]>, K4 extends keyof NonNullable[K2]>[K3]>, K5 extends keyof NonNullable[K2]>[K3]>[K4]>, K6 extends keyof NonNullable[K2]>[K3]>[K4]>[K5]>, K7 extends keyof NonNullable[K2]>[K3]>[K4]>[K5]>[K6]>, K8 extends keyof NonNullable[K2]>[K3]>[K4]>[K5]>[K6]>[K7]>>(path: [K1, K2, K3, K4, K5, K6, K7, K8], value: SetValue[K2]>[K3]>[K4]>[K5]>[K6]>[K7]>[K8]>): this; remove(...path: [K1, K2?, K3?, K4?, K5?, K6?, K7?, K8?, ...(string | number)[]]): this; add(path: K1 | [K1], value: AddValue): this; add(path: [K1, K2], value: AddValue): this; add(path: [K1, K2, K3], value: AddValue): this; add(path: [K1, K2, K3, K4], value: AddValue): this; add(path: [K1, K2, K3, K4, K5], value: AddValue): this; add(path: [K1, K2, K3, K4, K5, K6], value: AddValue): this; add(path: [K1, K2, K3, K4, K5, K6, K7], value: AddValue): this; add(path: [K1, K2, K3, K4, K5, K6, K7, K8], value: AddValue): this; delete(path: K1 | [K1], value: DeleteValue): this; delete(path: [K1, K2], value: DeleteValue): this; delete(path: [K1, K2, K3], value: DeleteValue): this; delete(path: [K1, K2, K3, K4], value: DeleteValue): this; delete(path: [K1, K2, K3, K4, K5], value: DeleteValue): this; delete(path: [K1, K2, K3, K4, K5, K6], value: DeleteValue): this; delete(path: [K1, K2, K3, K4, K5, K6, K7], value: DeleteValue): this; delete(path: [K1, K2, K3, K4, K5, K6, K7, K8], value: DeleteValue): this; return(values: 'ALL_OLD' | 'ALL_NEW' | 'UPDATED_OLD' | 'UPDATED_NEW' | 'NONE'): this; } export {};