import * as React from 'react';
import { Visibility } from "igniteui-react-core/ES5/Visibility";
import { HorizontalAlignment } from "igniteui-react-core/ES5/HorizontalAlignment";
import { VerticalAlignment } from "igniteui-react-core/ES5/VerticalAlignment";
import { Axis } from './Axis';
import { AxisLabelsLocation } from './AxisLabelsLocation';
import { AxisTitlePosition } from './AxisTitlePosition';
import { RenderRequestedEventArgs } from './RenderRequestedEventArgs';
import { AxisRangeChangedEventArgs } from './igr-axis-range-changed-event-args';
import { AxisAnnotationCollection } from './igr-axis-annotation-collection';
/**
 * Represents the base class from which all axis types are derived.
*/
export declare abstract class IgrAxis<P extends IIgrAxisProps = IIgrAxisProps> extends React.Component<P, {}> {
    protected _implementation: any;
    readonly i: Axis;
    private onImplementationCreated;
    constructor(props: P);
    componentDidMount(): void;
    protected initializeProperties(): void;
    private _crossingAxisName;
    crossingAxisName: string;
    readonly axisInternal: Axis;
    protected createImplementation(): Axis;
    shouldComponentUpdate(nextProps: any, nextState: any): boolean;
    render(): any;
    name: string;
    provideData(data: any): void;
    private _renderer;
    private _provideRenderer;
    static _createFromInternal(internal: any): IgrAxis;
    /**
 * Gets or sets if the current axis is of category axis type
*/
    readonly isCategory: boolean;
    /**
     * Gets or sets if the current axis is of numeric axis type
    */
    readonly isNumeric: boolean;
    /**
     * Gets if the current axis is of angular axis type
    */
    readonly isAngular: boolean;
    /**
     * Gets or sets if the current axis is of radial axis type
    */
    readonly isRadial: boolean;
    /**
     * Gets if the current axis is a vertical axis.
    */
    readonly isVertical: boolean;
    /**
     * Gets or sets if the current axis is sorting data items
    */
    readonly isSorting: boolean;
    /**
     * Gets or sets if the current axis is of date time axis type
    */
    readonly isDateTime: boolean;
    /**
     * Gets if the current axis is of category date time axis type
    */
    readonly isCategoryDateTime: boolean;
    /**
     * Gets if the current axis is a continuous rather than a discrete scale
    */
    readonly isContinuous: boolean;
    /**
     * Sets or gets a function which takes an object that produces a formatted label for displaying in the chart.
    */
    formatLabel: (item: any) => string;
    /**
     * Gets or sets the Title property.
    */
    title: string;
    /**
     * Gets or sets the Stroke property.
     * Null is treated as auto. The axis stroke will be displayed or not based on the axis type and series used with it.
    */
    stroke: string;
    /**
     * Gets or sets the effective stroke used for the axis.
    */
    actualStroke: string;
    /**
     * Gets or sets the StrokeThickness property.
    */
    strokeThickness: number;
    /**
     * Gets or sets the Strip property.
    */
    strip: string;
    /**
     * Gets or sets the MajorStroke property.
     * Null is treated as auto. Major lines will be displayed or not based on the axis type and series used with it.
    */
    majorStroke: string;
    /**
     * Gets or sets the ActualMajorStroke property.
    */
    actualMajorStroke: string;
    /**
     * Gets or sets the MajorStrokeThickness property.
    */
    majorStrokeThickness: number;
    /**
     * Gets or sets the MinorStroke property.
    */
    minorStroke: string;
    /**
     * Gets or sets the ActualMinorStroke property.
    */
    actualMinorStroke: string;
    /**
     * Gets or sets the MinorStrokeThickness property.
    */
    minorStrokeThickness: number;
    /**
     * Gets or sets the TickStroke property.
    */
    tickStroke: string;
    /**
     * Gets or sets the TickStrokeThickness property.
    */
    tickStrokeThickness: number;
    /**
     * Gets or sets the TickLength property.
    */
    tickLength: number;
    /**
     * Gets or sets the IsDisabled property. If true, the axis will not be rendered.
    */
    isDisabled: boolean;
    /**
     * Gets or sets the IsInverted property.
    */
    isInverted: boolean;
    /**
     * Gets or sets whether to use more advanced heuristics when determining the initial number of labels to render, before resolving collisions, etc.
    */
    useEnhancedIntervalManagement: boolean;
    /**
     * Gets or sets the mininum desired characters to be displayed for horizontal axes when using advanced label heuristics. -1 will attempt to adjust the interval to precisely fit the horizontal labels.
    */
    enhancedIntervalMinimumCharacters: number;
    /**
     * Gets or sets the text style to use for axis labels.
    *
    * The `labelTextStyle` property Overrides the style of the text used for the axis labels.
    *
    * ```ts
    * <IgrDataChart
    *     dataSource={this.state.dataSource}
    *     width="700px"
    *     height="500px">
    *
    *     <IgrCategoryXAxis name="xAxis"
    * 		label="Year"
    * 		titleTextStyle="12pt Verdana" />
    *     <IgrNumericYAxis  name="yAxis" />
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * <IgrCategoryXAxis name="xAxis"
    *     title="Country"
    *     titleTextColor="gray"
    *     titleTextStyle="12pt Verdana"
    *     titleAngle={90} />
    * ```
    */
    labelTextStyle: string;
    /**
     * The color of the {0}.
    *
    * The `labelTextColor` property Overrides the color of the text used for the axis labels.
    *
    * ```ts
    * <IgrDataChart
    *     dataSource={this.state.dataSource}
    *     width="700px"
    *     height="500px">
    *
    *     <IgrCategoryXAxis name="xAxis"
    * 		label="Year"
    * 		labelTextColor="gray"  />
    *     <IgrNumericYAxis  name="yAxis" />
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * <IgrCategoryXAxis name="xAxis"
    *     title="Country"
    *     titleTextColor="gray"
    *     titleTextStyle="12pt Verdana"
    *     titleAngle={90} />
    * ```
    */
    labelTextColor: string;
    /**
     * Gets or sets the location of the {0}.
    *
    * The `Location` property is used for the location.
    */
    labelLocation: AxisLabelsLocation;
    /**
     * Gets or sets the visibility of the {0}.
    *
    * The `Visibility` property is used for the visibility of the axis.
    */
    labelVisibility: Visibility;
    /**
     * Gets or sets whether the first label is displayed when the zoom level is set to 1.
    *
    * The `ShowFirstLabel` is used to check whether the first label is displayed when the zoom level is set to 1.
    */
    labelShowFirstLabel: boolean;
    /**
     * Gets or sets the angle of the {0}.
    *
    * The `Angle` property is used to set the angle of the axis.
    *
    * ```ts
    * <IgrDataChart
    *     dataSource={this.state.dataSource}
    *     width="700px"
    *     height="500px">
    *
    *     <IgrCategoryXAxis name="xAxis"
    * 		label="Year"
    * 		titleAngle={90} />
    *     <IgrNumericYAxis  name="yAxis" />
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * <IgrCategoryXAxis name="xAxis"
    *     title="Country"
    *     titleTextColor="gray"
    *     titleTextStyle="12pt Verdana"
    *     titleAngle={90} />
    * ```
    */
    labelAngle: number;
    /**
     * Distance between the axis and the edge of the control.
    *
    * The `Extent` property is used for the extent.
    *
    * ```ts
    * <IgrDataChart
    *     dataSource={this.state.dataSource}
    *     width="700px"
    *     height="500px">
    *
    *     <IgrCategoryXAxis name="xAxis"
    * 		label="Year"/>
    *     <IgrNumericYAxis  name="yAxis" />
    *  </IgrDataChart>
    * ```
    */
    labelExtent: number;
    /**
     * Margin applied to the left of the {0}.
    *
    * The `labelLeftMargin` property is used for the left margin of the labels.
    */
    labelLeftMargin: number;
    /**
     * Margin applied to the right of the {0}.
    *
    * The `labelRightMargin` property is used for the right margin of the labels.
    */
    labelRightMargin: number;
    /**
     * Margin applied above the {0}.
    *
    * The `labelTopMargin` property is used for the top margin of the labels.
    *
    * ```ts
    * <IgrCategoryXAxis name="xAxis"
    *     label="Country"
    *     labelTextStyle="9pt Verdana"
    *     labelTopMargin={5}
    *     labelTextColor="gray" />
    * ```
    */
    labelTopMargin: number;
    /**
     * Margin applied below the {0}.
    *
    * The `labelBottomMargin` is used for the bottom margin of the labels.
    */
    labelBottomMargin: number;
    /**
     * Gets or sets the horizontal alignment of the {0}.
    *
    * The `HorizontalAlignment` property is used for the horizontal alignment.
    */
    labelHorizontalAlignment: HorizontalAlignment;
    /**
     * Gets or sets the vertical alignment of the {0}.
    *
    * The `VerticalAlignment` property is used for the vertical alignment of the axis.
    */
    labelVerticalAlignment: VerticalAlignment;
    ensureLabelSettings(): void;
    /**
     * Gets or sets the CrossingAxis property.
    */
    crossingAxis: IgrAxis;
    /**
     * Gets or sets the CrossingValue property.
    */
    crossingValue: any;
    /**
     * Gets or sets the title position relative to the axis labels.
    */
    titlePosition: AxisTitlePosition;
    /**
     * Gets or sets the text style to use for axis labels.
    *
    * The `labelTextStyle` property Overrides the style of the text used for the axis labels.
    *
    * ```ts
    * <IgrDataChart
    *     dataSource={this.state.dataSource}
    *     width="700px"
    *     height="500px">
    *
    *     <IgrCategoryXAxis name="xAxis"
    * 		label="Year"
    * 		titleTextStyle="12pt Verdana" />
    *     <IgrNumericYAxis  name="yAxis" />
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * <IgrCategoryXAxis name="xAxis"
    *     title="Country"
    *     titleTextColor="gray"
    *     titleTextStyle="12pt Verdana"
    *     titleAngle={90} />
    * ```
    */
    titleTextStyle: string;
    /**
     * The color of the {0}.
    *
    * The `labelTextColor` property Overrides the color of the text used for the axis labels.
    *
    * ```ts
    * <IgrDataChart
    *     dataSource={this.state.dataSource}
    *     width="700px"
    *     height="500px">
    *
    *     <IgrCategoryXAxis name="xAxis"
    * 		label="Year"
    * 		labelTextColor="gray"  />
    *     <IgrNumericYAxis  name="yAxis" />
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * <IgrCategoryXAxis name="xAxis"
    *     title="Country"
    *     titleTextColor="gray"
    *     titleTextStyle="12pt Verdana"
    *     titleAngle={90} />
    * ```
    */
    titleTextColor: string;
    /**
     * Gets or sets the location of the {0}.
    *
    * The `Location` property is used for the location.
    */
    titleLocation: AxisLabelsLocation;
    /**
     * Gets or sets the visibility of the {0}.
    *
    * The `Visibility` property is used for the visibility of the axis.
    */
    titleVisibility: Visibility;
    /**
     * Gets or sets whether the first label is displayed when the zoom level is set to 1.
    *
    * The `ShowFirstLabel` is used to check whether the first label is displayed when the zoom level is set to 1.
    */
    titleShowFirstLabel: boolean;
    /**
     * Gets or sets the angle of the {0}.
    *
    * The `Angle` property is used to set the angle of the axis.
    *
    * ```ts
    * <IgrDataChart
    *     dataSource={this.state.dataSource}
    *     width="700px"
    *     height="500px">
    *
    *     <IgrCategoryXAxis name="xAxis"
    * 		label="Year"
    * 		titleAngle={90} />
    *     <IgrNumericYAxis  name="yAxis" />
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * <IgrCategoryXAxis name="xAxis"
    *     title="Country"
    *     titleTextColor="gray"
    *     titleTextStyle="12pt Verdana"
    *     titleAngle={90} />
    * ```
    */
    titleAngle: number;
    /**
     * Distance between the axis and the edge of the control.
    *
    * The `Extent` property is used for the extent.
    *
    * ```ts
    * <IgrDataChart
    *     dataSource={this.state.dataSource}
    *     width="700px"
    *     height="500px">
    *
    *     <IgrCategoryXAxis name="xAxis"
    * 		label="Year"/>
    *     <IgrNumericYAxis  name="yAxis" />
    *  </IgrDataChart>
    * ```
    */
    titleExtent: number;
    /**
     * Margin applied to the left of the {0}.
    *
    * The `labelLeftMargin` property is used for the left margin of the labels.
    */
    titleLeftMargin: number;
    /**
     * Margin applied to the right of the {0}.
    *
    * The `labelRightMargin` property is used for the right margin of the labels.
    */
    titleRightMargin: number;
    /**
     * Margin applied above the {0}.
    *
    * The `labelTopMargin` property is used for the top margin of the labels.
    *
    * ```ts
    * <IgrCategoryXAxis name="xAxis"
    *     label="Country"
    *     labelTextStyle="9pt Verdana"
    *     labelTopMargin={5}
    *     labelTextColor="gray" />
    * ```
    */
    titleTopMargin: number;
    /**
     * Margin applied below the {0}.
    *
    * The `labelBottomMargin` is used for the bottom margin of the labels.
    */
    titleBottomMargin: number;
    /**
     * Gets or sets the horizontal alignment of the {0}.
    *
    * The `HorizontalAlignment` property is used for the horizontal alignment.
    */
    titleHorizontalAlignment: HorizontalAlignment;
    /**
     * Gets or sets the vertical alignment of the {0}.
    *
    * The `VerticalAlignment` property is used for the vertical alignment of the axis.
    */
    titleVerticalAlignment: VerticalAlignment;
    ensureTitleSettings(): void;
    private _annotations;
    /**
     * Gets the current annotations for the axis.
    */
    annotations: AxisAnnotationCollection;
    /**
     * Gets or sets the coercion methods to use when loading data from data sources.
     * Should be specified before setting any member paths, if being used. Setting it later
     * will not cause data to be re-imported into the chart.
    *
    * The	`coercionMethods` methods is to use when loading data from data sources. Should be specified before setting any member paths, if being used.
    * Setting it later will not cause data to be reimported into the chart.
    */
    coercionMethods: any;
    /**
     * Gets or sets whether the series should expect that properties in its items source may be functions that need to be
     * evaluated to yield their value. This defaults to false, as there will be a subtle performance impact to using this feature.
     * This value must be set before assigning an item's source to take effect.
    */
    expectFunctions: boolean;
    /**
     * Gets or sets the axis label format string.
    */
    label: any;
    /**
 * Renders the axis with no animation.

*/
    renderAxis(): void;
    /**
     * If using enhanced interval management and precise interval fitting, this will reset the cached maximum label width, and recalculate using the current labels.
    
    */
    resetCachedEnhancedInterval(): void;
    /**
     * Scales a value from axis space into screen space.
    
    * @param unscaledValue  * The unscaled axis value to scale.
    */
    scaleValue(unscaledValue: number): number;
    private _rangeChanged;
    private _rangeChanged_wrapped;
    /**
     * Occurs when the axis range changes.
    */
    rangeChanged: (s: IgrAxis, e: AxisRangeChangedEventArgs) => void;
    private _renderRequested;
    private _renderRequested_wrapped;
    /**
     * This event is raised every time a render has been requested from a series.
    */
    renderRequested: (s: IgrAxis, e: RenderRequestedEventArgs) => void;
}
export interface IIgrAxisProps {
    /**
     * Sets or gets a required unique name for the axis.
     * */
    name: string;
    crossingAxisName?: string;
    /**
 * Sets or gets a function which takes an object that produces a formatted label for displaying in the chart.
*/
    formatLabel?: (item: any) => string;
    /**
     * Gets or sets the Title property.
    */
    title?: string;
    /**
     * Gets or sets the Stroke property.
     * Null is treated as auto. The axis stroke will be displayed or not based on the axis type and series used with it.
    */
    stroke?: string;
    /**
     * Gets or sets the effective stroke used for the axis.
    */
    actualStroke?: string;
    /**
     * Gets or sets the StrokeThickness property.
    */
    strokeThickness?: number | string;
    /**
     * Gets or sets the Strip property.
    */
    strip?: string;
    /**
     * Gets or sets the MajorStroke property.
     * Null is treated as auto. Major lines will be displayed or not based on the axis type and series used with it.
    */
    majorStroke?: string;
    /**
     * Gets or sets the ActualMajorStroke property.
    */
    actualMajorStroke?: string;
    /**
     * Gets or sets the MajorStrokeThickness property.
    */
    majorStrokeThickness?: number | string;
    /**
     * Gets or sets the MinorStroke property.
    */
    minorStroke?: string;
    /**
     * Gets or sets the ActualMinorStroke property.
    */
    actualMinorStroke?: string;
    /**
     * Gets or sets the MinorStrokeThickness property.
    */
    minorStrokeThickness?: number | string;
    /**
     * Gets or sets the TickStroke property.
    */
    tickStroke?: string;
    /**
     * Gets or sets the TickStrokeThickness property.
    */
    tickStrokeThickness?: number | string;
    /**
     * Gets or sets the TickLength property.
    */
    tickLength?: number | string;
    /**
     * Gets or sets the IsDisabled property. If true, the axis will not be rendered.
    */
    isDisabled?: boolean | string;
    /**
     * Gets or sets the IsInverted property.
    */
    isInverted?: boolean | string;
    /**
     * Gets or sets whether to use more advanced heuristics when determining the initial number of labels to render, before resolving collisions, etc.
    */
    useEnhancedIntervalManagement?: boolean | string;
    /**
     * Gets or sets the mininum desired characters to be displayed for horizontal axes when using advanced label heuristics. -1 will attempt to adjust the interval to precisely fit the horizontal labels.
    */
    enhancedIntervalMinimumCharacters?: number | string;
    /**
     * Gets or sets the text style to use for axis labels.
    *
    * The `labelTextStyle` property Overrides the style of the text used for the axis labels.
    *
    * ```ts
    * <IgrDataChart
    *     dataSource={this.state.dataSource}
    *     width="700px"
    *     height="500px">
    *
    *     <IgrCategoryXAxis name="xAxis"
    * 		label="Year"
    * 		titleTextStyle="12pt Verdana" />
    *     <IgrNumericYAxis  name="yAxis" />
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * <IgrCategoryXAxis name="xAxis"
    *     title="Country"
    *     titleTextColor="gray"
    *     titleTextStyle="12pt Verdana"
    *     titleAngle={90} />
    * ```
    */
    labelTextStyle?: string;
    /**
     * The color of the {0}.
    *
    * The `labelTextColor` property Overrides the color of the text used for the axis labels.
    *
    * ```ts
    * <IgrDataChart
    *     dataSource={this.state.dataSource}
    *     width="700px"
    *     height="500px">
    *
    *     <IgrCategoryXAxis name="xAxis"
    * 		label="Year"
    * 		labelTextColor="gray"  />
    *     <IgrNumericYAxis  name="yAxis" />
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * <IgrCategoryXAxis name="xAxis"
    *     title="Country"
    *     titleTextColor="gray"
    *     titleTextStyle="12pt Verdana"
    *     titleAngle={90} />
    * ```
    */
    labelTextColor?: string;
    /**
     * Gets or sets the location of the {0}.
    *
    * The `Location` property is used for the location.
    */
    labelLocation?: AxisLabelsLocation | string;
    /**
     * Gets or sets the visibility of the {0}.
    *
    * The `Visibility` property is used for the visibility of the axis.
    */
    labelVisibility?: Visibility | string;
    /**
     * Gets or sets whether the first label is displayed when the zoom level is set to 1.
    *
    * The `ShowFirstLabel` is used to check whether the first label is displayed when the zoom level is set to 1.
    */
    labelShowFirstLabel?: boolean | string;
    /**
     * Gets or sets the angle of the {0}.
    *
    * The `Angle` property is used to set the angle of the axis.
    *
    * ```ts
    * <IgrDataChart
    *     dataSource={this.state.dataSource}
    *     width="700px"
    *     height="500px">
    *
    *     <IgrCategoryXAxis name="xAxis"
    * 		label="Year"
    * 		titleAngle={90} />
    *     <IgrNumericYAxis  name="yAxis" />
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * <IgrCategoryXAxis name="xAxis"
    *     title="Country"
    *     titleTextColor="gray"
    *     titleTextStyle="12pt Verdana"
    *     titleAngle={90} />
    * ```
    */
    labelAngle?: number | string;
    /**
     * Distance between the axis and the edge of the control.
    *
    * The `Extent` property is used for the extent.
    *
    * ```ts
    * <IgrDataChart
    *     dataSource={this.state.dataSource}
    *     width="700px"
    *     height="500px">
    *
    *     <IgrCategoryXAxis name="xAxis"
    * 		label="Year"/>
    *     <IgrNumericYAxis  name="yAxis" />
    *  </IgrDataChart>
    * ```
    */
    labelExtent?: number | string;
    /**
     * Margin applied to the left of the {0}.
    *
    * The `labelLeftMargin` property is used for the left margin of the labels.
    */
    labelLeftMargin?: number | string;
    /**
     * Margin applied to the right of the {0}.
    *
    * The `labelRightMargin` property is used for the right margin of the labels.
    */
    labelRightMargin?: number | string;
    /**
     * Margin applied above the {0}.
    *
    * The `labelTopMargin` property is used for the top margin of the labels.
    *
    * ```ts
    * <IgrCategoryXAxis name="xAxis"
    *     label="Country"
    *     labelTextStyle="9pt Verdana"
    *     labelTopMargin={5}
    *     labelTextColor="gray" />
    * ```
    */
    labelTopMargin?: number | string;
    /**
     * Margin applied below the {0}.
    *
    * The `labelBottomMargin` is used for the bottom margin of the labels.
    */
    labelBottomMargin?: number | string;
    /**
     * Gets or sets the horizontal alignment of the {0}.
    *
    * The `HorizontalAlignment` property is used for the horizontal alignment.
    */
    labelHorizontalAlignment?: HorizontalAlignment | string;
    /**
     * Gets or sets the vertical alignment of the {0}.
    *
    * The `VerticalAlignment` property is used for the vertical alignment of the axis.
    */
    labelVerticalAlignment?: VerticalAlignment | string;
    /**
     * Gets or sets the CrossingAxis property.
    */
    crossingAxis?: IgrAxis;
    /**
     * Gets or sets the CrossingValue property.
    */
    crossingValue?: any;
    /**
     * Gets or sets the title position relative to the axis labels.
    */
    titlePosition?: AxisTitlePosition | string;
    /**
     * Gets or sets the text style to use for axis labels.
    *
    * The `labelTextStyle` property Overrides the style of the text used for the axis labels.
    *
    * ```ts
    * <IgrDataChart
    *     dataSource={this.state.dataSource}
    *     width="700px"
    *     height="500px">
    *
    *     <IgrCategoryXAxis name="xAxis"
    * 		label="Year"
    * 		titleTextStyle="12pt Verdana" />
    *     <IgrNumericYAxis  name="yAxis" />
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * <IgrCategoryXAxis name="xAxis"
    *     title="Country"
    *     titleTextColor="gray"
    *     titleTextStyle="12pt Verdana"
    *     titleAngle={90} />
    * ```
    */
    titleTextStyle?: string;
    /**
     * The color of the {0}.
    *
    * The `labelTextColor` property Overrides the color of the text used for the axis labels.
    *
    * ```ts
    * <IgrDataChart
    *     dataSource={this.state.dataSource}
    *     width="700px"
    *     height="500px">
    *
    *     <IgrCategoryXAxis name="xAxis"
    * 		label="Year"
    * 		labelTextColor="gray"  />
    *     <IgrNumericYAxis  name="yAxis" />
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * <IgrCategoryXAxis name="xAxis"
    *     title="Country"
    *     titleTextColor="gray"
    *     titleTextStyle="12pt Verdana"
    *     titleAngle={90} />
    * ```
    */
    titleTextColor?: string;
    /**
     * Gets or sets the location of the {0}.
    *
    * The `Location` property is used for the location.
    */
    titleLocation?: AxisLabelsLocation | string;
    /**
     * Gets or sets the visibility of the {0}.
    *
    * The `Visibility` property is used for the visibility of the axis.
    */
    titleVisibility?: Visibility | string;
    /**
     * Gets or sets whether the first label is displayed when the zoom level is set to 1.
    *
    * The `ShowFirstLabel` is used to check whether the first label is displayed when the zoom level is set to 1.
    */
    titleShowFirstLabel?: boolean | string;
    /**
     * Gets or sets the angle of the {0}.
    *
    * The `Angle` property is used to set the angle of the axis.
    *
    * ```ts
    * <IgrDataChart
    *     dataSource={this.state.dataSource}
    *     width="700px"
    *     height="500px">
    *
    *     <IgrCategoryXAxis name="xAxis"
    * 		label="Year"
    * 		titleAngle={90} />
    *     <IgrNumericYAxis  name="yAxis" />
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * <IgrCategoryXAxis name="xAxis"
    *     title="Country"
    *     titleTextColor="gray"
    *     titleTextStyle="12pt Verdana"
    *     titleAngle={90} />
    * ```
    */
    titleAngle?: number | string;
    /**
     * Distance between the axis and the edge of the control.
    *
    * The `Extent` property is used for the extent.
    *
    * ```ts
    * <IgrDataChart
    *     dataSource={this.state.dataSource}
    *     width="700px"
    *     height="500px">
    *
    *     <IgrCategoryXAxis name="xAxis"
    * 		label="Year"/>
    *     <IgrNumericYAxis  name="yAxis" />
    *  </IgrDataChart>
    * ```
    */
    titleExtent?: number | string;
    /**
     * Margin applied to the left of the {0}.
    *
    * The `labelLeftMargin` property is used for the left margin of the labels.
    */
    titleLeftMargin?: number | string;
    /**
     * Margin applied to the right of the {0}.
    *
    * The `labelRightMargin` property is used for the right margin of the labels.
    */
    titleRightMargin?: number | string;
    /**
     * Margin applied above the {0}.
    *
    * The `labelTopMargin` property is used for the top margin of the labels.
    *
    * ```ts
    * <IgrCategoryXAxis name="xAxis"
    *     label="Country"
    *     labelTextStyle="9pt Verdana"
    *     labelTopMargin={5}
    *     labelTextColor="gray" />
    * ```
    */
    titleTopMargin?: number | string;
    /**
     * Margin applied below the {0}.
    *
    * The `labelBottomMargin` is used for the bottom margin of the labels.
    */
    titleBottomMargin?: number | string;
    /**
     * Gets or sets the horizontal alignment of the {0}.
    *
    * The `HorizontalAlignment` property is used for the horizontal alignment.
    */
    titleHorizontalAlignment?: HorizontalAlignment | string;
    /**
     * Gets or sets the vertical alignment of the {0}.
    *
    * The `VerticalAlignment` property is used for the vertical alignment of the axis.
    */
    titleVerticalAlignment?: VerticalAlignment | string;
    /**
     * Gets or sets the coercion methods to use when loading data from data sources.
     * Should be specified before setting any member paths, if being used. Setting it later
     * will not cause data to be re-imported into the chart.
    *
    * The	`coercionMethods` methods is to use when loading data from data sources. Should be specified before setting any member paths, if being used.
    * Setting it later will not cause data to be reimported into the chart.
    */
    coercionMethods?: any;
    /**
     * Gets or sets whether the series should expect that properties in its items source may be functions that need to be
     * evaluated to yield their value. This defaults to false, as there will be a subtle performance impact to using this feature.
     * This value must be set before assigning an item's source to take effect.
    */
    expectFunctions?: boolean | string;
    /**
     * Gets or sets the axis label format string.
    */
    label?: any;
    /**
 * Occurs when the axis range changes.
*/
    rangeChanged?: (s: IgrAxis, e: AxisRangeChangedEventArgs) => void;
    /**
     * This event is raised every time a render has been requested from a series.
    */
    renderRequested?: (s: IgrAxis, e: RenderRequestedEventArgs) => void;
}
