import { PackageBenchmarkSummary } from "../common"; export interface FormatOptions { precision?: number; indent?: number; percentage?: boolean; noDiff?: boolean; } export declare const enum SignificanceLevel { Warning = "warning", Alert = "alert", Awesome = "awesome" } export type GetSignificance = (percentDiff: number, beforeValue: number, afterValue: number, beforeDoc: PackageBenchmarkSummary, afterDoc: PackageBenchmarkSummary) => SignificanceLevel | undefined; export type CreateGetSignificance = (getSignificance: GetSignificance) => GetSignificance; export interface Metric { columnName: string; sentenceName: string; formatOptions?: FormatOptions; getValue: (x: PackageBenchmarkSummary) => number | undefined; getSignificance: GetSignificance; } export type MetricName = "typeCount" | "memoryUsage" | "assignabilityCacheSize" | "samplesTaken" | "identifierCount" | "completionsMean" | "completionsStdDev" | "completionsAvgCV" | "quickInfoMean" | "quickInfoStdDev" | "quickInfoAvgCV" | "completionsWorstMean" | "quickInfoWorstMean"; export declare const metrics: { [K in MetricName]: Metric; }; export interface ComparedMetric { metric: Metric; percentDiff: number; significance: SignificanceLevel; } export declare function getInterestingMetrics(before: PackageBenchmarkSummary, after: PackageBenchmarkSummary): ComparedMetric[];