import { type ConvertibleUnit, type FormatOptions, type Unit } from '@dynatrace-sdk/units'; import { type AnyNumericFormatter, type CategoricalFormatter, type FormatterWithPrecision } from '../../core/types/formatter.js'; interface AxisFormatterConfig { isRelative: boolean; type: string; formatter?: AnyNumericFormatter | CategoricalFormatter; } /** * Returns true when the axis should use nice unit-converted ticks. * Works with any axis shape that exposes isRelative, type and formatter. */ export declare function shouldUseNiceUnitTicks(config: AxisFormatterConfig | undefined): config is AxisFormatterConfig & { formatter: FormatOptions; }; /** * Finds the best divisor (between 4 and 8) for dividing the total domain * into tick steps that produce the least remainder. */ export declare function getBestModulusDivisor(totalDomain: number): number; /** * Generates tick values from 0 outward in both directions based on step size. */ export declare function generateTicks(domain: [number, number], step: number): number[]; /** * Nices a scale domain in the target (output) unit space. * * Converts the domain to the output unit, computes a nice step, * rounds boundaries to step multiples, and converts back. * * Returns null when the step is 0 (sub-unit domain), signaling * the caller should fall back to d3 nicing. */ export declare function niceUnitDomain(domain: [number, number], formatterOptions: FormatOptions, niceMin: boolean, niceMax: boolean): { min: number; max: number; } | null; export interface NiceUnitTicksResult { ticks: string[]; formattedTicks: string[]; numericTicks: number[]; } /** Returned when the domain is too small for nice unit rounding; caller should fall back to default ticks. */ export type NiceUnitTicksResultOrNull = NiceUnitTicksResult | null; /** * Computes "nice" round ticks for a unit-converted numerical axis. * * Uses convert() for precise domain conversion to the target unit, * then generates ticks from 0 outward (staying within domain boundaries), * and converts back to base unit for scale positioning. * * Requires explicit input and output units in formatterOptions. */ export declare function computeNiceUnitTicks(domain: [number, number], formatterOptions: FormatOptions, availableSize: number, orientation: 'horizontal' | 'vertical', formatter: FormatterWithPrecision): NiceUnitTicksResultOrNull; export {};