import { DocumentClient } from 'aws-sdk/clients/dynamodb'; import { Model } from './model'; import { ExpressionLogic } from './expression'; export declare class Operate { private static paramSet; constructor(options?: OperateOptions); protected options: OperateOptions; quiet(): this; index(name?: string): this; protected inspect(): {}; toJSON(): {}; then(onfulfilled?: (value?: any) => TRes | PromiseLike | undefined | null | void, onrejected?: (reason: any) => TRes | PromiseLike): Promise; catch(onrejected?: (reason: any) => PromiseLike): Promise; } export declare class ReadOperate extends Operate { select(...keys: (string | string[])[]): this; consistent(value?: boolean): this; } export declare class MultiReadOperate extends ReadOperate { protected static fork(logic: ExpressionLogic): MultiReadOperate; filter(key: string): { between: (val?: [string | number, string | number]) => T; in: (val?: (string | number)[]) => T; exists: (val?: never) => T; not: { exists: (val?: never) => T; }; type: (val?: "S" | "N" | "B" | "SS" | "NS" | "BS" | "M" | "L" | "NULL" | "BOOL") => T; begins: (val?: string) => T; contains: (val?: string) => T; size: { eq: (val?: number) => T; ne: (val?: number) => T; lt: (val?: number) => T; lte: (val?: number) => T; gt: (val?: number) => T; gte: (val?: number) => T; }; eq: (val?: string | number | boolean | Date) => T; ne: (val?: string | number | boolean | Date) => T; lt: (val?: string | number | boolean | Date) => T; lte: (val?: string | number | boolean | Date) => T; gt: (val?: string | number | boolean | Date) => T; gte: (val?: string | number | boolean | Date) => T; }; or(func: (operate: this) => any): this; not(func: (operate: this) => any): this; private logicalClause; limit(value: number): this; } export declare class WriteOperate extends Operate { quiet(): this; } export declare class ConditionWriteOperate extends WriteOperate { where(key: string): { between: (val?: [string, string]) => T; in: (val?: string[]) => T; exists: (val?: never) => T; not: { exists: (val?: never) => T; }; type: (val?: "S" | "N" | "B" | "SS" | "NS" | "BS" | "M" | "L" | "NULL" | "BOOL") => T; begins: (val?: string) => T; contains: (val?: string) => T; size: { eq: (val?: number) => T; ne: (val?: number) => T; lt: (val?: number) => T; lte: (val?: number) => T; gt: (val?: number) => T; gte: (val?: number) => T; }; eq: (val?: string | number | boolean | Date) => T; ne: (val?: string | number | boolean | Date) => T; lt: (val?: string | number | boolean | Date) => T; lte: (val?: string | number | boolean | Date) => T; gt: (val?: string | number | boolean | Date) => T; gte: (val?: string | number | boolean | Date) => T; }; or(func: (operate: this) => any): this; not(func: (operate: this) => any): this; private logicalClause; quiet(): this; } export interface OperateOptions extends Partial, Partial, Partial { Model?: M['constructor']; logic?: ExpressionLogic; leaf?: boolean; one?: boolean; keyExprs?: Set; filterExprs?: Set; setExprs?: Set; removeExprs?: Set; addExprs?: Set; deleteExprs?: Set; condExprs?: Set; projExprs?: Set; names?: { [name: string]: string; }; values?: { [name: string]: any; }; GetKeys?: DocumentClient.KeyList; PutItems?: DocumentClient.PutItemInputAttributeMap[]; DeleteKeys?: DocumentClient.KeyList; }