/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

// Adapts a `Log.sys.mjs` logger so that it can be used from native (Rust) code.
// The synced bookmarks mirror and bridged engines implement this interface
// to hook in to the services `LogManager` infrastructure.
[scriptable, uuid(c92bfe0d-50b7-4a7f-9686-fe5335a696b9)]
interface mozIServicesLogSink : nsISupports {
  const short LEVEL_OFF = 0;
  const short LEVEL_ERROR = 1;
  const short LEVEL_WARN = 2;
  const short LEVEL_INFO = 3;
  const short LEVEL_DEBUG = 4;
  const short LEVEL_TRACE = 5;

  attribute short maxLevel;

  void error(in AString message);
  void warn(in AString message);
  void debug(in AString message);
  void trace(in AString message);
  void info(in AString message);
};
