import { Condition, ConditionInitalizer, BasicOperators } from "./Condition"; import { Model } from "./Model"; import { Document } from "./Document"; import { CallbackType, ObjectType, DocumentArray, SortOrder } from "./General"; import { AWSError } from "aws-sdk"; declare enum DocumentRetrieverTypes { scan = "scan", query = "query" } interface DocumentRetrieverTypeInformation { type: DocumentRetrieverTypes; pastTense: string; } interface DocumentRetriever extends BasicOperators { } declare abstract class DocumentRetriever { internalSettings?: { model: Model; typeInformation: DocumentRetrieverTypeInformation; }; settings: { condition: Condition; limit?: number; all?: { delay: number; max: number; }; startAt?: any; attributes?: string[]; index?: string; consistent?: boolean; count?: boolean; parallel?: number; sort?: SortOrder; }; getRequest: (this: DocumentRetriever) => Promise; all: (this: DocumentRetriever, delay?: number, max?: number) => DocumentRetriever; limit: (this: DocumentRetriever, value: number) => DocumentRetriever; startAt: (this: DocumentRetriever, value: ObjectType) => DocumentRetriever; attributes: (this: DocumentRetriever, value: string[]) => DocumentRetriever; count: (this: DocumentRetriever) => DocumentRetriever; consistent: (this: DocumentRetriever) => DocumentRetriever; using: (this: DocumentRetriever, value: string) => DocumentRetriever; exec(this: DocumentRetriever, callback?: any): any; constructor(model: Model, typeInformation: DocumentRetrieverTypeInformation, object?: ConditionInitalizer); } interface DocumentRetrieverResponse extends DocumentArray { lastKey?: ObjectType; count: number; } interface ScanResponse extends DocumentRetrieverResponse { scannedCount: number; timesScanned: number; } interface QueryResponse extends DocumentRetrieverResponse { queriedCount: number; timesQueried: number; } export declare class Scan extends DocumentRetriever { exec(): Promise>; exec(callback: CallbackType, AWSError>): void; parallel(value: number): Scan; constructor(model: Model, object?: ConditionInitalizer); } export declare class Query extends DocumentRetriever { exec(): Promise>; exec(callback: CallbackType, AWSError>): void; sort(order: SortOrder): Query; constructor(model: Model, object?: ConditionInitalizer); } export {};