import type { DefaultedXAxis, DefaultedYAxis } from "../../../../models/axis.mjs";
import { type DomainDefinition } from "./domain.mjs";
interface ComputeAxisAutoSizeOptions {
  axis: DefaultedXAxis | DefaultedYAxis;
  direction: 'x' | 'y';
  /**
   * The niced domain and tick number for the axis.
   * These reflect the actual displayed domain (after domainLimit processing),
   * so tick labels measured from them match what the chart renders.
   */
  domain?: DomainDefinition;
}
/**
 * Result of auto-size computation for axes.
 */
export interface AxisAutoSizeResult {
  size: number;
  /**
   * Computed tick sizes for each group level.
   * These are cumulative - each group's tick extends further than the previous.
   * The renderer should use these instead of the formula-based tick sizes.
   */
  groupTickSizes?: number[];
}
/**
 * Computes the auto-size dimension for an axis based on tick label measurements.
 * Returns undefined if measurement is not available (SSR or not hydrated).
 *
 * For regular axes, returns just a number (the size).
 * For grouped axes, returns an object with size and computed group tick sizes.
 */
export declare function computeAxisAutoSize(options: ComputeAxisAutoSizeOptions): AxisAutoSizeResult | undefined;
export {};