import { DocumentClient } from 'aws-sdk/clients/dynamodb'; import { Draft } from 'immer'; import { Engine, TScalar } from '../engine'; export declare class Document { private readonly engine; private readonly tableName; private readonly hashKeyName; private readonly rangeKeyName; private readonly sureExistOnDb; private current; private readonly original; constructor(engine: Engine, tableName: string, hashKeyName: string, rangeKeyName: string | undefined, sureExistOnDb: boolean, data: S); /** * Set item values via setter * @param {(draft: Draft) => void} setter * @returns {this} */ set(setter: (draft: Draft) => void): this; /** * Return current data * @param {boolean} pureJs - Transform DynamoDB oriented data type to javascript object * @param {(arrayIndicatesSet: TScalar[]) => TScalar[]} transformSetTo - type `Set` transform function * @returns {S} */ head(pureJs?: boolean, transformSetTo?: (arrayIndicatesSet: TScalar[]) => TScalar[]): S; /** * Delete item * @returns {Promise} */ delete(): Promise; /** * Put item * @returns {Promise>} */ put(): Promise; private triggerIfUnsureExistsOnServer; private keys; private getHashKey; private getRangeKey; }