diff --git a/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IHasWirelessSharing.cs b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IHasWirelessSharing.cs
new file mode 100644
index 00000000..6cd3835e
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IHasWirelessSharing.cs
@@ -0,0 +1,48 @@
+using System;
+
+namespace PepperDash.Essentials.Core.DeviceTypeInterfaces
+{
+ ///
+ /// Defines the contract for a wireless presentation endpoint that reports whether a wireless
+ /// sharing session is currently active. Implemented by platforms such as Crestron AirMedia,
+ /// Mersive Solstice, Barco ClickShare, Miracast/Teams receivers, etc. Allows consumers (e.g.
+ /// room plugins) to react to wireless sharing activity without taking a dependency on any
+ /// concrete device implementation.
+ ///
+ ///
+ /// This refers specifically to wireless screen/device mirroring, as distinct from in-call
+ /// content sharing on a video conference.
+ ///
+ public interface IHasWirelessSharing
+ {
+ ///
+ /// Reports whether a wireless sharing session is currently active (content is being presented).
+ ///
+ BoolFeedback IsSharingFeedback { get; }
+
+ ///
+ /// Raised when wireless sharing starts or stops. The event args carry the new sharing state.
+ ///
+ event EventHandler SharingChanged;
+ }
+
+ ///
+ /// Event arguments describing a change in wireless sharing state.
+ ///
+ public class WirelessSharingEventArgs : EventArgs
+ {
+ ///
+ /// True if a wireless sharing session is active (content is being presented), false otherwise.
+ ///
+ public bool IsSharing { get; private set; }
+
+ ///
+ /// Creates a new .
+ ///
+ /// True if a wireless sharing session is active, false otherwise.
+ public WirelessSharingEventArgs(bool isSharing)
+ {
+ IsSharing = isSharing;
+ }
+ }
+}