interface URLSearchParams {

  // FIXME: the real type of init is (sequence<sequence<USVString>> or record<USVString, USVString> or USVString)
  constructor(optional (sequence<sequence<USVString>> or USVString) init = "");

  undefined append(USVString name, USVString value);
  undefined delete(USVString name);
  USVString? get(USVString name);
  sequence<USVString> getAll(USVString name);
  boolean has(USVString name);
  undefined set(USVString name, USVString value);

  undefined sort();

  iterable<USVString, USVString>;
  stringifier;
};
