import { AxisNameMode, YEmptyValueMode, AxisType, AxisIntervalType, LineDataConfig, ILineMarkPointType, IPoint, TFieldsGetter, EAxisMinMaxMode } from '../../../../constants/chart-style';
export interface ICrossAxis {
    name: string;
    nameMode: AxisNameMode;
    minMode?: EAxisMinMaxMode;
    maxMode?: EAxisMinMaxMode;
    min?: number;
    max?: number;
    unit?: string[];
    precision?: number;
    fields: string[];
    subFields: string[];
    scale: AxisType;
    yEmptyValueMode: YEmptyValueMode;
    type?: AxisType;
    intervalType: AxisIntervalType;
    splitNumber?: number;
    interval?: number;
    lineDataConfig?: LineDataConfig;
    displayFields?: string[];
    fieldsGetter?: TFieldsGetter;
}
export default class CrossAxis implements ICrossAxis {
    name: string;
    nameMode: AxisNameMode;
    minMode?: EAxisMinMaxMode;
    min?: number;
    maxMode?: EAxisMinMaxMode;
    max?: number;
    unit?: string[];
    fields: string[];
    subFields: string[];
    scale: AxisType;
    yEmptyValueMode: YEmptyValueMode;
    precision?: number;
    type?: AxisType;
    intervalType: AxisIntervalType;
    splitNumber?: number;
    interval?: number;
    lineDataConfig: LineDataConfig;
    displayFields: string[];
    fieldsGetter?: TFieldsGetter;
    get option(): ICrossAxis;
    get baseOption(): ICrossAxis;
    get unitTransformer(): (value: any) => any;
    setLineMarkPoint(markPointType: ILineMarkPointType): void;
    setLinePoint(point: IPoint): void;
    setLineSmooth(smoothLine: boolean): void;
    setName(name: string): void;
    setYEmptyValueMode(yEmptyValueMode: YEmptyValueMode): void;
    setNameMode(nameMode: AxisNameMode): void;
    setScale(scale: AxisType): void;
    setAxisType(type: AxisType): void;
    setMinMode(mode?: EAxisMinMaxMode): void;
    setMaxMode(mode?: EAxisMinMaxMode): void;
    setMin(min?: number): void;
    setMax(max?: number): void;
    setFields(fields: string[]): void;
    setSubFields(subFields: string[]): void;
    setUnit(unit: string[]): void;
    setPrecision(precision: number): void;
    setIntervalType(intervalType: AxisIntervalType): void;
    setSplitNumber(splitNumber: number): void;
    setInterval(interval: number): void;
    setDisplayFields(displayFields: string[]): void;
    setFieldsGetter(fn: TFieldsGetter): void;
    set(option: ICrossAxis): void;
    constructor(option: ICrossAxis);
}
