import { AxisRangeChangedEventArgs } from "./igr-axis-range-changed-event-args";
import { IgrCategoryAxisBase, IIgrCategoryAxisBaseProps } from "./igr-category-axis-base";
import { TimeAxisBase } from "./TimeAxisBase";
/**
 * Represents an category-based horizontal X axis that uses a DateTime scale.
*/
export declare abstract class IgrTimeAxisBase<P extends IIgrTimeAxisBaseProps = IIgrTimeAxisBaseProps> extends IgrCategoryAxisBase<P> {
    readonly i: TimeAxisBase;
    constructor(props: P);
    /**
     * Gets or sets the DateTime mapping property for the axis.
    */
    dateTimeMemberPath: string;
    /**
     * Gets or sets whether the data assigned to the date time axis should be considered pre-sorted by date/time.
    */
    isDataPreSorted: boolean;
    /**
     * Gets the coerced minimum value.
    */
    readonly actualMinimumValue: Date;
    /**
     * Gets the coerced maximum value.
    */
    readonly actualMaximumValue: Date;
    /**
     * Gets or sets the axis MinimumValue.
    */
    minimumValue: Date;
    /**
     * Gets or sets the axis MaximumValue.
    */
    maximumValue: Date;
    /**
     * Checks if the axis is of date time axis type
    */
    readonly isDateTime: boolean;
    /**
     * Checks if axis requires sorting of items
    */
    readonly isSorting: boolean;
    /**
     * Gets the index of the data item with the value nearest the given value.
    
    * @param unscaledValue  * The value to find a value close to.
    */
    getIndexClosestToUnscaledValue(unscaledValue: number): number;
    /**
     * Updates the axis when the data has been changed.
    
    */
    notifyDataChanged(): void;
    private _actualRangeChanged;
    private _actualRangeChanged_wrapped;
    protected actualRangeChanged: (s: IgrTimeAxisBase, e: AxisRangeChangedEventArgs) => void;
}
export interface IIgrTimeAxisBaseProps extends IIgrCategoryAxisBaseProps {
    /**
     * Gets or sets the DateTime mapping property for the axis.
    */
    dateTimeMemberPath?: string;
    /**
     * Gets or sets whether the data assigned to the date time axis should be considered pre-sorted by date/time.
    */
    isDataPreSorted?: boolean;
    /**
     * Gets or sets the axis MinimumValue.
    */
    minimumValue?: Date;
    /**
     * Gets or sets the axis MaximumValue.
    */
    maximumValue?: Date;
}
