text: // Copyright (c) Microsoft Corporation.
  // Licensed under the MIT License.
  import { HttpPipelineLogLevel } from "../httpPipelineLogLevel";
  var BaseRequestPolicy = /** @class */ (function () {
      function BaseRequestPolicy(_nextPolicy, _options) {
          this._nextPolicy = _nextPolicy;
          this._options = _options;
      }
      /**
       * Get whether or not a log with the provided log level should be logged.
       * @param logLevel The log level of the log that will be logged.
       * @returns Whether or not a log with the provided log level should be logged.
       */
      BaseRequestPolicy.prototype.shouldLog = function (logLevel) {
          return this._options.shouldLog(logLevel);
      };
      /**
       * Attempt to log the provided message to the provided logger. If no logger was provided or if
       * the log level does not meat the logger's threshold, then nothing will be logged.
       * @param logLevel The log level of this log.
       * @param message The message of this log.
       */
      BaseRequestPolicy.prototype.log = function (logLevel, message) {
          this._options.log(logLevel, message);
      };
      return BaseRequestPolicy;
  }());
  export { BaseRequestPolicy };
  /**
   * Optional properties that can be used when creating a RequestPolicy.
   */
  var RequestPolicyOptions = /** @class */ (function () {
      function RequestPolicyOptions(_logger) {
          this._logger = _logger;
      }
      /**
       * Get whether or not a log with the provided log level should be logged.
       * @param logLevel The log level of the log that will be logged.
       * @returns Whether or not a log with the provided log level should be logged.
       */
      RequestPolicyOptions.prototype.shouldLog = function (logLevel) {
          return (!!this._logger &&
              logLevel !== HttpPipelineLogLevel.OFF &&
              logLevel <= this._logger.minimumLogLevel);
      };
      /**
       * Attempt to log the provided message to the provided logger. If no logger was provided or if
       * the log level does not meet the logger's threshold, then nothing will be logged.
       * @param logLevel The log level of this log.
       * @param message The message of this log.
       */
      RequestPolicyOptions.prototype.log = function (logLevel, message) {
          if (this._logger && this.shouldLog(logLevel)) {
              this._logger.log(logLevel, message);
          }
      };
      return RequestPolicyOptions;
  }());
  export { RequestPolicyOptions };
  //# sourceMappingURL=requestPolicy.js.map