text: /**
   * @internal
   */
  export class Parameters {
      constructor(parameters) {
          this.parameters = {};
          // for in is required here as the Grammar parser is adding to the prototype chain
          for (const param in parameters) {
              // eslint-disable-next-line no-prototype-builtins
              if (parameters.hasOwnProperty(param)) {
                  this.setParam(param, parameters[param]);
              }
          }
      }
      setParam(key, value) {
          if (key) {
              this.parameters[key.toLowerCase()] = (typeof value === "undefined" || value === null) ? null : value.toString();
          }
      }
      getParam(key) {
          if (key) {
              return this.parameters[key.toLowerCase()];
          }
      }
      hasParam(key) {
          return !!(key && this.parameters[key.toLowerCase()] !== undefined);
      }
      deleteParam(key) {
          key = key.toLowerCase();
          if (this.hasParam(key)) {
              const value = this.parameters[key];
              delete this.parameters[key];
              return value;
          }
      }
      clearParams() {
          this.parameters = {};
      }
  }
  