import { DocumentClient } from 'aws-sdk/lib/dynamodb/document_client'; import { Omit } from 'ramda'; import { Filter } from '../../../engine/operator/filter'; import { OutputProxy, Printable } from './printable'; declare type ScanInput = Omit; declare type QueryInput = Omit; declare type Input = ScanInput | QueryInput; export declare abstract class Read extends Printable { protected genKey: (key?: any) => any; protected genValue: (key?: any) => any; protected params: Input; /** * Run runner * @returns {Promise>} */ run(): Promise>; /** * Set project expression * @param {DocumentClient.ProjectionExpression} expression * @returns {this} * @todo It is raw level now. */ project(expression: DocumentClient.ProjectionExpression): this; /** * Set filter to filtering result * @param {(and: Filter, or: Filter) => void} setter * @returns {this} */ filter(setter: (and: Filter, or: Filter) => void): this; /** * Limit result count * @param {number} limit * @returns {this} */ limit(limit: number): this; /** * Set ConsistentRead * @returns {this} */ consistent(): this; /** * Get items from * @param {Partial} lastEvaluatedKey * @returns {this} */ startAt(lastEvaluatedKey?: Partial): this; } export {};