// Copyright 2018 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.safeBrowsingPrivate.FooType'.
// Please run the closure compiler before committing changes.
// See https://chromium.googlesource.com/chromium/src/+/master/docs/closure_compilation.md

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

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

/**
 * @typedef {{
 *   url: string,
 *   userName: string,
 *   isPhishing: boolean
 * }}
 * @see https://developer.chrome.com/extensions/safeBrowsingPrivate#type-PolicySpecifiedPasswordReuse
 */
chrome.safeBrowsingPrivate.PolicySpecifiedPasswordReuse;

/**
 * @typedef {{
 *   url: string,
 *   fileName: string,
 *   sha256: string,
 *   userName: (string|undefined)
 * }}
 * @see https://developer.chrome.com/extensions/safeBrowsingPrivate#type-DangerousDownloadInfo
 */
chrome.safeBrowsingPrivate.DangerousDownloadInfo;

/**
 * @typedef {{
 *   url: string,
 *   reason: string,
 *   netErrorCode: (number|undefined)
 * }}
 * @see https://developer.chrome.com/extensions/safeBrowsingPrivate#type-InterstitialInfo
 */
chrome.safeBrowsingPrivate.InterstitialInfo;

/**
 * Fired when Chrome detects a reuse of a policy specified password.
 * @type {!ChromeEvent}
 * @see https://developer.chrome.com/extensions/safeBrowsingPrivate#event-onPolicySpecifiedPasswordReuseDetected
 */
chrome.safeBrowsingPrivate.onPolicySpecifiedPasswordReuseDetected;

/**
 * Fired when the user changed their policy specified password.
 * @type {!ChromeEvent}
 * @see https://developer.chrome.com/extensions/safeBrowsingPrivate#event-onPolicySpecifiedPasswordChanged
 */
chrome.safeBrowsingPrivate.onPolicySpecifiedPasswordChanged;

/**
 * Fired when the user opened a dangerous download.
 * @type {!ChromeEvent}
 * @see https://developer.chrome.com/extensions/safeBrowsingPrivate#event-onDangerousDownloadOpened
 */
chrome.safeBrowsingPrivate.onDangerousDownloadOpened;

/**
 * Fired when a security interstitial is shown to the user.
 * @type {!ChromeEvent}
 * @see https://developer.chrome.com/extensions/safeBrowsingPrivate#event-onInterstitialShown
 */
chrome.safeBrowsingPrivate.onInterstitialShown;

/**
 * Fired when the user clicked-through a security interstitial.
 * @type {!ChromeEvent}
 * @see https://developer.chrome.com/extensions/safeBrowsingPrivate#event-onInterstitialProceeded
 */
chrome.safeBrowsingPrivate.onInterstitialProceeded;
