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; }