///
///
///
///
///
///
///
///
///
import { Callback } from "../core/callback";
import { ResultCallback } from "../core/callback";
import { IteratorCallback } from "../core/callback";
import { InternalSession } from "../session";
import { Constructor } from "../index";
import { Observable } from "rx";
import { CollationOptions } from "../mapping/collationOptions";
export interface QueryBuilder {
findAll(callback?: ResultCallback): FindQuery;
findAll(criteria: QueryDocument, callback?: ResultCallback): FindQuery;
findOne(callback?: ResultCallback): FindOneQuery;
findOne(criteria: QueryDocument, callback?: ResultCallback): FindOneQuery;
findOneById(id: any, callback?: ResultCallback): FindOneQuery;
findOneAndRemove(callback?: ResultCallback): FindOneAndRemoveQuery;
findOneAndRemove(criteria: QueryDocument, callback?: ResultCallback): FindOneAndRemoveQuery;
findOneAndUpdate(updateDocument: QueryDocument, callback?: ResultCallback): FindOneAndUpdateQuery;
findOneAndUpdate(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): FindOneAndUpdateQuery;
findOneAndUpsert(updateDocument: QueryDocument, callback?: ResultCallback): FindOneAndUpdateQuery;
findOneAndUpsert(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): FindOneAndUpdateQuery;
removeAll(callback?: ResultCallback): void;
removeAll(criteria: QueryDocument, callback?: ResultCallback): void;
removeOne(callback?: ResultCallback): void;
removeOne(criteria: QueryDocument, callback?: ResultCallback): void;
updateAll(updateDocument: QueryDocument, callback?: ResultCallback): void;
updateAll(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): void;
updateOne(updateDocument: QueryDocument, callback?: ResultCallback): void;
updateOne(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): void;
upsert(updateDocument: QueryDocument, callback?: ResultCallback): void;
upsert(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): void;
distinct(key: string, callback: ResultCallback): void;
distinct(key: string, criteria: QueryDocument, callback: ResultCallback): void;
count(callback?: ResultCallback): CountQuery;
count(criteria: QueryDocument, callback?: ResultCallback): CountQuery;
}
export interface QueryDocument {
[name: string]: any;
}
export interface Query {
execute(callback: ResultCallback): void;
asPromise(): Promise;
}
export interface CountQuery extends Query {
limit(value: number, callback?: ResultCallback): CountQuery;
skip(value: number, callback?: ResultCallback): CountQuery;
}
export interface FindOneAndRemoveQuery extends Query {
sort(field: string, direction: number, callback?: ResultCallback): FindOneAndRemoveQuery;
sort(fields: [string, number][], callback?: ResultCallback): FindOneAndRemoveQuery;
fetch(path: string, callback?: ResultCallback): FindOneAndRemoveQuery;
fetch(paths: string[], callback?: ResultCallback): FindOneAndRemoveQuery;
lazy(callback?: ResultCallback): FindOneAndRemoveQuery;
}
export interface FindOneAndUpdateQuery extends Query {
sort(field: string, direction: number, callback?: ResultCallback): FindOneAndUpdateQuery;
sort(fields: [string, number][], callback?: ResultCallback): FindOneAndUpdateQuery;
fetch(path: string, callback?: ResultCallback): FindOneAndUpdateQuery;
fetch(paths: string[], callback?: ResultCallback): FindOneAndUpdateQuery;
returnUpdated(callback?: ResultCallback): FindOneAndUpdateQuery;
lazy(callback?: ResultCallback): FindOneAndUpdateQuery;
}
export interface FindOneQuery extends Query {
fetch(path: string, callback?: ResultCallback): FindOneQuery;
fetch(paths: string[], callback?: ResultCallback): FindOneQuery;
lazy(callback?: ResultCallback): FindOneQuery;
}
export interface FindQuery extends Query {
sort(field: string, direction: number, callback?: ResultCallback): FindQuery;
sort(fields: [string, number][], callback?: ResultCallback): FindQuery;
fetch(path: string, callback?: ResultCallback): FindQuery;
fetch(paths: string[], callback?: ResultCallback): FindQuery;
limit(value: number, callback?: ResultCallback): FindQuery;
collation(value: CollationOptions, callback?: ResultCallback): FindQuery;
skip(value: number, callback?: ResultCallback): FindQuery;
lazy(callback?: ResultCallback): FindQuery;
batchSize(value: number): FindQuery;
each(iterator: IteratorCallback, callback: Callback): void;
eachSeries(iterator: IteratorCallback, callback: Callback): void;
asObservable(): Observable;
}
export declare class QueryBuilderImpl implements QueryBuilder {
private _session;
private _entityCtr;
constructor(session: InternalSession, entityCtr: Constructor);
findAll(callback?: ResultCallback): FindQuery;
findAll(criteria: QueryDocument, callback?: ResultCallback): FindQuery;
findOne(callback?: ResultCallback): FindOneQuery;
findOne(criteria: QueryDocument, callback?: ResultCallback): FindOneQuery;
findOneById(id: any, callback?: ResultCallback): FindOneQuery;
findOneAndRemove(callback?: ResultCallback): FindOneAndRemoveQuery;
findOneAndRemove(criteria: QueryDocument, callback?: ResultCallback): FindOneAndRemoveQuery;
findOneAndUpdate(updateDocument: QueryDocument, callback?: ResultCallback): FindOneAndUpdateQuery;
findOneAndUpdate(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): FindOneAndUpdateQuery;
findOneAndUpsert(updateDocument: QueryDocument, callback?: ResultCallback): FindOneAndUpdateQuery;
findOneAndUpsert(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): FindOneAndUpdateQuery;
removeAll(callback?: ResultCallback): void;
removeAll(criteria: QueryDocument, callback?: ResultCallback): void;
removeOne(callback?: ResultCallback): void;
removeOne(criteria: QueryDocument, callback?: ResultCallback): void;
updateAll(updateDocument: QueryDocument, callback?: ResultCallback): void;
updateAll(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): void;
updateOne(updateDocument: QueryDocument, callback?: ResultCallback): void;
updateOne(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): void;
upsert(updateDocument: QueryDocument, callback?: ResultCallback): void;
upsert(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): void;
distinct(key: string, callback: ResultCallback): void;
distinct(key: string, criteria: QueryDocument, callback: ResultCallback): void;
count(callback?: ResultCallback): CountQuery;
count(criteria: QueryDocument, callback?: ResultCallback): CountQuery;
private _createUpdateQuery(kind, criteriaOrUpdateDocument, updateDocumentOrCallback, callback?);
private _createRemoveQuery(kind, criteriaOrCallback?, callback?);
private _createFindQuery(kind, criteriaOrCallback?, callback?);
private _createQuery(kind);
}