import { type NumberValue } from '@mui/x-charts-vendor/d3-scale';
import { type AxisId, type ContinuousScaleName, type DefaultedAxis, type DefaultedXAxis, type DefaultedYAxis } from "../../../../models/axis.mjs";
import { type ProcessedSeries } from "../../corePlugins/useChartSeries/index.mjs";
import { type TickParams } from "../../../../hooks/useTicks.mjs";
/**
 * Calculates the initial domain and tick number for a given axis.
 * The domain should still run through the zoom filterMode after this step.
 */
export declare function calculateInitialDomainAndTickNumber(axis: DefaultedAxis<ContinuousScaleName>, axisDirection: 'x' | 'y', axisIndex: number, formattedSeries: ProcessedSeries, [minData, maxData]: [number | Date, number | Date], defaultTickNumber: number): {
  domain: [NumberValue, NumberValue];
  tickNumber: number;
};
/**
 * Calculates the final domain for an axis.
 * After this step, the domain can be used to create the axis scale.
 */
export declare function calculateFinalDomain(axis: Pick<DefaultedAxis<ContinuousScaleName>, 'id' | 'domainLimit' | 'scaleType'> & TickParams & {
  min?: NumberValue;
  max?: NumberValue;
}, axisDirection: 'x' | 'y', axisIndex: number, formattedSeries: ProcessedSeries, [minData, maxData]: [number | Date, number | Date], tickNumber: number): NumberValue[];
export interface DomainDefinition {
  domain: ReadonlyArray<string | NumberValue>;
  tickNumber?: number;
}
/**
 * Computes the domain map for a list of axes.
 * Shared between the rendering selectors and the auto-size domain selectors
 * to ensure consistent domain computation logic.
 */
export declare function computeAxisDomainsMap(axes: DefaultedXAxis[] | DefaultedYAxis[] | undefined, formattedSeries: ProcessedSeries, defaultTickNumber: number, extremaMap: Record<AxisId, [number, number]>, axisDirection: 'x' | 'y'): Record<AxisId, DomainDefinition>;