import { Notification, Listener } from '../util/notification';
import { Pane } from '../core';
export declare class Axis1D {
    private _vMin;
    private _vMax;
    private _vMinLimit;
    private _vMaxLimit;
    private _limitsChanged;
    constructor(vMin: number, vMax: number, vMinLimit?: number, vMaxLimit?: number);
    get vMin(): number;
    get vMax(): number;
    get vMinLimit(): number;
    get vMaxLimit(): number;
    get limitsChanged(): Notification;
    set vMin(vMin: number);
    set vMax(vMax: number);
    set vMinLimit(vMinLimit: number);
    set vMaxLimit(vMaxLimit: number);
    setVRange(vMin: number, vMax: number): void;
    get vSize(): number;
    vAtFrac(vFrac: number): number;
    vFrac(v: number): number;
    pan(vAmount: number): void;
    zoom(factor: number, vAnchor: number): void;
}
export declare function getTickInterval(axis: Axis1D, approxNumTicks: number): number;
export declare function getTickCount(axis: Axis1D, tickInterval: number): number;
export declare function getTickPositions(axis: Axis1D, tickInterval: number, tickCount: number, result: Float32Array): void;
export declare class Axis2D {
    private _xAxis;
    private _yAxis;
    get xAxis(): Axis1D;
    get xMin(): number;
    get xMax(): number;
    xAtFrac(xFrac: number): number;
    get yAxis(): Axis1D;
    get yMin(): number;
    get yMax(): number;
    yAtFrac(yFrac: number): number;
    constructor(xAxis: Axis1D, yAxis: Axis1D);
    onLimitsChanged(listener: Listener): void;
    pan(xAmount: number, yAmount: number): void;
    zoom(factor: number, xAnchor: number, yAnchor: number): void;
}
export declare function newAxis2D(xMin: number, xMax: number, yMin: number, yMax: number): Axis2D;
export declare let axisZoomStep: number;
export declare function attachAxisMouseListeners1D(pane: Pane, axis: Axis1D, isVertical: boolean): void;
export declare function attachAxisMouseListeners2D(pane: Pane, axis: Axis2D): void;
