// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
// See LICENSE in the project root for license information.

/**
 * Used with {@link IConfigMessageReportingRule.logLevel} and {@link IExtractorInvokeOptions.messageCallback}.
 *
 * @remarks
 * This is part of the {@link IConfigFile} structure.
 *
 * @public
 */
export enum ExtractorLogLevel {
  /**
   * The message will be displayed as an error.
   *
   * @remarks
   * Errors typically cause the build to fail and return a nonzero exit code.
   */
  Error = 'error',

  /**
   * The message will be displayed as an warning.
   *
   * @remarks
   * Warnings typically cause a production build fail and return a nonzero exit code.  For a non-production build
   * (e.g. using the `--local` option with `api-extractor run`), the warning is displayed but the build will not fail.
   */
  Warning = 'warning',

  /**
   * The message will be displayed as an informational message.
   *
   * @remarks
   * Informational messages may contain newlines to ensure nice formatting of the output,
   * however word-wrapping is the responsibility of the message handler.
   */
  Info = 'info',

  /**
   * The message will be displayed only when "verbose" output is requested, e.g. using the `--verbose`
   * command line option.
   */
  Verbose = 'verbose',

  /**
   * The message will be discarded entirely.
   */
  None = 'none'
}
