import type { BaseTableAPI } from '../../ts-types/base-table';
import type { ICellAxisOption } from '../../ts-types/component/axis';
import { LineAxis, type LineAxisAttributes } from './../../vrender';
import type { IOrientType } from '../../ts-types/component/util';
import { BandAxisScale } from './band-scale';
import { DataView } from '@visactor/vdataset';
import { LinearAxisScale } from './linear-scale';
export interface ICartesianAxis {
    new (option: ICellAxisOption, width: number, height: number, padding: [number, number, number, number], table: BaseTableAPI): CartesianAxis;
}
export declare class CartesianAxis {
    width: number;
    height: number;
    x: number;
    y: number;
    table: BaseTableAPI;
    option: ICellAxisOption;
    orient: IOrientType;
    visible: boolean;
    type: 'linear' | 'band' | 'point' | 'time' | 'log' | 'symlog';
    inverse: boolean;
    data?: any[];
    tickData: DataView;
    scale: BandAxisScale | LinearAxisScale;
    component: LineAxis;
    padding: [number, number, number, number];
    constructor(option: ICellAxisOption, width: number, height: number, padding: [number, number, number, number], table: BaseTableAPI);
    initScale(): void;
    initData(): void;
    computeData(): void;
    initEvent(): void;
    createComponent(): void;
    resize(width: number, height: number): void;
    overlap(): void;
    getLayoutRect(): {
        width: number;
        height: number;
    };
    getUpdateAttribute(): LineAxisAttributes;
    getLabelItems(length: number): any[];
    updateScaleRange(): void;
    setLayoutStartPosition(pos: any): {
        x: any;
        y: any;
    };
    private _getTitleLimit;
    getScale(): import("@visactor/vscale").BandScale | import("@visactor/vscale").LinearScale | import("@visactor/vscale").LogScale | import("@visactor/vscale").SymlogScale;
    getDomainSpec(): Required<{
        max?: number;
        min?: number;
    }>;
}
