import { TimeAxisLabelFormat as TimeAxisLabelFormat_internal } from "./TimeAxisLabelFormat";
/**
 * Settings for a label format on a time axis.
 * Label formats can be applied to a time axis, which are dynamic, according to the visible range.  During zooming, the visible range of the axis can change, and so a different label format is selected.  The label format selected will be the one with the largest range smaller than the visible range of the axis.
*/
export class TimeAxisLabelFormat {
    createImplementation() {
        return new TimeAxisLabelFormat_internal();
    }
    get i() {
        return this._implementation;
    }
    onImplementationCreated() {
    }
    constructor() {
        this._implementation = this.createImplementation();
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    }
    _provideImplementation(i) {
        this._implementation = i;
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    }
    /**
     * The visible axis range at which to apply this label format.
    */
    get range() {
        return this.i.b;
    }
    set range(v) {
        this.i.b = +v;
    }
    /**
     * The DateTime format string to apply.
     * Some common DateTime format strings are: yyyy, MM/dd/yy, and hh:mm:ss.
    */
    get format() {
        return this.i.a;
    }
    set format(v) {
        this.i.a = v;
    }
}
