import type { ScaleBand, ScaleLinear, ScaleLogarithmic, ScaleSymLog, ScaleTime } from 'd3-scale'; /** Union of possible tick value types returned by {@link getTicks}. */ export type TickValue = number | Date | string; /** A scale that supports `ticks()` (continuous scales like linear, time, log). */ interface ScaleWithTicks { domain(): TickValue[]; ticks(count?: number): TickValue[]; } /** A scale that only exposes `domain()` (band and ordinal scales). */ interface ScaleWithDomainOnly { domain(): TickValue[]; } /** * Extracts tick values from a d3 scale. Replaces `@visx/scale`'s `getTicks`. * * Continuous scales delegate to `scale.ticks(numTicks)`. * Band/ordinal scales sample evenly from `scale.domain()`. * * @param scale - Any d3 scale. * @param numTicks - Desired tick count hint. When omitted, band scales return the full domain. */ export declare function getTicks(scale: ScaleLinear | ScaleLogarithmic | ScaleSymLog, numTicks?: number): number[]; /** Returns `Date[]` for time scales. */ export declare function getTicks(scale: ScaleTime, numTicks?: number): Date[]; /** Returns `string[]` for band scales. */ export declare function getTicks(scale: ScaleBand, numTicks?: number): string[]; /** Fallback overload for duck-typed scale objects. */ export declare function getTicks(scale: ScaleWithTicks | ScaleWithDomainOnly, numTicks?: number): TickValue[]; export {};