Xamarin.WatchOS SDK API diff: 11.12.0 vs 11.99.2

Xamarin.WatchOS.dll

Namespace AVFoundation

Type Changed: AVFoundation.AVAudioSession

Added properties:

public virtual AVAudioSessionRecordPermission RecordPermission { get; }
public virtual AVAudioSessionRouteSharingPolicy RouteSharingPolicy { get; }
public static Foundation.NSString VoicePrompt { get; }

Added methods:

public virtual void Activate (AVAudioSessionActivationOptions options, System.Action<System.Boolean,Foundation.NSError> handler);
public virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> ActivateAsync (AVAudioSessionActivationOptions options);
public virtual bool SetCategory (string category, string mode, AVAudioSessionRouteSharingPolicy policy, AVAudioSessionCategoryOptions options, out Foundation.NSError outError);

New Type: AVFoundation.AVAudioSessionActivationOptions

[Serializable]
[Flags]
public enum AVAudioSessionActivationOptions {
	None = 0,
}

New Type: AVFoundation.AVAudioSessionRecordPermission

[Serializable]
public enum AVAudioSessionRecordPermission {
	Denied = 1684369017,
	Granted = 1735552628,
	Undetermined = 1970168948,
}

New Type: AVFoundation.AVAudioSessionRouteSharingPolicy

[Serializable]
public enum AVAudioSessionRouteSharingPolicy {
	Default = 0,
	Independent = 2,
	LongForm = 1,
}

Namespace AudioToolbox

Type Changed: AudioToolbox.AudioChannelLabel

Added values:

BinauralLeft = 208,
BinauralRight = 209,

New Type: AudioToolbox.AudioChannelLabelExtensions

public static class AudioChannelLabelExtensions {
	// methods
	public static bool IsReserved (this AudioChannelLabel value);
}

Namespace ClockKit

Type Changed: ClockKit.CLKComplicationTimelineEntry

Removed method:

protected override void Dispose (bool disposing);

Type Changed: ClockKit.CLKImageProvider

Removed method:

protected override void Dispose (bool disposing);

Type Changed: ClockKit.CLKRelativeDateStyle

Added value:

NaturalAbbreviated = 3,

Type Changed: ClockKit.CLKTextProvider

Removed method:

protected override void Dispose (bool disposing);

Namespace CloudKit

Type Changed: CloudKit.CKFetchRecordZoneChangesOperation

Added constructor:

public CKFetchRecordZoneChangesOperation (CKRecordZoneID[] recordZoneIDs, Foundation.NSDictionary<CKRecordZoneID,CloudKit.CKFetchRecordZoneChangesConfiguration> configurationsByRecordZoneID);

Added property:

public virtual Foundation.NSDictionary<CKRecordZoneID,CloudKit.CKFetchRecordZoneChangesConfiguration> ConfigurationsByRecordZoneID { get; set; }

Type Changed: CloudKit.CKShareMetadata

Added property:

public virtual CKShareParticipantRole ParticipantRole { get; }

Type Changed: CloudKit.CKShareParticipant

Added property:

public virtual CKShareParticipantRole Role { get; set; }

New Type: CloudKit.CKFetchRecordZoneChangesConfiguration

public class CKFetchRecordZoneChangesConfiguration : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchRecordZoneChangesConfiguration ();
	public CKFetchRecordZoneChangesConfiguration (Foundation.NSCoder coder);
	protected CKFetchRecordZoneChangesConfiguration (Foundation.NSObjectFlag t);
	protected CKFetchRecordZoneChangesConfiguration (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string[] DesiredKeys { get; set; }
	public virtual CKServerChangeToken PreviousServerChangeToken { get; set; }
	public virtual uint ResultsLimit { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: CloudKit.CKShareParticipantRole

[Serializable]
public enum CKShareParticipantRole {
	Owner = 1,
	PrivateUser = 3,
	PublicUser = 4,
	Unknown = 0,
}

Namespace Contacts

Type Changed: Contacts.CNContact

Added methods:

public static Foundation.NSPredicate GetPredicateForContacts (CNPhoneNumber phoneNumber);
public static Foundation.NSPredicate GetPredicateForContactsMatchingEmailAddress (string emailAddress);

Type Changed: Contacts.CNErrorCode

Added values:

RecordIdentifierInvalid = 205,
VCardSummarizationError = 701,

Namespace CoreBluetooth

Type Changed: CoreBluetooth.CBError

Added value:

OperationNotSupported = 13,

Namespace CoreFoundation

New Type: CoreFoundation.CFPropertyList

public class CFPropertyList : ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public CFPropertyList (IntPtr handle);
	public CFPropertyList (IntPtr handle, bool owns);
	// properties
	public virtual IntPtr Handle { get; }
	public object Value { get; }
	// methods
	public System.ValueTuple<Foundation.NSData,Foundation.NSError> AsData (CFPropertyListFormat format);
	public CFPropertyList DeepCopy (CFPropertyListMutabilityOptions options);
	public virtual void Dispose ();
	public virtual void Dispose (bool disposing);
	public static System.ValueTuple<CFPropertyList,CoreFoundation.CFPropertyListFormat,Foundation.NSError> FromData (Foundation.NSData data, CFPropertyListMutabilityOptions options);
	public bool IsValid (CFPropertyListFormat format);
	protected override void ~CFPropertyList ();
}

New Type: CoreFoundation.CFPropertyListFormat

[Serializable]
public enum CFPropertyListFormat {
	BinaryFormat1 = 200,
	OpenStep = 1,
	XmlFormat1 = 100,
}

New Type: CoreFoundation.CFPropertyListMutabilityOptions

[Serializable]
[Flags]
public enum CFPropertyListMutabilityOptions {
	Immutable = 0,
	MutableContainers = 1,
	MutableContainersAndLeaves = 2,
}

Namespace CoreGraphics

Type Changed: CoreGraphics.CGColorSpace

Added constructor:

public CGColorSpace (CoreFoundation.CFPropertyList propertyList);

Added method:

public CoreFoundation.CFPropertyList ToPropertyList ();

Type Changed: CoreGraphics.CGColorSpaceModel

Added value:

XYZ = 7,

Type Changed: CoreGraphics.CGImage

Added properties:

public CGImageByteOrderInfo ByteOrderInfo { get; }
public CGImagePixelFormatInfo PixelFormatInfo { get; }

Type Changed: CoreGraphics.CGPDFArray

Added methods:

public bool Apply (CGPDFArray.ApplyCallback callback, object info);
public bool GetArray (nint idx, out CGPDFArray array);
public bool GetBoolean (nint idx, out bool result);
public bool GetDictionary (nint idx, out CGPDFDictionary result);
public bool GetFloat (nint idx, out nfloat result);
public bool GetInt (nint idx, out nint result);
public bool GetName (nint idx, out string result);
public bool GetStream (nint idx, out CGPDFStream result);
public bool GetString (nint idx, out string result);

Type Changed: CoreGraphics.CGPDFDictionary

Added method:

public void Apply (CGPDFDictionary.ApplyCallback callback, object info);

New Type: CoreGraphics.CGImageByteOrderInfo

[Serializable]
[Flags]
public enum CGImageByteOrderInfo {
	ByteOrder16Big = 12288,
	ByteOrder16Little = 4096,
	ByteOrder32Big = 16384,
	ByteOrder32Little = 8192,
	ByteOrderDefault = 0,
	ByteOrderMask = 28672,
}

New Type: CoreGraphics.CGImagePixelFormatInfo

[Serializable]
public enum CGImagePixelFormatInfo {
	Mask = 983040,
	Packed = 0,
	Rgb101010 = 196608,
	Rgb555 = 65536,
	Rgb565 = 131072,
	RgbCif10 = 262144,
}

Namespace CoreLocation

Type Changed: CoreLocation.CLActivityType

Added value:

Airborne = 5,

Namespace CoreML

Type Changed: CoreML.MLFeatureDescription

Added property:

public virtual MLSequenceConstraint SequenceConstraint { get; }

Type Changed: CoreML.MLFeatureType

Added value:

Sequence = 7,

Type Changed: CoreML.MLFeatureValue

Added property:

public virtual MLSequence SequenceValue { get; }

Added method:

public static MLFeatureValue Create (MLSequence sequence);

Type Changed: CoreML.MLImageConstraint

Added property:

public virtual MLImageSizeConstraint SizeConstraint { get; }

Type Changed: CoreML.MLModel

Added property:

public virtual MLModelConfiguration Configuration { get; }

Added methods:

public static MLModel Create (Foundation.NSUrl url, MLModelConfiguration configuration, out Foundation.NSError error);
public virtual IMLBatchProvider GetPredictions (IMLBatchProvider inputBatch, MLPredictionOptions options, out Foundation.NSError error);

Type Changed: CoreML.MLModelError

Added value:

CustomModel = 5,

Type Changed: CoreML.MLMultiArrayConstraint

Added property:

public virtual MLMultiArrayShapeConstraint ShapeConstraint { get; }

New Type: CoreML.IMLBatchProvider

public interface IMLBatchProvider : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual nint Count { get; }
	// methods
	public virtual IMLFeatureProvider GetFeatures (nint index);
}

New Type: CoreML.IMLCustomModel

public interface IMLCustomModel : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual IMLFeatureProvider GetPrediction (IMLFeatureProvider inputFeatures, MLPredictionOptions options, out Foundation.NSError error);
}

New Type: CoreML.MLArrayBatchProvider

public class MLArrayBatchProvider : Foundation.NSObject, IMLBatchProvider, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MLArrayBatchProvider (IMLFeatureProvider[] array);
	protected MLArrayBatchProvider (Foundation.NSObjectFlag t);
	protected MLArrayBatchProvider (IntPtr handle);
	public MLArrayBatchProvider (Foundation.NSDictionary<Foundation.NSString,Foundation.NSArray> dictionary, out Foundation.NSError error);
	// properties
	public virtual IMLFeatureProvider[] Array { get; }
	public override IntPtr ClassHandle { get; }
	public virtual nint Count { get; }
	// methods
	public virtual IMLFeatureProvider GetFeatures (nint index);
}

New Type: CoreML.MLComputeUnits

[Serializable]
public enum MLComputeUnits {
	CpuAndGpu = 1,
	CpuOnly = 0,
}

New Type: CoreML.MLCustomModel

public abstract class MLCustomModel : Foundation.NSObject, IMLCustomModel, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MLCustomModel ();
	protected MLCustomModel (Foundation.NSObjectFlag t);
	protected MLCustomModel (IntPtr handle);
	public MLCustomModel (MLModelDescription modelDescription, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> parameters, out Foundation.NSError error);
	// methods
	public virtual IMLFeatureProvider GetPrediction (IMLFeatureProvider inputFeatures, MLPredictionOptions options, out Foundation.NSError error);
	public virtual IMLBatchProvider GetPredictions (IMLBatchProvider inputBatch, MLPredictionOptions options, out Foundation.NSError error);
}

