xamarin-macios/src/homekit.cs

1874 строки
53 KiB
C#

using CoreGraphics;
using CoreLocation;
using ObjCRuntime;
using Foundation;
using UIKit;
using System;
using System.ComponentModel;
#if WATCH
interface UIView {}
#endif
namespace HomeKit {
[TV (10,0)]
[iOS (8,0)]
[Static]
partial interface HMErrors {
[Field ("HMErrorDomain")]
NSString HMErrorDomain { get; }
}
[TV (10,0)]
[iOS (8,0)]
[BaseType (typeof (NSObject), Delegates=new string[] {"WeakDelegate"}, Events=new Type[] {typeof(HMHomeManagerDelegate)})]
partial interface HMHomeManager {
[Export ("delegate", ArgumentSemantic.Weak)]
[NullAllowed]
NSObject WeakDelegate { get; set; }
[Wrap ("WeakDelegate")]
[Protocolize]
HMHomeManagerDelegate Delegate { get; set; }
[Export ("primaryHome", ArgumentSemantic.Retain)]
HMHome PrimaryHome { get; }
[Export ("homes", ArgumentSemantic.Copy)]
HMHome [] Homes { get; }
[NoTV]
[NoWatch]
[Async]
[Export ("updatePrimaryHome:completionHandler:")]
void UpdatePrimaryHome (HMHome home, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("addHomeWithName:completionHandler:")]
void AddHome (string homeName, Action<HMHome, NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("removeHome:completionHandler:")]
void RemoveHome (HMHome home, Action<NSError> completion);
[iOS (13,0), Watch (6,0), TV (13,0), NoMac]
[Export ("authorizationStatus")]
HMHomeManagerAuthorizationStatus AuthorizationStatus { get; }
}
[TV (10,0)]
[iOS (8,0)]
[Model, Protocol]
[BaseType (typeof (NSObject))]
partial interface HMHomeManagerDelegate {
[Export ("homeManagerDidUpdateHomes:")]
void DidUpdateHomes (HMHomeManager manager);
[Export ("homeManagerDidUpdatePrimaryHome:")]
void DidUpdatePrimaryHome (HMHomeManager manager);
[Export ("homeManager:didAddHome:"), EventArgs ("HMHomeManager")]
void DidAddHome (HMHomeManager manager, HMHome home);
[Export ("homeManager:didRemoveHome:"), EventArgs ("HMHomeManager")]
void DidRemoveHome (HMHomeManager manager, HMHome home);
[iOS (13,0), NoWatch, NoTV, NoMac]
[NoMacCatalyst]
[Export("homeManager:didReceiveAddAccessoryRequest:"), EventArgs ("HMHomeManagerAddAccessoryRequest")]
void DidReceiveAddAccessoryRequest (HMHomeManager manager, HMAddAccessoryRequest request);
[iOS (13,0), Watch (6,0), TV (13,0), NoMac]
[Export("homeManager:didUpdateAuthorizationStatus:"), EventArgs ("HMHomeManagerAuthorizationStatus")]
void DidUpdateAuthorizationStatus (HMHomeManager manager, HMHomeManagerAuthorizationStatus status);
}
[TV (10,0)]
[iOS (8,0)]
[BaseType (typeof (NSObject), Delegates=new string[] {"WeakDelegate"}, Events=new Type[] {typeof(HMAccessoryDelegate)})]
partial interface HMAccessory {
[Export ("name")]
string Name { get; }
[NoTV]
[NoWatch]
[Availability (Deprecated = Platform.iOS_9_0)]
[Export ("identifier", ArgumentSemantic.Copy)]
NSUuid Identifier { get; }
[iOS (9,0)]
[Export ("uniqueIdentifier", ArgumentSemantic.Copy)]
NSUuid UniqueIdentifier { get; }
[Export ("delegate", ArgumentSemantic.Weak)]
[NullAllowed]
NSObject WeakDelegate { get; set; }
[Wrap ("WeakDelegate")]
[Protocolize]
HMAccessoryDelegate Delegate { get; set; }
[Export ("reachable")]
bool Reachable { [Bind ("isReachable")] get; }
[Export ("bridged")]
bool Bridged { [Bind ("isBridged")] get; }
[NoTV]
[NoWatch]
[Availability (Deprecated = Platform.iOS_9_0)]
[Export ("identifiersForBridgedAccessories", ArgumentSemantic.Copy)]
NSUuid [] IdentifiersForBridgedAccessories { get; }
[iOS (9,0)]
[NullAllowed, Export ("uniqueIdentifiersForBridgedAccessories", ArgumentSemantic.Copy)]
NSUuid[] UniqueIdentifiersForBridgedAccessories { get; }
[Export ("room", ArgumentSemantic.Weak)]
HMRoom Room { get; }
[Export ("services", ArgumentSemantic.Copy)]
HMService [] Services { get; }
[Watch (4,0), TV (11,0), iOS (11,0)]
[Export ("profiles", ArgumentSemantic.Copy)]
HMAccessoryProfile[] Profiles { get; }
[Export ("blocked")]
bool Blocked { [Bind ("isBlocked")] get; }
[Watch (4, 0), TV (11, 0), iOS (11, 0)]
[NullAllowed, Export ("model")]
string Model { get; }
[Watch (4, 0), TV (11, 0), iOS (11, 0)]
[NullAllowed, Export ("manufacturer")]
string Manufacturer { get; }
[Watch (4, 0), TV (11, 0), iOS (11, 0)]
[NullAllowed, Export ("firmwareVersion")]
string FirmwareVersion { get; }
[NoTV]
[NoWatch]
[Async]
[Export ("updateName:completionHandler:")]
void UpdateName (string name, Action<NSError> completion);
[Async]
[Export ("identifyWithCompletionHandler:")]
void Identify (Action<NSError> completion);
[iOS (9,0)]
[Export ("category", ArgumentSemantic.Strong)]
HMAccessoryCategory Category { get; }
// HMAccessory(Camera)
[Watch (3,0), iOS (10,0)]
[NullAllowed, Export ("cameraProfiles", ArgumentSemantic.Copy)]
HMCameraProfile [] CameraProfiles { get; }
[Watch (4,3), TV (11,3), iOS (11,3)]
[Export ("supportsIdentify")]
bool SupportsIdentify { get; }
}
[TV (10,0)]
[iOS (8,0)]
[Model, Protocol]
[BaseType (typeof (NSObject))]
partial interface HMAccessoryDelegate {
[Export ("accessoryDidUpdateName:")]
void DidUpdateName (HMAccessory accessory);
[Export ("accessory:didUpdateNameForService:"), EventArgs ("HMAccessoryUpdate")]
void DidUpdateNameForService (HMAccessory accessory, HMService service);
[Export ("accessory:didUpdateAssociatedServiceTypeForService:"), EventArgs ("HMAccessoryUpdate")]
void DidUpdateAssociatedServiceType (HMAccessory accessory, HMService service);
[Export ("accessoryDidUpdateServices:")]
void DidUpdateServices (HMAccessory accessory);
[Watch (4,0), TV (11,0), iOS (11,0)]
[Export ("accessory:didAddProfile:"), EventArgs ("HMAccessoryProfile")]
void DidAddProfile (HMAccessory accessory, HMAccessoryProfile profile);
[Watch (4,0), TV (11,0), iOS (11,0)]
[Export ("accessory:didRemoveProfile:"), EventArgs ("HMAccessoryProfile")]
void DidRemoveProfile (HMAccessory accessory, HMAccessoryProfile profile);
[Export ("accessoryDidUpdateReachability:")]
void DidUpdateReachability (HMAccessory accessory);
[Export ("accessory:service:didUpdateValueForCharacteristic:"), EventArgs ("HMAccessoryServiceUpdateCharacteristic")]
void DidUpdateValueForCharacteristic (HMAccessory accessory, HMService service, HMCharacteristic characteristic);
[Watch (4,0), TV (11,0), iOS (11,0)]
[Export ("accessory:didUpdateFirmwareVersion:"), EventArgs ("HMAccessoryFirmwareVersion")]
void DidUpdateFirmwareVersion (HMAccessory accessory, string firmwareVersion);
}
#if !WATCH
// __WATCHOS_PROHIBITED
[NoTV]
[iOS (8,0)]
[NoMacCatalyst]
[BaseType (typeof (NSObject), Delegates=new string[] {"WeakDelegate"}, Events=new Type[] {typeof(HMAccessoryBrowserDelegate)})]
partial interface HMAccessoryBrowser {
[Export ("delegate", ArgumentSemantic.Weak)]
[NullAllowed]
NSObject WeakDelegate { get; set; }
[Wrap ("WeakDelegate")]
[Protocolize]
HMAccessoryBrowserDelegate Delegate { get; set; }
[Export ("discoveredAccessories", ArgumentSemantic.Copy)]
HMAccessory [] DiscoveredAccessories { get; }
[Export ("startSearchingForNewAccessories")]
void StartSearchingForNewAccessories ();
[Export ("stopSearchingForNewAccessories")]
void StopSearchingForNewAccessories ();
}
[NoTV]
[iOS (8,0)]
[NoMacCatalyst]
[Model, Protocol]
[BaseType (typeof (NSObject))]
partial interface HMAccessoryBrowserDelegate {
[Export ("accessoryBrowser:didFindNewAccessory:"), EventArgs ("HMAccessoryBrowser")]
void DidFindNewAccessory (HMAccessoryBrowser browser, HMAccessory accessory);
[Export ("accessoryBrowser:didRemoveNewAccessory:"), EventArgs ("HMAccessoryBrowser")]
void DidRemoveNewAccessory (HMAccessoryBrowser browser, HMAccessory accessory);
}
#endif // !WATCH
[Watch (3,0), TV (10,0), iOS (10,0)]
[BaseType (typeof(NSObject))]
[DisableDefaultCtor]
interface HMAccessoryProfile
{
[Export ("uniqueIdentifier", ArgumentSemantic.Copy)]
NSUuid UniqueIdentifier { get; }
[Export ("services", ArgumentSemantic.Strong)]
HMService[] Services { get; }
[NullAllowed, Export ("accessory", ArgumentSemantic.Weak)]
HMAccessory Accessory { get; }
}
[TV (10,0)]
[iOS (8,0)]
[BaseType (typeof (NSObject))]
partial interface HMAction {
[iOS (9,0)]
[Export ("uniqueIdentifier", ArgumentSemantic.Copy)]
NSUuid UniqueIdentifier { get; }
}
[TV (10,0)]
[iOS (8,0)]
[DisableDefaultCtor]
[BaseType (typeof (NSObject))]
partial interface HMActionSet {
[Export ("name")]
string Name { get; }
[Export ("actions", ArgumentSemantic.Copy)]
NSSet Actions { get; }
[Export ("executing")]
bool Executing { [Bind ("isExecuting")] get; }
[NoTV]
[NoWatch]
[Async]
[Export ("updateName:completionHandler:")]
void UpdateName (string name, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("addAction:completionHandler:")]
void AddAction (HMAction action, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("removeAction:completionHandler:")]
void RemoveAction (HMAction action, Action<NSError> completion);
[Internal]
[iOS (9,0)]
[Export ("actionSetType")]
NSString _ActionSetType { get; }
[iOS (9,0)]
[Export ("uniqueIdentifier", ArgumentSemantic.Copy)]
NSUuid UniqueIdentifier { get; }
[Watch (3,0), iOS (10,0)]
[NullAllowed]
[Export ("lastExecutionDate", ArgumentSemantic.Copy)]
NSDate LastExecutionDate { get; }
}
[TV (10,0)]
[iOS (9,0)]
[Static]
[Internal]
interface HMActionSetTypesInternal {
[Field ("HMActionSetTypeWakeUp")]
NSString WakeUp { get; }
[Field ("HMActionSetTypeSleep")]
NSString Sleep { get; }
[Field ("HMActionSetTypeHomeDeparture")]
NSString HomeDeparture { get; }
[Field ("HMActionSetTypeHomeArrival")]
NSString HomeArrival { get; }
[Field ("HMActionSetTypeUserDefined")]
NSString UserDefined { get; }
[Watch (3,0), iOS (10,0)]
[Field ("HMActionSetTypeTriggerOwned")]
NSString TriggerOwned { get; }
}
[TV (10,0)]
[iOS (8,0)]
[BaseType (typeof (NSObject))]
partial interface HMCharacteristic {
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Export ("characteristicType", ArgumentSemantic.Copy)]
NSString WeakCharacteristicType { get; }
[Wrap ("HMCharacteristicTypeExtensions.GetValue (WeakCharacteristicType)")]
HMCharacteristicType CharacteristicType { get; }
[Export ("service", ArgumentSemantic.Weak)]
HMService Service { get; }
[Export ("properties", ArgumentSemantic.Copy)]
NSString [] Properties { get; }
[Export ("metadata", ArgumentSemantic.Retain)]
HMCharacteristicMetadata Metadata { get; }
[Export ("value", ArgumentSemantic.Copy)]
NSObject Value { get; }
[Export ("notificationEnabled")]
bool NotificationEnabled { [Bind ("isNotificationEnabled")] get; }
[Async]
[Export ("writeValue:completionHandler:")]
void WriteValue (NSObject value, Action<NSError> completion);
[Async]
[Export ("readValueWithCompletionHandler:")]
void ReadValue (Action<NSError> completion);
[Async]
[Export ("enableNotification:completionHandler:")]
void EnableNotification (bool enable, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("updateAuthorizationData:completionHandler:")]
void UpdateAuthorizationData (NSData data, Action<NSError> completion);
[iOS (9,0)]
[Export ("localizedDescription")]
string LocalizedDescription { get; }
[iOS (9,0)]
[Export ("uniqueIdentifier", ArgumentSemantic.Copy)]
NSUuid UniqueIdentifier { get; }
[iOS (9,0)]
[Field ("HMCharacteristicKeyPath")]
NSString KeyPath { get; }
[iOS (9,0)]
[Field ("HMCharacteristicValueKeyPath")]
NSString ValueKeyPath { get; }
}
[TV (10,0)]
[iOS(8,0)]
[Static]
[Internal]
interface HMCharacteristicPropertyInternal {
[Field ("HMCharacteristicPropertyReadable")]
NSString Readable { get; }
[Field ("HMCharacteristicPropertyWritable")]
NSString Writable { get; }
[iOS (9,3)][Watch (2,2)]
[Field ("HMCharacteristicPropertyHidden")]
NSString Hidden { get; }
[Notification]
[Field ("HMCharacteristicPropertySupportsEventNotification")]
NSString SupportsEventNotification { get; }
}
[TV (10,0)]
[iOS (8,0)]
[Static]
[Internal]
interface HMCharacteristicMetadataUnitsInternal {
[Field ("HMCharacteristicMetadataUnitsCelsius")]
NSString Celsius { get; }
[Field ("HMCharacteristicMetadataUnitsFahrenheit")]
NSString Fahrenheit { get; }
[Field ("HMCharacteristicMetadataUnitsPercentage")]
NSString Percentage { get; }
[Field ("HMCharacteristicMetadataUnitsArcDegree")]
NSString ArcDegree { get; }
[iOS (8,3)]
[Field ("HMCharacteristicMetadataUnitsSeconds")]
NSString Seconds { get; }
[iOS (9,3)][Watch (2,2)]
[Field ("HMCharacteristicMetadataUnitsLux")]
NSString Lux { get; }
[Watch (3,0), iOS (10,0)]
[Field ("HMCharacteristicMetadataUnitsPartsPerMillion")]
NSString PartsPerMillion { get; }
[Watch (3,0), iOS (10,0)]
[Field ("HMCharacteristicMetadataUnitsMicrogramsPerCubicMeter")]
NSString MicrogramsPerCubicMeter { get; }
}
[TV (10,0)]
[iOS (8,0)]
[BaseType (typeof (NSObject))]
partial interface HMCharacteristicMetadata {
[Export ("minimumValue")]
NSNumber MinimumValue { get; }
[Export ("maximumValue")]
NSNumber MaximumValue { get; }
[Export ("stepValue")]
NSNumber StepValue { get; }
[Export ("maxLength")]
NSNumber MaxLength { get; }
[Internal]
[Export ("format", ArgumentSemantic.Copy)]
NSString _Format { get; }
[Internal]
[Export ("units", ArgumentSemantic.Copy)]
NSString _Units { get; }
[Export ("manufacturerDescription")]
string ManufacturerDescription { get; }
[Watch (3,0), iOS (10,0)]
[NullAllowed, Export ("validValues", ArgumentSemantic.Copy)]
NSNumber[] ValidValues { get; }
}
[TV (10,0)]
[iOS (8,0)]
[DisableDefaultCtor]
[BaseType (typeof (HMAction))]
partial interface HMCharacteristicWriteAction {
[NoTV]
[NoWatch]
[DesignatedInitializer]
[Export ("initWithCharacteristic:targetValue:")]
#if XAMCORE_3_0
IntPtr Constructor (HMCharacteristic characteristic, INSCopying targetValue);
#else
IntPtr Constructor (HMCharacteristic characteristic, NSObject targetValue);
#endif
[Export ("characteristic", ArgumentSemantic.Retain)]
HMCharacteristic Characteristic { get; }
[Export ("targetValue", ArgumentSemantic.Copy)]
#if XAMCORE_3_0
INSCopying TargetValue { get; }
#else
NSObject TargetValue { get; }
#endif
[NoTV]
[NoWatch]
[Async]
[Export ("updateTargetValue:completionHandler:")]
#if XAMCORE_3_0
void UpdateTargetValue (INSCopying targetValue, Action<NSError> completion);
#else
void UpdateTargetValue (NSObject targetValue, Action<NSError> completion);
#endif
}
[TV (10,0)]
[iOS (8,0)]
[DisableDefaultCtor]
[BaseType (typeof (NSObject), Delegates=new string[] {"WeakDelegate"}, Events=new Type[] {typeof(HMHomeDelegate)})]
partial interface HMHome {
[Export ("delegate", ArgumentSemantic.Weak)]
[NullAllowed]
NSObject WeakDelegate { get; set; }
[Wrap ("WeakDelegate")]
[Protocolize]
HMHomeDelegate Delegate { get; set; }
[Export ("name")]
string Name { get; }
[Export ("primary")]
bool Primary { [Bind ("isPrimary")] get; }
[Watch (4,0), TV (11,0), iOS (11,0)]
[Export ("homeHubState")]
HMHomeHubState HomeHubState { get; }
[NoTV]
[NoWatch]
[Async]
[Export ("updateName:completionHandler:")]
void UpdateName (string name, Action<NSError> completion);
[iOS (9,0)]
[Export ("uniqueIdentifier", ArgumentSemantic.Copy)]
NSUuid UniqueIdentifier { get; }
// HMHome(HMAccessory)
[Export ("accessories", ArgumentSemantic.Copy)]
HMAccessory [] Accessories { get; }
[NoTV]
[NoWatch]
[Async]
[Export ("addAccessory:completionHandler:")]
void AddAccessory (HMAccessory accessory, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("removeAccessory:completionHandler:")]
void RemoveAccessory (HMAccessory accessory, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("assignAccessory:toRoom:completionHandler:")]
void AssignAccessory (HMAccessory accessory, HMRoom room, Action<NSError> completion);
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Export ("servicesWithTypes:")]
HMService [] GetServices (NSString [] serviceTypes);
[NoTV]
[NoWatch]
[Async]
[Export ("unblockAccessory:completionHandler:")]
void UnblockAccessory (HMAccessory accessory, Action<NSError> completion);
[NoWatch, NoTV, iOS (10,0)]
[Async]
[Export ("addAndSetupAccessoriesWithCompletionHandler:")]
void AddAndSetupAccessories (Action<NSError> completion);
[NoWatch, NoTV, iOS (11,3)]
[Async]
[Export ("addAndSetupAccessoriesWithPayload:completionHandler:")]
void AddAndSetupAccessories (HMAccessorySetupPayload payload, Action<HMAccessory[], NSError> completion);
// HMHome(HMRoom)
[Export ("rooms", ArgumentSemantic.Copy)]
HMRoom [] Rooms { get; }
[NoTV]
[NoWatch]
[Async]
[Export ("addRoomWithName:completionHandler:")]
void AddRoom (string roomName, Action<HMRoom, NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("removeRoom:completionHandler:")]
void RemoveRoom (HMRoom room, Action<NSError> completion);
[Export ("roomForEntireHome")]
HMRoom GetRoomForEntireHome ();
// HMHome(HMZone)
[Export ("zones", ArgumentSemantic.Copy)]
HMZone [] Zones { get; }
[NoTV]
[NoWatch]
[Async]
[Export ("addZoneWithName:completionHandler:")]
void AddZone (string zoneName, Action<HMZone, NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("removeZone:completionHandler:")]
void RemoveZone (HMZone zone, Action<NSError> completion);
// HMHome(HMServiceGroup)
[Export ("serviceGroups", ArgumentSemantic.Copy)]
HMServiceGroup [] ServiceGroups { get; }
[NoTV]
[NoWatch]
[Async]
[Export ("addServiceGroupWithName:completionHandler:")]
void AddServiceGroup (string serviceGroupName, Action<HMServiceGroup, NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("removeServiceGroup:completionHandler:")]
void RemoveServiceGroup (HMServiceGroup group, Action<NSError> completion);
// HMHome(HMActionSet)
[Export ("actionSets", ArgumentSemantic.Copy)]
HMActionSet [] ActionSets { get; }
[NoTV]
[NoWatch]
[Async]
[Export ("addActionSetWithName:completionHandler:")]
void AddActionSet (string actionSetName, Action<HMActionSet, NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("removeActionSet:completionHandler:")]
void RemoveActionSet (HMActionSet actionSet, Action<NSError> completion);
[Async]
[Export ("executeActionSet:completionHandler:")]
void ExecuteActionSet (HMActionSet actionSet, Action<NSError> completion);
[iOS (9,0)]
[Export ("builtinActionSetOfType:")]
[return: NullAllowed]
HMActionSet GetBuiltinActionSet (string actionSetType);
// HMHome(HMTrigger)
[Export ("triggers", ArgumentSemantic.Copy)]
HMTrigger [] Triggers { get; }
[NoTV]
[NoWatch]
[Async]
[Export ("addTrigger:completionHandler:")]
void AddTrigger (HMTrigger trigger, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("removeTrigger:completionHandler:")]
void RemoveTrigger (HMTrigger trigger, Action<NSError> completion);
// HMHome(HMUser)
[NoTV]
[NoWatch]
[Availability (Deprecated = Platform.iOS_9_0)]
[Export ("users")]
HMUser [] Users { get; }
[NoTV]
[NoWatch]
[Availability (Deprecated = Platform.iOS_9_0, Message = "Use 'ManageUsers' instead.")]
[Async]
[Export ("addUserWithCompletionHandler:")]
void AddUser (Action<HMUser,NSError> completion);
[iOS (9,0)]
[Export ("currentUser", ArgumentSemantic.Strong)]
HMUser CurrentUser { get; }
[NoTV]
[NoWatch]
[iOS (9,0)]
[Async]
[Export ("manageUsersWithCompletionHandler:")]
void ManageUsers (Action<NSError> completion);
[iOS (9,0)]
[Export ("homeAccessControlForUser:")]
HMHomeAccessControl GetHomeAccessControl (HMUser user);
// constants
[Field ("HMUserFailedAccessoriesKey")]
NSString UserFailedAccessoriesKey { get; }
[Watch (6, 1), TV (13, 2), iOS (13, 2)]
[Export ("supportsAddingNetworkRouter")]
bool SupportsAddingNetworkRouter { get; }
}
[TV (10,0)]
[iOS (8,0)]
[Model, Protocol]
[BaseType (typeof (NSObject))]
partial interface HMHomeDelegate {
[Export ("homeDidUpdateName:")]
void DidUpdateNameForHome (HMHome home);
[Watch (4,0), TV (11,0), iOS (11,0)]
[Export ("homeDidUpdateAccessControlForCurrentUser:")]
void DidUpdateAccessControlForCurrentUser (HMHome home);
[Export ("home:didAddAccessory:"), EventArgs ("HMHomeAccessory")]
void DidAddAccessory (HMHome home, HMAccessory accessory);
[Export ("home:didRemoveAccessory:"), EventArgs ("HMHomeAccessory")]
void DidRemoveAccessory (HMHome home, HMAccessory accessory);
[Export ("home:didAddUser:"), EventArgs ("HMHomeUser")]
void DidAddUser (HMHome home, HMUser user);
[Export ("home:didRemoveUser:"), EventArgs ("HMHomeUser")]
void DidRemoveUser (HMHome home, HMUser user);
[Export ("home:didUpdateRoom:forAccessory:"), EventArgs ("HMHomeRoomAccessory")]
void DidUpdateRoom (HMHome home, HMRoom room, HMAccessory accessory);
[Export ("home:didAddRoom:"), EventArgs ("HMHomeRoom")]
void DidAddRoom (HMHome home, HMRoom room);
[Export ("home:didRemoveRoom:"), EventArgs ("HMHomeRoom")]
void DidRemoveRoom (HMHome home, HMRoom room);
[Export ("home:didUpdateNameForRoom:"), EventArgs ("HMHomeRoom")]
void DidUpdateNameForRoom (HMHome home, HMRoom room);
[Export ("home:didAddZone:"), EventArgs ("HMHomeZone")]
void DidAddZone (HMHome home, HMZone zone);
[Export ("home:didRemoveZone:"), EventArgs ("HMHomeZone")]
void DidRemoveZone (HMHome home, HMZone zone);
[Export ("home:didUpdateNameForZone:"), EventArgs ("HMHomeZone")]
void DidUpdateNameForZone (HMHome home, HMZone zone);
[Export ("home:didAddRoom:toZone:"), EventArgs ("HMHomeRoomZone")]
void DidAddRoomToZone (HMHome home, HMRoom room, HMZone zone);
[Export ("home:didRemoveRoom:fromZone:"), EventArgs ("HMHomeRoomZone")]
void DidRemoveRoomFromZone (HMHome home, HMRoom room, HMZone zone);
[Export ("home:didAddServiceGroup:"), EventArgs ("HMHomeServiceGroup")]
void DidAddServiceGroup (HMHome home, HMServiceGroup group);
[Export ("home:didRemoveServiceGroup:"), EventArgs ("HMHomeServiceGroup")]
void DidRemoveServiceGroup (HMHome home, HMServiceGroup group);
[Export ("home:didUpdateNameForServiceGroup:"), EventArgs ("HMHomeServiceGroup")]
void DidUpdateNameForServiceGroup (HMHome home, HMServiceGroup group);
[Export ("home:didAddService:toServiceGroup:"), EventArgs ("HMHomeServiceServiceGroup")]
void DidAddService (HMHome home, HMService service, HMServiceGroup group);
[Export ("home:didRemoveService:fromServiceGroup:"), EventArgs ("HMHomeServiceServiceGroup")]
void DidRemoveService (HMHome home, HMService service, HMServiceGroup group);
[Export ("home:didAddActionSet:"), EventArgs ("HMHomeActionSet")]
void DidAddActionSet (HMHome home, HMActionSet actionSet);
[Export ("home:didRemoveActionSet:"), EventArgs ("HMHomeActionSet")]
void DidRemoveActionSet (HMHome home, HMActionSet actionSet);
[Export ("home:didUpdateNameForActionSet:"), EventArgs ("HMHomeActionSet")]
void DidUpdateNameForActionSet (HMHome home, HMActionSet actionSet);
[Export ("home:didUpdateActionsForActionSet:"), EventArgs ("HMHomeActionSet")]
void DidUpdateActionsForActionSet (HMHome home, HMActionSet actionSet);
[Export ("home:didAddTrigger:"), EventArgs ("HMHomeTrigger")]
void DidAddTrigger (HMHome home, HMTrigger trigger);
[Export ("home:didRemoveTrigger:"), EventArgs ("HMHomeTrigger")]
void DidRemoveTrigger (HMHome home, HMTrigger trigger);
[Export ("home:didUpdateNameForTrigger:"), EventArgs ("HMHomeTrigger")]
void DidUpdateNameForTrigger (HMHome home, HMTrigger trigger);
[Export ("home:didUpdateTrigger:"), EventArgs ("HMHomeTrigger")]
void DidUpdateTrigger (HMHome home, HMTrigger trigger);
[Export ("home:didUnblockAccessory:"), EventArgs ("HMHomeAccessory")]
void DidUnblockAccessory (HMHome home, HMAccessory accessory);
[Export ("home:didEncounterError:forAccessory:"), EventArgs ("HMHomeErrorAccessory")]
void DidEncounterError (HMHome home, NSError error, HMAccessory accessory);
[Watch (4,0), TV (11,0), iOS (11,0)]
[Export ("home:didUpdateHomeHubState:"), EventArgs ("HMHomeHubState")]
void DidUpdateHomeHubState (HMHome home, HMHomeHubState homeHubState);
[Watch (6,1), TV (13,2), iOS (13,2)]
[Export ("homeDidUpdateSupportedFeatures:")]
void DidUpdateSupportedFeatures (HMHome home);
}
[TV (10,0)]
[iOS (8,0)]
[DisableDefaultCtor]
[BaseType (typeof (NSObject))]
partial interface HMRoom {
[Export ("name")]
string Name { get; }
[Export ("accessories", ArgumentSemantic.Copy)]
HMAccessory [] Accessories { get; }
[NoTV]
[NoWatch]
[Async]
[Export ("updateName:completionHandler:")]
void UpdateName (string name, Action<NSError> completion);
[iOS (9,0)]
[Export ("uniqueIdentifier", ArgumentSemantic.Copy)]
NSUuid UniqueIdentifier { get; }
}
[TV (10,0)]
[iOS (8,0)]
[BaseType (typeof (NSObject))]
partial interface HMService {
[Export ("accessory", ArgumentSemantic.Weak)]
HMAccessory Accessory { get; }
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Export ("serviceType", ArgumentSemantic.Copy)]
NSString WeakServiceType { get; }
[Wrap ("HMServiceTypeExtensions.GetValue (WeakServiceType)")]
HMServiceType ServiceType { get; }
[Export ("name")]
string Name { get; }
[Export ("associatedServiceType")]
string AssociatedServiceType { get; }
[Export ("characteristics", ArgumentSemantic.Copy)]
HMCharacteristic [] Characteristics { get; }
[NoTV]
[NoWatch]
[Async]
[Export ("updateName:completionHandler:")]
void UpdateName (string name, Action<NSError> completion);
[NoTV]
[NoWatch]
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Async]
[Export ("updateAssociatedServiceType:completionHandler:")]
void UpdateAssociatedServiceType ([NullAllowed] string serviceType, Action<NSError> completion);
[iOS (9,0)]
[Export ("userInteractive")]
bool UserInteractive { [Bind ("isUserInteractive")] get; }
[iOS (9,0)]
[Export ("localizedDescription")]
string LocalizedDescription { get; }
[iOS (9,0)]
[Export ("uniqueIdentifier", ArgumentSemantic.Copy)]
NSUuid UniqueIdentifier { get; }
[Watch (3,0), iOS (10,0)]
[Export ("primaryService")]
bool PrimaryService { [Bind ("isPrimaryService")] get; }
[Watch (3,0), iOS (10,0)]
[NullAllowed, Export ("linkedServices", ArgumentSemantic.Copy)]
HMService[] LinkedServices { get; }
}
[TV (10,0)]
[iOS (8,0)]
[DisableDefaultCtor]
[BaseType (typeof (NSObject))]
partial interface HMServiceGroup {
[Export ("name")]
string Name { get; }
[Export ("services", ArgumentSemantic.Copy)]
HMService [] Services { get; }
[NoTV]
[NoWatch]
[Async]
[Export ("updateName:completionHandler:")]
void UpdateName (string name, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("addService:completionHandler:")]
void AddService (HMService service, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("removeService:completionHandler:")]
void RemoveService (HMService service, Action<NSError> completion);
[iOS (9,0)]
[Export ("uniqueIdentifier", ArgumentSemantic.Copy)]
NSUuid UniqueIdentifier { get; }
}
[TV (10,0)]
[iOS (8,0)]
[DisableDefaultCtor]
[BaseType (typeof (HMTrigger))]
partial interface HMTimerTrigger {
[NoTV]
[NoWatch]
[DesignatedInitializer]
[Export ("initWithName:fireDate:timeZone:recurrence:recurrenceCalendar:")]
IntPtr Constructor (string name, NSDate fireDate, [NullAllowed] NSTimeZone timeZone, [NullAllowed] NSDateComponents recurrence, [NullAllowed] NSCalendar recurrenceCalendar);
[Export ("fireDate", ArgumentSemantic.Copy)]
NSDate FireDate { get; }
[Export ("timeZone", ArgumentSemantic.Copy)]
NSTimeZone TimeZone { get; }
[Export ("recurrence", ArgumentSemantic.Copy)]
NSDateComponents Recurrence { get; }
[Export ("recurrenceCalendar", ArgumentSemantic.Copy)]
NSCalendar RecurrenceCalendar { get; }
[NoTV]
[NoWatch]
[Async]
[Export ("updateFireDate:completionHandler:")]
void UpdateFireDate (NSDate fireDate, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("updateTimeZone:completionHandler:")]
void UpdateTimeZone ([NullAllowed] NSTimeZone timeZone, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("updateRecurrence:completionHandler:")]
void UpdateRecurrence ([NullAllowed] NSDateComponents recurrence, Action<NSError> completion);
}
[TV (10,0)]
[iOS (8,0)]
[DisableDefaultCtor]
[BaseType (typeof (NSObject))]
partial interface HMTrigger {
[Export ("name")]
string Name { get; }
[Export ("enabled")]
bool Enabled { [Bind ("isEnabled")] get; }
[Export ("actionSets", ArgumentSemantic.Copy)]
HMActionSet [] ActionSets { get; }
[Export ("lastFireDate", ArgumentSemantic.Copy)]
NSDate LastFireDate { get; }
[NoTV]
[NoWatch]
[Async]
[Export ("updateName:completionHandler:")]
void UpdateName (string name, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("addActionSet:completionHandler:")]
void AddActionSet (HMActionSet actionSet, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("removeActionSet:completionHandler:")]
void RemoveActionSet (HMActionSet actionSet, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("enable:completionHandler:")]
void Enable (bool enable, Action<NSError> completion);
[iOS (9,0)]
[Export ("uniqueIdentifier", ArgumentSemantic.Copy)]
NSUuid UniqueIdentifier { get; }
}
[TV (10,0)]
[iOS (8,0)]
[DisableDefaultCtor]
[BaseType (typeof (NSObject))]
partial interface HMZone {
[Export ("name")]
string Name { get; }
[Export ("rooms", ArgumentSemantic.Copy)]
HMRoom [] Rooms { get; }
[NoTV]
[NoWatch]
[Async]
[Export ("updateName:completionHandler:")]
void UpdateName (string name, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("addRoom:completionHandler:")]
void AddRoom (HMRoom room, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("removeRoom:completionHandler:")]
void RemoveRoom (HMRoom room, Action<NSError> completion);
[iOS (9,0)]
[Export ("uniqueIdentifier", ArgumentSemantic.Copy)]
NSUuid UniqueIdentifier { get; }
}
[Static, Internal]
[iOS (8,0)]
[TV (10,0)]
interface HMCharacteristicMetadataFormatKeys {
[Field ("HMCharacteristicMetadataFormatBool")]
NSString _Bool { get; }
[Field ("HMCharacteristicMetadataFormatInt")]
NSString _Int { get; }
[Field ("HMCharacteristicMetadataFormatFloat")]
NSString _Float { get; }
[Field ("HMCharacteristicMetadataFormatString")]
NSString _String { get; }
[Field ("HMCharacteristicMetadataFormatArray")]
NSString _Array { get; }
[Field ("HMCharacteristicMetadataFormatDictionary")]
NSString _Dictionary { get; }
[Field ("HMCharacteristicMetadataFormatUInt8")]
NSString _UInt8 { get; }
[Field ("HMCharacteristicMetadataFormatUInt16")]
NSString _UInt16 { get; }
[Field ("HMCharacteristicMetadataFormatUInt32")]
NSString _UInt32 { get; }
[Field ("HMCharacteristicMetadataFormatUInt64")]
NSString _UInt64 { get; }
[Field ("HMCharacteristicMetadataFormatData")]
NSString _Data { get; }
[Field ("HMCharacteristicMetadataFormatTLV8")]
NSString _Tlv8 { get; }
}
[TV (10,0)]
[iOS (8,0)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface HMUser {
[Export ("name")]
string Name { get; }
[iOS (9,0)]
[Export ("uniqueIdentifier", ArgumentSemantic.Copy)]
NSUuid UniqueIdentifier { get; }
}
[TV (10,0)]
[iOS (9,0)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor] // NSInternalInconsistencyException Reason: init is unavailable
interface HMAccessoryCategory {
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Export ("categoryType")]
NSString WeakCategoryType { get; }
[Wrap ("HMAccessoryCategoryTypeExtensions.GetValue (WeakCategoryType)")]
HMAccessoryCategoryType CategoryType { get; }
[Export ("localizedDescription")]
string LocalizedDescription { get; }
}
[TV (10,0)]
[iOS (9,0)]
[BaseType (typeof (HMEvent))]
[DisableDefaultCtor]
interface HMCharacteristicEvent : NSMutableCopying {
[NoTV]
[NoWatch]
[Export ("initWithCharacteristic:triggerValue:")]
IntPtr Constructor (HMCharacteristic characteristic, [NullAllowed] INSCopying triggerValue);
[Export ("characteristic", ArgumentSemantic.Strong)]
HMCharacteristic Characteristic { get; [NotImplemented] set; }
[NullAllowed]
[Export ("triggerValue", ArgumentSemantic.Copy)]
INSCopying TriggerValue { get; [NotImplemented] set; }
[Deprecated (PlatformName.iOS, 11, 0)]
[NoTV]
[NoWatch]
[Async]
[Export ("updateTriggerValue:completionHandler:")]
void UpdateTriggerValue ([NullAllowed] INSCopying triggerValue, Action<NSError> completion);
}
[TV (10,0)]
[iOS (9,0)]
[BaseType (typeof (NSObject))]
interface HMEvent {
[Export ("uniqueIdentifier", ArgumentSemantic.Copy)]
NSUuid UniqueIdentifier { get; }
[Watch (4,0), TV (11,0), iOS (11,0)]
[Static]
[Export ("isSupportedForHome:")]
bool IsSupported (HMHome home);
}
[Watch (4,0), TV (11,0), iOS (11,0)]
[BaseType (typeof (HMEvent))]
interface HMTimeEvent {}
[TV (10,0)]
[iOS (9,0)]
[BaseType (typeof (HMTrigger))]
[DisableDefaultCtor]
interface HMEventTrigger {
[NoTV]
[NoWatch]
[Export ("initWithName:events:predicate:")]
IntPtr Constructor (string name, HMEvent[] events, [NullAllowed] NSPredicate predicate);
[NoTV]
[NoWatch]
[iOS (11,0)]
[Export ("initWithName:events:endEvents:recurrences:predicate:")]
IntPtr Constructor (string name, HMEvent[] events, [NullAllowed] HMEvent[] endEvents, [NullAllowed] NSDateComponents[] recurrences, [NullAllowed] NSPredicate predicate);
[Export ("events", ArgumentSemantic.Copy)]
HMEvent[] Events { get; }
[Watch (4, 0), TV (11, 0), iOS (11, 0)]
[Export ("endEvents", ArgumentSemantic.Copy)]
HMEvent[] EndEvents { get; }
[NullAllowed, Export ("predicate", ArgumentSemantic.Copy)]
NSPredicate Predicate { get; }
[Watch (4, 0), TV (11, 0), iOS (11, 0)]
[NullAllowed, Export ("recurrences", ArgumentSemantic.Copy)]
NSDateComponents[] Recurrences { get; }
[Watch (4, 0), TV (11, 0), iOS (11, 0)]
[Export ("executeOnce")]
bool ExecuteOnce { get; }
[Watch (4, 0), TV (11, 0), iOS (11, 0)]
[Export ("triggerActivationState", ArgumentSemantic.Assign)]
HMEventTriggerActivationState TriggerActivationState { get; }
[Static][Internal]
[Export ("predicateForEvaluatingTriggerOccurringBeforeSignificantEvent:applyingOffset:")]
NSPredicate CreatePredicateForEvaluatingTriggerOccurringBeforeSignificantEvent (NSString significantEvent, [NullAllowed] NSDateComponents offset);
[Watch (4,0), TV (11,0), iOS (11,0)]
[Static]
[Export ("predicateForEvaluatingTriggerOccurringBeforeSignificantEvent:")]
NSPredicate CreatePredicateForEvaluatingTriggerOccurringBeforeSignificantEvent (HMSignificantTimeEvent significantEvent);
[Static][Internal]
[Export ("predicateForEvaluatingTriggerOccurringAfterSignificantEvent:applyingOffset:")]
NSPredicate CreatePredicateForEvaluatingTriggerOccurringAfterSignificantEvent (NSString significantEvent, [NullAllowed] NSDateComponents offset);
[Watch (4,0), TV (11,0), iOS (11,0)]
[Static]
[Export ("predicateForEvaluatingTriggerOccurringAfterSignificantEvent:")]
NSPredicate CreatePredicateForEvaluatingTriggerOccurringAfterSignificantEvent (HMSignificantTimeEvent significantEvent);
[Watch (4,0), TV (11,0), iOS (11,0)]
[Static]
[Export ("predicateForEvaluatingTriggerOccurringBetweenSignificantEvent:secondSignificantEvent:")]
NSPredicate CreatePredicateForEvaluatingTriggerOccurringBetweenSignificantEvent (HMSignificantTimeEvent firstSignificantEvent, HMSignificantTimeEvent secondSignificantEvent);
[Static]
[Export ("predicateForEvaluatingTriggerOccurringBeforeDateWithComponents:")]
NSPredicate CreatePredicateForEvaluatingTriggerOccurringBeforeDate (NSDateComponents dateComponents);
[Static]
[Export ("predicateForEvaluatingTriggerOccurringOnDateWithComponents:")]
NSPredicate CreatePredicateForEvaluatingTriggerOccurringOnDate (NSDateComponents dateComponents);
[Static]
[Export ("predicateForEvaluatingTriggerOccurringAfterDateWithComponents:")]
NSPredicate CreatePredicateForEvaluatingTriggerOccurringAfterDate (NSDateComponents dateComponents);
[Watch (4,0), TV (11,0), iOS (11,0)]
[Static]
[Export ("predicateForEvaluatingTriggerOccurringBetweenDateWithComponents:secondDateWithComponents:")]
NSPredicate CreatePredicateForEvaluatingTriggerOccurringBetweenDates (NSDateComponents firstDateComponents, NSDateComponents secondDateComponents);
[Static]
[Export ("predicateForEvaluatingTriggerWithCharacteristic:relatedBy:toValue:")]
NSPredicate CreatePredicateForEvaluatingTrigger (HMCharacteristic characteristic, NSPredicateOperatorType operatorType, NSObject value);
[Watch (4,0), TV (11,0), iOS (11,0)]
[Static]
[Export ("predicateForEvaluatingTriggerWithPresence:")]
NSPredicate CreatePredicateForEvaluatingTrigger (HMPresenceEvent presenceEvent);
[NoTV]
[NoWatch]
[Deprecated (PlatformName.iOS, 11, 0, message: "Use 'UpdateEvents' instead.")]
[Async]
[Export ("addEvent:completionHandler:")]
void AddEvent (HMEvent @event, Action<NSError> completion);
[NoTV]
[NoWatch]
[Deprecated (PlatformName.iOS, 11, 0, message: "Use 'UpdateEvents' instead.")]
[Async]
[Export ("removeEvent:completionHandler:")]
void RemoveEvent (HMEvent @event, Action<NSError> completion);
[NoTV]
[NoWatch]
[iOS (11,0)]
[Async]
[Export ("updateEvents:completionHandler:")]
void UpdateEvents (HMEvent[] events, Action<NSError> completion);
[NoTV]
[NoWatch]
[iOS (11,0)]
[Async]
[Export ("updateEndEvents:completionHandler:")]
void UpdateEndEvents (HMEvent[] endEvents, Action<NSError> completion);
[NoTV]
[NoWatch]
[Async]
[Export ("updatePredicate:completionHandler:")]
void UpdatePredicate ([NullAllowed] NSPredicate predicate, Action<NSError> completion);
[NoTV]
[NoWatch]
[iOS (11,0)]
[Async]
[Export ("updateRecurrences:completionHandler:")]
void UpdateRecurrences ([NullAllowed] NSDateComponents[] recurrences, Action<NSError> completion);
[NoTV]
[NoWatch]
[iOS (11,0)]
[Async]
[Export ("updateExecuteOnce:completionHandler:")]
void UpdateExecuteOnce (bool executeOnce, Action<NSError> completion);
}
[iOS (9,0)]
[TV (10,0)]
[BaseType (typeof (HMAccessControl))]
[DisableDefaultCtor]
interface HMHomeAccessControl {
[Export ("administrator")]
bool Administrator { [Bind ("isAdministrator")] get; }
}
[iOS (9,0)]
[TV (10,0)]
[BaseType (typeof (HMEvent))]
[DisableDefaultCtor]
interface HMLocationEvent : NSMutableCopying {
[NoTV]
[NoWatch]
[Export ("initWithRegion:")]
IntPtr Constructor (CLRegion region);
[NullAllowed, Export ("region", ArgumentSemantic.Strong)]
CLRegion Region { get; [NotImplemented] set; }
[NoTV]
[NoWatch]
[Deprecated (PlatformName.iOS, 11, 0)]
[Async]
[Export ("updateRegion:completionHandler:")]
void UpdateRegion (CLRegion region, Action<NSError> completion);
}
[Watch (4,0), TV (11,0), iOS (11,0)]
[BaseType (typeof(HMLocationEvent))]
[DisableDefaultCtor]
interface HMMutableLocationEvent {
[Export ("initWithRegion:")]
IntPtr Constructor (CLRegion region);
[Override]
[NullAllowed, Export ("region", ArgumentSemantic.Strong)]
CLRegion Region { get; set; }
}
[NoWatch]
[TV (10,0), iOS (10,0)]
[BaseType (typeof(UIView))]
interface HMCameraView
{
// inlined ctor
[Export ("initWithFrame:")]
IntPtr Constructor (CGRect frame);
[NullAllowed, Export ("cameraSource", ArgumentSemantic.Strong)]
HMCameraSource CameraSource { get; set; }
}
[Watch (3,0), TV (10,0), iOS (10,0)]
[Abstract] // documented as such in header file
[BaseType (typeof(NSObject))]
interface HMCameraSource {}
[Watch (3,0), TV (10,0), iOS (10,0)]
[BaseType (typeof(HMAccessoryProfile))]
[DisableDefaultCtor]
interface HMCameraProfile
{
[NullAllowed, Export ("streamControl", ArgumentSemantic.Strong)]
HMCameraStreamControl StreamControl { get; }
[NullAllowed, Export ("snapshotControl", ArgumentSemantic.Strong)]
HMCameraSnapshotControl SnapshotControl { get; }
[NullAllowed, Export ("settingsControl", ArgumentSemantic.Strong)]
HMCameraSettingsControl SettingsControl { get; }
[NullAllowed, Export ("speakerControl", ArgumentSemantic.Strong)]
HMCameraAudioControl SpeakerControl { get; }
[NullAllowed, Export ("microphoneControl", ArgumentSemantic.Strong)]
HMCameraAudioControl MicrophoneControl { get; }
}
[Watch (3,0), TV (10,0), iOS (10,0)]
[BaseType (typeof(NSObject))]
interface HMCameraControl {}
[Watch (3,0), TV (10,0), iOS (10,0)]
[BaseType (typeof(HMCameraControl))]
interface HMCameraStreamControl
{
[NullAllowed, Export ("delegate", ArgumentSemantic.Weak)]
IHMCameraStreamControlDelegate Delegate { get; set; }
[Export ("streamState", ArgumentSemantic.Assign)]
HMCameraStreamState StreamState { get; }
[NullAllowed, Export ("cameraStream", ArgumentSemantic.Strong)]
HMCameraStream CameraStream { get; }
[Export ("startStream")]
void StartStream ();
[Export ("stopStream")]
void StopStream ();
}
interface IHMCameraStreamControlDelegate {}
[Watch (3,0), TV (10,0), iOS (10,0)]
[Protocol, Model]
[BaseType (typeof(NSObject))]
interface HMCameraStreamControlDelegate
{
[Export ("cameraStreamControlDidStartStream:")]
void DidStartStream (HMCameraStreamControl cameraStreamControl);
[Export ("cameraStreamControl:didStopStreamWithError:")]
void DidStopStream (HMCameraStreamControl cameraStreamControl, [NullAllowed] NSError error);
}
// TODO: Type still available for tvOS even if everything in it is __TVOS_PROHIBITED.
[Watch (3,0), TV (10,0), iOS (10,0)]
[BaseType (typeof(HMCameraSource))]
interface HMCameraStream
{
[NoTV]
[Export ("audioStreamSetting", ArgumentSemantic.Assign)]
HMCameraAudioStreamSetting AudioStreamSetting { get; }
[NoTV]
[Async]
[Export ("updateAudioStreamSetting:completionHandler:")]
void UpdateAudioStreamSetting (HMCameraAudioStreamSetting audioStreamSetting, Action<NSError> completion);
}
[Watch (3,0), TV (10,0), iOS (10,0)]
[BaseType (typeof(HMCameraControl))]
interface HMCameraSnapshotControl
{
[NullAllowed, Export ("delegate", ArgumentSemantic.Weak)]
IHMCameraSnapshotControlDelegate Delegate { get; set; }
[NullAllowed, Export ("mostRecentSnapshot", ArgumentSemantic.Strong)]
HMCameraSnapshot MostRecentSnapshot { get; }
[Export ("takeSnapshot")]
void TakeSnapshot ();
}
interface IHMCameraSnapshotControlDelegate {}
[Watch (3,0), TV (10,0), iOS (10,0)]
[Protocol, Model]
[BaseType (typeof(NSObject))]
interface HMCameraSnapshotControlDelegate
{
[Export ("cameraSnapshotControl:didTakeSnapshot:error:")]
void DidTakeSnapshot (HMCameraSnapshotControl cameraSnapshotControl, [NullAllowed] HMCameraSnapshot snapshot, [NullAllowed] NSError error);
[iOS (10,1)][Watch (3,1)][TV (10,1)]
[Export ("cameraSnapshotControlDidUpdateMostRecentSnapshot:")]
void DidUpdateMostRecentSnapshot (HMCameraSnapshotControl cameraSnapshotControl);
}
[Watch (3,0), TV (10,0), iOS (10,0)]
[BaseType (typeof(HMCameraSource))]
interface HMCameraSnapshot
{
[Export ("captureDate", ArgumentSemantic.Copy)]
NSDate CaptureDate { get; }
}
[Watch (3,0), TV (10,0), iOS (10,0)]
[BaseType (typeof(HMCameraControl))]
[DisableDefaultCtor]
interface HMCameraSettingsControl
{
[NullAllowed, Export ("nightVision", ArgumentSemantic.Strong)]
HMCharacteristic NightVision { get; }
[NullAllowed, Export ("currentHorizontalTilt", ArgumentSemantic.Strong)]
HMCharacteristic CurrentHorizontalTilt { get; }
[NullAllowed, Export ("targetHorizontalTilt", ArgumentSemantic.Strong)]
HMCharacteristic TargetHorizontalTilt { get; }
[NullAllowed, Export ("currentVerticalTilt", ArgumentSemantic.Strong)]
HMCharacteristic CurrentVerticalTilt { get; }
[NullAllowed, Export ("targetVerticalTilt", ArgumentSemantic.Strong)]
HMCharacteristic TargetVerticalTilt { get; }
[NullAllowed, Export ("opticalZoom", ArgumentSemantic.Strong)]
HMCharacteristic OpticalZoom { get; }
[NullAllowed, Export ("digitalZoom", ArgumentSemantic.Strong)]
HMCharacteristic DigitalZoom { get; }
[NullAllowed, Export ("imageRotation", ArgumentSemantic.Strong)]
HMCharacteristic ImageRotation { get; }
[NullAllowed, Export ("imageMirroring", ArgumentSemantic.Strong)]
HMCharacteristic ImageMirroring { get; }
}
[Watch (3,0), TV (10,0), iOS (10,0)]
[BaseType (typeof(HMCameraControl))]
[DisableDefaultCtor]
interface HMCameraAudioControl
{
[NullAllowed, Export ("mute", ArgumentSemantic.Strong)]
HMCharacteristic Mute { get; }
[NullAllowed, Export ("volume", ArgumentSemantic.Strong)]
HMCharacteristic Volume { get; }
}
[Watch (4,0), TV (11,0), iOS (11,0)]
[BaseType (typeof(HMTimeEvent))]
[DisableDefaultCtor]
interface HMCalendarEvent : NSMutableCopying {
[Export ("initWithFireDateComponents:")]
IntPtr Constructor (NSDateComponents fireDateComponents);
[Export ("fireDateComponents", ArgumentSemantic.Strong)]
NSDateComponents FireDateComponents { get; [NotImplemented] set; }
}
[Watch (4,0), TV (11,0), iOS (11,0)]
[BaseType (typeof(HMCalendarEvent))]
[DisableDefaultCtor]
interface HMMutableCalendarEvent {
[Export ("initWithFireDateComponents:")]
IntPtr Constructor (NSDateComponents fireDateComponents);
[Override]
[Export ("fireDateComponents", ArgumentSemantic.Strong)]
NSDateComponents FireDateComponents { get; set; }
}
[Watch (4,0), TV (11,0), iOS (11,0)]
[BaseType (typeof(HMCharacteristicEvent))]
[DisableDefaultCtor]
interface HMMutableCharacteristicEvent : NSMutableCopying {
[Export ("initWithCharacteristic:triggerValue:")]
IntPtr Constructor (HMCharacteristic characteristic, [NullAllowed] INSCopying triggerValue);
[Override]
[Export ("characteristic", ArgumentSemantic.Strong)]
HMCharacteristic Characteristic { get; set; }
[Override]
[NullAllowed, Export ("triggerValue", ArgumentSemantic.Copy)]
INSCopying TriggerValue { get; set; }
}
[Watch (4,0), TV (11,0), iOS (11,0)]
[BaseType (typeof(HMEvent))]
[DisableDefaultCtor]
interface HMCharacteristicThresholdRangeEvent : NSMutableCopying {
[Export ("initWithCharacteristic:thresholdRange:")]
IntPtr Constructor (HMCharacteristic characteristic, HMNumberRange thresholdRange);
[Export ("characteristic", ArgumentSemantic.Strong)]
HMCharacteristic Characteristic { get; [NotImplemented] set; }
[Export ("thresholdRange", ArgumentSemantic.Copy)]
HMNumberRange ThresholdRange { get; [NotImplemented] set; }
}
[Watch (4,0), TV (11,0), iOS (11,0)]
[BaseType (typeof(HMCharacteristicThresholdRangeEvent))]
[DisableDefaultCtor]
interface HMMutableCharacteristicThresholdRangeEvent {
[Export ("initWithCharacteristic:thresholdRange:")]
IntPtr Constructor (HMCharacteristic characteristic, HMNumberRange thresholdRange);
[Override]
[Export ("characteristic", ArgumentSemantic.Strong)]
HMCharacteristic Characteristic { get; set; }
[Override]
[Export ("thresholdRange", ArgumentSemantic.Copy)]
HMNumberRange ThresholdRange { get; set; }
}
[Watch (4,0), TV (11,0), iOS (11,0)]
[BaseType (typeof(HMTimeEvent))]
[DisableDefaultCtor]
interface HMDurationEvent : NSMutableCopying {
[Export ("initWithDuration:")]
IntPtr Constructor (double duration);
[Export ("duration")]
double Duration { get; [NotImplemented] set; }
}
[Watch (4,0), TV (11,0), iOS (11,0)]
[BaseType (typeof(HMDurationEvent))]
[DisableDefaultCtor]
interface HMMutableDurationEvent {
[Export ("initWithDuration:")]
IntPtr Constructor (double duration);
[Override]
[Export ("duration")]
double Duration { get; set; }
}
[Watch (4,0), TV (11,0), iOS (11,0)]
[BaseType (typeof(NSObject))]
[DisableDefaultCtor]
interface HMNumberRange {
[Static]
[Export ("numberRangeWithMinValue:maxValue:")]
HMNumberRange FromRange (NSNumber minValue, NSNumber maxValue);
[Static]
[Export ("numberRangeWithMinValue:")]
HMNumberRange FromMin (NSNumber minValue);
[Static]
[Export ("numberRangeWithMaxValue:")]
HMNumberRange FromMax (NSNumber maxValue);
[NullAllowed, Export ("minValue", ArgumentSemantic.Strong)]
NSNumber Min { get; }
[NullAllowed, Export ("maxValue", ArgumentSemantic.Strong)]
NSNumber Max { get; }
}
[iOS (13,0), NoWatch, NoMac, NoTV]
[BaseType (typeof(NSObject))]
[DisableDefaultCtor]
interface HMAccessoryOwnershipToken {
[Export("initWithData:")]
IntPtr Constructor (NSData data);
}
[iOS (13,0), NoWatch, NoMac, NoTV]
[NoMacCatalyst]
[BaseType (typeof(NSObject))]
[DisableDefaultCtor]
interface HMAddAccessoryRequest {
[Export ("home", ArgumentSemantic.Strong)]
HMHome Home { get; }
[Export ("accessoryCategory", ArgumentSemantic.Strong)]
HMAccessoryCategory AccessoryCategory { get; }
[Export ("accessoryName")]
string AccessoryName { get; }
[Export ("requiresSetupPayloadURL")]
bool RequiresSetupPayloadUrl { get; }
#if false
// marked as deprecated in tvOS headers (where the type does not exists)
// https://github.com/xamarin/maccore/issues/1959
[Export ("requiresOwnershipToken")]
bool RequiresOwnershipToken { get; }
#endif
[Export ("payloadWithOwnershipToken:")]
[return: NullAllowed]
HMAccessorySetupPayload GetPayload (HMAccessoryOwnershipToken ownershipToken);
[Export ("payloadWithURL:ownershipToken:")]
[return: NullAllowed]
HMAccessorySetupPayload GetPayload (NSUrl setupPayloadUrl, HMAccessoryOwnershipToken ownershipToken);
}
[iOS (13,0), Watch (6,0), TV (13,0), NoMac]
[BaseType (typeof(HMAccessoryProfile))]
[DisableDefaultCtor]
interface HMNetworkConfigurationProfile {
[Wrap ("WeakDelegate")]
[NullAllowed]
IHMNetworkConfigurationProfileDelegate Delegate { get; set; }
[NullAllowed, Export ("delegate", ArgumentSemantic.Weak)]
NSObject WeakDelegate { get; set; }
[Export ("networkAccessRestricted")]
bool NetworkAccessRestricted { [Bind ("isNetworkAccessRestricted")] get; }
}
interface IHMNetworkConfigurationProfileDelegate {}
[Watch (6,0), TV (13,0), NoMac, iOS (13,0)]
[Protocol, Model (AutoGeneratedName = true)]
[BaseType (typeof (NSObject))]
interface HMNetworkConfigurationProfileDelegate {
[Export ("profileDidUpdateNetworkAccessMode:")]
void DidUpdateNetworkAccessMode (HMNetworkConfigurationProfile profile);
}
[NoWatch, NoTV, iOS (11,3)]
[BaseType (typeof(NSObject))]
[DisableDefaultCtor]
interface HMAccessorySetupPayload {
[Export ("initWithURL:")]
IntPtr Constructor ([NullAllowed] NSUrl setupPayloadUrl);
[iOS (13,0)]
[Export ("initWithURL:ownershipToken:")]
[DesignatedInitializer]
IntPtr Constructor (NSUrl setupPayloadUrl, [NullAllowed] HMAccessoryOwnershipToken ownershipToken);
}
[Watch (4,0), TV (11,0), iOS (11,0)]
[BaseType (typeof(HMEvent))]
[DisableDefaultCtor]
interface HMPresenceEvent : NSMutableCopying {
[Export ("initWithPresenceEventType:presenceUserType:")]
IntPtr Constructor (HMPresenceEventType presenceEventType, HMPresenceEventUserType presenceUserType);
[Export ("presenceEventType")]
HMPresenceEventType PresenceEventType { get; [NotImplemented] set; }
[Export ("presenceUserType")]
HMPresenceEventUserType PresenceUserType { get; [NotImplemented] set; }
[Field ("HMPresenceKeyPath")]
NSString KeyPath { get; }
}
[Watch (4,0), TV (11,0), iOS (11,0)]
[BaseType (typeof(HMPresenceEvent))]
[DisableDefaultCtor]
interface HMMutablePresenceEvent {
[Export ("presenceEventType", ArgumentSemantic.Assign)]
HMPresenceEventType PresenceEventType { get; /* Radar 33883958: https://trello.com/c/TIlzWzrL*/ [NotImplemented] set; }
[Export ("presenceUserType", ArgumentSemantic.Assign)]
HMPresenceEventUserType PresenceUserType { get; /* Radar 33883958: https://trello.com/c/TIlzWzrL*/ [NotImplemented] set; }
}
[Watch (4,0), TV (11,0), iOS (11,0)]
[BaseType (typeof(HMTimeEvent))]
[DisableDefaultCtor]
interface HMSignificantTimeEvent : NSMutableCopying {
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Export ("initWithSignificantEvent:offset:")]
IntPtr Constructor (NSString significantEvent, [NullAllowed] NSDateComponents offset);
[Wrap ("this (HMSignificantEventExtensions.GetConstant (significantEvent)!, offset)")]
IntPtr Constructor (HMSignificantEvent significantEvent, [NullAllowed] NSDateComponents offset);
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Export ("significantEvent", ArgumentSemantic.Strong)]
NSString WeakSignificantEvent { get; [NotImplemented] set; }
HMSignificantEvent SignificantEvent {
[Wrap ("HMSignificantEventExtensions.GetValue (WeakSignificantEvent)")]
get;
[NotImplemented]
set;
}
// subclass does not allow null
[Export ("offset", ArgumentSemantic.Strong)]
NSDateComponents Offset { get; [NotImplemented] set; }
}
[Watch (4,0), TV (11,0), iOS (11,0)]
[BaseType (typeof(HMSignificantTimeEvent))]
interface HMMutableSignificantTimeEvent {
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Export ("initWithSignificantEvent:offset:")]
IntPtr Constructor (NSString significantEvent, [NullAllowed] NSDateComponents offset);
[Wrap ("this (HMSignificantEventExtensions.GetConstant (significantEvent)!, offset)")]
IntPtr Constructor (HMSignificantEvent significantEvent, [NullAllowed] NSDateComponents offset);
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Override]
[Export ("significantEvent", ArgumentSemantic.Strong)]
NSString WeakSignificantEvent { get; set; }
#if XAMCORE_4_0
[Override]
#endif
HMSignificantEvent SignificantEvent {
[Wrap ("HMSignificantEventExtensions.GetValue (WeakSignificantEvent)")]
get;
[Wrap ("WeakSignificantEvent = HMSignificantEventExtensions.GetConstant (value)!")]
set;
}
[Override]
[Export ("offset", ArgumentSemantic.Strong)]
NSDateComponents Offset { get; set; }
}
[Watch (4,2), TV (11,2), iOS (11,2)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface HMAccessControl {
}
}