export declare const HISTOGRAM_BUCKETS = 20;
export interface HistogramBucket<T> {
	min: T;
	max: T;
	count: number;
	/**
	* Optional short label shown beneath the bucket on the SVG x-axis.
	* Date histograms populate this with day/month/year text; numeric
	* histograms leave it unset (the SVG renders min/max only).
	*/
	tickLabel?: string;
}
/**
* Returns "nice" tick positions covering the [0, max] range — values that
* round to 1/2/5 × 10^n so the tick labels read cleanly. Used for
* y-axis axis lines on the histogram.
*
* Edge cases:
*  - max ≤ 0          → returns [0]
*  - max ≤ 1/2/3      → returns [0, ..., max] without rounding to 5/10
*  - otherwise        → between 3 and 6 ticks aligned on a nice step
*/
export declare function niceTicks(max: number, desiredCount?: number): number[];
interface ValueCountPair<T> {
	value: T;
	count: number;
}
export declare function createHistogramBuckets<T>(pairs: Array<ValueCountPair<T>>, range: {
	min: T
	max: T
}, toNumber: (value: T) => number, fromNumber: (value: number) => T): Array<HistogramBucket<T>>;
export declare function getMaxBucketCount<T>(buckets: Array<HistogramBucket<T>>): number;
export {};