New Type: CoreML.MLCustomModel_Extensions

public static class MLCustomModel_Extensions {
	// methods
	public static IMLBatchProvider GetPredictions (this IMLCustomModel This, IMLBatchProvider inputBatch, MLPredictionOptions options, out Foundation.NSError error);
}

New Type: CoreML.MLImageSize

public class MLImageSize : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MLImageSize (Foundation.NSObjectFlag t);
	protected MLImageSize (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual nint PixelsHigh { get; }
	public virtual nint PixelsWide { get; }
}

New Type: CoreML.MLImageSizeConstraint

public class MLImageSizeConstraint : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MLImageSizeConstraint (Foundation.NSObjectFlag t);
	protected MLImageSizeConstraint (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MLImageSize[] EnumeratedImageSizes { get; }
	public virtual Foundation.NSRange PixelsHighRange { get; }
	public virtual Foundation.NSRange PixelsWideRange { get; }
	public virtual MLImageSizeConstraintType Type { get; }
}

New Type: CoreML.MLImageSizeConstraintType

[Serializable]
public enum MLImageSizeConstraintType {
	Enumerated = 2,
	Range = 3,
	Unspecified = 0,
}

New Type: CoreML.MLModelConfiguration

public class MLModelConfiguration : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MLModelConfiguration ();
	protected MLModelConfiguration (Foundation.NSObjectFlag t);
	protected MLModelConfiguration (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MLComputeUnits ComputeUnits { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: CoreML.MLMultiArrayShapeConstraint

public class MLMultiArrayShapeConstraint : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MLMultiArrayShapeConstraint (Foundation.NSObjectFlag t);
	protected MLMultiArrayShapeConstraint (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSArray<Foundation.NSNumber>[] EnumeratedShapes { get; }
	public virtual Foundation.NSValue[] SizeRangeForDimension { get; }
	public virtual MLMultiArrayShapeConstraintType Type { get; }
}

New Type: CoreML.MLMultiArrayShapeConstraintType

[Serializable]
public enum MLMultiArrayShapeConstraintType {
	Enumerated = 2,
	Range = 3,
	Unspecified = 1,
}

New Type: CoreML.MLSequence

public class MLSequence : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MLSequence (Foundation.NSObjectFlag t);
	protected MLSequence (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSNumber[] Int64Values { get; }
	public virtual string[] StringValues { get; }
	public virtual MLFeatureType Type { get; }
	// methods
	public static MLSequence Create (Foundation.NSNumber[] int64Values);
	public static MLSequence Create (string[] stringValues);
	public static MLSequence CreateEmpty (MLFeatureType type);
}

New Type: CoreML.MLSequenceConstraint

public class MLSequenceConstraint : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MLSequenceConstraint (Foundation.NSObjectFlag t);
	protected MLSequenceConstraint (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSRange CountRange { get; }
	public virtual MLFeatureDescription ValueDescription { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

Namespace CoreMotion

New Type: CoreMotion.CMDyskineticSymptomResult

public class CMDyskineticSymptomResult : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CMDyskineticSymptomResult (Foundation.NSCoder coder);
	protected CMDyskineticSymptomResult (Foundation.NSObjectFlag t);
	protected CMDyskineticSymptomResult (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSDate EndDate { get; }
	public virtual float PercentLikely { get; }
	public virtual float PercentUnlikely { get; }
	public virtual Foundation.NSDate StartDate { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: CoreMotion.CMDyskineticSymptomResultHandler

public sealed delegate CMDyskineticSymptomResultHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CMDyskineticSymptomResultHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CMDyskineticSymptomResult[] dyskineticSymptomResult, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CMDyskineticSymptomResult[] dyskineticSymptomResult, Foundation.NSError error);
}

New Type: CoreMotion.CMMovementDisorderManager

public class CMMovementDisorderManager : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CMMovementDisorderManager ();
	protected CMMovementDisorderManager (Foundation.NSObjectFlag t);
	protected CMMovementDisorderManager (IntPtr handle);
	// properties
	public static CMAuthorizationStatus AuthorizationStatus { get; }
	public override IntPtr ClassHandle { get; }
	public static bool IsAvailable { get; }
	public virtual Foundation.NSDate LastProcessedDate { get; }
	public virtual Foundation.NSDate MonitorKinesiasExpirationDate { get; }
	// methods
	public virtual void MonitorKinesias (double durationInSeconds);
	public virtual void QueryDyskineticSymptom (Foundation.NSDate fromDate, Foundation.NSDate toDate, CMDyskineticSymptomResultHandler handler);
	public virtual System.Threading.Tasks.Task<CMDyskineticSymptomResult[]> QueryDyskineticSymptomAsync (Foundation.NSDate fromDate, Foundation.NSDate toDate);
	public virtual void QueryTremor (Foundation.NSDate fromDate, Foundation.NSDate toDate, CMTremorResultHandler handler);
	public virtual System.Threading.Tasks.Task<CMTremorResult[]> QueryTremorAsync (Foundation.NSDate fromDate, Foundation.NSDate toDate);
}

New Type: CoreMotion.CMTremorResult

public class CMTremorResult : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CMTremorResult (Foundation.NSCoder coder);
	protected CMTremorResult (Foundation.NSObjectFlag t);
	protected CMTremorResult (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSDate EndDate { get; }
	public virtual float PercentMild { get; }
	public virtual float PercentModerate { get; }
	public virtual float PercentNone { get; }
	public virtual float PercentSlight { get; }
	public virtual float PercentStrong { get; }
	public virtual float PercentUnknown { get; }
	public virtual Foundation.NSDate StartDate { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: CoreMotion.CMTremorResultHandler

public sealed delegate CMTremorResultHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CMTremorResultHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CMTremorResult[] tremorResults, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CMTremorResult[] tremorResults, Foundation.NSError error);
}

Namespace CoreText

Type Changed: CoreText.CTFontCollection

Added method:

public CTFontDescriptor[] GetMatchingFontDescriptors (CTFontCollectionOptions options);

Type Changed: CoreText.CTFramesetter

Added method:

public static CTFramesetter Create (CTTypesetter typesetter);

Type Changed: CoreText.CTTypesetterOptionKey

Added property:

public static Foundation.NSString AllowUnboundedLayout { get; }

Type Changed: CoreText.CTTypesetterOptions

Added property:

public bool AllowUnboundedLayout { get; set; }

Namespace CoreVideo

Type Changed: CoreVideo.CVImageBufferTransferFunction

Added value:

Linear = 11,

Type Changed: CoreVideo.CVPixelFormatDescription

Added field:

public static Foundation.NSString ContainsGrayscaleKey;

Namespace EventKit

Type Changed: EventKit.EKRecurrenceDayOfWeek

Added constructor:

public EKRecurrenceDayOfWeek (Foundation.NSCoder coder);

Added interfaces:

Foundation.INSCoding
Foundation.INSSecureCoding

Added method:

public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: EventKit.EKRecurrenceEnd

Added constructor:

public EKRecurrenceEnd (Foundation.NSCoder coder);

Added interfaces:

Foundation.INSCoding
Foundation.INSSecureCoding

Added method:

public virtual void EncodeTo (Foundation.NSCoder encoder);

Namespace Foundation

Type Changed: Foundation.NSFileWrapper

Added interface:

INSSecureCoding

Type Changed: Foundation.NSKeyedArchiver

Added constructor:

public NSKeyedArchiver (bool requiresSecureCoding);

Added method:

public static NSData ArchivedDataWithRootObject (NSObject object, bool requiresSecureCoding, out NSError error);

Type Changed: Foundation.NSKeyedUnarchiver

Added constructor:

public NSKeyedUnarchiver (NSData data, out NSError error);

Added methods:

public static NSObject GetUnarchivedObject (Foundation.NSSet<ObjCRuntime.Class> classes, NSData data, out NSError error);
public static NSObject GetUnarchivedObject (ObjCRuntime.Class cls, NSData data, out NSError error);
public static NSObject GetUnarchivedObject (System.Type type, NSData data, out NSError error);
public static NSObject GetUnarchivedObject (System.Type[] types, NSData data, out NSError error);

Type Changed: Foundation.NSUrlRequestNetworkServiceType

Added value:

ResponsiveData = 5,

Type Changed: Foundation.NSUserActivity

Added properties:

public virtual bool EligibleForPrediction { get; set; }
public virtual string PersistentIdentifier { get; set; }
public virtual string SuggestedInvocationPhrase { get; set; }

Added methods:

public static void DeleteAllSavedUserActivities (System.Action handler);
public static System.Threading.Tasks.Task DeleteAllSavedUserActivitiesAsync ();
public static void DeleteSavedUserActivities (string[] persistentIdentifiers, System.Action handler);
public static System.Threading.Tasks.Task DeleteSavedUserActivitiesAsync (string[] persistentIdentifiers);

Type Changed: Foundation.NSValueTransformer

Added property:

public static NSString SecureUnarchiveFromDataTransformerName { get; }

Namespace GameKit

Type Changed: GameKit.GKGameSessionErrorCodeExtensions

Obsoleted methods:

 [Obsolete ("Always returns null.")]
 public static Foundation.NSString GetDomain (this GKGameSessionErrorCode self);

Namespace HealthKit

Type Changed: HealthKit.HKHealthStore

Added methods:

public virtual void GetRequestStatusForAuthorizationToShare (Foundation.NSSet<HKSampleType> typesToShare, Foundation.NSSet<HKObjectType> typesToRead, HKHealthStoreGetRequestStatusForAuthorizationToShareHandler completion);
public virtual System.Threading.Tasks.Task<HKAuthorizationRequestStatus> GetRequestStatusForAuthorizationToShareAsync (Foundation.NSSet<HKSampleType> typesToShare, Foundation.NSSet<HKObjectType> typesToRead);
public virtual void RecoverActiveWorkoutSession (HKHealthStoreRecoverActiveWorkoutSessionHandler completion);
public virtual System.Threading.Tasks.Task<HKWorkoutSession> RecoverActiveWorkoutSessionAsync ();

Type Changed: HealthKit.HKMetadata

Added properties:

public HKQuantity CrossTrainerDistance { get; set; }
public HKQuantity FitnessMachineDuration { get; set; }
public HKQuantity IndoorBikeDistance { get; set; }

Type Changed: HealthKit.HKMetadataKey

Added properties:

public static Foundation.NSString CrossTrainerDistance { get; }
public static Foundation.NSString FitnessMachineDuration { get; }
public static Foundation.NSString IndoorBikeDistance { get; }

Type Changed: HealthKit.HKObjectType

Added method:

public HKClinicalType GetClinicalType (HKClinicalTypeIdentifier identifier);

Type Changed: HealthKit.HKPredicateKeyPath

Added property:

public static Foundation.NSString PathSum { get; }

Type Changed: HealthKit.HKQuantitySample

Added property:

public virtual nint Count { get; }

Type Changed: HealthKit.HKStatistics

Added properties:

public virtual HKQuantity MostRecentQuantity { get; }
public virtual Foundation.NSDateInterval MostRecentQuantityDateInterval { get; }

Added methods:

public virtual HKQuantity GetMostRecentQuantity (HKSource source);
public virtual Foundation.NSDateInterval GetMostRecentQuantityDateInterval (HKSource source);

Type Changed: HealthKit.HKWorkoutRouteBuilder

Added methods:

protected virtual void AddMetadata (Foundation.NSDictionary metadata, HKWorkoutRouteBuilderAddMetadataHandler completion);
public void AddMetadata (HKMetadata metadata, HKWorkoutRouteBuilderAddMetadataHandler completion);
protected virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> AddMetadataAsync (Foundation.NSDictionary metadata);
public System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> AddMetadataAsync (HKMetadata metadata);

Type Changed: HealthKit.HKWorkoutSession

Added constructor:

public HKWorkoutSession (HKHealthStore healthStore, HKWorkoutConfiguration workoutConfiguration, out Foundation.NSError error);

Added property:

public virtual HKLiveWorkoutBuilder AssociatedWorkoutBuilder { get; }

Added methods:

public virtual void End ();
public virtual void Pause ();
public virtual void Prepare ();
public virtual void Resume ();
public virtual void StartActivity (Foundation.NSDate date);
public virtual void StopActivity (Foundation.NSDate date);

New Type: HealthKit.HKAuthorizationRequestStatus

[Serializable]
public enum HKAuthorizationRequestStatus {
	ShouldRequest = 1,
	Unknown = 0,
	Unnecessary = 2,
}

New Type: HealthKit.HKClinicalType

public class HKClinicalType : HealthKit.HKSampleType, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HKClinicalType (Foundation.NSCoder coder);
	protected HKClinicalType (Foundation.NSObjectFlag t);
	protected HKClinicalType (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type: HealthKit.HKClinicalTypeIdentifier

[Serializable]
public enum HKClinicalTypeIdentifier {
	AllergyRecord = 0,
	ConditionRecord = 1,
	ImmunizationRecord = 2,
	LabResultRecord = 3,
	MedicationRecord = 4,
	ProcedureRecord = 5,
	VitalSignRecord = 6,
}

New Type: HealthKit.HKClinicalTypeIdentifierExtensions

public static class HKClinicalTypeIdentifierExtensions {
	// methods
	public static Foundation.NSString GetConstant (this HKClinicalTypeIdentifier self);
	public static HKClinicalTypeIdentifier GetValue (Foundation.NSString constant);
}

New Type: HealthKit.HKCumulativeQuantitySeriesSample

public class HKCumulativeQuantitySeriesSample : HealthKit.HKQuantitySample, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HKCumulativeQuantitySeriesSample (Foundation.NSCoder coder);
	protected HKCumulativeQuantitySeriesSample (Foundation.NSObjectFlag t);
	protected HKCumulativeQuantitySeriesSample (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual HKQuantity Sum { get; }
}

New Type: HealthKit.HKHealthStoreGetRequestStatusForAuthorizationToShareHandler

public sealed delegate HKHealthStoreGetRequestStatusForAuthorizationToShareHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public HKHealthStoreGetRequestStatusForAuthorizationToShareHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (HKAuthorizationRequestStatus requestStatus, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (HKAuthorizationRequestStatus requestStatus, Foundation.NSError error);
}

New Type: HealthKit.HKHealthStoreRecoverActiveWorkoutSessionHandler

public sealed delegate HKHealthStoreRecoverActiveWorkoutSessionHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public HKHealthStoreRecoverActiveWorkoutSessionHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (HKWorkoutSession session, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (HKWorkoutSession session, Foundation.NSError error);
}

New Type: HealthKit.HKLiveWorkoutBuilder

public class HKLiveWorkoutBuilder : HealthKit.HKWorkoutBuilder, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HKLiveWorkoutBuilder (Foundation.NSObjectFlag t);
	protected HKLiveWorkoutBuilder (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual HKLiveWorkoutDataSource DataSource { get; set; }
	public IHKLiveWorkoutBuilderDelegate Delegate { get; set; }
	public virtual double ElapsedTime { get; }
	public virtual bool ShouldCollectWorkoutEvents { get; set; }
	public virtual Foundation.NSObject WeakDelegate { get; set; }
	public virtual HKWorkoutSession WorkoutSession { get; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type: HealthKit.HKLiveWorkoutBuilderDelegate

public abstract class HKLiveWorkoutBuilderDelegate : Foundation.NSObject, Foundation.INSObjectProtocol, IHKLiveWorkoutBuilderDelegate, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HKLiveWorkoutBuilderDelegate ();
	protected HKLiveWorkoutBuilderDelegate (Foundation.NSObjectFlag t);
	protected HKLiveWorkoutBuilderDelegate (IntPtr handle);
	// methods
	public virtual void DidCollectData (HKLiveWorkoutBuilder workoutBuilder, Foundation.NSSet<HKSampleType> collectedTypes);
	public virtual void DidCollectEvent (HKLiveWorkoutBuilder workoutBuilder);
}

New Type: HealthKit.HKLiveWorkoutDataSource

public class HKLiveWorkoutDataSource : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HKLiveWorkoutDataSource (Foundation.NSObjectFlag t);
	protected HKLiveWorkoutDataSource (IntPtr handle);
	public HKLiveWorkoutDataSource (HKHealthStore healthStore, HKWorkoutConfiguration configuration);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSSet<HKQuantityType> TypesToCollect { get; }
	// methods
	public virtual void DisableCollection (HKQuantityType quantityType);
	public virtual void EnableCollection (HKQuantityType quantityType, Foundation.NSPredicate predicate);
}

New Type: HealthKit.HKQuantitySeriesSampleBuilder

public class HKQuantitySeriesSampleBuilder : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HKQuantitySeriesSampleBuilder (Foundation.NSObjectFlag t);
	protected HKQuantitySeriesSampleBuilder (IntPtr handle);
	public HKQuantitySeriesSampleBuilder (HKHealthStore healthStore, HKQuantityType quantityType, Foundation.NSDate startDate, HKDevice device);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual HKDevice Device { get; }
	public virtual HKQuantityType QuantityType { get; }
	public virtual Foundation.NSDate StartDate { get; }
	// methods
	public virtual void Discard ();
	protected virtual void FinishSeries (Foundation.NSDictionary metadata, HKQuantitySeriesSampleBuilderFinishSeriesDelegate completionHandler);
	public void FinishSeries (HKMetadata metadata, HKQuantitySeriesSampleBuilderFinishSeriesDelegate completionHandler);
	protected virtual System.Threading.Tasks.Task<HKQuantitySample[]> FinishSeriesAsync (Foundation.NSDictionary metadata);
	public System.Threading.Tasks.Task<HKQuantitySample[]> FinishSeriesAsync (HKMetadata metadata);
	public virtual bool Insert (HKQuantity quantity, Foundation.NSDate date, out Foundation.NSError error);
}

New Type: HealthKit.HKQuantitySeriesSampleBuilderFinishSeriesDelegate

public sealed delegate HKQuantitySeriesSampleBuilderFinishSeriesDelegate : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public HKQuantitySeriesSampleBuilderFinishSeriesDelegate (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (HKQuantitySample[] samples, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (HKQuantitySample[] samples, Foundation.NSError error);
}

New Type: HealthKit.HKQuantitySeriesSampleQuery

public class HKQuantitySeriesSampleQuery : HealthKit.HKQuery, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HKQuantitySeriesSampleQuery ();
	protected HKQuantitySeriesSampleQuery (Foundation.NSObjectFlag t);
	protected HKQuantitySeriesSampleQuery (IntPtr handle);
	public HKQuantitySeriesSampleQuery (HKQuantitySample quantitySample, HKQuantitySeriesSampleQueryQuantityDelegate quantityHandler);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type: HealthKit.HKQuantitySeriesSampleQueryQuantityDelegate

public sealed delegate HKQuantitySeriesSampleQueryQuantityDelegate : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public HKQuantitySeriesSampleQueryQuantityDelegate (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (HKQuantitySeriesSampleQuery query, HKQuantity quantity, Foundation.NSDate date, bool done, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (HKQuantitySeriesSampleQuery query, HKQuantity quantity, Foundation.NSDate date, bool done, Foundation.NSError error);
}

New Type: HealthKit.HKWorkoutBuilder

public class HKWorkoutBuilder : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HKWorkoutBuilder (Foundation.NSObjectFlag t);
	protected HKWorkoutBuilder (IntPtr handle);
	public HKWorkoutBuilder (HKHealthStore healthStore, HKWorkoutConfiguration configuration, HKDevice device);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual HKDevice Device { get; }
	public virtual Foundation.NSDate EndDate { get; }
	public HKMetadata Metadata { get; }
	protected virtual Foundation.NSDictionary NativeMetadata { get; }
	public virtual Foundation.NSDate StartDate { get; }
	public virtual HKWorkoutConfiguration WorkoutConfiguration { get; }
	public virtual HKWorkoutEvent[] WorkoutEvents { get; }
	// methods
	protected virtual void Add (Foundation.NSDictionary metadata, HKWorkoutBuilderCompletionHandler completionHandler);
	public void Add (HKMetadata metadata, HKWorkoutBuilderCompletionHandler completionHandler);
	public virtual void Add (HKSample[] samples, HKWorkoutBuilderCompletionHandler completionHandler);
	public virtual void Add (HKWorkoutEvent[] workoutEvents, HKWorkoutBuilderCompletionHandler completionHandler);
	protected virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> AddAsync (Foundation.NSDictionary metadata);
	public System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> AddAsync (HKMetadata metadata);
	public virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> AddAsync (HKSample[] samples);
	public virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> AddAsync (HKWorkoutEvent[] workoutEvents);
	public virtual void BeginCollection (Foundation.NSDate startDate, HKWorkoutBuilderCompletionHandler completionHandler);
	public virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> BeginCollectionAsync (Foundation.NSDate startDate);
	public virtual void DiscardWorkout ();
	public virtual void EndCollection (Foundation.NSDate endDate, HKWorkoutBuilderCompletionHandler completionHandler);
	public virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> EndCollectionAsync (Foundation.NSDate endDate);
	public virtual void FinishWorkout (HKWorkoutBuilderCompletionHandler completionHandler);
	public virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> FinishWorkoutAsync ();
	public virtual double GetElapsedTime (Foundation.NSDate date);
	public virtual HKSeriesBuilder GetSeriesBuilder (HKSeriesType seriesType);
	public virtual HKStatistics GetStatistics (HKQuantityType quantityType);
}

New Type: HealthKit.HKWorkoutBuilderCompletionHandler

public sealed delegate HKWorkoutBuilderCompletionHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public HKWorkoutBuilderCompletionHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (bool success, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (bool success, Foundation.NSError error);
}

New Type: HealthKit.HKWorkoutRouteBuilderAddMetadataHandler

public sealed delegate HKWorkoutRouteBuilderAddMetadataHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public HKWorkoutRouteBuilderAddMetadataHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (bool success, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (bool success, Foundation.NSError error);
}

New Type: HealthKit.IHKLiveWorkoutBuilderDelegate

public interface IHKLiveWorkoutBuilderDelegate : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual void DidCollectData (HKLiveWorkoutBuilder workoutBuilder, Foundation.NSSet<HKSampleType> collectedTypes);
	public virtual void DidCollectEvent (HKLiveWorkoutBuilder workoutBuilder);
}

Namespace HomeKit

Type Changed: HomeKit.HMHome

Added methods:

public virtual void RemoveUser (HMUser user, System.Action<Foundation.NSError> completion);
public virtual System.Threading.Tasks.Task RemoveUserAsync (HMUser user);

Namespace Intents

Type Changed: Intents.INGetCarPowerLevelStatusIntentResponse

Added properties:

public virtual bool? Charging { get; set; }
public virtual double? MinutesToFull { get; set; }

Type Changed: Intents.INIntent

Added property:

public virtual string SuggestedInvocationPhrase { get; set; }

Added methods:

public virtual INImage GetImage (string parameterName);
public virtual INImage GetKeyImage ();
public virtual void SetImage (INImage image, string parameterName);

Type Changed: Intents.INIntentErrorCode

Added values:

DecodingGeneric = 9000,
EncodingFailed = 8001,
EncodingGeneric = 8000,
ImageGeneric = 6000,
ImageLoadingFailed = 6003,
ImageNoServiceAvailable = 6001,
ImageProxyInvalid = 6006,
ImageProxyLoop = 6005,
ImageProxyTimeout = 6007,
ImageRetrievalFailed = 6004,
ImageScalingFailed = 6009,
ImageServiceFailure = 6008,
ImageStorageFailed = 6002,
NoAppAvailable = 2005,
PermissionDenied = 6010,
VoiceShortcutCreationFailed = 7000,
VoiceShortcutDeleteFailed = 7002,
VoiceShortcutGetFailed = 7001,

Type Changed: Intents.INIntentHandlingStatus

Added value:

UserConfirmationRequired = 6,

Type Changed: Intents.INIntentResponse

Modified properties:

-public virtual Foundation.NSUserActivity UserActivity { get; set; }
+public virtual Foundation.NSUserActivity UserActivity { get; }

Type Changed: Intents.INMessageType

Added values:

ActivitySnippet = 23,
Animoji = 22,
File = 24,
Link = 25,
PaymentNote = 21,
PaymentRequest = 20,
PaymentSent = 19,

Type Changed: Intents.INParameter

Added interface:

Foundation.INSCopying

Added method:

public virtual Foundation.NSObject Copy (Foundation.NSZone zone);

Type Changed: Intents.INPerson

Added constructor:

public INPerson (INPersonHandle personHandle, Foundation.NSPersonNameComponents nameComponents, string displayName, INImage image, string contactIdentifier, string customIdentifier, bool isMe);

Type Changed: Intents.INPersonSuggestionType

Added value:

None = 0,

Type Changed: Intents.INPhotoAttributeOptions

Added values:

BouncePhoto = 134217728,
LivePhoto = 33554432,
LongExposurePhoto = 268435456,
LoopPhoto = 67108864,
PortraitPhoto = 16777216,

Type Changed: Intents.INSearchForAccountsIntentResponseCode

Added values:

FailureNotEligible = 9,
FailureTermsAndConditionsAcceptanceRequired = 8,

Type Changed: Intents.INSearchForMessagesIntent

Added constructor:

public INSearchForMessagesIntent (INPerson[] recipients, INPerson[] senders, string[] searchTerms, INMessageAttributeOptions attributes, INDateComponentsRange dateTimeRange, string[] identifiers, string[] notificationIdentifiers, INSpeakableString[] speakableGroupNames, string[] conversationIdentifiers);

Added properties:

public virtual string[] ConversationIdentifiers { get; }
public virtual INConditionalOperator ConversationIdentifiersOperator { get; }

Type Changed: Intents.INSendMessageRecipientUnsupportedReason

Added values:

NoHandleForLabel = 6,
NoValidHandle = 4,
RequestedHandleInvalid = 5,

Type Changed: Intents.INSpatialEventTrigger

Added interface:

Foundation.INSCopying

Added method:

public virtual Foundation.NSObject Copy (Foundation.NSZone zone);

Type Changed: Intents.INSpeakableString

Added interface:

Foundation.INSCopying

Added method:

public virtual Foundation.NSObject Copy (Foundation.NSZone zone);

Type Changed: Intents.INVisualCodeType

Added values:

Bus = 5,
Subway = 6,
Transit = 4,

Type Changed: Intents.INWorkoutNameIdentifier

Added values:

HighIntensityIntervalTraining = 19,
Hike = 18,
Swim = 20,

New Type: Intents.IINPlayMediaIntentHandling

public interface IINPlayMediaIntentHandling : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual void HandlePlayMedia (INPlayMediaIntent intent, System.Action<INPlayMediaIntentResponse> completion);
}

New Type: Intents.INDailyRoutineRelevanceProvider

public class INDailyRoutineRelevanceProvider : Intents.INRelevanceProvider, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public INDailyRoutineRelevanceProvider (Foundation.NSCoder coder);
	protected INDailyRoutineRelevanceProvider (Foundation.NSObjectFlag t);
	public INDailyRoutineRelevanceProvider (INDailyRoutineSituation situation);
	protected INDailyRoutineRelevanceProvider (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual INDailyRoutineSituation Situation { get; }
}

New Type: Intents.INDailyRoutineSituation

[Serializable]
public enum INDailyRoutineSituation {
	Evening = 1,
	Gym = 5,
	Home = 2,
	Morning = 0,
	School = 4,
	Work = 3,
}

New Type: Intents.INDateRelevanceProvider

public class INDateRelevanceProvider : Intents.INRelevanceProvider, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public INDateRelevanceProvider (Foundation.NSCoder coder);
	protected INDateRelevanceProvider (Foundation.NSObjectFlag t);
	protected INDateRelevanceProvider (IntPtr handle);
	public INDateRelevanceProvider (Foundation.NSDate startDate, Foundation.NSDate endDate);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSDate EndDate { get; }
	public virtual Foundation.NSDate StartDate { get; }
}

New Type: Intents.INDefaultCardTemplate

public class INDefaultCardTemplate : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public INDefaultCardTemplate (Foundation.NSCoder coder);
	protected INDefaultCardTemplate (Foundation.NSObjectFlag t);
	protected INDefaultCardTemplate (IntPtr handle);
	public INDefaultCardTemplate (string title);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual INImage Image { get; set; }
	public virtual string Subtitle { get; set; }
	public virtual string Title { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: Intents.INLocationRelevanceProvider

public class INLocationRelevanceProvider : Intents.INRelevanceProvider, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public INLocationRelevanceProvider (CoreLocation.CLRegion region);
	public INLocationRelevanceProvider (Foundation.NSCoder coder);
	protected INLocationRelevanceProvider (Foundation.NSObjectFlag t);
	protected INLocationRelevanceProvider (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CoreLocation.CLRegion Region { get; }
}

New Type: Intents.INMediaItem

public class INMediaItem : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public INMediaItem (Foundation.NSCoder coder);
	protected INMediaItem (Foundation.NSObjectFlag t);
	protected INMediaItem (IntPtr handle);
	public INMediaItem (string identifier, string title, INMediaItemType type, INImage artwork);
	// properties
	public virtual INImage Artwork { get; }
	public override IntPtr ClassHandle { get; }
	public virtual string Identifier { get; }
	public virtual string Title { get; }
	public virtual INMediaItemType Type { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: Intents.INMediaItemType

[Serializable]
public enum INMediaItemType {
	Album = 2,
	Artist = 3,
	AudioBook = 10,
	Genre = 4,
	Movie = 11,
	MusicStation = 9,
	MusicVideo = 14,
	Playlist = 5,
	PodcastEpisode = 7,
	PodcastPlaylist = 8,
	PodcastShow = 6,
	Song = 1,
	TVShow = 12,
	TVShowEpisode = 13,
	Unknown = 0,
}

New Type: Intents.INObject

public class INObject : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, IINSpeakable, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public INObject (Foundation.NSCoder coder);
	protected INObject (Foundation.NSObjectFlag t);
	protected INObject (IntPtr handle);
	public INObject (string identifier, string displayString);
	public INObject (string identifier, string displayString, string pronunciationHint);
	// properties
	public virtual IINSpeakable[] AlternativeSpeakableMatches { get; }
	public override IntPtr ClassHandle { get; }
	public virtual string DisplayString { get; }
	public virtual string Identifier { get; }
	public virtual string PronunciationHint { get; }
	public virtual string SpokenPhrase { get; }
	public virtual string VocabularyIdentifier { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: Intents.INPlayMediaIntent

public class INPlayMediaIntent : Intents.INIntent, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public INPlayMediaIntent (Foundation.NSCoder coder);
	protected INPlayMediaIntent (Foundation.NSObjectFlag t);
	protected INPlayMediaIntent (IntPtr handle);
	public INPlayMediaIntent (INMediaItem[] mediaItems, INMediaItem mediaContainer, bool? playShuffled, INPlaybackRepeatMode playbackRepeatMode, bool? resumePlayback);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual INMediaItem MediaContainer { get; }
	public virtual INMediaItem[] MediaItems { get; }
	public virtual bool? PlayShuffled { get; }
	public virtual INPlaybackRepeatMode PlaybackRepeatMode { get; }
	public virtual bool? ResumePlayback { get; }
}

New Type: Intents.INPlayMediaIntentHandling_Extensions

public static class INPlayMediaIntentHandling_Extensions {
	// methods
	public static void Confirm (this IINPlayMediaIntentHandling This, INPlayMediaIntent intent, System.Action<INPlayMediaIntentResponse> completion);
}

New Type: Intents.INPlayMediaIntentResponse

public class INPlayMediaIntentResponse : Intents.INIntentResponse, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public INPlayMediaIntentResponse (Foundation.NSCoder coder);
	protected INPlayMediaIntentResponse (Foundation.NSObjectFlag t);
	protected INPlayMediaIntentResponse (IntPtr handle);
	public INPlayMediaIntentResponse (INPlayMediaIntentResponseCode code, Foundation.NSUserActivity userActivity);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual INPlayMediaIntentResponseCode Code { get; }
	public virtual Foundation.NSDictionary WeakNowPlayingInfo { get; set; }
}

New Type: Intents.INPlayMediaIntentResponseCode

[Serializable]
public enum INPlayMediaIntentResponseCode {
	ContinueInApp = 2,
	Failure = 6,
	FailureNoUnplayedContent = 9,
	FailureRequiringAppLaunch = 7,
	FailureRestrictedContent = 10,
	FailureUnknownMediaType = 8,
	HandleInApp = 5,
	InProgress = 3,
	Ready = 1,
	Success = 4,
	Unspecified = 0,
}

New Type: Intents.INPlaybackRepeatMode

[Serializable]
public enum INPlaybackRepeatMode {
	All = 2,
	None = 1,
	One = 3,
	Unknown = 0,
}

New Type: Intents.INRelevanceProvider

public abstract class INRelevanceProvider : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected INRelevanceProvider (Foundation.NSCoder coder);
	protected INRelevanceProvider (Foundation.NSObjectFlag t);
	protected INRelevanceProvider (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: Intents.INRelevantShortcut

public class INRelevantShortcut : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public INRelevantShortcut (Foundation.NSCoder coder);
	protected INRelevantShortcut (Foundation.NSObjectFlag t);
	public INRelevantShortcut (INShortcut shortcut);
	protected INRelevantShortcut (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual INRelevanceProvider[] RelevanceProviders { get; set; }
	public virtual INShortcut Shortcut { get; }
	public virtual INRelevantShortcutRole ShortcutRole { get; set; }
	public virtual INDefaultCardTemplate WatchTemplate { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: Intents.INRelevantShortcutRole

[Serializable]
public enum INRelevantShortcutRole {
	Action = 0,
	Information = 1,
}

New Type: Intents.INRelevantShortcutStore

public class INRelevantShortcutStore : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected INRelevantShortcutStore (Foundation.NSObjectFlag t);
	protected INRelevantShortcutStore (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public static INRelevantShortcutStore DefaultStore { get; }
	// methods
	public virtual void SetRelevantShortcuts (INRelevantShortcut[] shortcuts, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task SetRelevantShortcutsAsync (INRelevantShortcut[] shortcuts);
}

New Type: Intents.INShortcut

public class INShortcut : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public INShortcut (Foundation.NSCoder coder);
	protected INShortcut (Foundation.NSObjectFlag t);
	public INShortcut (Foundation.NSUserActivity userActivity);
	public INShortcut (INIntent intent);
	protected INShortcut (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual INIntent Intent { get; }
	public virtual Foundation.NSUserActivity UserActivity { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: Intents.INUpcomingMediaManager

public class INUpcomingMediaManager : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected INUpcomingMediaManager (Foundation.NSObjectFlag t);
	protected INUpcomingMediaManager (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public static INUpcomingMediaManager SharedManager { get; }
	// methods
	public virtual void SetPredictionMode (INUpcomingMediaPredictionMode mode, INMediaItemType type);
	public virtual void SetSuggestedMediaIntents (Foundation.NSOrderedSet<INPlayMediaIntent> intents);
}

New Type: Intents.INUpcomingMediaPredictionMode

[Serializable]
public enum INUpcomingMediaPredictionMode {
	Default = 0,
	OnlyPredictSuggestedIntents = 1,
}

New Type: Intents.INVoiceShortcut

public class INVoiceShortcut : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public INVoiceShortcut (Foundation.NSCoder coder);
	protected INVoiceShortcut (Foundation.NSObjectFlag t);
	protected INVoiceShortcut (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSUuid Identifier { get; }
	public virtual string InvocationPhrase { get; }
	public virtual INShortcut Shortcut { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: Intents.INVoiceShortcutCenter

public class INVoiceShortcutCenter : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected INVoiceShortcutCenter (Foundation.NSObjectFlag t);
	protected INVoiceShortcutCenter (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public static INVoiceShortcutCenter SharedCenter { get; }
	// methods
	public virtual void GetAllVoiceShortcuts (INVoiceShortcutCenterGetVoiceShortcutsHandler completionHandler);
	public virtual System.Threading.Tasks.Task<INVoiceShortcut[]> GetAllVoiceShortcutsAsync ();
	public virtual void GetVoiceShortcut (Foundation.NSUuid identifier, System.Action<INVoiceShortcut,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<INVoiceShortcut> GetVoiceShortcutAsync (Foundation.NSUuid identifier);
	public virtual void SetShortcutSuggestions (INShortcut[] suggestions);
}

New Type: Intents.INVoiceShortcutCenterGetVoiceShortcutsHandler

public sealed delegate INVoiceShortcutCenterGetVoiceShortcutsHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public INVoiceShortcutCenterGetVoiceShortcutsHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (INVoiceShortcut[] voiceShortcuts, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (INVoiceShortcut[] voiceShortcuts, Foundation.NSError error);
}

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string SdkVersion = "4.3";
+public const string SdkVersion = "5.0";
-public const string Version = "11.12.0";
+public const string Version = "11.99.2";

Added fields:

public static const string MediaPlayerLibrary = "/System/Library/Frameworks/MediaPlayer.framework/MediaPlayer";
public static const string NaturalLanguageLibrary = "/System/Library/Frameworks/Frameworks/NaturalLanguage.framework/NaturalLanguage";

Namespace PassKit

Type Changed: PassKit.PKPaymentNetwork

Added properties:

public static Foundation.NSString Eftpos { get; }
public static Foundation.NSString Electron { get; }
public static Foundation.NSString Maestro { get; }
public static Foundation.NSString VPay { get; }

Namespace SceneKit

Type Changed: SceneKit.SCNPhysicsBody

Added properties:

public virtual nfloat AngularRestingThreshold { get; set; }
public virtual SCNVector3 CenterOfMassOffset { get; set; }
public virtual nfloat ContinuousCollisionDetectionThreshold { get; set; }
public virtual nfloat LinearRestingThreshold { get; set; }

Added method:

public virtual void SetResting (bool resting);

Type Changed: SceneKit.SCNPhysicsShape

Obsoleted methods:

 [Obsolete ("Use the 'Create' method that takes a 'SCNMatrix4 []'.")]
 public static SCNPhysicsShape Create (SCNPhysicsShape[] shapes, SCNVector3[] transforms);

Added method:

public static SCNPhysicsShape Create (SCNPhysicsShape[] shapes, SCNMatrix4[] transforms);

Namespace SpriteKit

Type Changed: SpriteKit.SK3DNode

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKAction

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKAttribute

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKAttributeValue

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKAudioNode

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKCameraNode

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKConstraint

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKCropNode

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKEffectNode

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKEmitterNode

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKFieldNode

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKKeyframeSequence

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKLabelNode

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKLightNode

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKMutableTexture

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKNode

Added interface:

Foundation.INSSecureCoding

Added methods:

public static SKNode Create (string filename, Foundation.NSSet<ObjCRuntime.Class> classes, out Foundation.NSError error);
public static SKNode Create (string filename, System.Type[] types, out Foundation.NSError error);

Type Changed: SpriteKit.SKPhysicsBody

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKPhysicsJoint

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKPhysicsJointFixed

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKPhysicsJointLimit

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKPhysicsJointPin

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKPhysicsJointSliding

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKPhysicsJointSpring

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKPhysicsWorld

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKRange

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKReachConstraints

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKReferenceNode

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKRegion

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKScene

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKShader

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKShapeNode

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKSpriteNode

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKTexture

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKTextureAtlas

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKTileDefinition

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKTileGroup

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKTileGroupRule

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKTileMapNode

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKTileSet

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKTransformNode

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKUniform

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKVideoNode

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKWarpGeometry

Added interface:

Foundation.INSSecureCoding

Type Changed: SpriteKit.SKWarpGeometryGrid

Added interface:

Foundation.INSSecureCoding

Namespace UserNotifications

Type Changed: UserNotifications.UNAuthorizationOptions

Added values:

CriticalAlert = 16,
ProvidesAppNotificationSettings = 32,
Provisional = 64,

Type Changed: UserNotifications.UNAuthorizationStatus

Added value:

Provisional = 3,

Type Changed: UserNotifications.UNNotificationSettings

Added properties:

public virtual UNNotificationSetting CriticalAlertSetting { get; }
public virtual bool ProvidesAppNotificationSettings { get; }

Type Changed: UserNotifications.UNNotificationSound

Added property:

public static UNNotificationSound DefaultCriticalSound { get; }

Added method:

public static UNNotificationSound GetDefaultCriticalSound (float volume);

Namespace WatchConnectivity

Type Changed: WatchConnectivity.WCSessionFileTransfer

Added property:

public virtual Foundation.NSProgress Progress { get; }

Namespace WatchKit

Type Changed: WatchKit.WKExtensionDelegate

Added methods:

public virtual void HandleActiveWorkoutRecovery ();
public virtual void HandleIntent (Intents.INIntent intent, System.Action<Intents.INIntentResponse> completionHandler);
public virtual void HandleRemoteNowPlayingActivity ();

Type Changed: WatchKit.WKExtensionDelegate_Extensions

Added methods:

public static void HandleActiveWorkoutRecovery (this IWKExtensionDelegate This);
public static void HandleIntent (this IWKExtensionDelegate This, Intents.INIntent intent, System.Action<Intents.INIntentResponse> completionHandler);
public static void HandleRemoteNowPlayingActivity (this IWKExtensionDelegate This);

Type Changed: WatchKit.WKInterfaceController

Added method:

public virtual void UpdateUserActivity (Foundation.NSUserActivity userActivity);

Type Changed: WatchKit.WKUserNotificationInterfaceController

Added property:

public virtual UserNotifications.UNNotificationAction[] NotificationActions { get; set; }

Added methods:

public virtual void DidReceiveNotification (UserNotifications.UNNotification notification);
public virtual void DismissController ();
public virtual void PerformDismissAction ();
public virtual void PerformNotificationDefaultAction ();

New Type: WatchKit.WKIntentDidRunRefreshBackgroundTask

public class WKIntentDidRunRefreshBackgroundTask : WatchKit.WKRefreshBackgroundTask, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public WKIntentDidRunRefreshBackgroundTask ();
	protected WKIntentDidRunRefreshBackgroundTask (Foundation.NSObjectFlag t);
	protected WKIntentDidRunRefreshBackgroundTask (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type: WatchKit.WKInterfaceVolumeControl

public class WKInterfaceVolumeControl : WatchKit.WKInterfaceObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected WKInterfaceVolumeControl (Foundation.NSObjectFlag t);
	protected WKInterfaceVolumeControl (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual void SetTintColor (UIKit.UIColor tintColor);
}

New Type: WatchKit.WKRelevantShortcutRefreshBackgroundTask

public class WKRelevantShortcutRefreshBackgroundTask : WatchKit.WKRefreshBackgroundTask, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public WKRelevantShortcutRefreshBackgroundTask ();
	protected WKRelevantShortcutRefreshBackgroundTask (Foundation.NSObjectFlag t);
	protected WKRelevantShortcutRefreshBackgroundTask (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Namespace MediaPlayer

New Type: MediaPlayer.IMPMediaPlayback

public interface IMPMediaPlayback : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual float CurrentPlaybackRate { get; set; }
	public virtual double CurrentPlaybackTime { get; set; }
	public virtual bool IsPreparedToPlay { get; }
	// methods
	public virtual void BeginSeekingBackward ();
	public virtual void BeginSeekingForward ();
	public virtual void EndSeeking ();
	public virtual void Pause ();
	public virtual void Play ();
	public virtual void PrepareToPlay ();
	public virtual void Stop ();
}

New Type: MediaPlayer.IMPSystemMusicPlayerController

public interface IMPSystemMusicPlayerController : ObjCRuntime.INativeObject, System.IDisposable {
}

New Type: MediaPlayer.MPChangeLanguageOptionCommandEvent

public class MPChangeLanguageOptionCommandEvent : MediaPlayer.MPRemoteCommandEvent, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangeLanguageOptionCommandEvent (Foundation.NSObjectFlag t);
	protected MPChangeLanguageOptionCommandEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MPNowPlayingInfoLanguageOption LanguageOption { get; }
	public virtual MPChangeLanguageOptionSetting Setting { get; }
}

New Type: MediaPlayer.MPChangeLanguageOptionSetting

[Serializable]
public enum MPChangeLanguageOptionSetting {
	None = 0,
	NowPlayingItemOnly = 1,
	Permanent = 2,
}

New Type: MediaPlayer.MPChangePlaybackPositionCommand

public class MPChangePlaybackPositionCommand : MediaPlayer.MPRemoteCommand, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangePlaybackPositionCommand (Foundation.NSObjectFlag t);
	protected MPChangePlaybackPositionCommand (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type: MediaPlayer.MPChangePlaybackPositionCommandEvent

public class MPChangePlaybackPositionCommandEvent : MediaPlayer.MPRemoteCommandEvent, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangePlaybackPositionCommandEvent (Foundation.NSObjectFlag t);
	protected MPChangePlaybackPositionCommandEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double PositionTime { get; }
}

New Type: MediaPlayer.MPChangePlaybackRateCommand

public class MPChangePlaybackRateCommand : MediaPlayer.MPRemoteCommand, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangePlaybackRateCommand (Foundation.NSObjectFlag t);
	protected MPChangePlaybackRateCommand (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSNumber[] SupportedPlaybackRates { get; set; }
}

New Type: MediaPlayer.MPChangePlaybackRateCommandEvent

public class MPChangePlaybackRateCommandEvent : MediaPlayer.MPRemoteCommandEvent, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangePlaybackRateCommandEvent (Foundation.NSObjectFlag t);
	protected MPChangePlaybackRateCommandEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual float PlaybackRate { get; }
}

New Type: MediaPlayer.MPChangeRepeatModeCommand

public class MPChangeRepeatModeCommand : MediaPlayer.MPRemoteCommand, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangeRepeatModeCommand (Foundation.NSObjectFlag t);
	protected MPChangeRepeatModeCommand (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MPRepeatType CurrentRepeatType { get; set; }
}

New Type: MediaPlayer.MPChangeRepeatModeCommandEvent

public class MPChangeRepeatModeCommandEvent : MediaPlayer.MPRemoteCommandEvent, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangeRepeatModeCommandEvent (Foundation.NSObjectFlag t);
	protected MPChangeRepeatModeCommandEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool PreservesRepeatMode { get; }
	public virtual MPRepeatType RepeatType { get; }
}

New Type: MediaPlayer.MPChangeShuffleModeCommand

public class MPChangeShuffleModeCommand : MediaPlayer.MPRemoteCommand, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangeShuffleModeCommand (Foundation.NSObjectFlag t);
	protected MPChangeShuffleModeCommand (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MPShuffleType CurrentShuffleType { get; set; }
}

New Type: MediaPlayer.MPChangeShuffleModeCommandEvent

public class MPChangeShuffleModeCommandEvent : MediaPlayer.MPRemoteCommandEvent, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangeShuffleModeCommandEvent (Foundation.NSObjectFlag t);
	protected MPChangeShuffleModeCommandEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool PreservesShuffleMode { get; }
	public virtual MPShuffleType ShuffleType { get; }
}

New Type: MediaPlayer.MPFeedbackCommand

public class MPFeedbackCommand : MediaPlayer.MPRemoteCommand, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPFeedbackCommand (Foundation.NSObjectFlag t);
	protected MPFeedbackCommand (IntPtr handle);
	// properties
	public virtual bool Active { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual string LocalizedShortTitle { get; set; }
	public virtual string LocalizedTitle { get; set; }
}

New Type: MediaPlayer.MPFeedbackCommandEvent

public class MPFeedbackCommandEvent : MediaPlayer.MPRemoteCommandEvent, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPFeedbackCommandEvent (Foundation.NSObjectFlag t);
	protected MPFeedbackCommandEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool Negative { get; }
}

New Type: MediaPlayer.MPLanguageOptionCharacteristics

public static class MPLanguageOptionCharacteristics {
	// properties
	public static Foundation.NSString ContainsOnlyForcedSubtitles { get; }
	public static Foundation.NSString DescribesMusicAndSound { get; }
	public static Foundation.NSString DescribesVideo { get; }
	public static Foundation.NSString DubbedTranslation { get; }
	public static Foundation.NSString EasyToRead { get; }
	public static Foundation.NSString IsAuxiliaryContent { get; }
	public static Foundation.NSString IsMainProgramContent { get; }
	public static Foundation.NSString LanguageTranslation { get; }
	public static Foundation.NSString TranscribesSpokenDialog { get; }
	public static Foundation.NSString VoiceOverTranslation { get; }
}

New Type: MediaPlayer.MPMediaEntity

public class MPMediaEntity : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MPMediaEntity ();
	public MPMediaEntity (Foundation.NSCoder coder);
	protected MPMediaEntity (Foundation.NSObjectFlag t);
	protected MPMediaEntity (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual ulong PersistentID { get; }
	public static Foundation.NSString PropertyPersistentID { get; }
	// methods
	public static bool CanFilterByProperty (Foundation.NSString property);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public virtual void EnumerateValues (Foundation.NSSet propertiesToEnumerate, MPMediaItemEnumerator enumerator);
	public virtual Foundation.NSObject GetObject (Foundation.NSObject key);
	public virtual Foundation.NSObject ValueForProperty (Foundation.NSString property);
}

New Type: MediaPlayer.MPMediaItem

public static class MPMediaItem {
	// properties
	public static Foundation.NSString AlbumArtistPersistentIDProperty { get; }
	public static Foundation.NSString AlbumArtistProperty { get; }
	public static Foundation.NSString AlbumPersistentIDProperty { get; }
	public static Foundation.NSString AlbumTitleProperty { get; }
	public static Foundation.NSString AlbumTrackCountProperty { get; }
	public static Foundation.NSString AlbumTrackNumberProperty { get; }
	public static Foundation.NSString ArtistPersistentIDProperty { get; }
	public static Foundation.NSString ArtistProperty { get; }
	public static Foundation.NSString ArtworkProperty { get; }
	public static Foundation.NSString AssetURLProperty { get; }
	public static Foundation.NSString BeatsPerMinuteProperty { get; }
	public static Foundation.NSString BookmarkTimeProperty { get; }
	public static Foundation.NSString CommentsProperty { get; }
	public static Foundation.NSString ComposerPersistentIDProperty { get; }
	public static Foundation.NSString ComposerProperty { get; }
	public static Foundation.NSString DateAddedProperty { get; }
	public static Foundation.NSString DiscCountProperty { get; }
	public static Foundation.NSString DiscNumberProperty { get; }
	public static Foundation.NSString GenrePersistentIDProperty { get; }
	public static Foundation.NSString GenreProperty { get; }
	public static Foundation.NSString HasProtectedAssetProperty { get; }
	public static Foundation.NSString IsCloudItemProperty { get; }
	public static Foundation.NSString IsCompilationProperty { get; }
	public static Foundation.NSString IsExplicitProperty { get; }
	public static Foundation.NSString LastPlayedDateProperty { get; }
	public static Foundation.NSString LyricsProperty { get; }
	public static Foundation.NSString MediaTypeProperty { get; }
	public static Foundation.NSString PersistentIDProperty { get; }
	public static Foundation.NSString PlayCountProperty { get; }
	public static Foundation.NSString PlaybackDurationProperty { get; }
	public static Foundation.NSString PlaybackStoreIDProperty { get; }
	public static Foundation.NSString PodcastPersistentIDProperty { get; }
	public static Foundation.NSString PodcastTitleProperty { get; }
	public static Foundation.NSString RatingProperty { get; }
	public static Foundation.NSString ReleaseDateProperty { get; }
	public static Foundation.NSString SkipCountProperty { get; }
	public static Foundation.NSString TitleProperty { get; }
	public static Foundation.NSString UserGroupingProperty { get; }
}

New Type: MediaPlayer.MPMediaItemArtwork

public class MPMediaItemArtwork : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPMediaItemArtwork (Foundation.NSObjectFlag t);
	protected MPMediaItemArtwork (IntPtr handle);
	public MPMediaItemArtwork (UIKit.UIImage image);
	public MPMediaItemArtwork (CoreGraphics.CGSize boundsSize, System.Func<CoreGraphics.CGSize,UIKit.UIImage> requestHandler);
	// properties
	public virtual CoreGraphics.CGRect Bounds { get; }
	public override IntPtr ClassHandle { get; }
	public virtual CoreGraphics.CGRect ImageCropRectangle { get; }
	// methods
	public virtual UIKit.UIImage ImageWithSize (CoreGraphics.CGSize size);
}

New Type: MediaPlayer.MPMediaItemEnumerator

public sealed delegate MPMediaItemEnumerator : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public MPMediaItemEnumerator (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (string property, Foundation.NSObject value, ref bool stop, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (ref bool stop, System.IAsyncResult result);
	public virtual void Invoke (string property, Foundation.NSObject value, ref bool stop);
}

New Type: MediaPlayer.MPMediaPlaylistProperty

public static class MPMediaPlaylistProperty {
	// properties
	public static Foundation.NSString AuthorDisplayName { get; }
	public static Foundation.NSString DescriptionText { get; }
	public static Foundation.NSString Name { get; }
	public static Foundation.NSString PersistentID { get; }
	public static Foundation.NSString PlaylistAttributes { get; }
	public static Foundation.NSString SeedItems { get; }
}

New Type: MediaPlayer.MPMovieControlMode

[Serializable]
public enum MPMovieControlMode {
	Default = 0,
	Hidden = 2,
	VolumeOnly = 1,
}

New Type: MediaPlayer.MPMoviePlayerController

public static class MPMoviePlayerController {
	// properties
	public static Foundation.NSString MediaPlaybackIsPreparedToPlayDidChangeNotification { get; }

	// inner types
	public static class Notifications {
		// methods
		public static Foundation.NSObject ObserveMediaPlaybackIsPreparedToPlayDidChange (System.EventHandler<Foundation.NSNotificationEventArgs> handler);
		public static Foundation.NSObject ObserveMediaPlaybackIsPreparedToPlayDidChange (Foundation.NSObject objectToObserve, System.EventHandler<Foundation.NSNotificationEventArgs> handler);
	}
}

New Type: MediaPlayer.MPNowPlayingInfo

public class MPNowPlayingInfo {
	// constructors
	public MPNowPlayingInfo ();
	// fields
	public string AlbumTitle;
	public int? AlbumTrackCount;
	public int? AlbumTrackNumber;
	public string Artist;
	public MPMediaItemArtwork Artwork;
	public int? ChapterCount;
	public int? ChapterNumber;
	public string Composer;
	public double? DefaultPlaybackRate;
	public int? DiscCount;
	public int? DiscNumber;
	public double? ElapsedPlaybackTime;
	public string Genre;
	public ulong? PersistentID;
	public double? PlaybackDuration;
	public int? PlaybackQueueCount;
	public int? PlaybackQueueIndex;
	public double? PlaybackRate;
	public string Title;
	// properties
	public Foundation.NSUrl AssetUrl { get; set; }
	public MPNowPlayingInfoLanguageOptionGroup[] AvailableLanguageOptions { get; set; }
	public string CollectionIdentifier { get; set; }
	public MPNowPlayingInfoLanguageOption[] CurrentLanguageOptions { get; set; }
	public Foundation.NSDate CurrentPlaybackDate { get; set; }
	public string ExternalContentIdentifier { get; set; }
	public string ExternalUserProfileIdentifier { get; set; }
	public bool? IsLiveStream { get; set; }
	public MPNowPlayingInfoMediaType? MediaType { get; set; }
	public float? PlaybackProgress { get; set; }
}

New Type: MediaPlayer.MPNowPlayingInfoCenter

public class MPNowPlayingInfoCenter : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPNowPlayingInfoCenter (Foundation.NSObjectFlag t);
	protected MPNowPlayingInfoCenter (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public static MPNowPlayingInfoCenter DefaultCenter { get; }
	public MPNowPlayingInfo NowPlaying { get; set; }
	public virtual MPNowPlayingPlaybackState PlaybackState { get; set; }
	public static Foundation.NSString PropertyAssetUrl { get; }
	public static Foundation.NSString PropertyCollectionIdentifier { get; }
	public static Foundation.NSString PropertyExternalContentIdentifier { get; }
	public static Foundation.NSString PropertyExternalUserProfileIdentifier { get; }
	public static Foundation.NSString PropertyIsLiveStream { get; }
	public static Foundation.NSString PropertyMediaType { get; }
	public static Foundation.NSString PropertyPlaybackProgress { get; }
	public static Foundation.NSString PropertyServiceIdentifier { get; }
}

New Type: MediaPlayer.MPNowPlayingInfoLanguageOption

public class MPNowPlayingInfoLanguageOption : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPNowPlayingInfoLanguageOption (Foundation.NSObjectFlag t);
	protected MPNowPlayingInfoLanguageOption (IntPtr handle);
	public MPNowPlayingInfoLanguageOption (MPNowPlayingInfoLanguageOptionType languageOptionType, string languageTag, Foundation.NSString[] languageOptionCharacteristics, string displayName, string identifier);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string DisplayName { get; }
	public virtual string Identifier { get; }
	public virtual bool IsAutomaticAudibleLanguageOption { get; }
	public virtual bool IsAutomaticLegibleLanguageOption { get; }
	public virtual Foundation.NSString[] LanguageOptionCharacteristics { get; }
	public virtual MPNowPlayingInfoLanguageOptionType LanguageOptionType { get; }
	public virtual string LanguageTag { get; }
}

New Type: MediaPlayer.MPNowPlayingInfoLanguageOptionGroup

public class MPNowPlayingInfoLanguageOptionGroup : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPNowPlayingInfoLanguageOptionGroup (Foundation.NSObjectFlag t);
	protected MPNowPlayingInfoLanguageOptionGroup (IntPtr handle);
	public MPNowPlayingInfoLanguageOptionGroup (MPNowPlayingInfoLanguageOption[] languageOptions, MPNowPlayingInfoLanguageOption defaultLanguageOption, bool allowEmptySelection);
	// properties
	public virtual bool AllowEmptySelection { get; }
	public override IntPtr ClassHandle { get; }
	public virtual MPNowPlayingInfoLanguageOption DefaultLanguageOption { get; }
	public virtual MPNowPlayingInfoLanguageOption[] LanguageOptions { get; }
}

New Type: MediaPlayer.MPNowPlayingInfoLanguageOptionType

[Serializable]
public enum MPNowPlayingInfoLanguageOptionType {
	Audible = 0,
	Legible = 1,
}

New Type: MediaPlayer.MPNowPlayingInfoMediaType

[Serializable]
public enum MPNowPlayingInfoMediaType {
	Audio = 1,
	None = 0,
	Video = 2,
}

New Type: MediaPlayer.MPNowPlayingPlaybackState

[Serializable]
public enum MPNowPlayingPlaybackState {
	Interrupted = 4,
	Paused = 2,
	Playing = 1,
	Stopped = 3,
	Unknown = 0,
}

New Type: MediaPlayer.MPRatingCommand

public class MPRatingCommand : MediaPlayer.MPRemoteCommand, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPRatingCommand (Foundation.NSObjectFlag t);
	protected MPRatingCommand (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual float MaximumRating { get; set; }
	public virtual float MinimumRating { get; set; }
}

New Type: MediaPlayer.MPRatingCommandEvent

public class MPRatingCommandEvent : MediaPlayer.MPRemoteCommandEvent, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPRatingCommandEvent (Foundation.NSObjectFlag t);
	protected MPRatingCommandEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual float Rating { get; }
}

New Type: MediaPlayer.MPRemoteCommand

public class MPRemoteCommand : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPRemoteCommand (Foundation.NSObjectFlag t);
	protected MPRemoteCommand (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool Enabled { get; set; }
	// methods
	public virtual Foundation.NSObject AddTarget (System.Func<MPRemoteCommandEvent,MediaPlayer.MPRemoteCommandHandlerStatus> handler);
	public virtual void AddTarget (Foundation.NSObject target, ObjCRuntime.Selector action);
	public virtual void RemoveTarget (Foundation.NSObject target);
	public virtual void RemoveTarget (Foundation.NSObject target, ObjCRuntime.Selector action);
}

New Type: MediaPlayer.MPRemoteCommandCenter

public class MPRemoteCommandCenter : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors

	[Obsolete ("Use MPRemoteCommandCenter.Shared")]
public MPRemoteCommandCenter ();
	protected MPRemoteCommandCenter (Foundation.NSObjectFlag t);
	protected MPRemoteCommandCenter (IntPtr handle);
	// properties
	public virtual MPFeedbackCommand BookmarkCommand { get; }
	public virtual MPChangePlaybackPositionCommand ChangePlaybackPositionCommand { get; }
	public virtual MPChangePlaybackRateCommand ChangePlaybackRateCommand { get; }
	public virtual MPChangeRepeatModeCommand ChangeRepeatModeCommand { get; }
	public virtual MPChangeShuffleModeCommand ChangeShuffleModeCommand { get; }
	public override IntPtr ClassHandle { get; }
	public virtual MPRemoteCommand DisableLanguageOptionCommand { get; }
	public virtual MPFeedbackCommand DislikeCommand { get; }
	public virtual MPRemoteCommand EnableLanguageOptionCommand { get; }
	public virtual MPFeedbackCommand LikeCommand { get; }
	public virtual MPRemoteCommand NextTrackCommand { get; }
	public virtual MPRemoteCommand PauseCommand { get; }
	public virtual MPRemoteCommand PlayCommand { get; }
	public virtual MPRemoteCommand PreviousTrackCommand { get; }
	public virtual MPRatingCommand RatingCommand { get; }
	public virtual MPRemoteCommand SeekBackwardCommand { get; }
	public virtual MPRemoteCommand SeekForwardCommand { get; }
	public static MPRemoteCommandCenter Shared { get; }
	public virtual MPSkipIntervalCommand SkipBackwardCommand { get; }
	public virtual MPSkipIntervalCommand SkipForwardCommand { get; }
	public virtual MPRemoteCommand StopCommand { get; }
	public virtual MPRemoteCommand TogglePlayPauseCommand { get; }
}

New Type: MediaPlayer.MPRemoteCommandEvent

public class MPRemoteCommandEvent : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPRemoteCommandEvent (Foundation.NSObjectFlag t);
	protected MPRemoteCommandEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MPRemoteCommand Command { get; }
	public virtual double Timestamp { get; }
}

New Type: MediaPlayer.MPRemoteCommandHandlerStatus

[Serializable]
public enum MPRemoteCommandHandlerStatus {
	CommandFailed = 200,
	DeviceNotFound = 120,
	NoActionableNowPlayingItem = 110,
	NoSuchContent = 100,
	Success = 0,
}

New Type: MediaPlayer.MPRepeatType

[Serializable]
public enum MPRepeatType {
	All = 2,
	Off = 0,
	One = 1,
}

New Type: MediaPlayer.MPSeekCommandEvent

public class MPSeekCommandEvent : MediaPlayer.MPRemoteCommandEvent, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSeekCommandEvent (Foundation.NSObjectFlag t);
	protected MPSeekCommandEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MPSeekCommandEventType Type { get; }
}

New Type: MediaPlayer.MPSeekCommandEventType

[Serializable]
public enum MPSeekCommandEventType {
	BeginSeeking = 0,
	EndSeeking = 1,
}

New Type: MediaPlayer.MPShuffleType

[Serializable]
public enum MPShuffleType {
	Collections = 2,
	Items = 1,
	Off = 0,
}

New Type: MediaPlayer.MPSkipIntervalCommand

public class MPSkipIntervalCommand : MediaPlayer.MPRemoteCommand, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSkipIntervalCommand (Foundation.NSObjectFlag t);
	protected MPSkipIntervalCommand (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public double[] PreferredIntervals { get; set; }
}

New Type: MediaPlayer.MPSkipIntervalCommandEvent

public class MPSkipIntervalCommandEvent : MediaPlayer.MPRemoteCommandEvent, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSkipIntervalCommandEvent (Foundation.NSObjectFlag t);
	protected MPSkipIntervalCommandEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Interval { get; }
}

