import * as tslib_1 from "tslib";
import { IgrFinancialIndicator } from "./igr-financial-indicator";
/**
 * A base class for indicator series with simple calculations that separates the calculation
 * responsibility from the other responsibilities of the financial series, this enables
 * easier unit testing and decoupling of individual calculation strategies.
 * A contract is defined between the financial series and these simple indicator calculations
 * detailing the data which the series agrees to provide the simple indicator calculations,
 * this contract is defined by FinancialCalculationDataSource. If more
 * complex interactions are needed between the indicator calculation and the series, the
 * indicators should instead derive from FinancialIndicator directly, or some
 * derivative other than StrategyBasedIndicator
*/
var IgrStrategyBasedIndicator = /** @class */ (function (_super) {
    tslib_1.__extends(IgrStrategyBasedIndicator, _super);
    function IgrStrategyBasedIndicator(props) {
        return _super.call(this, props) || this;
    }
    Object.defineProperty(IgrStrategyBasedIndicator.prototype, "i", {
        get: function () {
            return this._implementation;
        },
        enumerable: true,
        configurable: true
    });
    return IgrStrategyBasedIndicator;
}(IgrFinancialIndicator));
export { IgrStrategyBasedIndicator };
