import type { SummarizeFn } from "./summary.js"; export type MergeRule = "max" | "min" | "sum" | "concat" | "mean" | "range" | "mode" | "set" | "median" | "same" | "any" | "all" | "first" | "last" | "count" | ((values: string[]) => string); /** merge a list of field values under a rule (display string out) */ export declare function aggregate(values: string[], rule: MergeRule): string; /** * Build a SummarizeFn that merges member FIELDS into kv rows: * per-key rules (e.g. { "min score": "max", device: "set" }) with a * fallback rule (default "mode") for unlisted keys. Used as rgui's * default pseudo summary when the host provides none. */ export declare function fieldSummarize(rules?: Record, fallback?: MergeRule): SummarizeFn; /** rgui's default data-merge summary (mode for every field) */ export declare const defaultSummarize: SummarizeFn; /** * Extremum under an ordering — the generalization behind max/min/any/all. * Give an enum order (["ok","warn","error"] → severity) or a key function * (Date.parse → latest). dir "max" picks the greatest. * * fieldSummarize({ status: ordered(["ok","warn","error"]) }) // worst * fieldSummarize({ updated: ordered(Date.parse, "max") }) // latest */ export declare function ordered(order: string[] | ((v: string) => number), dir?: "max" | "min"): (values: string[]) => string; /** * ADVANCED: arbitrary quantile of the numeric values (q in 0..1, linear * interpolation). The everyday cases have plain names — use "min", "max", * "median" — reach for this only when you really need e.g. a p95. */ export declare function quantile(q: number): (values: string[]) => string; /** * Top-k histogram — mode generalized: topK(1) ≡ "mode", * topK(2)(["en","ja","en","de","ja","en"]) → "en ×3, ja ×2". */ export declare function topK(k: number): (values: string[]) => string; //# sourceMappingURL=aggregate.d.ts.map