import * as d3 from 'd3';
import { AxisOrientation } from './axisOrientation.js';
import { AxisPosition } from './axisPosition.js';
import { AxisType } from './axisType.js';
export interface BaseAxisOptions {
    axisKey: string;
    axisIndex: number;
    orientation: AxisOrientation;
    position: AxisPosition;
    type: AxisType;
    timeZone: string;
    locale: string;
    labelAngle?: number;
}
export declare abstract class Axis {
    options: BaseAxisOptions;
    position: AxisPosition;
    orientation: AxisOrientation;
    group: d3.Selection<SVGGElement, unknown, null, unknown>;
    axis: d3.Axis<any>;
    spanScale: any;
    clientRect: DOMRect;
    constructor(group: d3.Selection<SVGGElement, unknown, null, unknown>, scale: any, spanScale: any, options: Partial<BaseAxisOptions>);
    get class(): string;
    protected create(group: any, scale: any): void;
    redraw(): void;
    abstract translateAxis(position: AxisPosition): string;
    abstract translateTickLabels(orientation: AxisOrientation, angle: number): void;
    updateTicksForTime(): void;
    updateTicksForDegrees(): void;
}
