import type { ICategoryAxisOptions } from "../../Charting/Visuals/Axis/CategoryAxis";
import type { IDateTimeNumericAxisOptions } from "../../Charting/Visuals/Axis/DateTimeNumericAxis";
import type { ILabelOptions } from "../../Charting/Visuals/Axis/LabelProvider/LabelProvider";
import type { ISmartDateLabelProviderOptions } from "../../Charting/Visuals/Axis/LabelProvider/SmartDateLabelProvider";
import type { ITextLabelOptions } from "../../Charting/Visuals/Axis/LabelProvider/TextLabelProvider";
import type { ILogarithmicAxisOptions } from "../../Charting/Visuals/Axis/LogarithmicAxis";
import type { INumericAxisOptions } from "../../Charting/Visuals/Axis/NumericAxis";
import type { IPolarCategoryAxisOptions } from "../../Charting/Visuals/Axis/Polar/PolarCategoryAxis";
import type { IPolarNumericAxisOptions } from "../../Charting/Visuals/Axis/Polar/PolarNumericAxis";
import type { IDiscontinuousDateAxisOptions } from "../../Charting/Visuals/Axis/DiscontinuousDateAxis";
import type { IBaseValueAxisOptions } from "../../Charting/Visuals/Axis/BaseValueAxis";
import type { INumericAxis3dOptions } from "../../Charting3D/Visuals/Axis/NumericAxis3D";
import type { ILogarithmicAxis3dOptions } from "../../Charting3D/Visuals/Axis/LogarithmicAxis3D";
import type { EAxisType } from "../../types/AxisType";
import type { ELabelProviderType } from "../../types/LabelProviderType";
/** Definition of an {@link AxisBase2D}, comprising a {@link EAxisType} and the relevant options  */
export 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 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 type TAxis3DDefinition = {
    type: EAxisType.NumericAxis3D;
    options?: INumericAxis3dOptions;
} | {
    type: EAxisType.LogarithmicAxis3D;
    options?: ILogarithmicAxis3dOptions;
};