New Namespace NaturalLanguage

New Type: NaturalLanguage.NLLanguage

[Serializable]
public enum NLLanguage {
	Amharic = 1,
	Arabic = 2,
	Armenian = 3,
	Bengali = 4,
	Bulgarian = 5,
	Burmese = 6,
	Catalan = 7,
	Cherokee = 8,
	Croatian = 9,
	Czech = 10,
	Danish = 11,
	Dutch = 12,
	English = 13,
	Finnish = 14,
	French = 15,
	Georgian = 16,
	German = 17,
	Greek = 18,
	Gujarati = 19,
	Hebrew = 20,
	Hindi = 21,
	Hungarian = 22,
	Icelandic = 23,
	Indonesian = 24,
	Italian = 25,
	Japanese = 26,
	Kannada = 27,
	Khmer = 28,
	Korean = 29,
	Lao = 30,
	Malay = 31,
	Malayalam = 32,
	Marathi = 33,
	Mongolian = 34,
	Norwegian = 35,
	Oriya = 36,
	Persian = 37,
	Polish = 38,
	Portuguese = 39,
	Punjabi = 40,
	Romanian = 41,
	Russian = 42,
	SimplifiedChinese = 43,
	Sinhalese = 44,
	Slovak = 45,
	Spanish = 46,
	Swedish = 47,
	Tamil = 48,
	Telugu = 49,
	Thai = 50,
	Tibetan = 51,
	TraditionalChinese = 52,
	Turkish = 53,
	Ukrainian = 54,
	Undetermined = 0,
	Urdu = 55,
	Vietnamese = 56,
}

