import type { Vec2 } from '../../math'; import type { ColorScaleConfig, Point, ScaleType, SizeScaleConfig, TimeInterval } from '..'; import type { ScaleContinuousNumeric, ScaleTime } from 'd3-scale'; export type TicksOption = number | number[] | TimeInterval | Record; export interface ArcsinhScale { (value: number | Date): number; domain(): Vec2; domain(domain: Vec2): ArcsinhScale; range(): Vec2; range(range: Vec2): ArcsinhScale; invert(value: number): number; copy(): ArcsinhScale; ticks(count?: number): number[]; threshold: 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 const create_time_scale: (domain: Vec2, output_range: Vec2) => ScaleTime; export declare function generate_ticks(domain: Vec2, scale_type: ScaleType, ticks_option: TicksOption | undefined, scale_fn: PlotScaleFn, // D3 scale function with .ticks() method options?: { format?: string; default_count?: number; interval_padding?: number; }): number[]; export declare function calculate_domain(values: number[], scale_type?: ScaleType): Vec2; export declare function get_nice_data_range(points: Point[], get_value: (point: Point) => number, 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 function create_color_scale(color_scale_config: ColorScaleConfig | string, 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; });