import { AxisBase2D } from "../Charting/Visuals/Axis/AxisBase2D";
import { ICategoryAxisOptions } from "../Charting/Visuals/Axis/CategoryAxis";
import { IDateTimeNumericAxisOptions } from "../Charting/Visuals/Axis/DateTimeNumericAxis";
import { ILabelOptions } from "../Charting/Visuals/Axis/LabelProvider/LabelProvider";
import { ISmartDateLabelProviderOptions } from "../Charting/Visuals/Axis/LabelProvider/SmartDateLabelProvider";
import { ITextLabelOptions } from "../Charting/Visuals/Axis/LabelProvider/TextLabelProvider";
import { ILogarithmicAxisOptions } from "../Charting/Visuals/Axis/LogarithmicAxis";
import { INumericAxisOptions } from "../Charting/Visuals/Axis/NumericAxis";
import { IPolarCategoryAxisOptions } from "../Charting/Visuals/Axis/Polar/PolarCategoryAxis";
import { IPolarNumericAxisOptions } from "../Charting/Visuals/Axis/Polar/PolarNumericAxis";
import { AxisBase3D } from "../Charting3D/Visuals/Axis/AxisBase3D";
import { INumericAxis3dOptions } from "../Charting3D/Visuals/Axis/NumericAxis3D";
import { ILogarithmicAxis3dOptions } from "../Charting3D/Visuals/Axis/LogarithmicAxis3D";
import { EAxisType } from "../types/AxisType";
import { ELabelProviderType } from "../types/LabelProviderType";
import { TSciChart } from "../types/TSciChart";
import { TSciChart3D } from "../types/TSciChart3D";
import { IDiscontinuousDateAxisOptions } from "../Charting/Visuals/Axis/DiscontinuousDateAxis";
import { IBaseValueAxisOptions } from "../Charting/Visuals/Axis/BaseValueAxis";
/** Definition of an {@link AxisBase2D}, comprising a {@link EAxisType} and the relevant options  */
export declare type TAxisDefinition = {
    type: EAxisType.NumericAxis;
    options?: INumericAxisOptions;
} | {
    type: EAxisType.LogarithmicAxis;
    options?: ILogarithmicAxisOptions;
} | {
    type: EAxisType.CategoryAxis;
    options?: ICategoryAxisOptions;
} | {
    type: EAxisType.BaseValueAxis;
    options?: IBaseValueAxisOptions;
} | {
    type: EAxisType.DiscontinuousDateAxis;
    options?: IDiscontinuousDateAxisOptions;
} | {
    type: EAxisType.DateTimeNumericAxis;
    options?: IDateTimeNumericAxisOptions;
} | {
    type: EAxisType.PolarNumericAxis;
    options?: IPolarNumericAxisOptions;
} | {
    type: EAxisType.PolarCategoryAxis;
    options?: IPolarCategoryAxisOptions;
};
/** Definition of a {@link LabelProviderBase2D}, comprising a {@link ELabelProviderType} and the relevant options  */
export declare type TLabelProviderDefinition = {
    type: ELabelProviderType.Numeric;
    options?: ILabelOptions;
} | {
    type: ELabelProviderType.Date;
    options?: ILabelOptions;
} | {
    type: ELabelProviderType.Logarithmic;
    options?: ILabelOptions;
} | {
    type: ELabelProviderType.SmartDate;
    options?: ISmartDateLabelProviderOptions;
} | {
    type: ELabelProviderType.Text;
    options?: ITextLabelOptions;
} | {
    type: ELabelProviderType.Pie;
    options?: ILabelOptions;
};
export declare type TAxis3DDefinition = {
    type: EAxisType.NumericAxis3D;
    options?: INumericAxis3dOptions;
} | {
    type: EAxisType.LogarithmicAxis3D;
    options?: ILogarithmicAxis3dOptions;
};
/**
 * Build one or more axes from a definition that can be pure data.
 * @param wasmContext A {@link TSciChart | SciChart 2D WebAssembly Context}
 * @param definition One or an array of {@link TAxisDefinition}
 * @returns An array of {@link AxisBase2D}.
 */
export declare const buildAxes: (wasmContext: TSciChart, definition: TAxisDefinition | TAxisDefinition[]) => AxisBase2D[];
/**
 * Build one 3D axis from a definition that can be pure data.
 * @param wasmContext A {@link TSciChart3D | SciChart 3D WebAssembly Context}
 * @param definition One or an array of {@link TAxisDefinition}
 * @returns An array of {@link AxisBase2D}.
 */
export declare const buildAxis3D: (wasmContext: TSciChart3D, definition: TAxis3DDefinition) => AxisBase3D;