New Type: NaturalLanguage.NLLanguageExtensions

public static class NLLanguageExtensions {
	// methods
	public static Foundation.NSString GetConstant (this NLLanguage self);
	public static NLLanguage GetValue (Foundation.NSString constant);
}

New Type: NaturalLanguage.NLLanguageRecognizer

public class NLLanguageRecognizer : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public NLLanguageRecognizer ();
	protected NLLanguageRecognizer (Foundation.NSObjectFlag t);
	protected NLLanguageRecognizer (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public NLLanguage DominantLanguage { get; }
	public virtual NLLanguage[] LanguageConstraints { get; set; }
	public System.Collections.Generic.Dictionary<NLLanguage,System.nuint> LanguageHints { get; set; }
	public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSNumber> NativeLanguageHints { get; set; }
	// methods
	public static NLLanguage GetDominantLanguage (string string);
	public System.Collections.Generic.Dictionary<NLLanguage,System.nuint> GetLanguageHypotheses (uint maxHypotheses);
	public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSNumber> GetNativeLanguageHypotheses (uint maxHypotheses);
	public virtual void Process (string string);
	public virtual void Reset ();
}

New Type: NaturalLanguage.NLModel

public class NLModel : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected NLModel (Foundation.NSObjectFlag t);
	protected NLModel (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual NLModelConfiguration Configuration { get; }
	// methods
	public static NLModel Create (CoreML.MLModel mlModel, out Foundation.NSError error);
	public static NLModel Create (Foundation.NSUrl url, out Foundation.NSError error);
	public virtual string GetPredictedLabel (string string);
	public virtual string[] GetPredictedLabels (string[] tokens);
}

