// Copyright 2021 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// This file was generated by:
//   tools/json_schema_compiler/compiler.py.
// NOTE: The format of types has changed. 'FooType' is now
//   'chrome.systemPrivate.FooType'.
// Please run the closure compiler before committing changes.
// See https://chromium.googlesource.com/chromium/src/+/main/docs/closure_compilation.md

/** @fileoverview Externs generated from namespace: systemPrivate */

/** @const */
chrome.systemPrivate = {};

/**
 * @enum {string}
 */
chrome.systemPrivate.UpdateStatusState = {
  NOT_AVAILABLE: 'NotAvailable',
  UPDATING: 'Updating',
  NEED_RESTART: 'NeedRestart',
};

/**
 * @enum {string}
 */
chrome.systemPrivate.GetIncognitoModeAvailabilityValue = {
  ENABLED: 'enabled',
  DISABLED: 'disabled',
  FORCED: 'forced',
};

/**
 * Information about the system update.
 * @typedef {{
 *   state: !chrome.systemPrivate.UpdateStatusState,
 *   downloadProgress: number
 * }}
 */
chrome.systemPrivate.UpdateStatus;

/**
 * Returns whether the incognito mode is enabled, disabled or forced
 * @param {function(!chrome.systemPrivate.GetIncognitoModeAvailabilityValue): void}
 *     callback Called with the result.
 */
chrome.systemPrivate.getIncognitoModeAvailability = function(callback) {};

/**
 * Gets information about the system update.
 * @param {function(!chrome.systemPrivate.UpdateStatus): void} callback
 */
chrome.systemPrivate.getUpdateStatus = function(callback) {};

/**
 * Gets Chrome's API key to use for requests to Google services.
 * @param {function(string): void} callback
 */
chrome.systemPrivate.getApiKey = function(callback) {};