// Copyright 2017 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.

/** @enum {number} */
export const CPUThrottlingRates = {
  NoThrottling: 1,
  MidTierMobile: 4,
  LowEndMobile: 6,
};

/** @type {!MobileThrottling.Conditions} */
export const NoThrottlingConditions = {
  title: SDK.NetworkManager.NoThrottlingConditions.title,
  description: Common.UIString('No throttling'),
  network: SDK.NetworkManager.NoThrottlingConditions,
  cpuThrottlingRate: CPUThrottlingRates.NoThrottling,
};

/** @type {!MobileThrottling.Conditions} */
export const OfflineConditions = {
  title: SDK.NetworkManager.OfflineConditions.title,
  description: Common.UIString('No internet connectivity'),
  network: SDK.NetworkManager.OfflineConditions,
  cpuThrottlingRate: CPUThrottlingRates.NoThrottling,
};

/** @type {!MobileThrottling.Conditions} */
export const LowEndMobileConditions = {
  title: Common.UIString('Low-end mobile'),
  description: Common.UIString('Slow 3G & 6x CPU slowdown'),
  network: SDK.NetworkManager.Slow3GConditions,
  cpuThrottlingRate: CPUThrottlingRates.LowEndMobile,
};

/** @type {!MobileThrottling.Conditions} */
export const MidTierMobileConditions = {
  title: Common.UIString('Mid-tier mobile'),
  description: Common.UIString('Fast 3G & 4x CPU slowdown'),
  network: SDK.NetworkManager.Fast3GConditions,
  cpuThrottlingRate: CPUThrottlingRates.MidTierMobile,
};

/** @type {!MobileThrottling.PlaceholderConditions} */
export const CustomConditions = {
  title: Common.UIString('Custom'),
  description: Common.UIString('Check Network and Performance panels'),
};

/** @type {!Array.<!MobileThrottling.Conditions>} */
export const mobilePresets = [MidTierMobileConditions, LowEndMobileConditions, CustomConditions];

/** @type {!Array.<!MobileThrottling.Conditions>} */
export const advancedMobilePresets = [
  OfflineConditions,
];

/** @type {!Array<!SDK.NetworkManager.Conditions>} */
export const networkPresets = [
  SDK.NetworkManager.Fast3GConditions,
  SDK.NetworkManager.Slow3GConditions,
  SDK.NetworkManager.OfflineConditions,
];

/** @type {!Array<!CPUThrottlingRates>} */
export const cpuThrottlingPresets = [
  CPUThrottlingRates.NoThrottling,
  CPUThrottlingRates.MidTierMobile,
  CPUThrottlingRates.LowEndMobile,
];

/* Legacy exported object */
self.MobileThrottling = self.MobileThrottling || {};

/* Legacy exported object */
MobileThrottling = MobileThrottling || {};

/** @enum {number} */
MobileThrottling.CPUThrottlingRates = CPUThrottlingRates;

MobileThrottling.NoThrottlingConditions = NoThrottlingConditions;
MobileThrottling.OfflineConditions = OfflineConditions;
MobileThrottling.LowEndMobileConditions = LowEndMobileConditions;
MobileThrottling.MidTierMobileConditions = MidTierMobileConditions;
MobileThrottling.CustomConditions = CustomConditions;

MobileThrottling.mobilePresets = mobilePresets;
MobileThrottling.advancedMobilePresets = advancedMobilePresets;
MobileThrottling.networkPresets = networkPresets;
MobileThrottling.cpuThrottlingPresets = cpuThrottlingPresets;

/**
 * @typedef {{
 *   title: string,
 *   description: string,
 *   network: !SDK.NetworkManager.Conditions,
 *   cpuThrottlingRate: !CPUThrottlingRates
 * }}
 **/
MobileThrottling.Conditions;

/** @typedef {!{title: string, items: !Array<!SDK.NetworkManager.Conditions>}} */
MobileThrottling.NetworkThrottlingConditionsGroup;

/** @typedef {!{title: string, items: !Array<!MobileThrottling.Conditions|!MobileThrottling.PlaceholderConditions>}} */
MobileThrottling.MobileThrottlingConditionsGroup;

/** @typedef {!Array<?MobileThrottling.Conditions|!MobileThrottling.PlaceholderConditions>} */
MobileThrottling.ConditionsList;

/**
 * @typedef {{
 *   title: string,
 *   description: string
 * }}
 **/
MobileThrottling.PlaceholderConditions;
