import { ClientSession, Collection, MongoClient, ObjectId } from "mongodb";
import { Aggregate } from "./aggregates/Aggregate";
import { Query } from "./queries/Query";
import { IAggregateOptions, IBulkWriteOptions, IChangeStreamWrapper, ICompareIndexResult, ICreateCollectionOptions, IDeleteOptions, IDocumentClass, IDocumentObject, IInsertOneOptions, IQueryOptions, IRepositoryOptions, IUpdateOptions, IWeakTypeAggregateOptions, IWeakTypeQueryOptions } from "./types";
export declare class Repository
{
readonly mongoClient: MongoClient;
readonly classObject: TD;
readonly dbName: string;
readonly collectionName: string;
constructor(options: IRepositoryOptions | );
dropIndex(): Promise;
addIndex(): Promise;
syncIndex(): Promise;
compareIndex(): Promise;
createCollection(options?: ICreateCollectionOptions): Promise>;
dropCollection(): Promise;
getCollection(): Collection;
syncSchemaValidation(): Promise;
getDb(): import("mongodb").Db;
findOne(filter: Partial>> | ObjectId, options?: {
session?: ClientSession;
}): Promise | undefined>;
watch(): IChangeStreamWrapper| ;
aggregate(options?: IAggregateOptions): Aggregate | >;
aggregate(options?: IWeakTypeAggregateOptions): Aggregate | ;
query(options?: IQueryOptions | ): Query | >;
query(options?: IWeakTypeQueryOptions | ): Query | ;
create(values?: Partial>): InstanceType| ;
insert(document: InstanceType | , options?: IInsertOneOptions): Promise>;
insertMany(documents: Array>, options?: IBulkWriteOptions): Promise>>;
update(document: InstanceType, options?: IUpdateOptions): Promise>;
delete(document: InstanceType| , options?: IDeleteOptions): Promise>;
delete(objectId: ObjectId, options?: IDeleteOptions): Promise;
private _getSaveData;
private _parseServerTextIndex;
private _parseClientTextIndex;
}
| | | | |