diff --git a/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IHasWirelessSharing.cs b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IHasWirelessSharing.cs
new file mode 100644
index 00000000..bf7562fc
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IHasWirelessSharing.cs
@@ -0,0 +1,47 @@
+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;
+ }
+}