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.
*/
var TimeAxisLabelFormat = /** @class */ (function () {
    function TimeAxisLabelFormat() {
        this._implementation = this.createImplementation();
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    }
    TimeAxisLabelFormat.prototype.createImplementation = function () {
        return new TimeAxisLabelFormat_internal();
    };
    Object.defineProperty(TimeAxisLabelFormat.prototype, "i", {
        get: function () {
            return this._implementation;
        },
        enumerable: true,
        configurable: true
    });
    TimeAxisLabelFormat.prototype.onImplementationCreated = function () {
    };
    TimeAxisLabelFormat.prototype._provideImplementation = function (i) {
        this._implementation = i;
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    };
    Object.defineProperty(TimeAxisLabelFormat.prototype, "range", {
        /**
         * The visible axis range at which to apply this label format.
        */
        get: function () {
            return this.i.b;
        },
        set: function (v) {
            this.i.b = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(TimeAxisLabelFormat.prototype, "format", {
        /**
         * The DateTime format string to apply.
         * Some common DateTime format strings are: yyyy, MM/dd/yy, and hh:mm:ss.
        */
        get: function () {
            return this.i.a;
        },
        set: function (v) {
            this.i.a = v;
        },
        enumerable: true,
        configurable: true
    });
    return TimeAxisLabelFormat;
}());
export { TimeAxisLabelFormat };