New Type: NaturalLanguage.NLModelConfiguration

public class NLModelConfiguration : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public NLModelConfiguration ();
	public NLModelConfiguration (Foundation.NSCoder coder);
	protected NLModelConfiguration (Foundation.NSObjectFlag t);
	protected NLModelConfiguration (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual NLLanguage Language { get; }
	public virtual uint Revision { get; }
	public virtual NLModelType Type { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static uint GetCurrentRevision (NLModelType type);
	public static Foundation.NSIndexSet GetSupportedRevisions (NLModelType type);
}

New Type: NaturalLanguage.NLModelType

[Serializable]
public enum NLModelType {
	Classifier = 0,
	Sequence = 1,
}

New Type: NaturalLanguage.NLTag

[Serializable]
public enum NLTag {
	Adjective = 6,
	Adverb = 7,
	Classifier = 15,
	CloseParenthesis = 22,
	CloseQuote = 20,
	Conjunction = 13,
	Dash = 24,
	Determiner = 9,
	Idiom = 16,
	Interjection = 14,
	Noun = 4,
	Number = 12,
	OpenParenthesis = 21,
	OpenQuote = 19,
	OrganizationName = 30,
	Other = 3,
	OtherPunctuation = 25,
	OtherWhitespace = 27,
	OtherWord = 17,
	ParagraphBreak = 26,
	Particle = 10,
	PersonalName = 28,
	PlaceName = 29,
	Preposition = 11,
	Pronoun = 8,
	Punctuation = 1,
	SentenceTerminator = 18,
	Verb = 5,
	Whitespace = 2,
	Word = 0,
	WordJoiner = 23,
}

New Type: NaturalLanguage.NLTagExtensions

public static class NLTagExtensions {
	// methods
	public static Foundation.NSString GetConstant (this NLTag self);
	public static NLTag GetValue (Foundation.NSString constant);
}

New Type: NaturalLanguage.NLTagScheme

[Serializable]
public enum NLTagScheme {
	Language = 5,
	Lemma = 4,
	LexicalClass = 1,
	NameType = 2,
	NameTypeOrLexicalClass = 3,
	Script = 6,
	TokenType = 0,
}

New Type: NaturalLanguage.NLTagSchemeExtensions

public static class NLTagSchemeExtensions {
	// methods
	public static Foundation.NSString GetConstant (this NLTagScheme self);
	public static NLTagScheme GetValue (Foundation.NSString constant);
}

New Type: NaturalLanguage.NLTagger

public class NLTagger : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected NLTagger (Foundation.NSObjectFlag t);
	public NLTagger (Foundation.NSString[] tagSchemes);
	public NLTagger (NLTagScheme[] tagSchemes);
	protected NLTagger (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public NLLanguage DominantLanguage { get; }
	public virtual string String { get; set; }
	public NLTagScheme[] TagSchemes { get; }
	// methods
	public virtual void EnumerateTags (Foundation.NSRange range, NLTokenUnit unit, Foundation.NSString scheme, NLTaggerOptions options, NLTaggerEnumerateTagsContinuationHandler handler);
	public void EnumerateTags (Foundation.NSRange range, NLTokenUnit unit, NLTagScheme scheme, NLTaggerOptions options, NLTaggerEnumerateTagsContinuationHandler handler);
	public static Foundation.NSString[] GetAvailableTagSchemes (NLTokenUnit unit, Foundation.NSString language);
	public static NLTagScheme[] GetAvailableTagSchemes (NLTokenUnit unit, NLLanguage language);
	public virtual NLModel[] GetModels (Foundation.NSString tagScheme);
	public NLModel[] GetModels (NLTagScheme tagScheme);
	public virtual Foundation.NSString GetTag (uint characterIndex, NLTokenUnit unit, Foundation.NSString scheme, Foundation.NSRange tokenRange);
	public NLTag GetTag (uint characterIndex, NLTokenUnit unit, NLTagScheme scheme, Foundation.NSRange tokenRange);
	public virtual Foundation.NSString[] GetTags (Foundation.NSRange range, NLTokenUnit unit, Foundation.NSString scheme, NLTaggerOptions options, out Foundation.NSValue[] tokenRanges);
	public NLTag[] GetTags (Foundation.NSRange range, NLTokenUnit unit, NLTagScheme scheme, NLTaggerOptions options, out Foundation.NSValue[] tokenRanges);
	public virtual Foundation.NSRange GetTokenRange (uint characterIndex, Foundation.NSString unit);
	public virtual void SetLanguage (Foundation.NSString language, Foundation.NSRange range);
	public void SetLanguage (NLLanguage language, Foundation.NSRange range);
	public virtual void SetModels (NLModel[] models, Foundation.NSString tagScheme);
	public void SetModels (NLModel[] models, NLTagScheme tagScheme);
	public virtual void SetOrthography (Foundation.NSOrthography orthography, Foundation.NSRange range);
}

New Type: NaturalLanguage.NLTaggerEnumerateTagsContinuationHandler

public sealed delegate NLTaggerEnumerateTagsContinuationHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public NLTaggerEnumerateTagsContinuationHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (Foundation.NSString tag, Foundation.NSRange tokenRange, out bool stop, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (out bool stop, System.IAsyncResult result);
	public virtual void Invoke (Foundation.NSString tag, Foundation.NSRange tokenRange, out bool stop);
}

New Type: NaturalLanguage.NLTaggerOptions

[Serializable]
[Flags]
public enum NLTaggerOptions {
	JoinContractions = 32,
	JoinNames = 16,
	OmitOther = 8,
	OmitPunctuation = 2,
	OmitWhitespace = 4,
	OmitWords = 1,
}

New Type: NaturalLanguage.NLTokenUnit

[Serializable]
public enum NLTokenUnit {
	Document = 3,
	Paragraph = 2,
	Sentence = 1,
	Word = 0,
}

New Type: NaturalLanguage.NLTokenizer

public class NLTokenizer : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected NLTokenizer (Foundation.NSObjectFlag t);
	public NLTokenizer (NLTokenUnit unit);
	protected NLTokenizer (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string String { get; set; }
	public virtual NLTokenUnit Unit { get; }
	// methods
	public virtual void EnumerateTokens (Foundation.NSRange range, NLTokenizerEnumerateContinuationHandler handler);
	public virtual Foundation.NSRange GetTokenRange (uint characterIndex);
	public virtual Foundation.NSValue[] GetTokens (Foundation.NSRange range);
	public void SetLanguage (NLLanguage language);
}

New Type: NaturalLanguage.NLTokenizerAttributes

[Serializable]
[Flags]
public enum NLTokenizerAttributes {
	Emoji = 4,
	Numeric = 1,
	Symbolic = 2,
}

New Type: NaturalLanguage.NLTokenizerEnumerateContinuationHandler

public sealed delegate NLTokenizerEnumerateContinuationHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public NLTokenizerEnumerateContinuationHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (Foundation.NSRange tokenRange, NLTokenizerAttributes flags, out bool stop, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (out bool stop, System.IAsyncResult result);
	public virtual void Invoke (Foundation.NSRange tokenRange, NLTokenizerAttributes flags, out bool stop);
}