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

import './ThrottlingPresets.js';
import './MobileThrottlingSelector.js';
import './NetworkPanelIndicator.js';
import './NetworkThrottlingSelector.js';
import './ThrottlingSettingsTab.js';
import './ThrottlingManager.js';

import * as MobileThrottlingSelector from './MobileThrottlingSelector.js';
import * as NetworkPanelIndicator from './NetworkPanelIndicator.js';
import * as NetworkThrottlingSelector from './NetworkThrottlingSelector.js';
import * as ThrottlingManager from './ThrottlingManager.js';
import * as ThrottlingPresets from './ThrottlingPresets.js';
import * as ThrottlingSettingsTab from './ThrottlingSettingsTab.js';

export {
  MobileThrottlingSelector,
  NetworkPanelIndicator,
  NetworkThrottlingSelector,
  ThrottlingManager,
  ThrottlingPresets,
  ThrottlingSettingsTab,
};
