import { TimeAxisDisplayType } from "./TimeAxisDisplayType";
import { IgcTimeAxisBaseComponent } from "./igc-time-axis-base-component";
import { CategoryDateTimeXAxis } from "./CategoryDateTimeXAxis";
/**
 * Represents a category-based horizontal X axis that uses a DateTime scale.
*
* `CategoryDateTimeXAxis` class represents a category-based horizontal X axis that uses a DateTime scale.
*/
export declare class IgcCategoryDateTimeXAxisComponent extends IgcTimeAxisBaseComponent {
    protected createImplementation(): CategoryDateTimeXAxis;
    /**
                                 * @hidden
                                 */
    get i(): CategoryDateTimeXAxis;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    private static _observedAttributesIgcCategoryDateTimeXAxisComponent;
    static get observedAttributes(): string[];
    static htmlTagName: string;
    protected static _isElementRegistered: boolean;
    static register(): void;
    /**
     * Gets if the current axis is a continuous rather than a discrete scale
    */
    get isContinuous(): boolean;
    /**
     * Gets or sets whether the axis labels can be unevenly spaced
    */
    get unevenlySpacedLabels(): boolean;
    set unevenlySpacedLabels(v: boolean);
    /**
     * Gets or sets the axis display type.
     * Continuous display type divides the axis into even intervals, where labels will not necessarily be aligned with data points.
     * Discrete display type will not use a constant interval, but will align each label with its data point.
    *
    * `displayType` property is used for axis display type.
    *
    * Continuous display type divides the axis into even intervals, where labels will not necessarily be aligned with data points. Discrete display type will not use a constant interval, but will align each label with its data point.
    */
    get displayType(): TimeAxisDisplayType;
    set displayType(v: TimeAxisDisplayType);
    /**
     * Gets or sets the X axis time interval.
    *
    * `Interval` property is used to get/sets the frequency of displayed labels.
    */
    get interval(): number;
    set interval(v: number);
    /**
     * Gets the effective value for the current Interval.
    */
    get actualInterval(): number;
    set actualInterval(v: number);
    /**
     * Gets or sets the frequency of displayed minor lines.
     * The set value is a factor that determines how the minor lines will be displayed.
    */
    get minorInterval(): number;
    set minorInterval(v: number);
    /**
     * Gets the effective value for the current MinorInterval.
    */
    get actualMinorInterval(): number;
    set actualMinorInterval(v: number);
    /**
     * Gets if the current axis is of category date time axis type
    */
    get isCategoryDateTime(): boolean;
    scrollDateRangeIntoView(minimum: Date, maximum: Date): void;
    private _actualIntervalChange;
    private _actualIntervalChange_wrapped;
    get actualIntervalChange(): (s: IgcCategoryDateTimeXAxisComponent, e: number) => void;
    set actualIntervalChange(ev: (s: IgcCategoryDateTimeXAxisComponent, e: number) => void);
    private _actualMinorIntervalChange;
    private _actualMinorIntervalChange_wrapped;
    get actualMinorIntervalChange(): (s: IgcCategoryDateTimeXAxisComponent, e: number) => void;
    set actualMinorIntervalChange(ev: (s: IgcCategoryDateTimeXAxisComponent, e: number) => void);
}
