import type { Reduction, SummarizedSlicerStats, TimePerToken } from '../data';
import { type SummarizedMeasurement } from '../../../util/summarizer';
import type { PerSliceStats, SlicerStats } from '../../stats/stats';
import type { SlicingCriteria } from '../../../slicing/criterion/parse';
import type { RShellEngineConfig } from '../../../config';
/**
 * Summarizes the given stats by calculating the min, max, median, mean, and the standard deviation for each measurement.
 * @see Slicer
 */
export declare function summarizeSlicerStats(stats: SlicerStats, report?: (criteria: SlicingCriteria, stats: PerSliceStats) => void, engineConf?: RShellEngineConfig): Promise<Readonly<SummarizedSlicerStats>>;
/**
 * Summarizes the given measurements by calculating the min, max, median, mean, standard deviation, and total.
 */
export declare function summarizeSummarizedMeasurement(data: SummarizedMeasurement[]): SummarizedMeasurement;
/**
 * Summarizes the given reductions of summarized measurements.
 */
export declare function summarizeSummarizedReductions(reductions: Reduction<SummarizedMeasurement>[]): Reduction<SummarizedMeasurement>;
/**
 * Summarizes the given times per token by calculating the min, max, median, mean, and standard deviation for each measurement.
 */
export declare function summarizeSummarizedTimePerToken(times: TimePerToken[]): TimePerToken;
/**
 * Summarizes the given times per token by calculating the min, max, median, mean, and standard deviation for each measurement.
 */
export declare function summarizeTimePerToken(times: TimePerToken<number>[]): TimePerToken;
