import { ReturnModelType } from '@typegoose/typegoose'; import { AnyParamConstructor } from '@typegoose/typegoose/lib/types'; import { AnyExpression, PipelineStage } from 'mongoose'; import { AnyObject } from 'tn-typescript'; import { AggrStage } from './AggrStages/AggrStage'; import { AggrStageAddFields } from './AggrStages/AggrStageAddFields'; import { AggrStageLookup } from './AggrStages/AggrStageLookup'; import { AggrStageMatch } from './AggrStages/AggrStageMatch'; import { AggrStagePopulate } from './AggrStages/AggrStagePopulate'; import { AggrStagePopulateAs } from './AggrStages/AggrStagePopulateAs'; import { AggrStageProject } from './AggrStages/AggrStageProject'; import { AggrStageReplaceRoot } from './AggrStages/AggrStageReplaceRoot'; import { AggrStageSearch } from './AggrStages/AggrStageSearch/AggrStageSearch'; import { AggrStageUnwind } from './AggrStages/AggrStageUnwind'; export declare class ExoAggrSuper> { Model: ReturnModelType; constructor(Model: ReturnModelType); protected stages: AggrStage[]; get pipes(): PipelineStage[]; match(query?: AnyObject): AggrStageMatch; addFields(fields?: AnyObject): AggrStageAddFields; replaceRoot(newRoot: AnyExpression): AggrStageReplaceRoot; get project(): AggrStageProject; get lookup(): AggrStageLookup; populate(field: string): AggrStagePopulate; populateAs(field: string, as: string): AggrStagePopulateAs; unwind(path: string): AggrStageUnwind; search(index?: string): AggrStageSearch; count(field: string): this; sample(size: number): this; skip(skip: number): this; limit(limit: number): this; sort(fields?: AnyObject): this; group($group: PipelineStage.Group['$group']): this; pushStage(pipe: PipelineStage): this; skipLimit(skip: number, limit: number): this; sortByTextScore(): this; aggregate[]>(): Promise; countDocuments(): Promise; clone(): ExoAggrSuper; }