import { Rect } from '../../types/misc'; import { ContinuousScale } from '../../types/scale'; import { FittedTickValues, TickValues } from './types'; /** Tick value identity across renders; `+value` so equal `Date`s match */ export declare const tickKey: (value: number | Date) => string; /** Merges two tick sets, deduplicated and sorted */ export declare const mergeTickValues: (a: TickValues, b: TickValues) => TickValues; /** Returns the tick values to render as marks, restricting the step to 1 or 5 × 10^k. * Every coarser "nice" step is then a multiple of the mark step, so the label sets picked by * {@link findFittingTickValues} land on existing marks and label changes don't add or remove * ticks — visibility toggles animate in CSS with no tick lifecycle management. * Time scales are returned as is: their tick intervals don't form a nested ladder. */ export declare function getNestedTickValues(scale: ContinuousScale, maxNumTicks: number, values?: TickValues): TickValues; /** Generates candidate tick sets in decreasing size, from `maxNumTicks` down to a single tick. * Consecutive counts often produce the same "nice" values, so the sets are deduplicated. */ export declare function getTickValueCandidates(scale: ContinuousScale, maxNumTicks: number): TickValues[]; /** Generates candidate subsets of a custom tick list in decreasing size — every value, * every 2nd, every 3rd and so on, anchored at the first value so the labeled ticks * stay evenly spaced. Used when explicit `tickValues` are fitted adaptively. */ export declare function getTickValueSubsetCandidates(values: TickValues): TickValues[]; /** Finds the largest tick set whose labels don't overlap, among `candidates` ordered from * the densest to the sparsest (see {@link getTickValueCandidates}). Label rects come from * `getLabelRects`, which is expected to predict them without rendering (see * `Axis._getTickLabelRects`). The search stops at the first fitting candidate. * `tolerance` is forwarded to `resolveRectsOverlap`. */ export declare function findFittingTickValues(candidates: TickValues[], getLabelRects: (values: TickValues) => Rect[], tolerance?: number): FittedTickValues | undefined;