import type { CollectionWithSchema } from './collection'; import type Mongo from './mongo'; import ExplainableCursor from './explainable-cursor'; import { ShellApiWithMongoClass } from './decorators'; import { asPrintable } from './enums'; import type { RemoveShellOptions, FindAndModifyShellOptions, FindAndModifyMethodShellOptions, MapReduceShellOptions } from './helpers'; import type { Document, ExplainVerbosityLike, CountOptions, DistinctOptions, UpdateOptions, FindOneAndDeleteOptions, FindOneAndReplaceOptions, FindOneAndUpdateOptions, FindOptions } from '@mongosh/service-provider-core'; import type { MQLDocument, MQLPipeline, MQLQuery } from './mql-types'; export default class Explainable extends ShellApiWithMongoClass { _mongo: Mongo; _collection: CollectionWithSchema; _verbosity: ExplainVerbosityLike; constructor(mongo: Mongo, collection: CollectionWithSchema, verbosity: ExplainVerbosityLike); [asPrintable](): string; private _emitExplainableApiCall; getCollection(): CollectionWithSchema; getVerbosity(): ExplainVerbosityLike; setVerbosity(verbosity: ExplainVerbosityLike): void; find(query?: MQLQuery, projection?: Document, options?: FindOptions & { explain?: ExplainVerbosityLike; }): Promise; aggregate(pipeline: MQLPipeline, options: Document): Promise; aggregate(...stages: MQLPipeline): Promise; count(query?: {}, options?: CountOptions): Promise; distinct(field: string): Promise; distinct(field: string, query: MQLQuery): Promise; distinct(field: string, query: MQLQuery, options: DistinctOptions): Promise; findAndModify(options: FindAndModifyMethodShellOptions): Promise; findOneAndDelete(filter: MQLQuery, options?: FindOneAndDeleteOptions): Promise; findOneAndReplace(filter: MQLQuery, replacement: MQLDocument, options?: FindAndModifyShellOptions): Promise; findOneAndUpdate(filter: MQLQuery, update: MQLDocument, options?: FindAndModifyShellOptions): Promise; remove(query: MQLQuery, options?: boolean | RemoveShellOptions): Promise; update(filter: Document, update: Document, options?: UpdateOptions): Promise; mapReduce(map: Function | string, reduce: Function | string, optionsOrOutString: MapReduceShellOptions): Promise; }