// This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. // If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. // Copyright (C) LibreHardwareMonitor and Contributors. // Partial Copyright (C) Michael Möller and Contributors. // All Rights Reserved. namespace LibreHardwareMonitor.Hardware { public delegate void SensorEventHandler(ISensor sensor); public enum HardwareType { Motherboard, SuperIO, Cpu, Memory, GpuNvidia, GpuAmd, Storage, Network, Cooler } public interface IHardware : IElement { HardwareType HardwareType { get; } Identifier Identifier { get; } string Name { get; set; } IHardware Parent { get; } ISensor[] Sensors { get; } IHardware[] SubHardware { get; } string GetReport(); void Update(); event SensorEventHandler SensorAdded; event SensorEventHandler SensorRemoved; } }