import type { Timeoutify } from './node'; import type { Statistic } from './statHelpers'; import type { Collection, Join, NestedPaths, StrictFilter, WithId } from 'mongodb'; type Result = Record<`p${number}`, number> & Record<`top${number}`, number> & { readonly max: number; readonly min: number; readonly avg: number; readonly sum: number; readonly count: number; readonly stdDevPop: number; readonly stdDevSamp: number; }; export declare class StatsPipeline, TS extends Statistic, TGroupBy extends Record, []>, '.'>}`>, TRes extends Record & Result, TKey extends Join, []>, '.'> = Join, []>, '.'>> { readonly stats: readonly TS[]; readonly collection: Collection; readonly prop: TKey; readonly preGroupStages: readonly Record[]; readonly groupBy: TGroupBy; constructor(collection: Collection, stats: readonly TS[], prop: TKey, groupBy: TGroupBy, preGroupStages?: readonly Record[]); get statisticsGroupStage(): { $group: Record; }; get percentileSetStage(): { $set: { rawValue: { $sortArray: { input: string; sortBy: number; }; }; }; }[]; matchStage($match: StrictFilter): { $match: StrictFilter; }; get statisticsProjectStage(): { $project: { top1?: number | undefined; top2?: number | undefined; top3?: number | undefined; stdDevSamp?: number | undefined; stdDevPop?: number | undefined; count?: number | undefined; sum?: number | undefined; avg?: number | undefined; min?: number | undefined; max?: number | undefined; _id: number; }; }; getScalarValue(entry: Result | null | undefined, stat: TS): number | null; execute(pipe: Record[], timeoutify: Timeoutify): Promise; executeWithMatch($match: StrictFilter, timeoutify: Timeoutify): Promise; getPipeline($match: StrictFilter): (Record | { $group: Record; } | { $set: { rawValue: { $sortArray: { input: string; sortBy: number; }; }; }; } | { $match: StrictFilter; } | { $project: { top1?: number | undefined; top2?: number | undefined; top3?: number | undefined; stdDevSamp?: number | undefined; stdDevPop?: number | undefined; count?: number | undefined; sum?: number | undefined; avg?: number | undefined; min?: number | undefined; max?: number | undefined; _id: number; }; })[]; executeWithMatchAndExplain($match: StrictFilter): Promise; } export default StatsPipeline;