/**
* This API will be used to log messages for the purpose of debugging.
*/
export interface LoggerAPI {
/**
* Log a debug level message. Note that this logging level will not be enabled by
* default. Debug logging can be controlled by calling window._loggerController.enableDebug()
* and window._loggerController.disableDebug().
*
* Guide to usage: Debug messages should be used to trace events in order
* to aid debugging.
* @param message the message to be logged.
* @param optionalParams additional optional parameters.
*/
debug(message?: string, ...optionalParams: any[]): void;
/**
* Log an info level message. Info level logging will be enabled by default, but can
* be controlled by calling window._loggerController.enableInfo()
* and window._loggerController.disableInfo().
*
* Guide to usage: Info messages should be rarely used. They should
* be used only when something important occurs such as lifecycle events on important
* components. Perhaps loading and unloading an add-on's iframe are good examples.
* @param message the message to be logged.
* @param optionalParams additional optional parameters.
*/
info(message?: string, ...optionalParams: any[]): void;
/**
* Log a warning level message.
*
* Guide to usage: Warning log call should be common in our code, but should
* not actually be called often in normal circumstances. They should be used to indicate
* that something abnormal, but expected happened. For example, a warning log should occur to
* indicate an add-on failing to load. Warnings indicate that something non-ideal happened, but
* was handled. Warning logs often occur in exception handlers.
* @param message the message to be logged.
* @param optionalParams additional optional parameters.
*/
warn(message?: string, ...optionalParams: any[]): void;
/**
* Log an error level message.
*
* Guide to usage: Error logs indicate that something bad has happened and was
* not expected. For example, if the system enters an unexpected state then an error log should
* indicate this. Failed precondition checking may also result in an error log if the method
* was invoked with invalid parameters and the method semantics are such that this indicates an
* invalid call. Error logs are often accompanied by some kind of abortion clean up processing. On
* some occasions, clean up processing may also be necessary.
* @param message the message to be logged.
* @param optionalParams additional optional parameters.
*/
error(message?: string, ...optionalParams: any[]): void;
}