using System.Collections.Generic; using Newtonsoft.Json; using PepperDash.Core; namespace PepperDash.Essentials.Core { /// /// Describes the functionality of a device that senses and provides partition state /// public interface IPartitionStateProvider : IKeyName { [JsonIgnore] BoolFeedback PartitionPresentFeedback { get; } [JsonProperty("partitionPresent")] bool PartitionPresent { get; } } /// /// Describes the functionality of a device that can provide partition state either manually via user input or optionally via a sensor state /// public interface IPartitionController : IPartitionStateProvider { [JsonProperty("adjacentRoomKeys")] List AdjacentRoomKeys { get; } [JsonProperty("isInAutoMode")] bool IsInAutoMode { get; } void SetPartitionStatePresent(); void SetPartitionStateNotPresent(); void ToggglePartitionState(); void SetManualMode(); void SetAutoMode(); } }