import { type D3InterpolateName } from '../../colors'; import type { Vec2 } from '../../math'; import type { ColorScaleConfig, ScaleType, SizeScaleConfig, TimeInterval } from './types'; import type { ScaleContinuousNumeric, ScaleTime } from 'd3-scale'; export type TicksOption = number | number[] | TimeInterval | Record; export interface ArcsinhScale { (value: number): number; domain(): Vec2; domain(domain: Vec2): ArcsinhScale; range(): Vec2; range(range: Vec2): ArcsinhScale; invert(value: number): number; ticks(count?: number): number[]; } export type PlotScaleFn = ScaleContinuousNumeric | ScaleTime | ArcsinhScale; export declare function scale_arcsinh(threshold?: number): ArcsinhScale; export declare function generate_arcsinh_ticks(min: number, max: number, threshold?: number, count?: number): number[]; export declare function create_scale(scale_type: ScaleType, domain: Vec2, output_range: Vec2): ScaleContinuousNumeric | ArcsinhScale; export declare function create_axis_scales(axes: { x: A; x2: A; y: A; y2: A; }, ranges: { x: Vec2; x2: Vec2; y: Vec2; y2: Vec2; }, pad: { l: number; r: number; t: number; b: number; }, width: number, height: number): { x: ArcsinhScale | ScaleContinuousNumeric; x2: ArcsinhScale | ScaleContinuousNumeric; y: ArcsinhScale | ScaleContinuousNumeric; y2: ArcsinhScale | ScaleContinuousNumeric; }; export declare function generate_ticks(domain: Vec2, scale_type: ScaleType, ticks_option: TicksOption | undefined, scale_fn: PlotScaleFn, // D3 scale function with .ticks() method options?: { default_count?: number; }): number[]; export type RunningExtent = { min?: number; max?: number; n_finite: number; }; export declare const empty_extent: () => RunningExtent; export declare function accumulate_extent(acc: RunningExtent, values: ArrayLike, count?: number): RunningExtent; type ScaleValueSeries = { color_values?: ArrayLike | null; size_values?: ArrayLike | null; } | null | undefined; export declare function collect_scale_values(series: readonly ScaleValueSeries[]): { color_extent: RunningExtent; color_range: Vec2; size_values: number[]; }; export declare function collect_size_values(series: readonly ScaleValueSeries[]): number[]; export declare const log_floor_scale: (scale: (val: number) => number, scale_type: ScaleType | undefined, domain: readonly number[]) => ((val: number) => number); export declare const nice_range_from_extent: ({ min, max, n_finite }: RunningExtent, limits: [number | null, number | null], scale_type: ScaleType, padding_factor: number, is_time?: boolean) => Vec2; export declare function generate_log_ticks(min: number, max: number, ticks_option?: TicksOption): number[]; export declare function get_tick_label(tick_value: number, ticks_option: TicksOption | undefined): string | null; export declare const log_color_domain: ([lo, hi]: Vec2) => Vec2; export declare function create_color_scale(color_scale_config: ColorScaleConfig | D3InterpolateName, auto_color_range: Vec2): ((value: number) => string) & { domain: { (): Vec2; (new_domain: Vec2): ((value: number) => string) & /*elided*/ any; }; }; export declare function create_size_scale(config: SizeScaleConfig, all_size_values: (number | null)[]): import("d3-scale").ScaleLinear | (((value: number) => number) & { domain: () => Vec2; range: () => Vec2; }); export {};