API diff

Xamarin.WatchOS.dll


Xamarin.WatchOS.dll

Hide non-breaking changes

Namespace ClockKit

Type Changed: ClockKit.CLKComplicationDataSource

Modified methods:

public abstract virtual void GetPlaceholderTemplate (CLKComplication complication, System.Action<CLKComplicationTemplate> handler)

Added method:

	public virtual void GetLocalizableSampleTemplate (CLKComplication complication, System.Action<CLKComplicationTemplate> handler);

Type Changed: ClockKit.CLKComplicationDataSource_Extensions

Added methods:

	public static void GetLocalizableSampleTemplate (ICLKComplicationDataSource This, CLKComplication complication, System.Action<CLKComplicationTemplate> handler);
	public static void GetPlaceholderTemplate (ICLKComplicationDataSource This, CLKComplication complication, System.Action<CLKComplicationTemplate> handler);

Type Changed: ClockKit.CLKComplicationFamily

Added values:

	ExtraLarge = 7,
	UtilitarianSmallFlat = 6,

Type Changed: ClockKit.CLKTextProvider

Added methods:

	public static CLKTextProvider CreateLocalizable (string textKey);
	public static CLKTextProvider CreateLocalizable (string formatKey, CLKTextProvider[] textProviders);
	public static CLKTextProvider CreateLocalizable (string textKey, string shortTextKey);

Type Changed: ClockKit.ICLKComplicationDataSource

Removed method:

	public virtual void GetPlaceholderTemplate (CLKComplication complication, System.Action<CLKComplicationTemplate> handler);

New Type ClockKit.CLKComplicationTemplateExtraLargeColumnsText

public class CLKComplicationTemplateExtraLargeColumnsText : ClockKit.CLKComplicationTemplate, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CLKComplicationTemplateExtraLargeColumnsText ();
	protected CLKComplicationTemplateExtraLargeColumnsText (Foundation.NSObjectFlag t);
	protected CLKComplicationTemplateExtraLargeColumnsText (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CLKComplicationColumnAlignment Column2Alignment { get; set; }
	public virtual bool HighlightColumn2 { get; set; }
	public virtual CLKTextProvider Row1Column1TextProvider { get; set; }
	public virtual CLKTextProvider Row1Column2TextProvider { get; set; }
	public virtual CLKTextProvider Row2Column1TextProvider { get; set; }
	public virtual CLKTextProvider Row2Column2TextProvider { get; set; }
}

New Type ClockKit.CLKComplicationTemplateExtraLargeRingImage

public class CLKComplicationTemplateExtraLargeRingImage : ClockKit.CLKComplicationTemplate, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CLKComplicationTemplateExtraLargeRingImage ();
	protected CLKComplicationTemplateExtraLargeRingImage (Foundation.NSObjectFlag t);
	protected CLKComplicationTemplateExtraLargeRingImage (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual float FillFraction { get; set; }
	public virtual CLKImageProvider ImageProvider { get; set; }
	public virtual CLKComplicationRingStyle RingStyle { get; set; }
}

New Type ClockKit.CLKComplicationTemplateExtraLargeRingText

public class CLKComplicationTemplateExtraLargeRingText : ClockKit.CLKComplicationTemplate, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CLKComplicationTemplateExtraLargeRingText ();
	protected CLKComplicationTemplateExtraLargeRingText (Foundation.NSObjectFlag t);
	protected CLKComplicationTemplateExtraLargeRingText (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual float FillFraction { get; set; }
	public virtual CLKComplicationRingStyle RingStyle { get; set; }
	public virtual CLKTextProvider TextProvider { get; set; }
}

New Type ClockKit.CLKComplicationTemplateExtraLargeSimpleImage

public class CLKComplicationTemplateExtraLargeSimpleImage : ClockKit.CLKComplicationTemplate, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CLKComplicationTemplateExtraLargeSimpleImage ();
	protected CLKComplicationTemplateExtraLargeSimpleImage (Foundation.NSObjectFlag t);
	protected CLKComplicationTemplateExtraLargeSimpleImage (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CLKImageProvider ImageProvider { get; set; }
}

New Type ClockKit.CLKComplicationTemplateExtraLargeSimpleText

public class CLKComplicationTemplateExtraLargeSimpleText : ClockKit.CLKComplicationTemplate, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CLKComplicationTemplateExtraLargeSimpleText ();
	protected CLKComplicationTemplateExtraLargeSimpleText (Foundation.NSObjectFlag t);
	protected CLKComplicationTemplateExtraLargeSimpleText (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CLKTextProvider TextProvider { get; set; }
}

New Type ClockKit.CLKComplicationTemplateExtraLargeStackImage

public class CLKComplicationTemplateExtraLargeStackImage : ClockKit.CLKComplicationTemplate, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CLKComplicationTemplateExtraLargeStackImage ();
	protected CLKComplicationTemplateExtraLargeStackImage (Foundation.NSObjectFlag t);
	protected CLKComplicationTemplateExtraLargeStackImage (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool HighlightLine2 { get; set; }
	public virtual CLKImageProvider Line1ImageProvider { get; set; }
	public virtual CLKTextProvider Line2TextProvider { get; set; }
}

New Type ClockKit.CLKComplicationTemplateExtraLargeStackText

public class CLKComplicationTemplateExtraLargeStackText : ClockKit.CLKComplicationTemplate, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CLKComplicationTemplateExtraLargeStackText ();
	protected CLKComplicationTemplateExtraLargeStackText (Foundation.NSObjectFlag t);
	protected CLKComplicationTemplateExtraLargeStackText (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool HighlightLine2 { get; set; }
	public virtual CLKTextProvider Line1TextProvider { get; set; }
	public virtual CLKTextProvider Line2TextProvider { get; set; }
}

Namespace Contacts

Type Changed: Contacts.CNContact

Added property:

	public virtual string PhoneticOrganizationName { get; }

Type Changed: Contacts.CNContactFetchRequest

Added constructor:

	public CNContactFetchRequest (Foundation.NSCoder coder);

Added interfaces:

	Foundation.INSCoding
	Foundation.INSSecureCoding

Added method:

	public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: Contacts.CNContactKey

Added property:

	public static Foundation.NSString PhoneticOrganizationName { get; }

Type Changed: Contacts.CNContactStore

Removed method:

	[Obsolete ("Use the overload that takes CNContactStoreListContactsHandler instead")]
	public virtual bool EnumerateContacts (CNContactFetchRequest fetchRequest, out Foundation.NSError error, CNContactStoreEnumerateContactsHandler handler);

Modified methods:

public virtual bool EnumerateContacts (CNContactFetchRequest fetchRequest, out Foundation.NSError error, CNContactStoreListContactsHandler handler)

Type Changed: Contacts.CNMutableContact

Added property:

	public virtual string PhoneticOrganizationName { get; set; }

Removed Type Contacts.CNContactStoreEnumerateContactsHandler

Namespace CoreData

Type Changed: CoreData.NSEntityMappingType

Modified fields:

Copy = 5 4
Transform = 6 5

Type Changed: CoreData.NSFetchRequest

Added method:

	public virtual INSFetchRequestResult[] Execute (out Foundation.NSError error);

Type Changed: CoreData.NSIncrementalStore

Modified methods:

public Foundation.NSObject IdentifierForNewStoreAtURL (Foundation.NSUrl storeURL storeUrl)

Type Changed: CoreData.NSManagedObject

Added constructor:

	public NSManagedObject (NSManagedObjectContext moc);

Added property:

	public static bool ContextShouldIgnoreUnModeledPropertyChanges { get; }

Added methods:

	public virtual void AwakeFromSnapshotEvents (NSSnapshotEventType flags);
	public static NSFetchRequest CreateFetchRequest ();
	public static NSEntityDescription GetEntityDescription ();

Type Changed: CoreData.NSManagedObjectContext

Added properties:

	public virtual bool AutomaticallyMergesChangesFromParent { get; set; }
	public virtual NSQueryGenerationToken QueryGenerationToken { get; }

Added method:

	public virtual bool SetQueryGenerationFromToken (NSQueryGenerationToken generation, out Foundation.NSError error);

Type Changed: CoreData.NSManagedObjectID

Added method:

	protected override void Dispose (bool disposing);

Type Changed: CoreData.NSMergePolicy

Added properties:

	public static NSMergePolicy ErrorPolicy { get; }
	public static NSMergePolicy MergeByPropertyObjectTrumpPolicy { get; }
	public static NSMergePolicy MergeByPropertyStoreTrumpPolicy { get; }
	public static NSMergePolicy OverwritePolicy { get; }
	public static NSMergePolicy RollbackPolicy { get; }

Type Changed: CoreData.NSMigrationManager

Modified methods:

public virtual bool MigrateStoreFromUrl (Foundation.NSUrl sourceURL sourceUrl, string sStoreType, Foundation.NSDictionary sOptions, NSMappingModel mappings, Foundation.NSUrl dURL dUrl, string dStoreType, Foundation.NSDictionary dOptions, out Foundation.NSError error)

Type Changed: CoreData.NSPersistentStore

Added methods:

	protected override void Dispose (bool disposing);
	public virtual bool LoadMetadata (out Foundation.NSError error);

Type Changed: CoreData.NSPersistentStoreCoordinator

Modified methods:

public virtual NSPersistentStore AddPersistentStoreWithType (Foundation.NSString storeType, string configuration, Foundation.NSUrl storeURL storeUrl, Foundation.NSDictionary options, out Foundation.NSError error)
public virtual NSPersistentStore MigratePersistentStore (NSPersistentStore store, Foundation.NSUrl URL url, Foundation.NSDictionary options, Foundation.NSString storeType, out Foundation.NSError error)
public virtual NSPersistentStore PersistentStoreForUrl (Foundation.NSUrl URL url)
public virtual bool ReplacePersistentStore (Foundation.NSUrl destinationURL destinationUrl, Foundation.NSDictionary destinationOptions, Foundation.NSUrl sourceURL sourceUrl, Foundation.NSDictionary sourceOptions, string storeType, out Foundation.NSError error)

Added methods:

	public virtual void AddPersistentStore (NSPersistentStoreDescription storeDescription, System.Action<NSPersistentStoreDescription,Foundation.NSError> block);
	public virtual System.Threading.Tasks.Task<NSPersistentStoreDescription> AddPersistentStoreAsync (NSPersistentStoreDescription storeDescription);
	public static Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> GetMetadata (string storeType, Foundation.NSUrl url, Foundation.NSDictionary options, out Foundation.NSError error);
	public static bool SetMetadata (Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> metadata, string storeType, Foundation.NSUrl url, Foundation.NSDictionary options, out Foundation.NSError error);

New Type CoreData.INSFetchRequestResult

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

New Type CoreData.MigrationErrorType

[Serializable]
public enum MigrationErrorType {
	EntityMigrationPolicy = 134170,
	ExternalRecordImport = 134200,
	InferredMappingModel = 134190,
	Migration = 134110,
	MigrationCancelled = 134120,
	MigrationManagerDestinationStore = 134160,
	MigrationManagerSourceStore = 134150,
	MigrationMissingMappingModel = 134140,
	MigrationMissingSourceModel = 134130,
}

New Type CoreData.NSPersistentContainer

public class NSPersistentContainer : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected NSPersistentContainer (Foundation.NSObjectFlag t);
	protected NSPersistentContainer (IntPtr handle);
	public NSPersistentContainer (string name);
	public NSPersistentContainer (string name, NSManagedObjectModel model);
	// properties
	public override IntPtr ClassHandle { get; }
	public static Foundation.NSUrl DefaultDirectoryUrl { get; }
	public virtual NSManagedObjectModel ManagedObjectModel { get; }
	public virtual string Name { get; }
	public virtual NSManagedObjectContext NewBackgroundContext { get; }
	public virtual NSPersistentStoreCoordinator PersistentStoreCoordinator { get; }
	public virtual NSPersistentStoreDescription[] PersistentStoreDescriptions { get; set; }
	public virtual NSManagedObjectContext ViewContext { get; }
	// methods
	public static NSPersistentContainer GetPersistentContainer (string name);
	public static NSPersistentContainer GetPersistentContainer (string name, NSManagedObjectModel model);
	public virtual void LoadPersistentStores (System.Action<NSPersistentStoreDescription,Foundation.NSError> block);
	public virtual System.Threading.Tasks.Task<NSPersistentStoreDescription> LoadPersistentStoresAsync ();
	public virtual void Perform (System.Action<NSManagedObjectContext> block);
}

New Type CoreData.NSPersistentStoreDescription

public class NSPersistentStoreDescription : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected NSPersistentStoreDescription (Foundation.NSObjectFlag t);
	public NSPersistentStoreDescription (Foundation.NSUrl url);
	protected NSPersistentStoreDescription (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string Configuration { get; set; }
	public virtual bool IsReadOnly { get; set; }
	public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> Options { get; }
	public virtual bool ShouldAddStoreAsynchronously { get; set; }
	public virtual bool ShouldInferMappingModelAutomatically { get; set; }
	public virtual bool ShouldMigrateStoreAutomatically { get; set; }
	public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> SqlitePragmas { get; }
	public virtual double Timeout { get; set; }
	public virtual string Type { get; set; }
	public virtual Foundation.NSUrl Url { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static NSPersistentStoreDescription GetPersistentStoreDescription (Foundation.NSUrl Url);
	public virtual void SetOption (Foundation.NSObject option, string key);
	public virtual void SetValue (Foundation.NSObject value, string name);
}

New Type CoreData.NSQueryGenerationToken

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

New Type CoreData.ObjectGraphManagementErrorType

[Serializable]
public enum ObjectGraphManagementErrorType {
	ManagedObjectContextLocking = 132000,
	ManagedObjectExternalRelationship = 133010,
	ManagedObjectMerge = 133020,
	ManagedObjectReferentialIntegrity = 133000,
	PersistentStoreCoordinatorLocking = 132010,
}

New Type CoreData.PersistentStoreErrorType

[Serializable]
public enum PersistentStoreErrorType {
	IncompatibleSchema = 134020,
	IncompatibleVersionHash = 134100,
	IncompleteSave = 134040,
	InvalidType = 134000,
	Open = 134080,
	Operation = 134070,
	Save = 134030,
	SaveConflicts = 134050,
	Timeout = 134090,
	TypeMismatch = 134010,
}

New Type CoreData.UserInfo

public class UserInfo : Foundation.DictionaryContainer {
	// constructors
	public UserInfo ();
	public UserInfo (Foundation.NSDictionary dictionary);
	// properties
	public NSPersistentStore[] AffectedStoresForError { get; set; }
	public Foundation.NSError[] DetailedErrors { get; set; }
	public Foundation.NSString KeyForValidationError { get; set; }
	public NSManagedObject ObjectForValidationError { get; set; }
	public NSMergeConflict[] PersistentStoreSaveConflicts { get; set; }
	public Foundation.NSPredicate PredicateForValidationError { get; set; }
	public Foundation.NSValue ValueForValidationError { get; set; }
}

New Type CoreData.UserInfoKeys

public static class UserInfoKeys {
	// properties
	public static Foundation.NSString AffectedStoresForErrorKey { get; }
	public static Foundation.NSString DetailedErrorsKey { get; }
	public static Foundation.NSString KeyForValidationErrorKey { get; }
	public static Foundation.NSString ObjectForValidationErrorKey { get; }
	public static Foundation.NSString PersistentStoreSaveConflictsKey { get; }
	public static Foundation.NSString PredicateForValidationErrorKey { get; }
	public static Foundation.NSString ValueForValidationErrorKey { get; }
}

New Type CoreData.ValidationErrorType

[Serializable]
public enum ValidationErrorType {
	DateTooLate = 1630,
	DateTooSoon = 1640,
	InvalidDate = 1650,
	ManagedObjectValidation = 1550,
	MissingMandatoryProperty = 1570,
	MultipleErrors = 1560,
	NumberTooLarge = 1610,
	NumberTooSmall = 1620,
	RelationshipDeniedDelete = 1600,
	RelationshipExceedsMaximumCount = 1590,
	RelationshipLacksMinimumCount = 1580,
	StringPatternMatching = 1680,
	StringTooLong = 1660,
	StringTooShort = 1670,
}

Namespace CoreGraphics

Type Changed: CoreGraphics.CGColorSpace

Added properties:

	public bool IsWideGamutRgb { get; }
	public string Name { get; }
	public bool SupportsOutput { get; }

Added method:

	public Foundation.NSData GetIccData ();

Type Changed: CoreGraphics.CGColorSpaceNames

Added properties:

	public static Foundation.NSString ExtendedGray { get; }
	public static Foundation.NSString ExtendedLinearGray { get; }
	public static Foundation.NSString ExtendedLinearSrgb { get; }
	public static Foundation.NSString ExtendedSrgb { get; }
	public static Foundation.NSString LinearGray { get; }
	public static Foundation.NSString LinearSrgb { get; }

Removed Type CoreGraphics.CGColorConverter

Removed Type CoreGraphics.CGColorConverterTransformType

Removed Type CoreGraphics.CGColorConverterTriple

New Type CoreGraphics.CGColorConversionInfo

public class CGColorConversionInfo : ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public CGColorConversionInfo (CGColorConversionOptions options, GColorConversionInfoTriple[] triples);
	public CGColorConversionInfo (CGColorSpace src, CGColorSpace dst);
	public CGColorConversionInfo (Foundation.NSDictionary options, GColorConversionInfoTriple[] triples);
	// properties
	public virtual IntPtr Handle { get; }
	// methods
	public virtual void Dispose ();
	protected virtual void Dispose (bool disposing);
	protected override void ~CGColorConversionInfo ();
}

New Type CoreGraphics.CGColorConversionInfoTransformType

[Serializable]
public enum CGColorConversionInfoTransformType {
	ApplySpace = 2,
	FromSpace = 0,
	ToSpace = 1,
}

New Type CoreGraphics.CGColorConversionOptions

public class CGColorConversionOptions : Foundation.DictionaryContainer {
	// constructors
	public CGColorConversionOptions ();
	public CGColorConversionOptions (Foundation.NSDictionary dictionary);
	// properties
	public bool? BlackPointCompensation { get; set; }
}

New Type CoreGraphics.GColorConversionInfoTriple

public struct GColorConversionInfoTriple {
	// fields
	public CGColorRenderingIntent Intent;
	public CGColorSpace Space;
	public CGColorConversionInfoTransformType Transform;
}

Namespace CoreLocation

Type Changed: CoreLocation.CLLocation

Added properties:

	public virtual double Course { get; }
	public virtual double Speed { get; }

Removed method:

	public virtual string Description ();

Type Changed: CoreLocation.CLLocationManager

Added method:

	public virtual void StartUpdatingLocation ();

Namespace CoreMotion

Type Changed: CoreMotion.CMAltimeter

Added method:

	public virtual System.Threading.Tasks.Task<CMAltitudeData> StartRelativeAltitudeUpdatesAsync (Foundation.NSOperationQueue queue);

Type Changed: CoreMotion.CMPedometer

Added property:

	public static bool IsPedometerEventTrackingAvailable { get; }

Added methods:

	public virtual void StartPedometerEventUpdates (System.Action<CMPedometerEvent,Foundation.NSError> handler);
	public virtual System.Threading.Tasks.Task<CMPedometerEvent> StartPedometerEventUpdatesAsync ();
	public virtual System.Threading.Tasks.Task<CMPedometerData> StartPedometerUpdatesAsync (Foundation.NSDate start);
	public virtual void StopPedometerEventUpdates ();

Type Changed: CoreMotion.CMPedometerData

Added property:

	public virtual Foundation.NSNumber AverageActivePace { get; }

New Type CoreMotion.CMPedometerEvent

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

New Type CoreMotion.CMPedometerEventType

[Serializable]
public enum CMPedometerEventType {
	Pause = 0,
	Resume = 1,
}

Namespace CoreText

Type Changed: CoreText.CTStringAttributeKey

Added fields:

	public static Foundation.NSString BackgroundColor;
	public static Foundation.NSString HorizontalInVerticalForms;

Type Changed: CoreText.CTStringAttributes

Added properties:

	public CoreGraphics.CGColor BackgroundColor { get; set; }
	public int? HorizontalInVerticalForms { get; set; }

Namespace Foundation

Type Changed: Foundation.DictionaryContainer

Added methods:

	protected CoreGraphics.CGPoint? GetCGPointValue (NSString key);
	protected CoreGraphics.CGRect? GetCGRectValue (NSString key);
	protected CoreGraphics.CGSize? GetCGSizeValue (NSString key);
	protected void SetCGPointValue (NSString key, CoreGraphics.CGPoint? value);
	protected void SetCGRectValue (NSString key, CoreGraphics.CGRect? value);
	protected void SetCGSizeValue (NSString key, CoreGraphics.CGSize? value);

Type Changed: Foundation.NSArray

Added method:

	public static T[] EnumsFromHandle<T> (IntPtr handle);

Type Changed: Foundation.NSCharacterSet

Added interface:

	INSSecureCoding

Type Changed: Foundation.NSCocoaError

Added values:

	CloudSharingConflictError = 5123,
	CloudSharingErrorMaximum = 5375,
	CloudSharingErrorMinimum = 5120,
	CloudSharingNetworkFailureError = 5120,
	CloudSharingNoPermissionError = 5124,
	CloudSharingOtherError = 5375,
	CloudSharingQuotaExceededError = 5121,
	CloudSharingTooManyParticipantsError = 5122,

Type Changed: Foundation.NSCoder

Added properties:

	public virtual NSDecodingFailurePolicy DecodingFailurePolicy { get; }
	public virtual NSError Error { get; }

Type Changed: Foundation.NSDateComponentsFormatterUnitsStyle

Added value:

	Brief = 5,

Type Changed: Foundation.NSDateIntervalFormatter

Added method:

	public virtual string ToString (NSDateInterval dateInterval);

Type Changed: Foundation.NSExpression

Removed methods:

	[Obsolete ("ValueWithObject is deprecated, please use EvaluateWith instead.")]
	public virtual NSExpression ExpressionValueWithObject (NSObject obj, NSMutableDictionary context);

	[Obsolete ("FromFormat (string, NSExpression[]) is deprecated, please use FromFormat (string, NSObject[]) instead.")]
	public static NSExpression FromFormat (string format, NSExpression[] parameters);

	[Obsolete ("FromFunction (NSExpressionHandler, NSExpression[]) is deprecated, please use FromFunction (NSExpressionCallbackHandler, NSExpression[]) instead.")]
	public static NSExpression FromFunction (NSExpressionHandler target, NSExpression[] parameters);

Type Changed: Foundation.NSKeyedArchiver

Added constructor:

	public NSKeyedArchiver ();

Added property:

	public virtual NSData EncodedData { get; }

Type Changed: Foundation.NSLocale

Added property:

	public virtual string CalendarIdentifier { get; }

Added method:

	public virtual string GetLocalizedCalendarIdentifier (string calendarIdentifier);

Type Changed: Foundation.NSMutableCharacterSet

Added interface:

	INSSecureCoding

Type Changed: Foundation.NSObject

Removed field:

	[Obsolete ("Use PlatformAssembly for easier code sharing across platforms")]
	public static System.Reflection.Assembly MonoTouchAssembly;

Type Changed: Foundation.NSPersonNameComponentsFormatter

Added method:

	public virtual NSPersonNameComponents GetComponents (string string);

Type Changed: Foundation.NSRunLoop

Added methods:

	public virtual void Perform (System.Action block);
	public virtual void Perform (NSString[] modes, System.Action block);

Type Changed: Foundation.NSStream

Added property:

	public static NSString NetworkServiceTypeCallSignaling { get; }

Type Changed: Foundation.NSString

Added method:

	public static string GetLocalizedUserNotificationString (string key, NSObject[] arguments);

Type Changed: Foundation.NSTimer

Added constructor:

	public NSTimer (NSDate date, double seconds, bool repeats, System.Action<NSTimer> block);

Added methods:

	public static NSTimer CreateScheduledTimer (double interval, bool repeats, System.Action<NSTimer> block);
	public static NSTimer CreateTimer (double interval, bool repeats, System.Action<NSTimer> block);

Type Changed: Foundation.NSUrlRequestNetworkServiceType

Added value:

	CallSignaling = 11,

Type Changed: Foundation.NSUrlSessionTaskDelegate

Added method:

	public virtual void DidFinishCollectingMetrics (NSUrlSession session, NSUrlSessionTask task, NSUrlSessionTaskMetrics metrics);

Type Changed: Foundation.NSUrlSessionTaskDelegate_Extensions

Added method:

	public static void DidFinishCollectingMetrics (INSUrlSessionTaskDelegate This, NSUrlSession session, NSUrlSessionTask task, NSUrlSessionTaskMetrics metrics);

Type Changed: Foundation.NSUserActivity

Removed constructor:

	public NSUserActivity ();

Type Changed: Foundation.NSUserDefaults

Added property:

	public static NSString NoCloudAccountNotification { get; }

Type Changed: Foundation.NSUserDefaults.Notifications

Added method:

	public static NSObject ObserveNoCloudAccount (System.EventHandler<NSNotificationEventArgs> handler);

Type Changed: Foundation.NSValue

Added properties:

	public virtual SceneKit.SCNMatrix4 SCNMatrix4Value { get; }
	public virtual SceneKit.SCNVector3 Vector3Value { get; }
	public virtual SceneKit.SCNVector4 Vector4Value { get; }

Added methods:

	public static NSValue FromSCNMatrix4 (SceneKit.SCNMatrix4 matrix);
	public static NSValue FromVector (SceneKit.SCNVector3 vector);
	public static NSValue FromVector (SceneKit.SCNVector4 vector);

Removed Type Foundation.NSExpressionHandler

New Type Foundation.NSDateInterval

public class NSDateInterval : Foundation.NSObject, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSDateInterval ();
	public NSDateInterval (NSCoder coder);
	protected NSDateInterval (NSObjectFlag t);
	protected NSDateInterval (IntPtr handle);
	public NSDateInterval (NSDate startDate, NSDate endDate);
	public NSDateInterval (NSDate startDate, double duration);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Duration { get; }
	public virtual NSDate EndDate { get; }
	public virtual NSDate StartDate { get; }
	// methods
	public virtual NSComparisonResult Compare (NSDateInterval dateInterval);
	public virtual bool ContainsDate (NSDate date);
	public virtual NSObject Copy (NSZone zone);
	public virtual void EncodeTo (NSCoder encoder);
	public virtual NSDateInterval GetIntersection (NSDateInterval dateInterval);
	public virtual bool Intersects (NSDateInterval dateInterval);
	public virtual bool IsEqualTo (NSDateInterval dateInterval);
}

New Type Foundation.NSDecodingFailurePolicy

[Serializable]
public enum NSDecodingFailurePolicy {
	RaiseException = 0,
	SetErrorAndReturn = 1,
}

New Type Foundation.NSDimension

public abstract class NSDimension : Foundation.NSUnit, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	protected NSDimension (NSCoder coder);
	protected NSDimension (NSObjectFlag t);
	protected NSDimension (IntPtr handle);
	public NSDimension (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public virtual NSUnitConverter Converter { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSFileManager_NSUserInformation

public static class NSFileManager_NSUserInformation {
	// methods
	public static NSUrl GetTemporaryDirectory (NSFileManager This);
}

New Type Foundation.NSIso8601DateFormatOptions

[Serializable]
[Flags]
public enum NSIso8601DateFormatOptions {
	ColonSeparatorInTime = 512,
	ColonSeparatorInTimeZone = 1024,
	DashSeparatorInDate = 256,
	Day = 16,
	FullDate = 275,
	FullTime = 1632,
	InternetDateTime = 1907,
	Month = 2,
	SpaceBetweenDateAndTime = 128,
	Time = 32,
	TimeZone = 64,
	WeekOfYear = 4,
	Year = 1,
}

New Type Foundation.NSIso8601DateFormatter

public class NSIso8601DateFormatter : Foundation.NSFormatter, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSIso8601DateFormatter ();
	public NSIso8601DateFormatter (NSCoder coder);
	protected NSIso8601DateFormatter (NSObjectFlag t);
	protected NSIso8601DateFormatter (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual NSIso8601DateFormatOptions FormatOptions { get; set; }
	public virtual NSTimeZone TimeZone { get; set; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
	public static string Format (NSDate date, NSTimeZone timeZone, NSIso8601DateFormatOptions formatOptions);
	public virtual NSDate ToDate (string string);
	public virtual string ToString (NSDate date);
}

New Type Foundation.NSMeasurementFormatter

public class NSMeasurementFormatter : Foundation.NSFormatter, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSMeasurementFormatter ();
	public NSMeasurementFormatter (NSCoder coder);
	protected NSMeasurementFormatter (NSObjectFlag t);
	protected NSMeasurementFormatter (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual NSLocale Locale { get; set; }
	public virtual NSNumberFormatter NumberFormatter { get; set; }
	public virtual NSMeasurementFormatterUnitOptions UnitOptions { get; set; }
	public virtual NSFormattingUnitStyle UnitStyle { get; set; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
	public virtual string ToString (Foundation.NSMeasurement<NSUnit> measurement);
	public virtual string ToString (NSUnit unit);
}

New Type Foundation.NSMeasurementFormatterUnitOptions

[Serializable]
[Flags]
public enum NSMeasurementFormatterUnitOptions {
	NaturalScale = 2,
	ProvidedUnit = 1,
	TemperatureWithoutUnit = 4,
}

New Type Foundation.NSMeasurement`1

public class NSMeasurement`1 : Foundation.NSObject, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSMeasurement`1 (NSCoder coder);
	protected NSMeasurement`1 (NSObjectFlag t);
	protected NSMeasurement`1 (IntPtr handle);
	public NSMeasurement`1 (double doubleValue, NSUnit unit);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double DoubleValue { get; }
	public virtual NSUnit Unit { get; }
	// methods
	public virtual bool CanBeConvertedTo (NSUnit unit);
	public virtual NSObject Copy (NSZone zone);
	public virtual void EncodeTo (NSCoder encoder);
	public virtual Foundation.NSMeasurement<UnitType> GetMeasurementByAdding (Foundation.NSMeasurement<UnitType> measurement);
	public virtual Foundation.NSMeasurement<UnitType> GetMeasurementByConverting (NSUnit unit);
	public virtual Foundation.NSMeasurement<UnitType> GetMeasurementBySubtracting (Foundation.NSMeasurement<UnitType> measurement);
}

New Type Foundation.NSUnit

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

New Type Foundation.NSUnitAcceleration

public class NSUnitAcceleration : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitAcceleration ();
	public NSUnitAcceleration (NSCoder coder);
	protected NSUnitAcceleration (NSObjectFlag t);
	protected NSUnitAcceleration (IntPtr handle);
	public NSUnitAcceleration (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitAcceleration Gravity { get; }
	public static NSUnitAcceleration MetersPerSecondSquared { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitAngle

public class NSUnitAngle : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitAngle ();
	public NSUnitAngle (NSCoder coder);
	protected NSUnitAngle (NSObjectFlag t);
	protected NSUnitAngle (IntPtr handle);
	public NSUnitAngle (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitAngle ArcMinutes { get; }
	public static NSUnitAngle ArcSeconds { get; }
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitAngle Degrees { get; }
	public static NSUnitAngle Gradians { get; }
	public static NSUnitAngle Radians { get; }
	public static NSUnitAngle Revolutions { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitArea

public class NSUnitArea : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitArea ();
	public NSUnitArea (NSCoder coder);
	protected NSUnitArea (NSObjectFlag t);
	protected NSUnitArea (IntPtr handle);
	public NSUnitArea (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitArea Acres { get; }
	public static NSUnitArea Ares { get; }
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitArea Hectares { get; }
	public static NSUnitArea SquareCentimeters { get; }
	public static NSUnitArea SquareFeet { get; }
	public static NSUnitArea SquareInches { get; }
	public static NSUnitArea SquareKilometers { get; }
	public static NSUnitArea SquareMegameters { get; }
	public static NSUnitArea SquareMeters { get; }
	public static NSUnitArea SquareMicrometers { get; }
	public static NSUnitArea SquareMiles { get; }
	public static NSUnitArea SquareMillimeters { get; }
	public static NSUnitArea SquareNanometers { get; }
	public static NSUnitArea SquareYards { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitConcentrationMass

public class NSUnitConcentrationMass : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitConcentrationMass ();
	public NSUnitConcentrationMass (NSCoder coder);
	protected NSUnitConcentrationMass (NSObjectFlag t);
	protected NSUnitConcentrationMass (IntPtr handle);
	public NSUnitConcentrationMass (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitConcentrationMass GramsPerLiter { get; }
	public static NSUnitConcentrationMass MilligramsPerDeciliter { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
	public static NSUnitConcentrationMass GetMillimolesPerLiter (double gramsPerMole);
}

New Type Foundation.NSUnitConverter

public class NSUnitConverter : Foundation.NSObject, INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitConverter ();
	protected NSUnitConverter (NSObjectFlag t);
	protected NSUnitConverter (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual double GetBaseUnitValue (double value);
	public virtual double GetValue (double baseUnitValue);
}

New Type Foundation.NSUnitConverterLinear

public class NSUnitConverterLinear : Foundation.NSUnitConverter, INSCoding, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitConverterLinear ();
	public NSUnitConverterLinear (NSCoder coder);
	protected NSUnitConverterLinear (NSObjectFlag t);
	public NSUnitConverterLinear (double coefficient);
	protected NSUnitConverterLinear (IntPtr handle);
	public NSUnitConverterLinear (double coefficient, double constant);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Coefficient { get; }
	public virtual double Constant { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitDispersion

public class NSUnitDispersion : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitDispersion ();
	public NSUnitDispersion (NSCoder coder);
	protected NSUnitDispersion (NSObjectFlag t);
	protected NSUnitDispersion (IntPtr handle);
	public NSUnitDispersion (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitDispersion PartsPerMillion { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitDuration

public class NSUnitDuration : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitDuration ();
	public NSUnitDuration (NSCoder coder);
	protected NSUnitDuration (NSObjectFlag t);
	protected NSUnitDuration (IntPtr handle);
	public NSUnitDuration (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitDuration Hours { get; }
	public static NSUnitDuration Minutes { get; }
	public static NSUnitDuration Seconds { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitElectricCharge

public class NSUnitElectricCharge : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitElectricCharge ();
	public NSUnitElectricCharge (NSCoder coder);
	protected NSUnitElectricCharge (NSObjectFlag t);
	protected NSUnitElectricCharge (IntPtr handle);
	public NSUnitElectricCharge (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitElectricCharge AmpereHours { get; }
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitElectricCharge Coulombs { get; }
	public static NSUnitElectricCharge KiloampereHours { get; }
	public static NSUnitElectricCharge MegaampereHours { get; }
	public static NSUnitElectricCharge MicroampereHours { get; }
	public static NSUnitElectricCharge MilliampereHours { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitElectricCurrent

public class NSUnitElectricCurrent : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitElectricCurrent ();
	public NSUnitElectricCurrent (NSCoder coder);
	protected NSUnitElectricCurrent (NSObjectFlag t);
	protected NSUnitElectricCurrent (IntPtr handle);
	public NSUnitElectricCurrent (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitElectricCurrent Amperes { get; }
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitElectricCurrent Kiloamperes { get; }
	public static NSUnitElectricCurrent Megaamperes { get; }
	public static NSUnitElectricCurrent Microamperes { get; }
	public static NSUnitElectricCurrent Milliamperes { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitElectricPotentialDifference

public class NSUnitElectricPotentialDifference : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitElectricPotentialDifference ();
	public NSUnitElectricPotentialDifference (NSCoder coder);
	protected NSUnitElectricPotentialDifference (NSObjectFlag t);
	protected NSUnitElectricPotentialDifference (IntPtr handle);
	public NSUnitElectricPotentialDifference (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitElectricPotentialDifference Kilovolts { get; }
	public static NSUnitElectricPotentialDifference Megavolts { get; }
	public static NSUnitElectricPotentialDifference Microvolts { get; }
	public static NSUnitElectricPotentialDifference Millivolts { get; }
	public static NSUnitElectricPotentialDifference Volts { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitElectricResistance

public class NSUnitElectricResistance : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitElectricResistance ();
	public NSUnitElectricResistance (NSCoder coder);
	protected NSUnitElectricResistance (NSObjectFlag t);
	protected NSUnitElectricResistance (IntPtr handle);
	public NSUnitElectricResistance (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitElectricResistance Kiloohms { get; }
	public static NSUnitElectricResistance Megaohms { get; }
	public static NSUnitElectricResistance Microohms { get; }
	public static NSUnitElectricResistance Milliohms { get; }
	public static NSUnitElectricResistance Ohms { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitEnergy

public class NSUnitEnergy : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitEnergy ();
	public NSUnitEnergy (NSCoder coder);
	protected NSUnitEnergy (NSObjectFlag t);
	protected NSUnitEnergy (IntPtr handle);
	public NSUnitEnergy (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public static NSUnitEnergy Calories { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitEnergy Joules { get; }
	public static NSUnitEnergy Kilocalories { get; }
	public static NSUnitEnergy Kilojoules { get; }
	public static NSUnitEnergy KilowattHours { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitFrequency

public class NSUnitFrequency : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitFrequency ();
	public NSUnitFrequency (NSCoder coder);
	protected NSUnitFrequency (NSObjectFlag t);
	protected NSUnitFrequency (IntPtr handle);
	public NSUnitFrequency (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitFrequency Gigahertz { get; }
	public static NSUnitFrequency Hertz { get; }
	public static NSUnitFrequency Kilohertz { get; }
	public static NSUnitFrequency Megahertz { get; }
	public static NSUnitFrequency Microhertz { get; }
	public static NSUnitFrequency Millihertz { get; }
	public static NSUnitFrequency Nanohertz { get; }
	public static NSUnitFrequency Terahertz { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitFuelEfficiency

public class NSUnitFuelEfficiency : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitFuelEfficiency ();
	public NSUnitFuelEfficiency (NSCoder coder);
	protected NSUnitFuelEfficiency (NSObjectFlag t);
	protected NSUnitFuelEfficiency (IntPtr handle);
	public NSUnitFuelEfficiency (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitFuelEfficiency LitersPer100Kilometers { get; }
	public static NSUnitFuelEfficiency MilesPerGallon { get; }
	public static NSUnitFuelEfficiency MilesPerImperialGallon { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitIlluminance

public class NSUnitIlluminance : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitIlluminance ();
	public NSUnitIlluminance (NSCoder coder);
	protected NSUnitIlluminance (NSObjectFlag t);
	protected NSUnitIlluminance (IntPtr handle);
	public NSUnitIlluminance (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitIlluminance Lux { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitLength

public class NSUnitLength : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitLength ();
	public NSUnitLength (NSCoder coder);
	protected NSUnitLength (NSObjectFlag t);
	protected NSUnitLength (IntPtr handle);
	public NSUnitLength (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitLength AstronomicalUnits { get; }
	public static NSDimension BaseUnit { get; }
	public static NSUnitLength Centimeters { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitLength Decameters { get; }
	public static NSUnitLength Decimeters { get; }
	public static NSUnitLength Fathoms { get; }
	public static NSUnitLength Feet { get; }
	public static NSUnitLength Furlongs { get; }
	public static NSUnitLength Hectometers { get; }
	public static NSUnitLength Inches { get; }
	public static NSUnitLength Kilometers { get; }
	public static NSUnitLength Lightyears { get; }
	public static NSUnitLength Megameters { get; }
	public static NSUnitLength Meters { get; }
	public static NSUnitLength Micrometers { get; }
	public static NSUnitLength Miles { get; }
	public static NSUnitLength Millimeters { get; }
	public static NSUnitLength Nanometers { get; }
	public static NSUnitLength NauticalMiles { get; }
	public static NSUnitLength Parsecs { get; }
	public static NSUnitLength Picometers { get; }
	public static NSUnitLength ScandinavianMiles { get; }
	public static NSUnitLength Yards { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitMass

public class NSUnitMass : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitMass ();
	public NSUnitMass (NSCoder coder);
	protected NSUnitMass (NSObjectFlag t);
	protected NSUnitMass (IntPtr handle);
	public NSUnitMass (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public static NSUnitMass Carats { get; }
	public static NSUnitMass Centigrams { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitMass Decigrams { get; }
	public static NSUnitMass Grams { get; }
	public static NSUnitMass Kilograms { get; }
	public static NSUnitMass MetricTons { get; }
	public static NSUnitMass Micrograms { get; }
	public static NSUnitMass Milligrams { get; }
	public static NSUnitMass Nanograms { get; }
	public static NSUnitMass Ounces { get; }
	public static NSUnitMass OuncesTroy { get; }
	public static NSUnitMass Picograms { get; }
	public static NSUnitMass Pounds { get; }
	public static NSUnitMass ShortTons { get; }
	public static NSUnitMass Slugs { get; }
	public static NSUnitMass Stones { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitPower

public class NSUnitPower : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitPower ();
	public NSUnitPower (NSCoder coder);
	protected NSUnitPower (NSObjectFlag t);
	protected NSUnitPower (IntPtr handle);
	public NSUnitPower (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitPower Femtowatts { get; }
	public static NSUnitPower Gigawatts { get; }
	public static NSUnitPower Horsepower { get; }
	public static NSUnitPower Kilowatts { get; }
	public static NSUnitPower Megawatts { get; }
	public static NSUnitPower Microwatts { get; }
	public static NSUnitPower Milliwatts { get; }
	public static NSUnitPower Nanowatts { get; }
	public static NSUnitPower Picowatts { get; }
	public static NSUnitPower Terawatts { get; }
	public static NSUnitPower Watts { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitPressure

public class NSUnitPressure : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitPressure ();
	public NSUnitPressure (NSCoder coder);
	protected NSUnitPressure (NSObjectFlag t);
	protected NSUnitPressure (IntPtr handle);
	public NSUnitPressure (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitPressure Bars { get; }
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitPressure Gigapascals { get; }
	public static NSUnitPressure Hectopascals { get; }
	public static NSUnitPressure InchesOfMercury { get; }
	public static NSUnitPressure Kilopascals { get; }
	public static NSUnitPressure Megapascals { get; }
	public static NSUnitPressure Millibars { get; }
	public static NSUnitPressure MillimetersOfMercury { get; }
	public static NSUnitPressure NewtonsPerMetersSquared { get; }
	public static NSUnitPressure PoundsForcePerSquareInch { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitSpeed

public class NSUnitSpeed : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitSpeed ();
	public NSUnitSpeed (NSCoder coder);
	protected NSUnitSpeed (NSObjectFlag t);
	protected NSUnitSpeed (IntPtr handle);
	public NSUnitSpeed (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitSpeed KilometersPerHour { get; }
	public static NSUnitSpeed Knots { get; }
	public static NSUnitSpeed MetersPerSecond { get; }
	public static NSUnitSpeed MilesPerHour { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitTemperature

public class NSUnitTemperature : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitTemperature (NSCoder coder);
	protected NSUnitTemperature (NSObjectFlag t);
	protected NSUnitTemperature (IntPtr handle);
	public NSUnitTemperature (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public static NSUnitTemperature Celsius { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitTemperature Fahrenheit { get; }
	public static NSUnitTemperature Kelvin { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitVolume

public class NSUnitVolume : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitVolume ();
	public NSUnitVolume (NSCoder coder);
	protected NSUnitVolume (NSObjectFlag t);
	protected NSUnitVolume (IntPtr handle);
	public NSUnitVolume (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitVolume AcreFeet { get; }
	public static NSDimension BaseUnit { get; }
	public static NSUnitVolume Bushels { get; }
	public static NSUnitVolume Centiliters { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitVolume CubicCentimeters { get; }
	public static NSUnitVolume CubicDecimeters { get; }
	public static NSUnitVolume CubicFeet { get; }
	public static NSUnitVolume CubicInches { get; }
	public static NSUnitVolume CubicKilometers { get; }
	public static NSUnitVolume CubicMeters { get; }
	public static NSUnitVolume CubicMiles { get; }
	public static NSUnitVolume CubicMillimeters { get; }
	public static NSUnitVolume CubicYards { get; }
	public static NSUnitVolume Cups { get; }
	public static NSUnitVolume Deciliters { get; }
	public static NSUnitVolume FluidOunces { get; }
	public static NSUnitVolume Gallons { get; }
	public static NSUnitVolume ImperialFluidOunces { get; }
	public static NSUnitVolume ImperialGallons { get; }
	public static NSUnitVolume ImperialPints { get; }
	public static NSUnitVolume ImperialQuarts { get; }
	public static NSUnitVolume ImperialTablespoons { get; }
	public static NSUnitVolume ImperialTeaspoons { get; }
	public static NSUnitVolume Kiloliters { get; }
	public static NSUnitVolume Liters { get; }
	public static NSUnitVolume Megaliters { get; }
	public static NSUnitVolume MetricCups { get; }
	public static NSUnitVolume Milliliters { get; }
	public static NSUnitVolume Pints { get; }
	public static NSUnitVolume Quarts { get; }
	public static NSUnitVolume Tablespoons { get; }
	public static NSUnitVolume Teaspoons { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUrlSessionTaskMetrics

public class NSUrlSessionTaskMetrics : Foundation.NSObject, INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUrlSessionTaskMetrics ();
	protected NSUrlSessionTaskMetrics (NSObjectFlag t);
	protected NSUrlSessionTaskMetrics (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint RedirectCount { get; }
	public virtual NSDateInterval TaskInterval { get; }
	public virtual NSUrlSessionTaskTransactionMetrics[] TransactionMetrics { get; }
}

New Type Foundation.NSUrlSessionTaskMetricsResourceFetchType

[Serializable]
public enum NSUrlSessionTaskMetricsResourceFetchType {
	LocalCache = 3,
	NetworkLoad = 1,
	ServerPush = 2,
	Unknown = 0,
}

New Type Foundation.NSUrlSessionTaskTransactionMetrics

public class NSUrlSessionTaskTransactionMetrics : Foundation.NSObject, INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUrlSessionTaskTransactionMetrics ();
	protected NSUrlSessionTaskTransactionMetrics (NSObjectFlag t);
	protected NSUrlSessionTaskTransactionMetrics (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual NSDate ConnectEndDate { get; }
	public virtual NSDate ConnectStartDate { get; }
	public virtual NSDate DomainLookupEndDate { get; }
	public virtual NSDate DomainLookupStartDate { get; }
	public virtual NSDate FetchStartDate { get; }
	public virtual string NetworkProtocolName { get; }
	public virtual bool ProxyConnection { get; }
	public virtual NSUrlRequest Request { get; }
	public virtual NSDate RequestEndDate { get; }
	public virtual NSDate RequestStartDate { get; }
	public virtual NSUrlSessionTaskMetricsResourceFetchType ResourceFetchType { get; }
	public virtual NSUrlResponse Response { get; }
	public virtual NSDate ResponseEndDate { get; }
	public virtual NSDate ResponseStartDate { get; }
	public virtual bool ReusedConnection { get; }
	public virtual NSDate SecureConnectionEndDate { get; }
	public virtual NSDate SecureConnectionStartDate { get; }
}

Namespace HealthKit

Type Changed: HealthKit.HKAnchoredObjectQuery

Removed constructors:

	[Obsolete ("Use the overload that takes HKAnchoredObjectResultHandler2 instead")]
	public HKAnchoredObjectQuery (HKSampleType type, Foundation.NSPredicate predicate, uint anchor, uint limit, HKAnchoredObjectResultHandler completion);
	public HKAnchoredObjectQuery (HKSampleType type, Foundation.NSPredicate predicate, uint anchor, uint limit, HKAnchoredObjectResultHandler2 completion);

Type Changed: HealthKit.HKCategoryTypeIdentifier

Added value:

	MindfulSession = 7,

Type Changed: HealthKit.HKCategoryTypeIdentifierKey

Added property:

	public static Foundation.NSString MindfulSession { get; }

Type Changed: HealthKit.HKCategoryValueSleepAnalysis

Added value:

	Awake = 2,

Type Changed: HealthKit.HKCharacteristicTypeIdentifier

Added value:

	WheelchairUse = 4,

Type Changed: HealthKit.HKCharacteristicTypeIdentifierKey

Added property:

	public static Foundation.NSString WheelchairUse { get; }

Type Changed: HealthKit.HKCorrelationType

Added method:

	public static HKCorrelationType Create (HKCorrelationTypeIdentifier kind);

Type Changed: HealthKit.HKHealthStore

Added methods:

	public virtual Foundation.NSDateComponents GetDateOfBirthComponents (out Foundation.NSError error);
	public virtual HKWheelchairUseObject GetWheelchairUse (out Foundation.NSError error);
	public virtual void PauseWorkoutSession (HKWorkoutSession workoutSession);
	public virtual void ResumeWorkoutSession (HKWorkoutSession workoutSession);

Type Changed: HealthKit.HKMetadata

Added properties:

	public Foundation.NSString LapLength { get; }
	public Foundation.NSString SwimmingLocationType { get; }
	public Foundation.NSString SwimmingStrokeStyle { get; }
	public HKWeatherCondition? WeatherCondition { get; }
	public HKQuantity WeatherHumidity { get; }
	public HKQuantity WeatherTemperature { get; }

Type Changed: HealthKit.HKMetadataKey

Added properties:

	public static Foundation.NSString LapLength { get; }
	public static Foundation.NSString SwimmingLocationType { get; }
	public static Foundation.NSString SwimmingStrokeStyle { get; }
	public static Foundation.NSString WeatherCondition { get; }
	public static Foundation.NSString WeatherHumidity { get; }
	public static Foundation.NSString WeatherTemperature { get; }

Type Changed: HealthKit.HKObjectType

Removed methods:

	public static HKCategoryType GetCategoryType (Foundation.NSString hkCategoryTypeIdentifier);
	public static HKCharacteristicType GetCharacteristicType (Foundation.NSString hkCharacteristicTypeIdentifier);
	public static HKCorrelationType GetCorrelationType (Foundation.NSString hkCorrelationTypeIdentifier);
	public static HKQuantityType GetQuantityType (Foundation.NSString hkTypeIdentifier);

Type Changed: HealthKit.HKPredicateKeyPath

Added properties:

	public static Foundation.NSString CdaAuthorName { get; }
	public static Foundation.NSString CdaCustodianName { get; }
	public static Foundation.NSString CdaPatientName { get; }
	public static Foundation.NSString CdaTitle { get; }
	public static Foundation.NSString WorkoutTotalSwimmingStrokeCount { get; }

Type Changed: HealthKit.HKQuantityTypeIdentifier

Added values:

	AppleExerciseTime = 68,
	DistanceSwimming = 71,
	DistanceWheelchair = 69,
	ElectrodermalActivity = 67,
	PushCount = 70,
	SwimmingStrokeCount = 72,

Type Changed: HealthKit.HKQuantityTypeIdentifierKey

Added properties:

	public static Foundation.NSString DistanceSwimming { get; }
	public static Foundation.NSString DistanceWheelchair { get; }
	public static Foundation.NSString PushCount { get; }
	public static Foundation.NSString SwimmingStrokeCount { get; }

Type Changed: HealthKit.HKQuery

Added method:

	public static Foundation.NSPredicate GetPredicateForTotalSwimmingStrokeCount (Foundation.NSPredicateOperatorType operatorType, HKQuantity totalSwimmingStrokeCount);

Type Changed: HealthKit.HKWorkout

Added properties:

	public static Foundation.NSString SortIdentifierTotalSwimmingStrokeCount { get; }
	public virtual HKQuantity TotalSwimmingStrokeCount { get; }

Added methods:

	public static HKWorkout Create (HKWorkoutActivityType workoutActivityType, Foundation.NSDate startDate, Foundation.NSDate endDate, HKWorkoutEvent[] workoutEvents, HKQuantity totalEnergyBurned, HKQuantity totalDistance, HKQuantity totalSwimmingStrokeCount, HKDevice device, Foundation.NSDictionary metadata);
	public static HKWorkout Create (HKWorkoutActivityType workoutActivityType, Foundation.NSDate startDate, Foundation.NSDate endDate, HKWorkoutEvent[] workoutEvents, HKQuantity totalEnergyBurned, HKQuantity totalDistance, HKQuantity totalSwimmingStrokeCount, HKDevice device, HKMetadata metadata);

Type Changed: HealthKit.HKWorkoutActivityType

Added values:

	Barre = 58,
	CoreTraining = 59,
	CrossCountrySkiing = 60,
	DownhillSkiing = 61,
	Flexibility = 62,
	HighIntensityIntervalTraining = 63,
	JumpRope = 64,
	Kickboxing = 65,
	Pilates = 66,
	Snowboarding = 67,
	Stairs = 68,
	StepTraining = 69,
	WheelchairRunPace = 71,
	WheelchairWalkPace = 70,

Type Changed: HealthKit.HKWorkoutEvent

Added interface:

	Foundation.INSCopying

Added properties:

	public HKMetadata Metadata { get; }
	public virtual Foundation.NSDictionary WeakMetadata { get; }

Added methods:

	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static HKWorkoutEvent Create (HKWorkoutEventType type, Foundation.NSDate date, Foundation.NSDictionary metadata);
	public static HKWorkoutEvent Create (HKWorkoutEventType type, Foundation.NSDate date, HKMetadata metadata);

Type Changed: HealthKit.HKWorkoutEventType

Added values:

	Lap = 3,
	Marker = 4,
	MotionPaused = 5,
	MotionResumed = 6,

Type Changed: HealthKit.HKWorkoutSession

Added constructor:

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

Added property:

	public virtual HKWorkoutConfiguration WorkoutConfiguration { get; }

Type Changed: HealthKit.HKWorkoutSessionDelegate

Added method:

	public virtual void DidGenerateEvent (HKWorkoutSession workoutSession, HKWorkoutEvent event);

Type Changed: HealthKit.HKWorkoutSessionState

Added value:

	Paused = 4,

Removed Type HealthKit.HKAnchoredObjectResultHandler

Removed Type HealthKit.HKAnchoredObjectResultHandler2

New Type HealthKit.HKCdaDocument

public class HKCdaDocument : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HKCdaDocument (Foundation.NSObjectFlag t);
	protected HKCdaDocument (IntPtr handle);
	// properties
	public virtual string AuthorName { get; }
	public override IntPtr ClassHandle { get; }
	public virtual string CustodianName { get; }
	public virtual Foundation.NSData DocumentData { get; }
	public virtual string PatientName { get; }
	public virtual string Title { get; }
}

New Type HealthKit.HKCorrelationTypeIdentifier

[Serializable]
public enum HKCorrelationTypeIdentifier {
	BloodPressure = 0,
	Food = 1,
}

New Type HealthKit.HKDocumentSample

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

New Type HealthKit.HKDocumentTypeIdentifier

[Serializable]
public enum HKDocumentTypeIdentifier {
	Cda = 0,
}

New Type HealthKit.HKDocumentTypeIdentifierExtensions

public static class HKDocumentTypeIdentifierExtensions {
	// methods
	public static Foundation.NSString GetConstant (HKDocumentTypeIdentifier self);
	public static HKDocumentTypeIdentifier GetValue (Foundation.NSString constant);
}

New Type HealthKit.HKSwimmingStrokeStyle

[Serializable]
public enum HKSwimmingStrokeStyle {
	Backstroke = 3,
	Breaststroke = 4,
	Butterfly = 5,
	Freestyle = 2,
	Mixed = 1,
	Unknown = 0,
}

New Type HealthKit.HKWeatherCondition

[Serializable]
public enum HKWeatherCondition {
	Blustery = 9,
	Clear = 1,
	Cloudy = 5,
	Drizzle = 21,
	Dust = 11,
	Fair = 2,
	Foggy = 6,
	FreezingDrizzle = 15,
	FreezingRain = 16,
	Hail = 13,
	Haze = 7,
	Hurricane = 26,
	MixedRainAndHail = 17,
	MixedRainAndSleet = 19,
	MixedRainAndSnow = 18,
	MixedSnowAndSleet = 20,
	MostlyCloudy = 4,
	None = 0,
	PartlyCloudy = 3,
	ScatteredShowers = 22,
	Showers = 23,
	Sleet = 14,
	Smoky = 10,
	Snow = 12,
	Thunderstorms = 24,
	Tornado = 27,
	TropicalStorm = 25,
	Windy = 8,
}

New Type HealthKit.HKWheelchairUse

[Serializable]
public enum HKWheelchairUse {
	No = 1,
	NotSet = 0,
	Yes = 2,
}

New Type HealthKit.HKWheelchairUseObject

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

New Type HealthKit.HKWorkoutConfiguration

public class HKWorkoutConfiguration : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HKWorkoutConfiguration ();
	public HKWorkoutConfiguration (Foundation.NSCoder coder);
	protected HKWorkoutConfiguration (Foundation.NSObjectFlag t);
	protected HKWorkoutConfiguration (IntPtr handle);
	// properties
	public virtual HKWorkoutActivityType ActivityType { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual HKQuantity LapLength { get; set; }
	public virtual HKWorkoutSessionLocationType LocationType { get; set; }
	public virtual HKWorkoutSwimmingLocationType SwimmingLocationType { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type HealthKit.HKWorkoutSessionDelegate_Extensions

public static class HKWorkoutSessionDelegate_Extensions {
	// methods
	public static void DidGenerateEvent (IHKWorkoutSessionDelegate This, HKWorkoutSession workoutSession, HKWorkoutEvent event);
}

New Type HealthKit.HKWorkoutSwimmingLocationType

[Serializable]
public enum HKWorkoutSwimmingLocationType {
	OpenWater = 2,
	Pool = 1,
	Unknown = 0,
}

Namespace HomeKit

Type Changed: HomeKit.HMAccessory

Added property:

	public virtual HMCameraProfile[] CameraProfiles { get; }

Type Changed: HomeKit.HMAccessoryCategoryType

Removed value:

	DoorOpener = 6,

Added values:

	GarageDoorOpener = 6,
	IPCamera = 16,
	RangeExtender = 15,
	VideoDoorbell = 17,

Type Changed: HomeKit.HMActionSet

Added property:

	public virtual Foundation.NSDate LastExecutionDate { get; }

Type Changed: HomeKit.HMActionSetType

Added value:

	TriggerOwned = 5,

Type Changed: HomeKit.HMCharacteristicMetadata

Added property:

	public virtual Foundation.NSNumber[] ValidValues { get; }

Type Changed: HomeKit.HMCharacteristicMetadataUnits

Added values:

	MicrogramsPerCubicMeter = 8,
	PartsPerMillion = 7,

Type Changed: HomeKit.HMCharacteristicType

Added values:

	DigitalZoom = 82,
	ImageMirroring = 84,
	ImageRotation = 83,
	Mute = 79,
	NightVision = 80,
	OpticalZoom = 81,
	SelectedStreamConfiguration = 77,
	SetupStreamEndpoint = 73,
	StreamingStatus = 72,
	SupportedAudioStreamConfiguration = 75,
	SupportedRtpConfiguration = 76,
	SupportedVideoStreamConfiguration = 74,
	Volume = 78,

Type Changed: HomeKit.HMError

Added values:

	BridgedAccessoryNotReachable = 88,
	InvalidOrMissingAuthorizationData = 87,
	NotAuthorizedForMicrophoneAccess = 89,

Type Changed: HomeKit.HMService

Added properties:

	public virtual HMService[] LinkedServices { get; }
	public virtual bool PrimaryService { get; }

Type Changed: HomeKit.HMServiceType

Added values:

	CameraControl = 29,
	CameraRtpStreamManagement = 28,
	Doorbell = 32,
	Microphone = 30,
	Speaker = 31,

New Type HomeKit.HMAccessoryProfile

public class HMAccessoryProfile : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HMAccessoryProfile (Foundation.NSObjectFlag t);
	protected HMAccessoryProfile (IntPtr handle);
	// properties
	public virtual HMAccessory Accessory { get; }
	public override IntPtr ClassHandle { get; }
	public virtual HMService[] Services { get; }
	public virtual Foundation.NSUuid UniqueIdentifier { get; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type HomeKit.HMCameraAudioControl

public class HMCameraAudioControl : HomeKit.HMCameraControl, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HMCameraAudioControl (Foundation.NSObjectFlag t);
	protected HMCameraAudioControl (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual HMCharacteristic Mute { get; }
	public virtual HMCharacteristic Volume { get; }
}

New Type HomeKit.HMCameraAudioStreamSetting

[Serializable]
public enum HMCameraAudioStreamSetting {
	BidirectionalAudioAllowed = 3,
	IncomingAudioAllowed = 2,
	Muted = 1,
}

New Type HomeKit.HMCameraControl

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

New Type HomeKit.HMCameraProfile

public class HMCameraProfile : HomeKit.HMAccessoryProfile, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HMCameraProfile (Foundation.NSObjectFlag t);
	protected HMCameraProfile (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual HMCameraAudioControl MicrophoneControl { get; }
	public virtual HMCameraSettingsControl SettingsControl { get; }
	public virtual HMCameraSnapshotControl SnapshotControl { get; }
	public virtual HMCameraAudioControl SpeakerControl { get; }
	public virtual HMCameraStreamControl StreamControl { get; }
}

New Type HomeKit.HMCameraSettingsControl

public class HMCameraSettingsControl : HomeKit.HMCameraControl, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HMCameraSettingsControl (Foundation.NSObjectFlag t);
	protected HMCameraSettingsControl (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual HMCharacteristic CurrentHorizontalTilt { get; }
	public virtual HMCharacteristic CurrentVerticalTilt { get; }
	public virtual HMCharacteristic DigitalZoom { get; }
	public virtual HMCharacteristic ImageMirroring { get; }
	public virtual HMCharacteristic ImageRotation { get; }
	public virtual HMCharacteristic NightVision { get; }
	public virtual HMCharacteristic OpticalZoom { get; }
	public virtual HMCharacteristic TargetHorizontalTilt { get; }
	public virtual HMCharacteristic TargetVerticalTilt { get; }
}

New Type HomeKit.HMCameraSnapshot

public class HMCameraSnapshot : HomeKit.HMCameraSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HMCameraSnapshot ();
	protected HMCameraSnapshot (Foundation.NSObjectFlag t);
	protected HMCameraSnapshot (IntPtr handle);
	// properties
	public virtual Foundation.NSDate CaptureDate { get; }
	public override IntPtr ClassHandle { get; }
}

New Type HomeKit.HMCameraSnapshotControl

public class HMCameraSnapshotControl : HomeKit.HMCameraControl, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HMCameraSnapshotControl ();
	protected HMCameraSnapshotControl (Foundation.NSObjectFlag t);
	protected HMCameraSnapshotControl (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual IHMCameraSnapshotControlDelegate Delegate { get; set; }
	public virtual HMCameraSnapshot MostRecentSnapshot { get; }
	// methods
	protected override void Dispose (bool disposing);
	public virtual void TakeSnapshot ();
}

New Type HomeKit.HMCameraSnapshotControlDelegate

public class HMCameraSnapshotControlDelegate : Foundation.NSObject, Foundation.INSObjectProtocol, IHMCameraSnapshotControlDelegate, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HMCameraSnapshotControlDelegate ();
	protected HMCameraSnapshotControlDelegate (Foundation.NSObjectFlag t);
	protected HMCameraSnapshotControlDelegate (IntPtr handle);
	// methods
	public virtual void DidTakeSnapshot (HMCameraSnapshotControl cameraSnapshotControl, HMCameraSnapshot snapshot, Foundation.NSError error);
}

New Type HomeKit.HMCameraSnapshotControlDelegate_Extensions

public static class HMCameraSnapshotControlDelegate_Extensions {
	// methods
	public static void DidTakeSnapshot (IHMCameraSnapshotControlDelegate This, HMCameraSnapshotControl cameraSnapshotControl, HMCameraSnapshot snapshot, Foundation.NSError error);
}

New Type HomeKit.HMCameraSource

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

New Type HomeKit.HMCameraStream

public class HMCameraStream : HomeKit.HMCameraSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HMCameraStream ();
	protected HMCameraStream (Foundation.NSObjectFlag t);
	protected HMCameraStream (IntPtr handle);
	// properties
	public virtual HMCameraAudioStreamSetting AudioStreamSetting { get; }
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual void UpdateAudioStreamSetting (HMCameraAudioStreamSetting audioStreamSetting, System.Action<Foundation.NSError> completion);
	public virtual System.Threading.Tasks.Task UpdateAudioStreamSettingAsync (HMCameraAudioStreamSetting audioStreamSetting);
}

New Type HomeKit.HMCameraStreamControl

public class HMCameraStreamControl : HomeKit.HMCameraControl, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HMCameraStreamControl ();
	protected HMCameraStreamControl (Foundation.NSObjectFlag t);
	protected HMCameraStreamControl (IntPtr handle);
	// properties
	public virtual HMCameraStream CameraStream { get; }
	public override IntPtr ClassHandle { get; }
	public virtual IHMCameraStreamControlDelegate Delegate { get; set; }
	public virtual HMCameraStreamState StreamState { get; }
	// methods
	protected override void Dispose (bool disposing);
	public virtual void StartStream ();
	public virtual void StopStream ();
}

New Type HomeKit.HMCameraStreamControlDelegate

public class HMCameraStreamControlDelegate : Foundation.NSObject, Foundation.INSObjectProtocol, IHMCameraStreamControlDelegate, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HMCameraStreamControlDelegate ();
	protected HMCameraStreamControlDelegate (Foundation.NSObjectFlag t);
	protected HMCameraStreamControlDelegate (IntPtr handle);
	// methods
	public virtual void DidStartStream (HMCameraStreamControl cameraStreamControl);
	public virtual void DidStopStream (HMCameraStreamControl cameraStreamControl, Foundation.NSError error);
}

New Type HomeKit.HMCameraStreamControlDelegate_Extensions

public static class HMCameraStreamControlDelegate_Extensions {
	// methods
	public static void DidStartStream (IHMCameraStreamControlDelegate This, HMCameraStreamControl cameraStreamControl);
	public static void DidStopStream (IHMCameraStreamControlDelegate This, HMCameraStreamControl cameraStreamControl, Foundation.NSError error);
}

New Type HomeKit.HMCameraStreamState

[Serializable]
public enum HMCameraStreamState {
	NotStreaming = 4,
	Starting = 1,
	Stopping = 3,
	Streaming = 2,
}

New Type HomeKit.HMCharacteristicValueBatteryStatus

[Serializable]
public enum HMCharacteristicValueBatteryStatus {
	Low = 1,
	Normal = 0,
}

New Type HomeKit.HMCharacteristicValueCarbonDioxideDetectionStatus

[Serializable]
public enum HMCharacteristicValueCarbonDioxideDetectionStatus {
	Detected = 1,
	NotDetected = 0,
}

New Type HomeKit.HMCharacteristicValueCarbonMonoxideDetectionStatus

[Serializable]
public enum HMCharacteristicValueCarbonMonoxideDetectionStatus {
	Detected = 1,
	NotDetected = 0,
}

New Type HomeKit.HMCharacteristicValueChargingState

[Serializable]
public enum HMCharacteristicValueChargingState {
	InProgress = 1,
	None = 0,
}

New Type HomeKit.HMCharacteristicValueContactState

[Serializable]
public enum HMCharacteristicValueContactState {
	Detected = 1,
	None = 0,
}

New Type HomeKit.HMCharacteristicValueJammedStatus

[Serializable]
public enum HMCharacteristicValueJammedStatus {
	Jammed = 1,
	None = 0,
}

New Type HomeKit.HMCharacteristicValueLeakStatus

[Serializable]
public enum HMCharacteristicValueLeakStatus {
	Detected = 1,
	None = 0,
}

New Type HomeKit.HMCharacteristicValueOccupancyStatus

[Serializable]
public enum HMCharacteristicValueOccupancyStatus {
	NotOccupied = 0,
	Occupied = 1,
}

New Type HomeKit.HMCharacteristicValueSecuritySystemAlarmType

[Serializable]
public enum HMCharacteristicValueSecuritySystemAlarmType {
	NoAlarm = 0,
	Unknown = 1,
}

New Type HomeKit.HMCharacteristicValueSmokeDetectionStatus

[Serializable]
public enum HMCharacteristicValueSmokeDetectionStatus {
	Detected = 1,
	None = 0,
}

New Type HomeKit.HMCharacteristicValueStatusFault

[Serializable]
public enum HMCharacteristicValueStatusFault {
	GeneralFault = 1,
	NoFault = 0,
}

New Type HomeKit.HMCharacteristicValueTamperedStatus

[Serializable]
public enum HMCharacteristicValueTamperedStatus {
	None = 0,
	Tampered = 1,
}

New Type HomeKit.IHMCameraSnapshotControlDelegate

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

New Type HomeKit.IHMCameraStreamControlDelegate

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

Namespace ImageIO

Type Changed: ImageIO.CGImageDestinationOptions

Added property:

	public bool? OptimizeColorForSharing { get; set; }

Type Changed: ImageIO.CGImageDestinationOptionsKeys

Added property:

	public static Foundation.NSString OptimizeColorForSharing { get; }

Type Changed: ImageIO.CGImageProperties

Added properties:

	public static Foundation.NSString DNGAsShotNeutral { get; }
	public static Foundation.NSString DNGAsShotWhiteXY { get; }
	public static Foundation.NSString DNGBaselineExposure { get; }
	public static Foundation.NSString DNGBaselineNoise { get; }
	public static Foundation.NSString DNGBaselineSharpness { get; }
	public static Foundation.NSString DNGBlackLevel { get; }
	public static Foundation.NSString DNGCalibrationIlluminant1 { get; }
	public static Foundation.NSString DNGCalibrationIlluminant2 { get; }
	public static Foundation.NSString DNGCameraCalibration1 { get; }
	public static Foundation.NSString DNGCameraCalibration2 { get; }
	public static Foundation.NSString DNGCameraCalibrationSignature { get; }
	public static Foundation.NSString DNGColorMatrix1 { get; }
	public static Foundation.NSString DNGColorMatrix2 { get; }
	public static Foundation.NSString DNGFixVignetteRadial { get; }
	public static Foundation.NSString DNGNoiseProfile { get; }
	public static Foundation.NSString DNGPrivateData { get; }
	public static Foundation.NSString DNGProfileCalibrationSignature { get; }
	public static Foundation.NSString DNGWarpFisheye { get; }
	public static Foundation.NSString DNGWarpRectilinear { get; }
	public static Foundation.NSString DNGWhiteLevel { get; }

Namespace MapKit

Type Changed: MapKit.MKDirectionsMode

Added value:

	Default = 3,

Type Changed: MapKit.MKPlacemark

Added constructors:

	public MKPlacemark (CoreLocation.CLLocationCoordinate2D coordinate);
	public MKPlacemark (CoreLocation.CLLocationCoordinate2D coordinate, Contacts.CNPostalAddress postalAddress);

New Type MapKit.NSUserActivity_MKMapItem

public static class NSUserActivity_MKMapItem {
	// methods
	public static MKMapItem GetMapItem (Foundation.NSUserActivity This);
	public static void SetMapItem (Foundation.NSUserActivity This, MKMapItem item);
}

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

public const string SdkVersion = "2.2" "3.0";
public const string Version = "9.10.0" "10.0.0";

Added fields:

	public static const string AVFoundationLibrary = "/System/Library/Frameworks/AVFoundation.framework/AVFoundation";
	public static const string CloudKitLibrary = "/System/Library/Frameworks/CloudKit.framework/CloudKit";
	public static const string GameKitLibrary = "/System/Library/Frameworks/GameKit.framework/GameKit";
	public static const string SceneKitLibrary = "/System/Library/Frameworks/SceneKit.framework/SceneKit";
	public static const string SpriteKitLibrary = "/System/Library/Frameworks/SpriteKit.framework/SpriteKit";
	public static const string UserNotificationsLibrary = "/System/Library/Frameworks/UserNotifications.framework/UserNotifications";

New Type ObjCRuntime.UserDelegateTypeAttribute

public sealed class UserDelegateTypeAttribute : System.Attribute {
	// constructors
	public UserDelegateTypeAttribute (System.Type userDelegateType);
	// properties
	public System.Type UserDelegateType { get; }
}

Namespace PassKit

Type Changed: PassKit.PKEncryptionScheme

Added property:

	public static Foundation.NSString Rsa_V2 { get; }

New Type PassKit.IPKPaymentAuthorizationControllerDelegate

public interface IPKPaymentAuthorizationControllerDelegate : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual void DidAuthorizePayment (PKPaymentAuthorizationController controller, PKPayment payment, System.Action<PKPaymentAuthorizationStatus> completion);
	public virtual void DidFinish (PKPaymentAuthorizationController controller);
}

New Type PassKit.PKAddressField

[Serializable]
[Flags]
public enum PKAddressField {
	All = 15,
	Email = 4,
	Name = 8,
	None = 0,
	Phone = 2,
	PostalAddress = 1,
}

New Type PassKit.PKMerchantCapability

[Serializable]
public enum PKMerchantCapability {
	Credit = 4,
	Debit = 8,
	EMV = 2,
	ThreeDS = 1,
}

New Type PassKit.PKPayment

public class PKPayment : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public PKPayment ();
	protected PKPayment (Foundation.NSObjectFlag t);
	protected PKPayment (IntPtr handle);
	// properties
	public virtual PKContact BillingContact { get; }
	public override IntPtr ClassHandle { get; }
	public virtual PKContact ShippingContact { get; }
	public virtual PKShippingMethod ShippingMethod { get; }
	public virtual PKPaymentToken Token { get; }
}

New Type PassKit.PKPaymentAuthorizationController

public class PKPaymentAuthorizationController : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected PKPaymentAuthorizationController (Foundation.NSObjectFlag t);
	public PKPaymentAuthorizationController (PKPaymentRequest request);
	protected PKPaymentAuthorizationController (IntPtr handle);
	// properties
	public static bool CanMakePayments { get; }
	public override IntPtr ClassHandle { get; }
	public virtual IPKPaymentAuthorizationControllerDelegate Delegate { get; set; }
	// methods
	public static bool CanMakePaymentsUsingNetworks (string[] supportedNetworks);
	public static bool CanMakePaymentsUsingNetworks (string[] supportedNetworks, PKMerchantCapability capabilties);
	public virtual void Dismiss (System.Action completion);
	public virtual System.Threading.Tasks.Task DismissAsync ();
	protected override void Dispose (bool disposing);
	public virtual void Present (System.Action<bool> completion);
	public virtual System.Threading.Tasks.Task<bool> PresentAsync ();
}

New Type PassKit.PKPaymentAuthorizationControllerDelegate

public abstract class PKPaymentAuthorizationControllerDelegate : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, IPKPaymentAuthorizationControllerDelegate, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected PKPaymentAuthorizationControllerDelegate ();
	protected PKPaymentAuthorizationControllerDelegate (Foundation.NSObjectFlag t);
	protected PKPaymentAuthorizationControllerDelegate (IntPtr handle);
	// methods
	public virtual void DidAuthorizePayment (PKPaymentAuthorizationController controller, PKPayment payment, System.Action<PKPaymentAuthorizationStatus> completion);
	public virtual void DidFinish (PKPaymentAuthorizationController controller);
	public virtual void DidSelectPaymentMethod (PKPaymentAuthorizationController controller, PKPaymentMethod paymentMethod, System.Action<PKPaymentSummaryItem[]> completion);
	public virtual void DidSelectShippingContact (PKPaymentAuthorizationController controller, PKContact contact, System.Action<PKPaymentAuthorizationStatus,PassKit.PKShippingMethod[],PassKit.PKPaymentSummaryItem[]> completion);
	public virtual void DidSelectShippingMethod (PKPaymentAuthorizationController controller, PKShippingMethod shippingMethod, System.Action<PKPaymentAuthorizationStatus,PassKit.PKPaymentSummaryItem[]> completion);
	public virtual void WillAuthorizePayment (PKPaymentAuthorizationController controller);
}

New Type PassKit.PKPaymentAuthorizationControllerDelegate_Extensions

public static class PKPaymentAuthorizationControllerDelegate_Extensions {
	// methods
	public static void DidSelectPaymentMethod (IPKPaymentAuthorizationControllerDelegate This, PKPaymentAuthorizationController controller, PKPaymentMethod paymentMethod, System.Action<PKPaymentSummaryItem[]> completion);
	public static void DidSelectShippingContact (IPKPaymentAuthorizationControllerDelegate This, PKPaymentAuthorizationController controller, PKContact contact, System.Action<PKPaymentAuthorizationStatus,PassKit.PKShippingMethod[],PassKit.PKPaymentSummaryItem[]> completion);
	public static void DidSelectShippingMethod (IPKPaymentAuthorizationControllerDelegate This, PKPaymentAuthorizationController controller, PKShippingMethod shippingMethod, System.Action<PKPaymentAuthorizationStatus,PassKit.PKPaymentSummaryItem[]> completion);
	public static void WillAuthorizePayment (IPKPaymentAuthorizationControllerDelegate This, PKPaymentAuthorizationController controller);
}

New Type PassKit.PKPaymentAuthorizationStatus

[Serializable]
public enum PKPaymentAuthorizationStatus {
	Failure = 1,
	InvalidBillingPostalAddress = 2,
	InvalidShippingContact = 4,
	InvalidShippingPostalAddress = 3,
	PinIncorrect = 6,
	PinLockout = 7,
	PinRequired = 5,
	Success = 0,
}

New Type PassKit.PKPaymentMethod

public class PKPaymentMethod : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public PKPaymentMethod ();
	public PKPaymentMethod (Foundation.NSCoder coder);
	protected PKPaymentMethod (Foundation.NSObjectFlag t);
	protected PKPaymentMethod (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string DisplayName { get; }
	public virtual string Network { get; }
	public virtual PKPaymentPass PaymentPass { get; }
	public virtual PKPaymentMethodType Type { get; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type PassKit.PKPaymentMethodType

[Serializable]
public enum PKPaymentMethodType {
	Credit = 2,
	Debit = 1,
	Prepaid = 3,
	Store = 4,
	Unknown = 0,
}

New Type PassKit.PKPaymentRequest

public class PKPaymentRequest : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public PKPaymentRequest ();
	protected PKPaymentRequest (Foundation.NSObjectFlag t);
	protected PKPaymentRequest (IntPtr handle);
	// properties
	public virtual Foundation.NSData ApplicationData { get; set; }
	public static Foundation.NSString[] AvailableNetworks { get; }
	public virtual PKContact BillingContact { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual string CountryCode { get; set; }
	public virtual string CurrencyCode { get; set; }
	public virtual PKMerchantCapability MerchantCapabilities { get; set; }
	public virtual string MerchantIdentifier { get; set; }
	public virtual PKPaymentSummaryItem[] PaymentSummaryItems { get; set; }
	public virtual PKAddressField RequiredBillingAddressFields { get; set; }
	public virtual PKAddressField RequiredShippingAddressFields { get; set; }
	public virtual PKContact ShippingContact { get; set; }
	public virtual PKShippingMethod[] ShippingMethods { get; set; }
	public virtual PKShippingType ShippingType { get; set; }
	public virtual Foundation.NSString[] SupportedNetworks { get; set; }
}

New Type PassKit.PKPaymentSummaryItem

public class PKPaymentSummaryItem : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public PKPaymentSummaryItem ();
	protected PKPaymentSummaryItem (Foundation.NSObjectFlag t);
	protected PKPaymentSummaryItem (IntPtr handle);
	// properties
	public virtual Foundation.NSDecimalNumber Amount { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual string Label { get; set; }
	public virtual PKPaymentSummaryItemType Type { get; set; }
	// methods
	public static PKPaymentSummaryItem Create (string label, Foundation.NSDecimalNumber amount);
	public static PKPaymentSummaryItem Create (string label, Foundation.NSDecimalNumber amount, PKPaymentSummaryItemType type);
}

New Type PassKit.PKPaymentSummaryItemType

[Serializable]
public enum PKPaymentSummaryItemType {
	Final = 0,
	Pending = 1,
}

New Type PassKit.PKPaymentToken

public class PKPaymentToken : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public PKPaymentToken ();
	protected PKPaymentToken (Foundation.NSObjectFlag t);
	protected PKPaymentToken (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSData PaymentData { get; }
	public virtual PKPaymentMethod PaymentMethod { get; }
	public virtual string TransactionIdentifier { get; }
}

New Type PassKit.PKShippingMethod

public class PKShippingMethod : PassKit.PKPaymentSummaryItem, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public PKShippingMethod ();
	protected PKShippingMethod (Foundation.NSObjectFlag t);
	protected PKShippingMethod (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string Detail { get; set; }
	public virtual string Identifier { get; set; }
}

New Type PassKit.PKShippingType

[Serializable]
public enum PKShippingType {
	Delivery = 1,
	ServicePickup = 3,
	Shipping = 0,
	StorePickup = 2,
}

Namespace Security

Type Changed: Security.SecKey

Added methods:

	public static SecKey Create (Foundation.NSData keyData, Foundation.NSDictionary parameters, out Foundation.NSError error);
	public static SecKey Create (Foundation.NSData keyData, SecKeyType keyType, SecKeyClass keyClass, int keySizeInBits, Foundation.NSDictionary parameters, out Foundation.NSError error);
	public Foundation.NSData CreateDecryptedData (SecKeyAlgorithm algorithm, Foundation.NSData ciphertext, out Foundation.NSError error);
	public Foundation.NSData CreateEncryptedData (SecKeyAlgorithm algorithm, Foundation.NSData plaintext, out Foundation.NSError error);
	public static SecKey CreateRandomKey (Foundation.NSDictionary parameters, out Foundation.NSError error);
	public static SecKey CreateRandomKey (SecKeyType keyType, int keySizeInBits, Foundation.NSDictionary parameters, out Foundation.NSError error);
	public Foundation.NSData CreateSignature (SecKeyAlgorithm algorithm, Foundation.NSData dataToSign, out Foundation.NSError error);
	public Foundation.NSDictionary GetAttributes ();
	public Foundation.NSData GetExternalRepresentation ();
	public Foundation.NSData GetExternalRepresentation (out Foundation.NSError error);
	public Foundation.NSData GetKeyExchangeResult (SecKeyAlgorithm algorithm, SecKey publicKey, Foundation.NSDictionary parameters, out Foundation.NSError error);
	public Foundation.NSData GetKeyExchangeResult (SecKeyAlgorithm algorithm, SecKey publicKey, SecKeyKeyExchangeParameter parameters, out Foundation.NSError error);
	public SecKey GetPublicKey ();
	public bool IsAlgorithmSupported (SecKeyOperationType operation, SecKeyAlgorithm algorithm);
	public bool VerifySignature (SecKeyAlgorithm algorithm, Foundation.NSData signedData, Foundation.NSData signature, out Foundation.NSError error);

Type Changed: Security.SecKeyType

Added value:

	ECSecPrimeRandom = 2,

Type Changed: Security.SecPolicyIdentifier

Added property:

	public static Foundation.NSString ApplePassbookSigning { get; }

Type Changed: Security.SecPolicyPropertyKey

Added property:

	public static Foundation.NSString TeamIdentifier { get; }

Type Changed: Security.SecStatusCode

Added value:

	VerifyFailed = -67808,

Type Changed: Security.SecTrustResultKey

Added property:

	public static Foundation.NSString CertificateTransparencyWhiteList { get; }

Type Changed: Security.SslContext

Removed method:

	public SslStatus SetSessionStrengthPolicy (SslSessionStrengthPolicy policyStrength);

Added methods:

	public string GetRequestedPeerName ();
	public int ReHandshake ();
	public int SetSessionConfig (Foundation.NSString config);
	public int SetSessionConfig (SslSessionConfig config);

Type Changed: Security.SslSessionOption

Added value:

	AllowRenegotiation = 8,

New Type Security.SecKeyAlgorithm

[Serializable]
public enum SecKeyAlgorithm {
	EcdhKeyExchangeCofactor = 52,
	EcdhKeyExchangeCofactorX963Sha1 = 53,
	EcdhKeyExchangeCofactorX963Sha224 = 54,
	EcdhKeyExchangeCofactorX963Sha256 = 55,
	EcdhKeyExchangeCofactorX963Sha384 = 56,
	EcdhKeyExchangeCofactorX963Sha512 = 57,
	EcdhKeyExchangeStandard = 46,
	EcdhKeyExchangeStandardX963Sha1 = 47,
	EcdhKeyExchangeStandardX963Sha224 = 48,
	EcdhKeyExchangeStandardX963Sha256 = 49,
	EcdhKeyExchangeStandardX963Sha384 = 50,
	EcdhKeyExchangeStandardX963Sha512 = 51,
	EcdsaSignatureDigestX962 = 13,
	EcdsaSignatureDigestX962Sha1 = 14,
	EcdsaSignatureDigestX962Sha224 = 15,
	EcdsaSignatureDigestX962Sha256 = 16,
	EcdsaSignatureDigestX962Sha384 = 17,
	EcdsaSignatureDigestX962Sha512 = 18,
	EcdsaSignatureMessageX962Sha1 = 19,
	EcdsaSignatureMessageX962Sha224 = 20,
	EcdsaSignatureMessageX962Sha256 = 21,
	EcdsaSignatureMessageX962Sha384 = 22,
	EcdsaSignatureMessageX962Sha512 = 23,
	EcdsaSignatureRfc4754 = 12,
	EciesEncryptionCofactorX963Sha1AesGcm = 41,
	EciesEncryptionCofactorX963Sha224AesGcm = 42,
	EciesEncryptionCofactorX963Sha256AesGcm = 43,
	EciesEncryptionCofactorX963Sha384AesGcm = 44,
	EciesEncryptionCofactorX963Sha512AesGcm = 45,
	EciesEncryptionStandardX963Sha1AesGcm = 36,
	EciesEncryptionStandardX963Sha224AesGcm = 37,
	EciesEncryptionStandardX963Sha256AesGcm = 38,
	EciesEncryptionStandardX963Sha384AesGcm = 39,
	EciesEncryptionStandardX963Sha512AesGcm = 40,
	RsaEncryptionOaepSha1 = 26,
	RsaEncryptionOaepSha1AesCgm = 31,
	RsaEncryptionOaepSha224 = 27,
	RsaEncryptionOaepSha224AesGcm = 32,
	RsaEncryptionOaepSha256 = 28,
	RsaEncryptionOaepSha256AesGcm = 33,
	RsaEncryptionOaepSha384 = 29,
	RsaEncryptionOaepSha384AesGcm = 34,
	RsaEncryptionOaepSha512 = 30,
	RsaEncryptionOaepSha512AesGcm = 35,
	RsaEncryptionPkcs1 = 25,
	RsaEncryptionRaw = 24,
	RsaSignatureDigestPkcs1v15Raw = 1,
	RsaSignatureDigestPkcs1v15Sha1 = 2,
	RsaSignatureDigestPkcs1v15Sha224 = 3,
	RsaSignatureDigestPkcs1v15Sha256 = 4,
	RsaSignatureDigestPkcs1v15Sha384 = 5,
	RsaSignatureDigestPkcs1v15Sha512 = 6,
	RsaSignatureMessagePkcs1v15Sha1 = 7,
	RsaSignatureMessagePkcs1v15Sha224 = 8,
	RsaSignatureMessagePkcs1v15Sha256 = 9,
	RsaSignatureMessagePkcs1v15Sha384 = 10,
	RsaSignatureMessagePkcs1v15Sha512 = 11,
	RsaSignatureRaw = 0,
}

New Type Security.SecKeyAlgorithmExtensions

public static class SecKeyAlgorithmExtensions {
	// methods
	public static Foundation.NSString GetConstant (SecKeyAlgorithm self);
	public static SecKeyAlgorithm GetValue (Foundation.NSString constant);
}

New Type Security.SecKeyClassExtensions

public static class SecKeyClassExtensions {
	// methods
	public static Foundation.NSString GetConstant (SecKeyClass self);
	public static SecKeyClass GetValue (Foundation.NSString constant);
}

New Type Security.SecKeyKeyExchangeParameter

public class SecKeyKeyExchangeParameter : Foundation.DictionaryContainer {
	// constructors
	public SecKeyKeyExchangeParameter ();
	public SecKeyKeyExchangeParameter (Foundation.NSDictionary dictionary);
	// properties
	public int? RequestedSize { get; set; }
	public Foundation.NSData SharedInfo { get; set; }
}

New Type Security.SecKeyOperationType

[Serializable]
public enum SecKeyOperationType {
	Decrypt = 3,
	Encrypt = 2,
	KeyExchange = 4,
	Sign = 0,
	Verify = 1,
}

New Type Security.SecKeyTypeExtensions

public static class SecKeyTypeExtensions {
	// methods
	public static Foundation.NSString GetConstant (SecKeyType self);
	public static SecKeyType GetValue (Foundation.NSString constant);
}

New Type Security.SslSessionConfig

[Serializable]
public enum SslSessionConfig {
	Anonymous = 9,
	Ats1 = 1,
	Ats1NoPfs = 2,
	Default = 0,
	Legacy = 7,
	LegacyDhe = 8,
	RC4Fallback = 4,
	Standard = 3,
	Tls1Fallback = 5,
	Tls1RC4Fallback = 6,
}

New Type Security.SslSessionConfigExtensions

public static class SslSessionConfigExtensions {
	// methods
	public static Foundation.NSString GetConstant (SslSessionConfig self);
	public static SslSessionConfig GetValue (Foundation.NSString constant);
}

Namespace UIKit

Type Changed: UIKit.NSTextTab

Added interface:

	Foundation.INSSecureCoding

Type Changed: UIKit.UIColor

Added method:

	public static UIColor FromDisplayP3 (nfloat red, nfloat green, nfloat blue, nfloat alpha);

Namespace WatchConnectivity

Type Changed: WatchConnectivity.WCSession

Added property:

	public virtual bool HasContentPending { get; }

Namespace WatchKit

Type Changed: WatchKit.WKExtension

Added property:

	public virtual WKApplicationState ApplicationState { get; }

Type Changed: WatchKit.WKExtensionDelegate

Added methods:

	public virtual void ApplicationDidEnterBackground ();
	public virtual void ApplicationWillEnterForeground ();
	public virtual void HandleBackgroundTasks (Foundation.NSSet<WKRefreshBackgroundTask> backgroundTasks);
	public virtual void HandleWorkoutConfiguration (HealthKit.HKWorkoutConfiguration workoutConfiguration);

Type Changed: WatchKit.WKExtensionDelegate_Extensions

Added methods:

	public static void ApplicationDidEnterBackground (IWKExtensionDelegate This);
	public static void ApplicationWillEnterForeground (IWKExtensionDelegate This);
	public static void HandleBackgroundTasks (IWKExtensionDelegate This, Foundation.NSSet<WKRefreshBackgroundTask> backgroundTasks);
	public static void HandleWorkoutConfiguration (IWKExtensionDelegate This, HealthKit.HKWorkoutConfiguration workoutConfiguration);

Type Changed: WatchKit.WKInterfaceController

Added property:

	public virtual WKCrownSequencer CrownSequencer { get; }

Added method:

	public virtual void HandleAction (string identifier, UserNotifications.UNNotification notification);

Type Changed: WatchKit.WKInterfaceDevice

Added properties:

	public virtual WKInterfaceDeviceCrownOrientation CrownOrientation { get; }
	public virtual WKWaterResistanceRating WaterResistanceRating { get; }
	public virtual WKInterfaceDeviceWristLocation WristLocation { get; }

Type Changed: WatchKit.WKInterfaceObject

Added property:

	public static long TraitTabBar { get; }

Type Changed: WatchKit.WKInterfaceTable

Added method:

	public virtual void PerformSegue (nint row);

Type Changed: WatchKit.WKUserNotificationInterfaceController

Added methods:

	public virtual void DidReceiveNotification (UserNotifications.UNNotification notification, System.Action<WKUserNotificationInterfaceType> completionHandler);
	public virtual string[] GetSuggestionsForResponseToAction (string identifier, UserNotifications.UNNotification notification, string inputLanguage);

New Type WatchKit.IWKCrownDelegate

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

New Type WatchKit.WKApplicationRefreshBackgroundTask

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

New Type WatchKit.WKApplicationState

[Serializable]
public enum WKApplicationState {
	Active = 0,
	Background = 2,
	Inactive = 1,
}

New Type WatchKit.WKCrownDelegate

public class WKCrownDelegate : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject>, IWKCrownDelegate {
	// constructors
	public WKCrownDelegate ();
	protected WKCrownDelegate (Foundation.NSObjectFlag t);
	protected WKCrownDelegate (IntPtr handle);
	// methods
	public virtual void CrownDidBecomeIdle (WKCrownSequencer crownSequencer);
	public virtual void CrownDidRotate (WKCrownSequencer crownSequencer, double rotationalDelta);
}

New Type WatchKit.WKCrownDelegate_Extensions

public static class WKCrownDelegate_Extensions {
	// methods
	public static void CrownDidBecomeIdle (IWKCrownDelegate This, WKCrownSequencer crownSequencer);
	public static void CrownDidRotate (IWKCrownDelegate This, WKCrownSequencer crownSequencer, double rotationalDelta);
}

New Type WatchKit.WKCrownSequencer

public class WKCrownSequencer : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected WKCrownSequencer (Foundation.NSObjectFlag t);
	protected WKCrownSequencer (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual IWKCrownDelegate Delegate { get; set; }
	public virtual bool Idle { get; }
	public virtual double RotationsPerSecond { get; }
	// methods
	protected override void Dispose (bool disposing);
	public virtual void Focus ();
	public virtual void ResignFocus ();
}

New Type WatchKit.WKExtension_WKBackgroundTasks

public static class WKExtension_WKBackgroundTasks {
	// methods
	public static void ScheduleBackgroundRefresh (WKExtension This, Foundation.NSDate preferredFireDate, Foundation.INSSecureCoding userInfo, System.Action<Foundation.NSError> scheduledCompletion);
	public static void ScheduleSnapshotRefresh (WKExtension This, Foundation.NSDate preferredFireDate, Foundation.INSSecureCoding userInfo, System.Action<Foundation.NSError> scheduledCompletion);
}

New Type WatchKit.WKGestureRecognizer

public abstract class WKGestureRecognizer : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected WKGestureRecognizer ();
	protected WKGestureRecognizer (Foundation.NSObjectFlag t);
	protected WKGestureRecognizer (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool Enabled { get; set; }
	public virtual CoreGraphics.CGPoint LocationInObject { get; }
	public virtual CoreGraphics.CGRect ObjectBounds { get; }
	public virtual WKGestureRecognizerState State { get; }
}

New Type WatchKit.WKGestureRecognizerState

[Serializable]
public enum WKGestureRecognizerState {
	Began = 1,
	Cancelled = 4,
	Changed = 2,
	Ended = 3,
	Failed = 5,
	Possible = 0,
	Recognized = 6,
}

New Type WatchKit.WKInterfaceDeviceCrownOrientation

[Serializable]
public enum WKInterfaceDeviceCrownOrientation {
	Left = 0,
	Right = 1,
}

New Type WatchKit.WKInterfaceDeviceWristLocation

[Serializable]
public enum WKInterfaceDeviceWristLocation {
	Left = 0,
	Right = 1,
}

New Type WatchKit.WKInterfaceHMCamera

public class WKInterfaceHMCamera : WatchKit.WKInterfaceObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected WKInterfaceHMCamera (Foundation.NSObjectFlag t);
	protected WKInterfaceHMCamera (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual void SetCameraSource (HomeKit.HMCameraSource cameraSource);
}

New Type WatchKit.WKInterfaceInlineMovie

public class WKInterfaceInlineMovie : WatchKit.WKInterfaceObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected WKInterfaceInlineMovie (Foundation.NSObjectFlag t);
	protected WKInterfaceInlineMovie (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual void Pause ();
	public virtual void Play ();
	public virtual void PlayFromBeginning ();
	public virtual void SetAutoplays (bool autoplays);
	public virtual void SetLoops (bool loops);
	public virtual void SetMovieUrl (Foundation.NSUrl url);
	public virtual void SetPosterImage (WKImage posterImage);
	public virtual void SetVideoGravity (WKVideoGravity videoGravity);
}

New Type WatchKit.WKInterfacePaymentButton

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

New Type WatchKit.WKInterfaceSCNScene

public class WKInterfaceSCNScene : WatchKit.WKInterfaceObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, SceneKit.ISCNSceneRenderer, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected WKInterfaceSCNScene (Foundation.NSObjectFlag t);
	protected WKInterfaceSCNScene (IntPtr handle);
	// properties
	public virtual SceneKit.SCNAntialiasingMode AntialiasingMode { get; set; }
	public virtual AVFoundation.AVAudioEngine AudioEngine { get; }
	public virtual SceneKit.SCNNode AudioListener { get; set; }
	public virtual bool AutoenablesDefaultLighting { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual IntPtr Context { get; }
	public virtual SceneKit.SCNDebugOptions DebugOptions { get; set; }
	public virtual bool JitteringEnabled { get; set; }
	public virtual bool Loops { get; set; }
	public virtual SpriteKit.SKScene OverlayScene { get; set; }
	public virtual bool Playing { get; set; }
	public virtual SceneKit.SCNNode PointOfView { get; set; }
	public virtual nint PreferredFramesPerSecond { get; set; }
	public virtual SceneKit.SCNRenderingApi RenderingApi { get; }
	public virtual SceneKit.SCNScene Scene { get; set; }
	public SceneKit.ISCNSceneRendererDelegate SceneRendererDelegate { get; set; }
	public virtual double SceneTimeInSeconds { get; set; }
	public virtual bool ShowsStatistics { get; set; }
	public virtual Foundation.NSObject WeakSceneRendererDelegate { get; set; }
	// methods
	protected override void Dispose (bool disposing);
	public virtual SceneKit.SCNNode[] GetNodesInsideFrustum (SceneKit.SCNNode pointOfView);
	public virtual UIKit.UIImage GetSnapshot ();
	public virtual SceneKit.SCNHitTestResult[] HitTest (CoreGraphics.CGPoint thePoint, Foundation.NSDictionary options);
	public SceneKit.SCNHitTestResult[] HitTest (CoreGraphics.CGPoint thePoint, SceneKit.SCNHitTestOptions options);
	public virtual bool IsNodeInsideFrustum (SceneKit.SCNNode node, SceneKit.SCNNode pointOfView);
	public virtual bool Prepare (Foundation.NSObject obj, System.Func<bool> abortHandler);
	public virtual void Prepare (Foundation.NSObject[] objects, System.Action<bool> completionHandler);
	public virtual void PresentScene (SceneKit.SCNScene scene, SpriteKit.SKTransition transition, SceneKit.SCNNode pointOfView, System.Action completionHandler);
	public virtual SceneKit.SCNVector3 ProjectPoint (SceneKit.SCNVector3 point);
	public virtual SceneKit.SCNVector3 UnprojectPoint (SceneKit.SCNVector3 point);
}

New Type WatchKit.WKInterfaceSKScene

public class WKInterfaceSKScene : WatchKit.WKInterfaceObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected WKInterfaceSKScene (Foundation.NSObjectFlag t);
	protected WKInterfaceSKScene (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool Paused { get; set; }
	public virtual nint PreferredFramesPerSecond { get; set; }
	public virtual SpriteKit.SKScene Scene { get; }
	// methods
	public virtual SpriteKit.SKTexture CreateTexture (SpriteKit.SKNode node);
	public virtual SpriteKit.SKTexture CreateTexture (SpriteKit.SKNode node, CoreGraphics.CGRect crop);
	public virtual void PresentScene (SpriteKit.SKScene scene);
	public virtual void PresentScene (SpriteKit.SKScene scene, SpriteKit.SKTransition transition);
}

New Type WatchKit.WKLongPressGestureRecognizer

public class WKLongPressGestureRecognizer : WatchKit.WKGestureRecognizer, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public WKLongPressGestureRecognizer ();
	protected WKLongPressGestureRecognizer (Foundation.NSObjectFlag t);
	protected WKLongPressGestureRecognizer (IntPtr handle);
	// properties
	public virtual nfloat AllowableMovement { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual double MinimumPressDuration { get; set; }
	public virtual uint NumberOfTapsRequired { get; set; }
}

New Type WatchKit.WKPanGestureRecognizer

public class WKPanGestureRecognizer : WatchKit.WKGestureRecognizer, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public WKPanGestureRecognizer ();
	protected WKPanGestureRecognizer (Foundation.NSObjectFlag t);
	protected WKPanGestureRecognizer (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CoreGraphics.CGPoint TranslationInObject { get; }
	public virtual CoreGraphics.CGPoint VelocityInObject { get; }
}

New Type WatchKit.WKRefreshBackgroundTask

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

New Type WatchKit.WKSnapshotRefreshBackgroundTask

public class WKSnapshotRefreshBackgroundTask : WatchKit.WKRefreshBackgroundTask, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public WKSnapshotRefreshBackgroundTask ();
	protected WKSnapshotRefreshBackgroundTask (Foundation.NSObjectFlag t);
	protected WKSnapshotRefreshBackgroundTask (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool ReturnToDefaultState { get; }
	// methods
	public virtual void SetTaskCompleted (bool restoredDefaultState, Foundation.NSDate estimatedSnapshotExpiration, Foundation.INSSecureCoding userInfo);
}

New Type WatchKit.WKSwipeGestureRecognizer

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

New Type WatchKit.WKSwipeGestureRecognizerDirection

[Serializable]
[Flags]
public enum WKSwipeGestureRecognizerDirection {
	Down = 8,
	Left = 2,
	Right = 1,
	Up = 4,
}

New Type WatchKit.WKTapGestureRecognizer

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

New Type WatchKit.WKUrlSessionRefreshBackgroundTask

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

New Type WatchKit.WKWatchConnectivityRefreshBackgroundTask

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

New Type WatchKit.WKWaterResistanceRating

[Serializable]
public enum WKWaterResistanceRating {
	Ipx7 = 0,
	Wr50 = 1,
}

New Namespace AVFoundation

New Type AVFoundation.AVAssetImageGenerator

public class AVAssetImageGenerator {
	// constructors
	public AVAssetImageGenerator ();
}

New Type AVFoundation.AVAssetReaderVideoCompositionOutput

public class AVAssetReaderVideoCompositionOutput {
	// constructors
	public AVAssetReaderVideoCompositionOutput ();
}

New Type AVFoundation.AVAudio3DAngularOrientation

public struct AVAudio3DAngularOrientation {
	// fields
	public float Pitch;
	public float Roll;
	public float Yaw;
	// methods
	public bool Equals (AVAudio3DAngularOrientation other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public override string ToString ();
	public static bool op_Equality (AVAudio3DAngularOrientation left, AVAudio3DAngularOrientation right);
	public static bool op_Inequality (AVAudio3DAngularOrientation left, AVAudio3DAngularOrientation right);
}

New Type AVFoundation.AVAudio3DMixingRenderingAlgorithm

[Serializable]
public enum AVAudio3DMixingRenderingAlgorithm {
	EqualPowerPanning = 0,
	HRTF = 2,
	SoundField = 3,
	SphericalHead = 1,
	StereoPassThrough = 5,
}

New Type AVFoundation.AVAudio3DVectorOrientation

public struct AVAudio3DVectorOrientation {
	// constructors
	public AVAudio3DVectorOrientation (OpenTK.Vector3 forward, OpenTK.Vector3 up);
	// fields
	public OpenTK.Vector3 Forward;
	public OpenTK.Vector3 Up;
	// methods
	public bool Equals (AVAudio3DVectorOrientation other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public override string ToString ();
	public static bool op_Equality (AVAudio3DVectorOrientation left, AVAudio3DVectorOrientation right);
	public static bool op_Inequality (AVAudio3DVectorOrientation left, AVAudio3DVectorOrientation right);
}

New Type AVFoundation.AVAudioBitRateStrategy

[Serializable]
public enum AVAudioBitRateStrategy {
	Constant = 0,
	LongTermAverage = 1,
	Variable = 3,
	VariableConstrained = 2,
}

New Type AVFoundation.AVAudioBuffer

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

New Type AVFoundation.AVAudioChannelLayout

public class AVAudioChannelLayout : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVAudioChannelLayout (AudioToolbox.AudioChannelLayout layout);
	public AVAudioChannelLayout (Foundation.NSCoder coder);
	protected AVAudioChannelLayout (Foundation.NSObjectFlag t);
	protected AVAudioChannelLayout (IntPtr handle);
	public AVAudioChannelLayout (uint layoutTag);
	// properties
	public virtual uint ChannelCount { get; }
	public override IntPtr ClassHandle { get; }
	public AudioToolbox.AudioChannelLayout Layout { get; }
	public virtual uint LayoutTag { get; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static bool op_Equality (AVAudioChannelLayout a, AVAudioChannelLayout b);
	public static bool op_Inequality (AVAudioChannelLayout a, AVAudioChannelLayout b);
}

New Type AVFoundation.AVAudioCommonFormat

[Serializable]
public enum AVAudioCommonFormat {
	Other = 0,
	PCMFloat32 = 1,
	PCMFloat64 = 2,
	PCMInt16 = 3,
	PCMInt32 = 4,
}

New Type AVFoundation.AVAudioCompressedBuffer

public class AVAudioCompressedBuffer : AVFoundation.AVAudioBuffer, Foundation.INSCopying, Foundation.INSMutableCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVAudioCompressedBuffer (Foundation.NSObjectFlag t);
	protected AVAudioCompressedBuffer (IntPtr handle);
	public AVAudioCompressedBuffer (AVAudioFormat format, uint packetCapacity);
	public AVAudioCompressedBuffer (AVAudioFormat format, uint packetCapacity, nint maximumPacketSize);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual IntPtr Data { get; }
	public virtual nint MaximumPacketSize { get; }
	public virtual uint PacketCapacity { get; }
	public virtual uint PacketCount { get; set; }
	public virtual AudioToolbox.AudioStreamPacketDescription PacketDescriptions { get; }
}

New Type AVFoundation.AVAudioConnectionPoint

public class AVAudioConnectionPoint : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVAudioConnectionPoint (Foundation.NSObjectFlag t);
	protected AVAudioConnectionPoint (IntPtr handle);
	public AVAudioConnectionPoint (AVAudioNode node, uint bus);
	// properties
	public virtual uint Bus { get; }
	public override IntPtr ClassHandle { get; }
	public virtual AVAudioNode Node { get; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type AVFoundation.AVAudioConverter

public class AVAudioConverter : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVAudioConverter (Foundation.NSObjectFlag t);
	protected AVAudioConverter (IntPtr handle);
	public AVAudioConverter (AVAudioFormat fromFormat, AVAudioFormat toFormat);
	// properties
	public virtual Foundation.NSNumber[] ApplicableEncodeBitRates { get; }
	public virtual Foundation.NSNumber[] ApplicableEncodeSampleRates { get; }
	public virtual Foundation.NSNumber[] AvailableEncodeBitRates { get; }
	public virtual Foundation.NSNumber[] AvailableEncodeChannelLayoutTags { get; }
	public virtual Foundation.NSNumber[] AvailableEncodeSampleRates { get; }
	public virtual nint BitRate { get; set; }
	public virtual string BitRateStrategy { get; set; }
	public virtual Foundation.NSNumber[] ChannelMap { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual bool Dither { get; set; }
	public virtual bool Downmix { get; set; }
	public virtual AVAudioFormat InputFormat { get; }
	public virtual Foundation.NSData MagicCookie { get; set; }
	public virtual nint MaximumOutputPacketSize { get; }
	public virtual AVAudioFormat OutputFormat { get; }
	public virtual AVAudioConverterPrimeInfo PrimeInfo { get; set; }
	public virtual AVAudioConverterPrimeMethod PrimeMethod { get; set; }
	public virtual string SampleRateConverterAlgorithm { get; set; }
	public virtual nint SampleRateConverterQuality { get; set; }
	// methods
	public virtual AVAudioConverterOutputStatus ConvertToBuffer (AVAudioBuffer outputBuffer, out Foundation.NSError outError, AVAudioConverterInputHandler inputHandler);
	public virtual bool ConvertToBuffer (AVAudioPcmBuffer outputBuffer, AVAudioPcmBuffer inputBuffer, out Foundation.NSError outError);
	public virtual void Reset ();
}

New Type AVFoundation.AVAudioConverterInputHandler

public sealed delegate AVAudioConverterInputHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public AVAudioConverterInputHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (uint inNumberOfPackets, out AVAudioConverterInputStatus outStatus, System.AsyncCallback callback, object object);
	public virtual AVAudioBuffer EndInvoke (out AVAudioConverterInputStatus outStatus, System.IAsyncResult result);
	public virtual AVAudioBuffer Invoke (uint inNumberOfPackets, out AVAudioConverterInputStatus outStatus);
}

New Type AVFoundation.AVAudioConverterInputStatus

[Serializable]
public enum AVAudioConverterInputStatus {
	EndOfStream = 2,
	HaveData = 0,
	NoDataNow = 1,
}

New Type AVFoundation.AVAudioConverterOutputStatus

[Serializable]
public enum AVAudioConverterOutputStatus {
	EndOfStream = 2,
	Error = 3,
	HaveData = 0,
	InputRanDry = 1,
}

New Type AVFoundation.AVAudioConverterPrimeInfo

public struct AVAudioConverterPrimeInfo {
	// constructors
	public AVAudioConverterPrimeInfo (uint leadingFrames, uint trailingFrames);
	// fields
	public uint LeadingFrames;
	public uint TrailingFrames;
	// methods
	public bool Equals (AVAudioConverterPrimeInfo other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public override string ToString ();
	public static bool op_Equality (AVAudioConverterPrimeInfo left, AVAudioConverterPrimeInfo right);
	public static bool op_Inequality (AVAudioConverterPrimeInfo left, AVAudioConverterPrimeInfo right);
}

New Type AVFoundation.AVAudioConverterPrimeMethod

[Serializable]
public enum AVAudioConverterPrimeMethod {
	None = 2,
	Normal = 1,
	Pre = 0,
}

New Type AVFoundation.AVAudioDataSourceLocation

[Serializable]
public enum AVAudioDataSourceLocation {
	Lower = 2,
	Unknown = 0,
	Upper = 1,
}

New Type AVFoundation.AVAudioDataSourceOrientation

[Serializable]
public enum AVAudioDataSourceOrientation {
	Back = 4,
	Bottom = 2,
	Front = 3,
	Left = 5,
	Right = 6,
	Top = 1,
	Unknown = 0,
}

New Type AVFoundation.AVAudioDataSourcePolarPattern

[Serializable]
public enum AVAudioDataSourcePolarPattern {
	Cardioid = 2,
	Omnidirectional = 1,
	Subcardioid = 3,
	Unknown = 0,
}

New Type AVFoundation.AVAudioEngine

public class AVAudioEngine : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVAudioEngine ();
	protected AVAudioEngine (Foundation.NSObjectFlag t);
	protected AVAudioEngine (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public static Foundation.NSString ConfigurationChangeNotification { get; }
	public virtual AVAudioMixerNode MainMixerNode { get; }
	public virtual AVAudioOutputNode OutputNode { get; }
	public virtual bool Running { get; }
	// methods
	public virtual void AttachNode (AVAudioNode node);
	public virtual void Connect (AVAudioNode sourceNode, AVAudioNode targetNode, AVAudioFormat format);
	public virtual void Connect (AVAudioNode sourceNode, AVAudioConnectionPoint[] destNodes, uint sourceBus, AVAudioFormat format);
	public virtual void Connect (AVAudioNode sourceNode, AVAudioNode targetNode, uint sourceBus, uint targetBus, AVAudioFormat format);
	public virtual void DetachNode (AVAudioNode node);
	public virtual void DisconnectNodeInput (AVAudioNode node);
	public virtual void DisconnectNodeInput (AVAudioNode node, uint bus);
	public virtual void DisconnectNodeOutput (AVAudioNode node);
	public virtual void DisconnectNodeOutput (AVAudioNode node, uint bus);
	public virtual AVAudioConnectionPoint InputConnectionPoint (AVAudioNode node, uint bus);
	public virtual AVAudioConnectionPoint[] OutputConnectionPoints (AVAudioNode node, uint bus);
	public virtual void Pause ();
	public virtual void Prepare ();
	public virtual void Reset ();
	public virtual bool StartAndReturnError (out Foundation.NSError outError);
	public virtual void Stop ();

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

New Type AVFoundation.AVAudioEnvironmentDistanceAttenuationModel

[Serializable]
public enum AVAudioEnvironmentDistanceAttenuationModel {
	Exponential = 1,
	Inverse = 2,
	Linear = 3,
}

New Type AVFoundation.AVAudioEnvironmentDistanceAttenuationParameters

public class AVAudioEnvironmentDistanceAttenuationParameters : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVAudioEnvironmentDistanceAttenuationParameters (Foundation.NSObjectFlag t);
	protected AVAudioEnvironmentDistanceAttenuationParameters (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual AVAudioEnvironmentDistanceAttenuationModel DistanceAttenuationModel { get; set; }
	public virtual float MaximumDistance { get; set; }
	public virtual float ReferenceDistance { get; set; }
	public virtual float RolloffFactor { get; set; }
}

New Type AVFoundation.AVAudioEnvironmentReverbParameters

public class AVAudioEnvironmentReverbParameters : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVAudioEnvironmentReverbParameters (Foundation.NSObjectFlag t);
	protected AVAudioEnvironmentReverbParameters (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool Enable { get; set; }
	public virtual AVAudioUnitEQFilterParameters FilterParameters { get; }
	public virtual float Level { get; set; }
	// methods
	public virtual void LoadFactoryReverbPreset (AVAudioUnitReverbPreset preset);
}

New Type AVFoundation.AVAudioFile

public class AVAudioFile : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVAudioFile ();
	protected AVAudioFile (Foundation.NSObjectFlag t);
	protected AVAudioFile (IntPtr handle);
	public AVAudioFile (Foundation.NSUrl fileUrl, out Foundation.NSError outError);
	public AVAudioFile (Foundation.NSUrl fileUrl, AudioSettings settings, out Foundation.NSError outError);
	public AVAudioFile (Foundation.NSUrl fileUrl, AVAudioCommonFormat format, bool interleaved, out Foundation.NSError outError);
	public AVAudioFile (Foundation.NSUrl fileUrl, AudioSettings settings, AVAudioCommonFormat format, bool interleaved, out Foundation.NSError outError);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual AVAudioFormat FileFormat { get; }
	public virtual long FramePosition { get; set; }
	public virtual long Length { get; }
	public virtual AVAudioFormat ProcessingFormat { get; }
	public virtual Foundation.NSUrl Url { get; }
	// methods
	public virtual bool ReadIntoBuffer (AVAudioPcmBuffer buffer, out Foundation.NSError outError);
	public virtual bool ReadIntoBuffer (AVAudioPcmBuffer buffer, uint frames, out Foundation.NSError outError);
	public virtual bool WriteFromBuffer (AVAudioPcmBuffer buffer, out Foundation.NSError outError);
}

New Type AVFoundation.AVAudioFormat

public class AVAudioFormat : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVAudioFormat ();
	public AVAudioFormat (AudioSettings settings);
	public AVAudioFormat (ref AudioToolbox.AudioStreamBasicDescription description);
	public AVAudioFormat (Foundation.NSCoder coder);
	public AVAudioFormat (Foundation.NSDictionary settings);
	protected AVAudioFormat (Foundation.NSObjectFlag t);
	protected AVAudioFormat (IntPtr handle);
	public AVAudioFormat (ref AudioToolbox.AudioStreamBasicDescription description, AVAudioChannelLayout layout);
	public AVAudioFormat (double sampleRate, AVAudioChannelLayout layout);
	public AVAudioFormat (double sampleRate, uint channels);
	public AVAudioFormat (AVAudioCommonFormat format, double sampleRate, bool interleaved, AVAudioChannelLayout layout);
	public AVAudioFormat (AVAudioCommonFormat format, double sampleRate, uint channels, bool interleaved);
	// properties
	public virtual uint ChannelCount { get; }
	public virtual AVAudioChannelLayout ChannelLayout { get; }
	public override IntPtr ClassHandle { get; }
	public virtual AVAudioCommonFormat CommonFormat { get; }
	public virtual bool Interleaved { get; }
	public virtual Foundation.NSData MagicCookie { get; set; }
	public virtual double SampleRate { get; }
	public AudioSettings Settings { get; }
	public virtual bool Standard { get; }
	public virtual AudioToolbox.AudioStreamBasicDescription StreamDescription { get; }
	public virtual Foundation.NSDictionary WeakSettings { get; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static bool op_Equality (AVAudioFormat a, AVAudioFormat b);
	public static bool op_Inequality (AVAudioFormat a, AVAudioFormat b);
}

New Type AVFoundation.AVAudioIONode

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

New Type AVFoundation.AVAudioMixerNode

public class AVAudioMixerNode : AVFoundation.AVAudioNode, IAVAudioMixing, IAVAudioStereoMixing, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVAudioMixerNode ();
	protected AVAudioMixerNode (Foundation.NSObjectFlag t);
	protected AVAudioMixerNode (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint NextAvailableInputBus { get; }
	public virtual float OutputVolume { get; set; }
	public virtual float Pan { get; set; }
	public virtual float Volume { get; set; }
	// methods
	public virtual AVAudioMixingDestination DestinationForMixer (AVAudioNode mixer, uint bus);
}

New Type AVFoundation.AVAudioMixingDestination

public class AVAudioMixingDestination : Foundation.NSObject, IAVAudioMixing, IAVAudioStereoMixing, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVAudioMixingDestination (Foundation.NSObjectFlag t);
	protected AVAudioMixingDestination (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual AVAudioConnectionPoint ConnectionPoint { get; }
	public virtual float Pan { get; set; }
	public virtual float Volume { get; set; }
	// methods
	public virtual AVAudioMixingDestination DestinationForMixer (AVAudioNode mixer, uint bus);
}

New Type AVFoundation.AVAudioMixing_Extensions

public static class AVAudioMixing_Extensions {
	// methods
	public static AVAudioMixingDestination DestinationForMixer (IAVAudioMixing This, AVAudioNode mixer, uint bus);
}

New Type AVFoundation.AVAudioNode

public class AVAudioNode : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVAudioNode (Foundation.NSObjectFlag t);
	protected AVAudioNode (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual AVAudioEngine Engine { get; }
	public virtual AVAudioTime LastRenderTime { get; }
	public virtual uint NumberOfInputs { get; }
	public virtual uint NumberOfOutputs { get; }
	// methods
	public virtual AVAudioFormat GetBusInputFormat (uint bus);
	public virtual AVAudioFormat GetBusOutputFormat (uint bus);
	public virtual string GetNameForInputBus (uint bus);
	public virtual string GetNameForOutputBus (uint bus);
	public virtual void InstallTapOnBus (uint bus, uint bufferSize, AVAudioFormat format, AVAudioNodeTapBlock tapBlock);
	public virtual void RemoveTapOnBus (uint bus);
	public virtual void Reset ();
}

New Type AVFoundation.AVAudioNodeTapBlock

public sealed delegate AVAudioNodeTapBlock : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public AVAudioNodeTapBlock (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (AVAudioPcmBuffer buffer, AVAudioTime when, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (AVAudioPcmBuffer buffer, AVAudioTime when);
}

New Type AVFoundation.AVAudioOutputNode

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

New Type AVFoundation.AVAudioPcmBuffer

public class AVAudioPcmBuffer : AVFoundation.AVAudioBuffer, Foundation.INSCopying, Foundation.INSMutableCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVAudioPcmBuffer (Foundation.NSObjectFlag t);
	protected AVAudioPcmBuffer (IntPtr handle);
	public AVAudioPcmBuffer (AVAudioFormat format, uint frameCapacity);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual IntPtr FloatChannelData { get; }
	public virtual uint FrameCapacity { get; }
	public virtual uint FrameLength { get; set; }
	public virtual IntPtr Int16ChannelData { get; }
	public virtual IntPtr Int32ChannelData { get; }
	public virtual uint Stride { get; }
}

New Type AVFoundation.AVAudioPlayerNode

public class AVAudioPlayerNode : AVFoundation.AVAudioNode, IAVAudioMixing, IAVAudioStereoMixing, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVAudioPlayerNode ();
	protected AVAudioPlayerNode (Foundation.NSObjectFlag t);
	protected AVAudioPlayerNode (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual float Pan { get; set; }
	public virtual bool Playing { get; }
	public virtual float Volume { get; set; }
	// methods
	public virtual AVAudioMixingDestination DestinationForMixer (AVAudioNode mixer, uint bus);
	public virtual AVAudioTime GetNodeTimeFromPlayerTime (AVAudioTime playerTime);
	public virtual AVAudioTime GetPlayerTimeFromNodeTime (AVAudioTime nodeTime);
	public virtual void Pause ();
	public virtual void Play ();
	public virtual void PlayAtTime (AVAudioTime when);
	public virtual void PrepareWithFrameCount (uint frameCount);
	public virtual void ScheduleBuffer (AVAudioPcmBuffer buffer, System.Action completionHandler);
	public virtual void ScheduleBuffer (AVAudioPcmBuffer buffer, AVAudioTime when, AVAudioPlayerNodeBufferOptions options, System.Action completionHandler);
	public virtual void ScheduleFile (AVAudioFile file, AVAudioTime when, System.Action completionHandler);
	public virtual void ScheduleSegment (AVAudioFile file, long startFrame, uint numberFrames, AVAudioTime when, System.Action completionHandler);
	public virtual void Stop ();
}

New Type AVFoundation.AVAudioPlayerNodeBufferOptions

[Serializable]
[Flags]
public enum AVAudioPlayerNodeBufferOptions {
	Interrupts = 2,
	InterruptsAtLoop = 4,
	Loops = 1,
}

New Type AVFoundation.AVAudioQuality

[Serializable]
public enum AVAudioQuality {
	High = 96,
	Low = 32,
	Max = 127,
	Medium = 64,
	Min = 0,
}

New Type AVFoundation.AVAudioSession

public class AVAudioSession : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVAudioSession (Foundation.NSObjectFlag t);
	protected AVAudioSession (IntPtr handle);
	// properties
	public virtual string[] AvailableCategories { get; }
	public virtual AVAudioSessionPortDescription[] AvailableInputs { get; }
	public virtual string[] AvailableModes { get; }
	public virtual Foundation.NSString Category { get; }
	public static Foundation.NSString CategoryAmbient { get; }
	public static Foundation.NSString CategoryMultiRoute { get; }
	public virtual AVAudioSessionCategoryOptions CategoryOptions { get; }
	public static Foundation.NSString CategoryPlayAndRecord { get; }
	public static Foundation.NSString CategoryPlayback { get; }
	public static Foundation.NSString CategoryRecord { get; }
	public static Foundation.NSString CategorySoloAmbient { get; }
	public override IntPtr ClassHandle { get; }
	public virtual nint CurrentHardwareInputNumberOfChannels { get; }
	public virtual nint CurrentHardwareOutputNumberOfChannels { get; }
	public virtual double CurrentHardwareSampleRate { get; }
	public virtual AVAudioSessionRouteDescription CurrentRoute { get; }
	public virtual double IOBufferDuration { get; }
	public virtual bool InputAvailable { get; }
	public virtual AVAudioSessionDataSourceDescription InputDataSource { get; }
	public virtual AVAudioSessionDataSourceDescription[] InputDataSources { get; }
	public virtual bool InputIsAvailable { get; }
	public virtual double InputLatency { get; }
	public virtual nint InputNumberOfChannels { get; }
	public static Foundation.NSString InterruptionNotification { get; }
	public virtual nint MaximumInputNumberOfChannels { get; }
	public virtual nint MaximumOutputNumberOfChannels { get; }
	public static Foundation.NSString MediaServicesWereLostNotification { get; }
	public static Foundation.NSString MediaServicesWereResetNotification { get; }
	public virtual Foundation.NSString Mode { get; }
	public static Foundation.NSString ModeDefault { get; }
	public static Foundation.NSString ModeGameChat { get; }
	public static Foundation.NSString ModeMeasurement { get; }
	public static Foundation.NSString ModeMoviePlayback { get; }
	public static Foundation.NSString ModeSpokenAudio { get; }
	public static Foundation.NSString ModeVideoChat { get; }
	public static Foundation.NSString ModeVideoRecording { get; }
	public static Foundation.NSString ModeVoiceChat { get; }
	public static Foundation.NSString OrientationLeft { get; }
	public static Foundation.NSString OrientationRight { get; }
	public virtual bool OtherAudioPlaying { get; }
	public virtual AVAudioSessionDataSourceDescription OutputDataSource { get; }
	public virtual AVAudioSessionDataSourceDescription[] OutputDataSources { get; }
	public virtual double OutputLatency { get; }
	public virtual nint OutputNumberOfChannels { get; }
	public virtual float OutputVolume { get; }
	public static Foundation.NSString PortAirPlay { get; }
	public static Foundation.NSString PortBluetoothA2DP { get; }
	public static Foundation.NSString PortBluetoothHfp { get; }
	public static Foundation.NSString PortBluetoothLE { get; }
	public static Foundation.NSString PortBuiltInMic { get; }
	public static Foundation.NSString PortBuiltInReceiver { get; }
	public static Foundation.NSString PortBuiltInSpeaker { get; }
	public static Foundation.NSString PortCarAudio { get; }
	public static Foundation.NSString PortHdmi { get; }
	public static Foundation.NSString PortHeadphones { get; }
	public static Foundation.NSString PortHeadsetMic { get; }
	public static Foundation.NSString PortLineIn { get; }
	public static Foundation.NSString PortLineOut { get; }
	public static Foundation.NSString PortUsbAudio { get; }
	public virtual double PreferredHardwareSampleRate { get; }
	public static Foundation.NSString RouteChangeNotification { get; }
	public virtual double SampleRate { get; }
	public virtual bool SecondaryAudioShouldBeSilencedHint { get; }
	public static Foundation.NSString SilenceSecondaryAudioHintNotification { get; }
	// methods
	public virtual bool OverrideOutputAudioPort (AVAudioSessionPortOverride portOverride, out Foundation.NSError outError);
	public Foundation.NSError SetActive (bool beActive);
	public virtual bool SetActive (bool beActive, out Foundation.NSError outError);
	public virtual bool SetActive (bool beActive, AVAudioSessionFlags flags, out Foundation.NSError outError);
	public virtual bool SetActive (bool active, AVAudioSessionSetActiveOptions options, out Foundation.NSError outError);
	public Foundation.NSError SetCategory (AVAudioSessionCategory category);
	public Foundation.NSError SetCategory (Foundation.NSString theCategory);
	public Foundation.NSError SetCategory (AVAudioSessionCategory category, AVAudioSessionCategoryOptions options);
	public virtual bool SetCategory (Foundation.NSString theCategory, out Foundation.NSError outError);
	public virtual bool SetCategory (string category, AVAudioSessionCategoryOptions options, out Foundation.NSError outError);
	public virtual bool SetCategory (string category, string mode, AVAudioSessionCategoryOptions options, out Foundation.NSError outError);
	public virtual bool SetMode (Foundation.NSString mode, out Foundation.NSError error);
	public virtual bool SetPreferredHardwareSampleRate (double sampleRate, out Foundation.NSError outError);
	public static AVAudioSession SharedInstance ();

	// inner types
	public static class Notifications {
		// methods
		public static Foundation.NSObject ObserveInterruption (System.EventHandler<AVAudioSessionInterruptionEventArgs> handler);
		public static Foundation.NSObject ObserveMediaServicesWereLost (System.EventHandler<Foundation.NSNotificationEventArgs> handler);
		public static Foundation.NSObject ObserveMediaServicesWereReset (System.EventHandler<Foundation.NSNotificationEventArgs> handler);
		public static Foundation.NSObject ObserveRouteChange (System.EventHandler<AVAudioSessionRouteChangeEventArgs> handler);
		public static Foundation.NSObject ObserveSilenceSecondaryAudioHint (System.EventHandler<AVAudioSessionSecondaryAudioHintEventArgs> handler);
	}
}

New Type AVFoundation.AVAudioSessionCategory

[Serializable]
public enum AVAudioSessionCategory {
	Ambient = 0,
	AudioProcessing = 5,
	MultiRoute = 6,
	PlayAndRecord = 4,
	Playback = 2,
	Record = 3,
	SoloAmbient = 1,
}

New Type AVFoundation.AVAudioSessionCategoryOptions

[Serializable]
[Flags]
public enum AVAudioSessionCategoryOptions {
	AllowAirPlay = 64,
	AllowBluetooth = 4,
	AllowBluetoothA2DP = 32,
	DefaultToSpeaker = 8,
	DuckOthers = 2,
	InterruptSpokenAudioAndMixWithOthers = 17,
	MixWithOthers = 1,
}

New Type AVFoundation.AVAudioSessionChannelDescription

public class AVAudioSessionChannelDescription : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVAudioSessionChannelDescription ();
	protected AVAudioSessionChannelDescription (Foundation.NSObjectFlag t);
	protected AVAudioSessionChannelDescription (IntPtr handle);
	// properties
	public virtual int ChannelLabel { get; }
	public virtual string ChannelName { get; }
	public virtual nint ChannelNumber { get; }
	public override IntPtr ClassHandle { get; }
	public virtual string OwningPortUID { get; }
}

New Type AVFoundation.AVAudioSessionDataSourceDescription

public class AVAudioSessionDataSourceDescription : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVAudioSessionDataSourceDescription ();
	protected AVAudioSessionDataSourceDescription (Foundation.NSObjectFlag t);
	protected AVAudioSessionDataSourceDescription (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSNumber DataSourceID { get; }
	public virtual string DataSourceName { get; }
	public AVAudioDataSourceLocation Location { get; }
	public AVAudioDataSourceOrientation Orientation { get; }
}

New Type AVFoundation.AVAudioSessionErrorCode

[Serializable]
public enum AVAudioSessionErrorCode {
	BadParam = -50,
	CannotInterruptOthers = 560557684,
	CannotStartPlaying = 561015905,
	CannotStartRecording = 561145187,
	CodeResourceNotAvailable = 561145203,
	IncompatibleCategory = 560161140,
	InsufficientPriority = 561017449,
	IsBusy = 560030580,
	MediaServicesFailed = 1836282486,
	MissingEntitlement = 1701737535,
	None = 0,
	SiriIsRecording = 1936290409,
	Unspecified = 2003329396,
}

New Type AVFoundation.AVAudioSessionFlags

[Serializable]
[Flags]
public enum AVAudioSessionFlags {
	NotifyOthersOnDeactivation = 1,
}

New Type AVFoundation.AVAudioSessionInterruptionEventArgs

public class AVAudioSessionInterruptionEventArgs : Foundation.NSNotificationEventArgs {
	// constructors
	public AVAudioSessionInterruptionEventArgs (Foundation.NSNotification notification);
	// properties
	public AVAudioSessionInterruptionType InterruptionType { get; }
	public AVAudioSessionInterruptionOptions Option { get; }
}

New Type AVFoundation.AVAudioSessionInterruptionOptions

[Serializable]
[Flags]
public enum AVAudioSessionInterruptionOptions {
	ShouldResume = 1,
}

New Type AVFoundation.AVAudioSessionInterruptionType

[Serializable]
public enum AVAudioSessionInterruptionType {
	Began = 1,
	Ended = 0,
}

New Type AVFoundation.AVAudioSessionPortDescription

public class AVAudioSessionPortDescription : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVAudioSessionPortDescription ();
	protected AVAudioSessionPortDescription (Foundation.NSObjectFlag t);
	protected AVAudioSessionPortDescription (IntPtr handle);
	// properties
	public virtual AVAudioSessionChannelDescription[] Channels { get; }
	public override IntPtr ClassHandle { get; }
	public virtual AVAudioSessionDataSourceDescription[] DataSourceDescriptions { get; }
	public virtual bool HasHardwareVoiceCallProcessing { get; }
	public virtual string PortName { get; }
	public virtual Foundation.NSString PortType { get; }
	public virtual string UID { get; }
}

New Type AVFoundation.AVAudioSessionPortOverride

[Serializable]
public enum AVAudioSessionPortOverride {
	None = 0,
	Speaker = 1936747378,
}

New Type AVFoundation.AVAudioSessionRouteChangeEventArgs

public class AVAudioSessionRouteChangeEventArgs : Foundation.NSNotificationEventArgs {
	// constructors
	public AVAudioSessionRouteChangeEventArgs (Foundation.NSNotification notification);
	// properties
	public AVAudioSessionRouteDescription PreviousRoute { get; }
	public AVAudioSessionRouteChangeReason Reason { get; }
}

New Type AVFoundation.AVAudioSessionRouteChangeReason

[Serializable]
public enum AVAudioSessionRouteChangeReason {
	CategoryChange = 3,
	NewDeviceAvailable = 1,
	NoSuitableRouteForCategory = 7,
	OldDeviceUnavailable = 2,
	Override = 4,
	RouteConfigurationChange = 8,
	Unknown = 0,
	WakeFromSleep = 6,
}

New Type AVFoundation.AVAudioSessionRouteDescription

public class AVAudioSessionRouteDescription : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVAudioSessionRouteDescription ();
	protected AVAudioSessionRouteDescription (Foundation.NSObjectFlag t);
	protected AVAudioSessionRouteDescription (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual AVAudioSessionPortDescription[] Inputs { get; }
	public virtual AVAudioSessionPortDescription[] Outputs { get; }
}

New Type AVFoundation.AVAudioSessionSecondaryAudioHintEventArgs

public class AVAudioSessionSecondaryAudioHintEventArgs : Foundation.NSNotificationEventArgs {
	// constructors
	public AVAudioSessionSecondaryAudioHintEventArgs (Foundation.NSNotification notification);
	// properties
	public AVAudioSessionSilenceSecondaryAudioHintType Hint { get; }
	public AVAudioSessionRouteDescription HintType { get; }
}

New Type AVFoundation.AVAudioSessionSetActiveOptions

[Serializable]
[Flags]
public enum AVAudioSessionSetActiveOptions {
	NotifyOthersOnDeactivation = 1,
}

New Type AVFoundation.AVAudioSessionSilenceSecondaryAudioHintType

[Serializable]
public enum AVAudioSessionSilenceSecondaryAudioHintType {
	Begin = 1,
	End = 0,
}

New Type AVFoundation.AVAudioSettings

public static class AVAudioSettings {
	// properties
	public static Foundation.NSString AVChannelLayoutKey { get; }
	public static Foundation.NSString AVEncoderAudioQualityKey { get; }
	public static Foundation.NSString AVEncoderBitDepthHintKey { get; }
	public static Foundation.NSString AVEncoderBitRateKey { get; }
	public static Foundation.NSString AVEncoderBitRatePerChannelKey { get; }
	public static Foundation.NSString AVFormatIDKey { get; }
	public static Foundation.NSString AVLinearPCMBitDepthKey { get; }
	public static Foundation.NSString AVLinearPCMIsBigEndianKey { get; }
	public static Foundation.NSString AVLinearPCMIsFloatKey { get; }
	public static Foundation.NSString AVLinearPCMIsNonInterleaved { get; }
	public static Foundation.NSString AVNumberOfChannelsKey { get; }
	public static Foundation.NSString AVSampleRateConverterAlgorithm_MinimumPhase { get; }
	public static Foundation.NSString AVSampleRateConverterAudioQualityKey { get; }
	public static Foundation.NSString AVSampleRateKey { get; }
}

New Type AVFoundation.AVAudioStereoMixing

public abstract class AVAudioStereoMixing : Foundation.NSObject, IAVAudioStereoMixing, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVAudioStereoMixing ();
	protected AVAudioStereoMixing (Foundation.NSObjectFlag t);
	protected AVAudioStereoMixing (IntPtr handle);
	// properties
	public virtual float Pan { get; set; }
}

New Type AVFoundation.AVAudioTime

public class AVAudioTime : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVAudioTime ();
	protected AVAudioTime (Foundation.NSObjectFlag t);
	protected AVAudioTime (IntPtr handle);
	public AVAudioTime (ulong hostTime);
	public AVAudioTime (ref AudioToolbox.AudioTimeStamp timestamp, double sampleRate);
	public AVAudioTime (long sampleTime, double sampleRate);
	public AVAudioTime (ulong hostTime, long sampleTime, double sampleRate);
	// properties
	public virtual AudioToolbox.AudioTimeStamp AudioTimeStamp { get; }
	public override IntPtr ClassHandle { get; }
	public virtual ulong HostTime { get; }
	public virtual bool HostTimeValid { get; }
	public virtual double SampleRate { get; }
	public virtual long SampleTime { get; }
	public virtual bool SampleTimeValid { get; }
	// methods
	public virtual AVAudioTime ExtrapolateTimeFromAnchor (AVAudioTime anchorTime);
	public static AVAudioTime FromAudioTimeStamp (ref AudioToolbox.AudioTimeStamp timestamp, double sampleRate);
	public static AVAudioTime FromHostTime (ulong hostTime);
	public static AVAudioTime FromHostTime (ulong hostTime, long sampleTime, double sampleRate);
	public static AVAudioTime FromSampleTime (long sampleTime, double sampleRate);
	public static ulong HostTimeForSeconds (double seconds);
	public static double SecondsForHostTime (ulong hostTime);
}

New Type AVFoundation.AVAudioUnitDistortionPreset

[Serializable]
public enum AVAudioUnitDistortionPreset {
	DrumsBitBrush = 0,
	DrumsBufferBeats = 1,
	DrumsLoFi = 2,
	MultiBrokenSpeaker = 3,
	MultiCellphoneConcert = 4,
	MultiDecimated1 = 5,
	MultiDecimated2 = 6,
	MultiDecimated3 = 7,
	MultiDecimated4 = 8,
	MultiDistortedCubed = 10,
	MultiDistortedFunk = 9,
	MultiDistortedSquared = 11,
	MultiEcho1 = 12,
	MultiEcho2 = 13,
	MultiEchoTight1 = 14,
	MultiEchoTight2 = 15,
	MultiEverythingIsBroken = 16,
	SpeechAlienChatter = 17,
	SpeechCosmicInterference = 18,
	SpeechGoldenPi = 19,
	SpeechRadioTower = 20,
	SpeechWaves = 21,
}

New Type AVFoundation.AVAudioUnitEQFilterParameters

public class AVAudioUnitEQFilterParameters : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVAudioUnitEQFilterParameters (Foundation.NSObjectFlag t);
	protected AVAudioUnitEQFilterParameters (IntPtr handle);
	// properties
	public virtual float Bandwidth { get; set; }
	public virtual bool Bypass { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual AVAudioUnitEQFilterType FilterType { get; set; }
	public virtual float Frequency { get; set; }
	public virtual float Gain { get; set; }
}

New Type AVFoundation.AVAudioUnitEQFilterType

[Serializable]
public enum AVAudioUnitEQFilterType {
	BandPass = 5,
	BandStop = 6,
	HighPass = 2,
	HighShelf = 8,
	LowPass = 1,
	LowShelf = 7,
	Parametric = 0,
	ResonantHighPass = 4,
	ResonantHighShelf = 10,
	ResonantLowPass = 3,
	ResonantLowShelf = 9,
}

New Type AVFoundation.AVAudioUnitManufacturerName

public static class AVAudioUnitManufacturerName {
	// properties
	public static Foundation.NSString Apple { get; }
}

New Type AVFoundation.AVAudioUnitReverbPreset

[Serializable]
public enum AVAudioUnitReverbPreset {
	Cathedral = 8,
	LargeChamber = 7,
	LargeHall = 4,
	LargeHall2 = 12,
	LargeRoom = 2,
	LargeRoom2 = 9,
	MediumChamber = 6,
	MediumHall = 3,
	MediumHall2 = 10,
	MediumHall3 = 11,
	MediumRoom = 1,
	Plate = 5,
	SmallRoom = 0,
}

New Type AVFoundation.AVAudioUnitType

public static class AVAudioUnitType {
	// properties
	public static Foundation.NSString Effect { get; }
	public static Foundation.NSString FormatConverter { get; }
	public static Foundation.NSString Generator { get; }
	public static Foundation.NSString MidiProcessor { get; }
	public static Foundation.NSString Mixer { get; }
	public static Foundation.NSString MusicDevice { get; }
	public static Foundation.NSString MusicEffect { get; }
	public static Foundation.NSString OfflineEffect { get; }
	public static Foundation.NSString Output { get; }
	public static Foundation.NSString Panner { get; }
}

New Type AVFoundation.AVBeatRange

public struct AVBeatRange {
	// constructors
	public AVBeatRange (double startBeat, double lengthInBeats);
	// fields
	public double Length;
	public double Start;
	// methods
	public bool Equals (AVBeatRange other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public override string ToString ();
	public static bool op_Equality (AVBeatRange left, AVBeatRange right);
	public static bool op_Inequality (AVBeatRange left, AVBeatRange right);
}

New Type AVFoundation.AVCaptureWhiteBalanceChromaticityValues

public struct AVCaptureWhiteBalanceChromaticityValues {
	// constructors
	public AVCaptureWhiteBalanceChromaticityValues (float x, float y);
	// fields
	public float X;
	public float Y;
	// methods
	public bool Equals (AVCaptureWhiteBalanceChromaticityValues other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public override string ToString ();
	public static bool op_Equality (AVCaptureWhiteBalanceChromaticityValues left, AVCaptureWhiteBalanceChromaticityValues right);
	public static bool op_Inequality (AVCaptureWhiteBalanceChromaticityValues left, AVCaptureWhiteBalanceChromaticityValues right);
}

New Type AVFoundation.AVCaptureWhiteBalanceGains

public struct AVCaptureWhiteBalanceGains {
	// constructors
	public AVCaptureWhiteBalanceGains (float redGain, float greenGain, float blueGain);
	// fields
	public float BlueGain;
	public float GreenGain;
	public float RedGain;
	// methods
	public bool Equals (AVCaptureWhiteBalanceGains other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public override string ToString ();
	public static bool op_Equality (AVCaptureWhiteBalanceGains left, AVCaptureWhiteBalanceGains right);
	public static bool op_Inequality (AVCaptureWhiteBalanceGains left, AVCaptureWhiteBalanceGains right);
}

New Type AVFoundation.AVCaptureWhiteBalanceTemperatureAndTintValues

public struct AVCaptureWhiteBalanceTemperatureAndTintValues {
	// constructors
	public AVCaptureWhiteBalanceTemperatureAndTintValues (float temperature, float tint);
	// fields
	public float Temperature;
	public float Tint;
	// methods
	public bool Equals (AVCaptureWhiteBalanceTemperatureAndTintValues other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public override string ToString ();
	public static bool op_Equality (AVCaptureWhiteBalanceTemperatureAndTintValues left, AVCaptureWhiteBalanceTemperatureAndTintValues right);
	public static bool op_Inequality (AVCaptureWhiteBalanceTemperatureAndTintValues left, AVCaptureWhiteBalanceTemperatureAndTintValues right);
}

New Type AVFoundation.AVEdgeWidths

public struct AVEdgeWidths {
	// constructors
	public AVEdgeWidths (nfloat left, nfloat top, nfloat right, nfloat bottom);
	// fields
	public nfloat Bottom;
	public nfloat Left;
	public nfloat Right;
	public nfloat Top;
	// methods
	public override bool Equals (object other);
	public override int GetHashCode ();
	public override string ToString ();
	public static bool op_Equality (AVEdgeWidths left, AVEdgeWidths right);
	public static bool op_Inequality (AVEdgeWidths left, AVEdgeWidths right);
}

New Type AVFoundation.AVMetadataIdentifiers

public static class AVMetadataIdentifiers {
}

New Type AVFoundation.AVMetadataItemFilter

public class AVMetadataItemFilter {
	// constructors
	public AVMetadataItemFilter ();
}

New Type AVFoundation.AVMetadataObjectType

[Serializable]
[Flags]
public enum AVMetadataObjectType {
	AztecCode = 2,
	Code128Code = 4,
	Code39Code = 8,
	Code39Mod43Code = 16,
	Code93Code = 32,
	DataMatrixCode = 8192,
	EAN13Code = 64,
	EAN8Code = 128,
	Face = 1,
	ITF14Code = 4096,
	Interleaved2of5Code = 2048,
	None = 0,
	PDF417Code = 256,
	QRCode = 512,
	UPCECode = 1024,
}

New Type AVFoundation.AVMusicSequenceLoadOptions

[Serializable]
public enum AVMusicSequenceLoadOptions {
	ChannelsToTracks = 1,
	PreserveTracks = 0,
}

New Type AVFoundation.AVMusicTrackLoopCount

[Serializable]
public enum AVMusicTrackLoopCount {
	Forever = -1,
}

New Type AVFoundation.AVPixelAspectRatio

public struct AVPixelAspectRatio {
	// constructors
	public AVPixelAspectRatio (nint horizontalSpacing, nint verticalSpacing);
	// fields
	public nint HorizontalSpacing;
	public nint VerticalSpacing;
	// methods
	public override bool Equals (object other);
	public override int GetHashCode ();
	public override string ToString ();
	public static bool op_Equality (AVPixelAspectRatio left, AVPixelAspectRatio right);
	public static bool op_Inequality (AVPixelAspectRatio left, AVPixelAspectRatio right);
}

New Type AVFoundation.AVSampleRateConverterAlgorithm

[Serializable]
public enum AVSampleRateConverterAlgorithm {
	Mastering = 1,
	Normal = 0,
}

New Type AVFoundation.AVSpeechBoundary

[Serializable]
public enum AVSpeechBoundary {
	Immediate = 0,
	Word = 1,
}

New Type AVFoundation.AVSpeechSynthesisVoice

public class AVSpeechSynthesisVoice : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVSpeechSynthesisVoice ();
	public AVSpeechSynthesisVoice (Foundation.NSCoder coder);
	protected AVSpeechSynthesisVoice (Foundation.NSObjectFlag t);
	protected AVSpeechSynthesisVoice (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public static string CurrentLanguageCode { get; }
	public virtual string Identifier { get; }
	public static Foundation.NSString IdentifierAlex { get; }
	public static Foundation.NSString IpaNotationAttribute { get; }
	public virtual string Language { get; }
	public virtual string Name { get; }
	public virtual AVSpeechSynthesisVoiceQuality Quality { get; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static AVSpeechSynthesisVoice FromIdentifier (string identifier);
	public static AVSpeechSynthesisVoice FromLanguage (string language);
	public static AVSpeechSynthesisVoice[] GetSpeechVoices ();
}

New Type AVFoundation.AVSpeechSynthesisVoiceQuality

[Serializable]
public enum AVSpeechSynthesisVoiceQuality {
	Default = 1,
	Enhanced = 2,
}

New Type AVFoundation.AVSpeechSynthesizer

public class AVSpeechSynthesizer : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVSpeechSynthesizer ();
	protected AVSpeechSynthesizer (Foundation.NSObjectFlag t);
	protected AVSpeechSynthesizer (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public IAVSpeechSynthesizerDelegate Delegate { get; set; }
	public virtual AVAudioSessionChannelDescription[] OutputChannels { get; set; }
	public virtual bool Paused { get; }
	public virtual bool Speaking { get; }
	public virtual Foundation.NSObject WeakDelegate { get; set; }
	// events
	public event System.EventHandler<AVSpeechSynthesizerUteranceEventArgs> DidCancelSpeechUtterance;
	public event System.EventHandler<AVSpeechSynthesizerUteranceEventArgs> DidContinueSpeechUtterance;
	public event System.EventHandler<AVSpeechSynthesizerUteranceEventArgs> DidFinishSpeechUtterance;
	public event System.EventHandler<AVSpeechSynthesizerUteranceEventArgs> DidPauseSpeechUtterance;
	public event System.EventHandler<AVSpeechSynthesizerUteranceEventArgs> DidStartSpeechUtterance;
	public event System.EventHandler<AVSpeechSynthesizerWillSpeakEventArgs> WillSpeakRangeOfSpeechString;
	// methods
	public virtual bool ContinueSpeaking ();
	protected override void Dispose (bool disposing);
	public virtual bool PauseSpeaking (AVSpeechBoundary boundary);
	public virtual void SpeakUtterance (AVSpeechUtterance utterance);
	public virtual bool StopSpeaking (AVSpeechBoundary boundary);
}

New Type AVFoundation.AVSpeechSynthesizerDelegate

public class AVSpeechSynthesizerDelegate : Foundation.NSObject, IAVSpeechSynthesizerDelegate, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVSpeechSynthesizerDelegate ();
	protected AVSpeechSynthesizerDelegate (Foundation.NSObjectFlag t);
	protected AVSpeechSynthesizerDelegate (IntPtr handle);
	// methods
	public virtual void DidCancelSpeechUtterance (AVSpeechSynthesizer synthesizer, AVSpeechUtterance utterance);
	public virtual void DidContinueSpeechUtterance (AVSpeechSynthesizer synthesizer, AVSpeechUtterance utterance);
	public virtual void DidFinishSpeechUtterance (AVSpeechSynthesizer synthesizer, AVSpeechUtterance utterance);
	public virtual void DidPauseSpeechUtterance (AVSpeechSynthesizer synthesizer, AVSpeechUtterance utterance);
	public virtual void DidStartSpeechUtterance (AVSpeechSynthesizer synthesizer, AVSpeechUtterance utterance);
	public virtual void WillSpeakRangeOfSpeechString (AVSpeechSynthesizer synthesizer, Foundation.NSRange characterRange, AVSpeechUtterance utterance);
}

New Type AVFoundation.AVSpeechSynthesizerDelegate_Extensions

public static class AVSpeechSynthesizerDelegate_Extensions {
	// methods
	public static void DidCancelSpeechUtterance (IAVSpeechSynthesizerDelegate This, AVSpeechSynthesizer synthesizer, AVSpeechUtterance utterance);
	public static void DidContinueSpeechUtterance (IAVSpeechSynthesizerDelegate This, AVSpeechSynthesizer synthesizer, AVSpeechUtterance utterance);
	public static void DidFinishSpeechUtterance (IAVSpeechSynthesizerDelegate This, AVSpeechSynthesizer synthesizer, AVSpeechUtterance utterance);
	public static void DidPauseSpeechUtterance (IAVSpeechSynthesizerDelegate This, AVSpeechSynthesizer synthesizer, AVSpeechUtterance utterance);
	public static void DidStartSpeechUtterance (IAVSpeechSynthesizerDelegate This, AVSpeechSynthesizer synthesizer, AVSpeechUtterance utterance);
	public static void WillSpeakRangeOfSpeechString (IAVSpeechSynthesizerDelegate This, AVSpeechSynthesizer synthesizer, Foundation.NSRange characterRange, AVSpeechUtterance utterance);
}

New Type AVFoundation.AVSpeechSynthesizerUteranceEventArgs

public class AVSpeechSynthesizerUteranceEventArgs : System.EventArgs {
	// constructors
	public AVSpeechSynthesizerUteranceEventArgs (AVSpeechUtterance utterance);
	// properties
	public AVSpeechUtterance Utterance { get; set; }
}

New Type AVFoundation.AVSpeechSynthesizerWillSpeakEventArgs

public class AVSpeechSynthesizerWillSpeakEventArgs : System.EventArgs {
	// constructors
	public AVSpeechSynthesizerWillSpeakEventArgs (Foundation.NSRange characterRange, AVSpeechUtterance utterance);
	// properties
	public Foundation.NSRange CharacterRange { get; set; }
	public AVSpeechUtterance Utterance { get; set; }
}

New Type AVFoundation.AVSpeechUtterance

public class AVSpeechUtterance : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVSpeechUtterance ();
	public AVSpeechUtterance (Foundation.NSAttributedString speechString);
	public AVSpeechUtterance (Foundation.NSCoder coder);
	protected AVSpeechUtterance (Foundation.NSObjectFlag t);
	protected AVSpeechUtterance (IntPtr handle);
	public AVSpeechUtterance (string speechString);
	// properties
	public virtual Foundation.NSAttributedString AttributedSpeechString { get; }
	public override IntPtr ClassHandle { get; }
	public static float DefaultSpeechRate { get; }
	public static float MaximumSpeechRate { get; }
	public static float MinimumSpeechRate { get; }
	public virtual float PitchMultiplier { get; set; }
	public virtual double PostUtteranceDelay { get; set; }
	public virtual double PreUtteranceDelay { get; set; }
	public virtual float Rate { get; set; }
	public virtual string SpeechString { get; }
	public virtual AVSpeechSynthesisVoice Voice { get; set; }
	public virtual float Volume { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static AVSpeechUtterance FromString (Foundation.NSAttributedString speechString);
	public static AVSpeechUtterance FromString (string speechString);
}

New Type AVFoundation.AVTextStyleRule

public class AVTextStyleRule {
	// constructors
	public AVTextStyleRule ();
}

New Type AVFoundation.AVVideoCodec

[Serializable]
public enum AVVideoCodec {
	H264 = 1,
	JPEG = 2,
}

New Type AVFoundation.AVVideoProfileLevelH264

[Serializable]
public enum AVVideoProfileLevelH264 {
	Baseline30 = 1,
	Baseline31 = 2,
	Baseline41 = 3,
	BaselineAutoLevel = 10,
	High40 = 8,
	High41 = 9,
	HighAutoLevel = 12,
	Main30 = 4,
	Main31 = 5,
	Main32 = 6,
	Main41 = 7,
	MainAutoLevel = 11,
}

New Type AVFoundation.AVVideoScalingMode

[Serializable]
public enum AVVideoScalingMode {
	Fit = 0,
	Resize = 1,
	ResizeAspect = 2,
	ResizeAspectFill = 3,
}

New Type AVFoundation.AudioSettings

public class AudioSettings : Foundation.DictionaryContainer {
	// constructors
	public AudioSettings ();
	public AudioSettings (Foundation.NSDictionary dictionary);
	// properties
	public AVAudioQuality? AudioQuality { get; set; }
	public AVAudioBitRateStrategy? BitRateStrategy { get; set; }
	public AudioToolbox.AudioChannelLayout ChannelLayout { set; }
	public AVAudioQuality? EncoderAudioQualityForVBR { get; set; }
	public int? EncoderBitDepthHint { get; set; }
	public int? EncoderBitRate { get; set; }
	public int? EncoderBitRatePerChannel { get; set; }
	public AudioToolbox.AudioFormatType? Format { get; set; }
	public bool? LinearPcmBigEndian { get; set; }
	public int? LinearPcmBitDepth { get; set; }
	public bool? LinearPcmFloat { get; set; }
	public bool? LinearPcmNonInterleaved { get; set; }
	public int? NumberChannels { get; set; }
	public double? SampleRate { get; set; }
	public AVSampleRateConverterAlgorithm? SampleRateConverterAlgorithm { get; set; }
	public AVAudioQuality? SampleRateConverterAudioQuality { get; set; }
}

New Type AVFoundation.IAVAudioMixing

public interface IAVAudioMixing : IAVAudioStereoMixing, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual float Volume { get; set; }
}

New Type AVFoundation.IAVAudioStereoMixing

public interface IAVAudioStereoMixing : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual float Pan { get; set; }
}

New Type AVFoundation.IAVSpeechSynthesizerDelegate

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

New Namespace AudioToolbox

New Type AudioToolbox.AudioChannelBit

[Serializable]
[Flags]
public enum AudioChannelBit {
	Center = 4,
	CenterSurround = 256,
	LFEScreen = 8,
	Left = 1,
	LeftCenter = 64,
	LeftSurround = 16,
	LeftSurroundDirect = 512,
	Right = 2,
	RightCenter = 128,
	RightSurround = 32,
	RightSurroundDirect = 1024,
	TopBackCenter = 65536,
	TopBackLeft = 32768,
	TopBackRight = 131072,
	TopCenterSurround = 2048,
	VerticalHeightCenter = 8192,
	VerticalHeightLeft = 4096,
	VerticalHeightRight = 16384,
}

New Type AudioToolbox.AudioChannelDescription

public struct AudioChannelDescription {
	// fields
	public AudioChannelFlags Flags;
	public AudioChannelLabel Label;
	// properties
	public float[] Coords { get; set; }
	// methods
	public override string ToString ();
}

New Type AudioToolbox.AudioChannelFlags

[Serializable]
[Flags]
public enum AudioChannelFlags {
	AllOff = 0,
	Meters = 4,
	RectangularCoordinates = 1,
	SphericalCoordinates = 2,
}

New Type AudioToolbox.AudioChannelLabel

[Serializable]
public enum AudioChannelLabel {
	Ambisonic_W = 200,
	Ambisonic_X = 201,
	Ambisonic_Y = 202,
	Ambisonic_Z = 203,
	Center = 3,
	CenterSurround = 9,
	CenterSurroundDirect = 44,
	ClickTrack = 304,
	DialogCentricMix = 43,
	Discrete = 400,
	Discrete_0 = 65536,
	Discrete_1 = 65537,
	Discrete_10 = 65546,
	Discrete_11 = 65547,
	Discrete_12 = 65548,
	Discrete_13 = 65549,
	Discrete_14 = 65550,
	Discrete_15 = 65551,
	Discrete_2 = 65538,
	Discrete_3 = 65539,
	Discrete_4 = 65540,
	Discrete_5 = 65541,
	Discrete_6 = 65542,
	Discrete_65535 = 131071,
	Discrete_7 = 65543,
	Discrete_8 = 65544,
	Discrete_9 = 65545,
	ForeignLanguage = 305,
	Haptic = 45,
	HeadphonesLeft = 301,
	HeadphonesRight = 302,
	HearingImpaired = 40,
	LFE2 = 37,
	LFEScreen = 4,
	Left = 1,
	LeftCenter = 7,
	LeftSurround = 5,
	LeftSurroundDirect = 10,
	LeftTotal = 38,
	LeftWide = 35,
	MS_Mid = 204,
	MS_Side = 205,
	Mono = 42,
	Narration = 41,
	RearSurroundLeft = 33,
	RearSurroundRight = 34,
	Right = 2,
	RightCenter = 8,
	RightSurround = 6,
	RightSurroundDirect = 11,
	RightTotal = 39,
	RightWide = 36,
	TopBackCenter = 17,
	TopBackLeft = 16,
	TopBackRight = 18,
	TopCenterSurround = 12,
	Unknown = -1,
	Unused = 0,
	UseCoordinates = 100,
	VerticalHeightCenter = 14,
	VerticalHeightLeft = 13,
	VerticalHeightRight = 15,
	XY_X = 206,
	XY_Y = 207,
}

New Type AudioToolbox.AudioChannelLayout

public class AudioChannelLayout {
	// constructors
	public AudioChannelLayout ();
	// fields
	public AudioChannelLayoutTag AudioTag;
	public AudioChannelBit ChannelUsage;
	public AudioChannelDescription[] Channels;
	// methods
	public Foundation.NSData AsData ();
	public override string ToString ();
}

New Type AudioToolbox.AudioChannelLayoutTag

[Serializable]
public enum AudioChannelLayoutTag {
	AAC_3_0 = 7471107,
	AAC_4_0 = 7602180,
	AAC_5_0 = 7864325,
	AAC_5_1 = 8126470,
	AAC_6_0 = 9240582,
	AAC_6_1 = 9306119,
	AAC_7_0 = 9371655,
	AAC_7_1 = 8323080,
	AAC_7_1_B = 11993096,
	AAC_7_1_C = 12058632,
	AAC_Octagonal = 9437192,
	AAC_Quadraphonic = 7077892,
	AC3_1_0_1 = 9764866,
	AC3_2_1_1 = 10027012,
	AC3_3_0 = 9830403,
	AC3_3_0_1 = 9961476,
	AC3_3_1 = 9895940,
	AC3_3_1_1 = 10092549,
	Ambisonic_B_Format = 7012356,
	AudioUnit_4 = 7077892,
	AudioUnit_5 = 7143429,
	AudioUnit_5_0 = 7733253,
	AudioUnit_5_1 = 7929862,
	AudioUnit_6 = 7208966,
	AudioUnit_6_0 = 9109510,
	AudioUnit_6_1 = 8192007,
	AudioUnit_7_0 = 9175047,
	AudioUnit_7_0_Front = 9699335,
	AudioUnit_7_1 = 8388616,
	AudioUnit_7_1_Front = 8257544,
	AudioUnit_8 = 7274504,
	Binaural = 6946818,
	Cube = 7340040,
	DTS_3_1 = 11010052,
	DTS_4_1 = 11075589,
	DTS_6_0_A = 11141126,
	DTS_6_0_B = 11206662,
	DTS_6_0_C = 11272198,
	DTS_6_1_A = 11337735,
	DTS_6_1_B = 11403271,
	DTS_6_1_C = 11468807,
	DTS_6_1_D = 11927559,
	DTS_7_0 = 11534343,
	DTS_7_1 = 11599880,
	DTS_8_0_A = 11665416,
	DTS_8_0_B = 11730952,
	DTS_8_1_A = 11796489,
	DTS_8_1_B = 11862025,
	DVD_0 = 6553601,
	DVD_1 = 6619138,
	DVD_10 = 8912900,
	DVD_11 = 8978437,
	DVD_12 = 7929862,
	DVD_13 = 7536644,
	DVD_14 = 7667717,
	DVD_15 = 8912900,
	DVD_16 = 8978437,
	DVD_17 = 7929862,
	DVD_18 = 9043973,
	DVD_19 = 7733253,
	DVD_2 = 8585219,
	DVD_20 = 7995398,
	DVD_3 = 8650756,
	DVD_4 = 8716291,
	DVD_5 = 8781828,
	DVD_6 = 8847365,
	DVD_7 = 7405571,
	DVD_8 = 7536644,
	DVD_9 = 7667717,
	DiscreteInOrder = 9633792,
	EAC3_6_1_A = 10289159,
	EAC3_6_1_B = 10354695,
	EAC3_6_1_C = 10420231,
	EAC3_7_1_A = 10485768,
	EAC3_7_1_B = 10551304,
	EAC3_7_1_C = 10616840,
	EAC3_7_1_D = 10682376,
	EAC3_7_1_E = 10747912,
	EAC3_7_1_F = 10813448,
	EAC3_7_1_G = 10878984,
	EAC3_7_1_H = 10944520,
	EAC_6_0_A = 10158086,
	EAC_7_0_A = 10223623,
	Emagic_Default_7_1 = 8454152,
	Hexagonal = 7208966,
	ITU_1_0 = 6553601,
	ITU_2_0 = 6619138,
	ITU_2_1 = 8585219,
	ITU_2_2 = 8650756,
	ITU_3_0 = 7405571,
	ITU_3_1 = 7536644,
	ITU_3_2 = 7667717,
	ITU_3_2_1 = 7929862,
	ITU_3_4_1 = 8388616,
	MPEG_1_0 = 6553601,
	MPEG_2_0 = 6619138,
	MPEG_3_0_A = 7405571,
	MPEG_3_0_B = 7471107,
	MPEG_4_0_A = 7536644,
	MPEG_4_0_B = 7602180,
	MPEG_5_0_A = 7667717,
	MPEG_5_0_B = 7733253,
	MPEG_5_0_C = 7798789,
	MPEG_5_0_D = 7864325,
	MPEG_5_1_A = 7929862,
	MPEG_5_1_B = 7995398,
	MPEG_5_1_C = 8060934,
	MPEG_5_1_D = 8126470,
	MPEG_6_1_A = 8192007,
	MPEG_7_1_A = 8257544,
	MPEG_7_1_B = 8323080,
	MPEG_7_1_C = 8388616,
	MatrixStereo = 6750210,
	MidSide = 6815746,
	Mono = 6553601,
	Octagonal = 7274504,
	Pentagonal = 7143429,
	Quadraphonic = 7077892,
	SMPTE_DTV = 8519688,
	Stereo = 6619138,
	StereoHeadphones = 6684674,
	TMH_10_2_full = 9568277,
	TMH_10_2_std = 9502736,
	Unknown = 4294901760,
	UseChannelBitmap = 65536,
	UseChannelDescriptions = 0,
	XY = 6881282,
}

New Type AudioToolbox.AudioFormatFlags

[Serializable]
[Flags]
public enum AudioFormatFlags {
	AppleLossless16BitSourceData = 1,
	AppleLossless20BitSourceData = 2,
	AppleLossless24BitSourceData = 3,
	AppleLossless32BitSourceData = 4,
	CafIsFloat = 1,
	CafIsLittleEndian = 2,
	FlagsAreAllClear = 2147483648,
	IsAlignedHigh = 16,
	IsBigEndian = 2,
	IsFloat = 1,
	IsNonInterleaved = 32,
	IsNonMixable = 64,
	IsPacked = 8,
	IsSignedInteger = 4,
	LinearPCMFlagsAreAllClear = 2147483648,
	LinearPCMIsAlignedHigh = 16,
	LinearPCMIsBigEndian = 2,
	LinearPCMIsFloat = 1,
	LinearPCMIsNonInterleaved = 32,
	LinearPCMIsNonMixable = 64,
	LinearPCMIsPacked = 8,
	LinearPCMIsSignedInteger = 4,
	LinearPCMSampleFractionMask = 8064,
	LinearPCMSampleFractionShift = 7,
}

New Type AudioToolbox.AudioFormatType

[Serializable]
public enum AudioFormatType {
	AC3 = 1633889587,
	AES3 = 1634038579,
	ALaw = 1634492791,
	AMR = 1935764850,
	AMRWideBand = 1935767394,
	AppleIMA4 = 1768775988,
	AppleLossless = 1634492771,
	Audible = 1096107074,
	CAC3 = 1667326771,
	DVIIntelIMA = 1836253201,
	EnhancedAES3 = 1700998451,
	LinearPCM = 1819304813,
	MACE3 = 1296122675,
	MACE6 = 1296122678,
	MIDIStream = 1835623529,
	MPEG4AAC = 1633772320,
	MPEG4AAC_ELD = 1633772389,
	MPEG4AAC_ELD_SBR = 1633772390,
	MPEG4AAC_ELD_V2 = 1633772391,
	MPEG4AAC_HE = 1633772392,
	MPEG4AAC_HE_V2 = 1633772400,
	MPEG4AAC_LD = 1633772396,
	MPEG4AAC_Spatial = 1633772403,
	MPEG4CELP = 1667591280,
	MPEG4HVXC = 1752594531,
	MPEG4TwinVQ = 1953986161,
	MPEGLayer1 = 778924081,
	MPEGLayer2 = 778924082,
	MPEGLayer3 = 778924083,
	MicrosoftGSM = 1836253233,
	ParameterValueStream = 1634760307,
	QDesign = 1363430723,
	QDesign2 = 1363430706,
	QUALCOMM = 1365470320,
	TimeCode = 1953066341,
	ULaw = 1970037111,
	iLBC = 1768710755,
}

New Type AudioToolbox.AudioStreamBasicDescription

public struct AudioStreamBasicDescription {
	// constructors
	public AudioStreamBasicDescription (AudioFormatType formatType);
	// fields
	public static AudioFormatFlags AudioFormatFlagsAudioUnitCanonical;
	public static AudioFormatFlags AudioFormatFlagsAudioUnitNativeFloat;
	public static AudioFormatFlags AudioFormatFlagsNativeFloat;
	public static const double AudioStreamAnyRate;
	public int BitsPerChannel;
	public int BytesPerFrame;
	public int BytesPerPacket;
	public int ChannelsPerFrame;
	public AudioFormatType Format;
	public AudioFormatFlags FormatFlags;
	public int FramesPerPacket;
	public int Reserved;
	public double SampleRate;
	// methods
	public static AudioStreamBasicDescription CreateLinearPCM (double sampleRate, uint channelsPerFrame, uint bitsPerChannel, bool bigEndian);
	public override string ToString ();
}

New Type AudioToolbox.AudioStreamPacketDescription

public struct AudioStreamPacketDescription {
	// fields
	public int DataByteSize;
	public long StartOffset;
	public int VariableFramesInPacket;
	// methods
	public override string ToString ();
}

New Type AudioToolbox.AudioTimeStamp

public struct AudioTimeStamp {
	// fields
	public AudioTimeStamp.AtsFlags Flags;
	public ulong HostTime;
	public double RateScalar;
	public uint Reserved;
	public SmpteTime SMPTETime;
	public double SampleTime;
	public ulong WordClockTime;
	// methods
	public override string ToString ();

	// inner types
	[Serializable]
	[Flags]
	public enum AtsFlags {
		public static const AudioTimeStamp.AtsFlags HostTimeValid;
		public static const AudioTimeStamp.AtsFlags NothingValid;
		public static const AudioTimeStamp.AtsFlags RateScalarValid;
		public static const AudioTimeStamp.AtsFlags SampleHostTimeValid;
		public static const AudioTimeStamp.AtsFlags SampleTimeValid;
		public static const AudioTimeStamp.AtsFlags SmpteTimeValid;
		public static const AudioTimeStamp.AtsFlags WordClockTimeValid;
	}
}

New Type AudioToolbox.MPEG4ObjectID

[Serializable]
public enum MPEG4ObjectID {
	AacLc = 2,
	AacLtp = 4,
	AacMain = 1,
	AacSbr = 5,
	AacScalable = 6,
	AacSsr = 3,
	Celp = 8,
	Hvxc = 9,
	TwinVq = 7,
}

New Type AudioToolbox.SmpteTime

public struct SmpteTime {
	// fields
	public uint Counter;
	public uint Flags;
	public short Frames;
	public short Hours;
	public short Minutes;
	public short Seconds;
	public short SubframeDivisor;
	public short Subframes;
	public uint Type;
	// properties
	public SmpteTimeFlags FlagsStrong { get; set; }
	public SmpteTimeType TypeStrong { get; set; }
	// methods
	public override string ToString ();
}

New Type AudioToolbox.SmpteTimeFlags

[Serializable]
[Flags]
public enum SmpteTimeFlags {
	TimeRunning = 2,
	TimeValid = 1,
	Unknown = 0,
}

New Type AudioToolbox.SmpteTimeType

[Serializable]
public enum SmpteTimeType {
	None = 0,
	Type2398 = 12,
	Type24 = 1,
	Type25 = 2,
	Type2997 = 5,
	Type2997Drop = 6,
	Type30 = 4,
	Type30Drop = 3,
	Type50 = 11,
	Type5994 = 8,
	Type5994Drop = 10,
	Type60 = 7,
	Type60Drop = 9,
}

New Namespace CloudKit

New Type CloudKit.CKAcceptPerShareCompletionHandler

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

New Type CloudKit.CKAcceptSharesOperation

public class CKAcceptSharesOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKAcceptSharesOperation ();
	public CKAcceptSharesOperation (CKShareMetadata[] shareMetadatas);
	protected CKAcceptSharesOperation (Foundation.NSObjectFlag t);
	protected CKAcceptSharesOperation (IntPtr handle);
	// properties
	public virtual System.Action<Foundation.NSError> AcceptSharesCompleted { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual CKAcceptPerShareCompletionHandler PerShareCompleted { get; set; }
	public virtual CKShareMetadata[] ShareMetadatas { get; set; }
}

New Type CloudKit.CKAccountStatus

[Serializable]
public enum CKAccountStatus {
	Available = 1,
	CouldNotDetermine = 0,
	NoAccount = 3,
	Restricted = 2,
}

New Type CloudKit.CKApplicationPermissionStatus

[Serializable]
public enum CKApplicationPermissionStatus {
	CouldNotComplete = 1,
	Denied = 2,
	Granted = 3,
	InitialState = 0,
}

New Type CloudKit.CKApplicationPermissions

[Serializable]
[Flags]
public enum CKApplicationPermissions {
	UserDiscoverability = 1,
}

New Type CloudKit.CKAsset

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

New Type CloudKit.CKContainer

public class CKContainer : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected CKContainer (Foundation.NSObjectFlag t);
	protected CKContainer (IntPtr handle);
	// properties
	public static Foundation.NSString AccountChangedNotification { get; }
	public override IntPtr ClassHandle { get; }
	public virtual string ContainerIdentifier { get; }
	public static Foundation.NSString CurrentUserDefaultName { get; }
	public static CKContainer DefaultContainer { get; }
	public virtual CKDatabase PrivateCloudDatabase { get; }
	public virtual CKDatabase PublicCloudDatabase { get; }
	public virtual CKDatabase SharedCloudDatabase { get; }
	// methods
	public virtual void AcceptShareMetadata (CKShareMetadata metadata, System.Action<CKShare,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKShare> AcceptShareMetadataAsync (CKShareMetadata metadata);
	public virtual void AddOperation (CKOperation operation);
	public virtual void DiscoverAllIdentities (System.Action<CKUserIdentity[],Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKUserIdentity[]> DiscoverAllIdentitiesAsync ();
	public virtual void DiscoverUserIdentity (CKRecordID userRecordID, System.Action<CKUserIdentity,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKUserIdentity> DiscoverUserIdentityAsync (CKRecordID userRecordID);
	public virtual void DiscoverUserIdentityWithEmailAddress (string email, System.Action<CKUserIdentity,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKUserIdentity> DiscoverUserIdentityWithEmailAddressAsync (string email);
	public virtual void DiscoverUserIdentityWithPhoneNumber (string phoneNumber, System.Action<CKUserIdentity,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKUserIdentity> DiscoverUserIdentityWithPhoneNumberAsync (string phoneNumber);
	public virtual void FetchAllLongLivedOperationIDs (System.Action<Foundation.NSDictionary<Foundation.NSString,Foundation.NSOperation>> completionHandler);
	public virtual System.Threading.Tasks.Task<Foundation.NSDictionary<Foundation.NSString,Foundation.NSOperation>> FetchAllLongLivedOperationIDsAsync ();
	public virtual void FetchLongLivedOperation (string[] operationID, System.Action<Foundation.NSDictionary<Foundation.NSString,Foundation.NSOperation>> completionHandler);
	public virtual System.Threading.Tasks.Task<Foundation.NSDictionary<Foundation.NSString,Foundation.NSOperation>> FetchLongLivedOperationAsync (string[] operationID);
	public virtual void FetchShareMetadata (Foundation.NSUrl url, System.Action<CKShareMetadata,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKShareMetadata> FetchShareMetadataAsync (Foundation.NSUrl url);
	public virtual void FetchShareParticipant (CKRecordID userRecordID, System.Action<CKShareParticipant,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKShareParticipant> FetchShareParticipantAsync (CKRecordID userRecordID);
	public virtual void FetchShareParticipantWithEmailAddress (string emailAddress, System.Action<CKShareParticipant,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKShareParticipant> FetchShareParticipantWithEmailAddressAsync (string emailAddress);
	public virtual void FetchShareParticipantWithPhoneNumber (string phoneNumber, System.Action<CKShareParticipant,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKShareParticipant> FetchShareParticipantWithPhoneNumberAsync (string phoneNumber);
	public virtual void FetchUserRecordId (System.Action<CKRecordID,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKRecordID> FetchUserRecordIdAsync ();
	public static CKContainer FromIdentifier (string containerIdentifier);
	public virtual void GetAccountStatus (System.Action<CKAccountStatus,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKAccountStatus> GetAccountStatusAsync ();
	public virtual CKDatabase GetDatabase (CKDatabaseScope databaseScope);
	public virtual void RequestApplicationPermission (CKApplicationPermissions applicationPermission, System.Action<CKApplicationPermissionStatus,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKApplicationPermissionStatus> RequestApplicationPermissionAsync (CKApplicationPermissions applicationPermission);
	public virtual void StatusForApplicationPermission (CKApplicationPermissions applicationPermission, System.Action<CKApplicationPermissionStatus,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKApplicationPermissionStatus> StatusForApplicationPermissionAsync (CKApplicationPermissions applicationPermission);

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

New Type CloudKit.CKDatabase

public class CKDatabase : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected CKDatabase (Foundation.NSObjectFlag t);
	protected CKDatabase (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CKDatabaseScope DatabaseScope { get; }
	// methods
	public virtual void AddOperation (CKDatabaseOperation operation);
	public virtual void DeleteRecord (CKRecordID recordId, System.Action<CKRecordID,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKRecordID> DeleteRecordAsync (CKRecordID recordId);
	public virtual void DeleteRecordZone (CKRecordZoneID zoneId, System.Action<CKRecordZoneID,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKRecordZoneID> DeleteRecordZoneAsync (CKRecordZoneID zoneId);
	public virtual void FetchAllRecordZones (System.Action<CKRecordZone[],Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKRecordZone[]> FetchAllRecordZonesAsync ();
	public virtual void FetchRecord (CKRecordID recordId, System.Action<CKRecord,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKRecord> FetchRecordAsync (CKRecordID recordId);
	public virtual void FetchRecordZone (CKRecordZoneID zoneId, System.Action<CKRecordZone,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKRecordZone> FetchRecordZoneAsync (CKRecordZoneID zoneId);
	public virtual void PerformQuery (CKQuery query, CKRecordZoneID zoneId, System.Action<CKRecord[],Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKRecord[]> PerformQueryAsync (CKQuery query, CKRecordZoneID zoneId);
	public virtual void SaveRecord (CKRecord record, System.Action<CKRecord,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKRecord> SaveRecordAsync (CKRecord record);
	public virtual void SaveRecordZone (CKRecordZone zone, System.Action<CKRecordZone,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKRecordZone> SaveRecordZoneAsync (CKRecordZone zone);
}

New Type CloudKit.CKDatabaseNotification

public class CKDatabaseNotification : CloudKit.CKNotification, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKDatabaseNotification (Foundation.NSCoder coder);
	protected CKDatabaseNotification (Foundation.NSObjectFlag t);
	protected CKDatabaseNotification (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CKDatabaseScope DatabaseScope { get; }
}

New Type CloudKit.CKDatabaseOperation

public abstract class CKDatabaseOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected CKDatabaseOperation (Foundation.NSObjectFlag t);
	protected CKDatabaseOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CKDatabase Database { get; set; }
}

New Type CloudKit.CKDatabaseScope

[Serializable]
public enum CKDatabaseScope {
	Private = 2,
	Public = 1,
	Shared = 3,
}

New Type CloudKit.CKDiscoverAllUserIdentitiesOperation

public class CKDiscoverAllUserIdentitiesOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKDiscoverAllUserIdentitiesOperation ();
	protected CKDiscoverAllUserIdentitiesOperation (Foundation.NSObjectFlag t);
	protected CKDiscoverAllUserIdentitiesOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual System.Action<Foundation.NSError> Completed { get; set; }
	public virtual System.Action<CKUserIdentity> Discovered { get; set; }
}

New Type CloudKit.CKDiscoverUserIdentitiesOperation

public class CKDiscoverUserIdentitiesOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKDiscoverUserIdentitiesOperation ();
	public CKDiscoverUserIdentitiesOperation (CKUserIdentityLookupInfo[] userIdentityLookupInfos);
	protected CKDiscoverUserIdentitiesOperation (Foundation.NSObjectFlag t);
	protected CKDiscoverUserIdentitiesOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual System.Action<Foundation.NSError> Completed { get; set; }
	public virtual System.Action<CKUserIdentity,CloudKit.CKUserIdentityLookupInfo> Discovered { get; set; }
	public virtual CKUserIdentityLookupInfo[] UserIdentityLookupInfos { get; set; }
}

New Type CloudKit.CKErrorCode

[Serializable]
public enum CKErrorCode {
	AlreadyShared = 30,
	AssetFileModified = 17,
	AssetFileNotFound = 16,
	BadContainer = 5,
	BadDatabase = 24,
	BatchRequestFailed = 22,
	ChangeTokenExpired = 21,
	ConstraintViolation = 19,
	IncompatibleVersion = 18,
	InternalError = 1,
	InvalidArguments = 12,
	LimitExceeded = 27,
	ManagedAccountRestricted = 32,
	MissingEntitlement = 8,
	NetworkFailure = 4,
	NetworkUnavailable = 3,
	None = 0,
	NotAuthenticated = 9,
	OperationCancelled = 20,
	PartialFailure = 2,
	ParticipantMayNeedVerification = 33,
	PermissionFailure = 10,
	QuotaExceeded = 25,
	ReferenceViolation = 31,
	RequestRateLimited = 7,
	ResultsTruncated = 13,
	ServerRecordChanged = 14,
	ServerRejectedRequest = 15,
	ServiceUnavailable = 6,
	TooManyParticipants = 29,
	UnknownItem = 11,
	UserDeletedZone = 28,
	ZoneBusy = 23,
	ZoneNotFound = 26,
}

New Type CloudKit.CKErrorCodeExtensions

public static class CKErrorCodeExtensions {
	// methods
	public static Foundation.NSString GetDomain (CKErrorCode self);
}

New Type CloudKit.CKErrorFields

public static class CKErrorFields {
	// properties
	public static Foundation.NSString ErrorRetryAfterKey { get; }
	public static Foundation.NSString PartialErrorsByItemIdKey { get; }
	public static Foundation.NSString RecordChangedErrorAncestorRecordKey { get; }
	public static Foundation.NSString RecordChangedErrorClientRecordKey { get; }
	public static Foundation.NSString RecordChangedErrorServerRecordKey { get; }
}

New Type CloudKit.CKFetchDatabaseChangesCompletionHandler

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

New Type CloudKit.CKFetchDatabaseChangesOperation

public class CKFetchDatabaseChangesOperation : CloudKit.CKDatabaseOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchDatabaseChangesOperation ();
	public CKFetchDatabaseChangesOperation (CKServerChangeToken previousServerChangeToken);
	protected CKFetchDatabaseChangesOperation (Foundation.NSObjectFlag t);
	protected CKFetchDatabaseChangesOperation (IntPtr handle);
	// properties
	public virtual System.Action<CKServerChangeToken> ChangeTokenUpdated { get; set; }
	public virtual System.Action<CKRecordZoneID> Changed { get; set; }
	public virtual CKFetchDatabaseChangesCompletionHandler ChangesCompleted { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual bool FetchAllChanges { get; set; }
	public virtual CKServerChangeToken PreviousServerChangeToken { get; set; }
	public virtual uint ResultsLimit { get; set; }
	public virtual System.Action<CKRecordZoneID> WasDeleted { get; set; }
}

New Type CloudKit.CKFetchNotificationChangesOperation

public class CKFetchNotificationChangesOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchNotificationChangesOperation ();
	public CKFetchNotificationChangesOperation (CKServerChangeToken previousServerChangeToken);
	protected CKFetchNotificationChangesOperation (Foundation.NSObjectFlag t);
	protected CKFetchNotificationChangesOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual System.Action<CKServerChangeToken,Foundation.NSError> Completed { get; set; }
	public virtual bool MoreComing { get; }
	public virtual System.Action<CKNotification> NotificationChanged { get; set; }
	public virtual CKServerChangeToken PreviousServerChangeToken { get; set; }
	public virtual uint ResultsLimit { get; set; }
}

New Type CloudKit.CKFetchPerShareMetadataHandler

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

New Type CloudKit.CKFetchRecordZoneChangesFetchCompletedHandler

public sealed delegate CKFetchRecordZoneChangesFetchCompletedHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKFetchRecordZoneChangesFetchCompletedHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CKRecordZoneID recordZoneID, CKServerChangeToken serverChangeToken, Foundation.NSData clientChangeTokenData, bool moreComing, Foundation.NSError recordZoneError, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CKRecordZoneID recordZoneID, CKServerChangeToken serverChangeToken, Foundation.NSData clientChangeTokenData, bool moreComing, Foundation.NSError recordZoneError);
}

New Type CloudKit.CKFetchRecordZoneChangesOperation

public class CKFetchRecordZoneChangesOperation : CloudKit.CKDatabaseOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchRecordZoneChangesOperation ();
	protected CKFetchRecordZoneChangesOperation (Foundation.NSObjectFlag t);
	protected CKFetchRecordZoneChangesOperation (IntPtr handle);
	public CKFetchRecordZoneChangesOperation (CKRecordZoneID[] recordZoneIDs, Foundation.NSDictionary<CKRecordZoneID,CloudKit.CKFetchRecordZoneChangesOptions> optionsByRecordZoneID);
	// properties
	public virtual System.Action<Foundation.NSError> ChangesCompleted { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual bool FetchAllChanges { get; set; }
	public virtual CKFetchRecordZoneChangesFetchCompletedHandler FetchCompleted { get; set; }
	public virtual Foundation.NSDictionary<CKRecordZoneID,CloudKit.CKFetchRecordZoneChangesOptions> OptionsByRecordZoneID { get; set; }
	public virtual System.Action<CKRecord> RecordChanged { get; set; }
	public virtual CKFetchRecordZoneChangesWithIDWasDeletedHandler RecordWithIDWasDeleted { get; set; }
	public virtual CKFetchRecordZoneChangesTokensUpdatedHandler RecordZoneChangeTokensUpdated { get; set; }
	public virtual CKRecordZoneID[] RecordZoneIDs { get; set; }
}

New Type CloudKit.CKFetchRecordZoneChangesOptions

public class CKFetchRecordZoneChangesOptions : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchRecordZoneChangesOptions ();
	public CKFetchRecordZoneChangesOptions (Foundation.NSCoder coder);
	protected CKFetchRecordZoneChangesOptions (Foundation.NSObjectFlag t);
	protected CKFetchRecordZoneChangesOptions (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 void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKFetchRecordZoneChangesTokensUpdatedHandler

public sealed delegate CKFetchRecordZoneChangesTokensUpdatedHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKFetchRecordZoneChangesTokensUpdatedHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CKRecordZoneID recordZoneID, CKServerChangeToken serverChangeToken, Foundation.NSData clientChangeTokenData, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CKRecordZoneID recordZoneID, CKServerChangeToken serverChangeToken, Foundation.NSData clientChangeTokenData);
}

New Type CloudKit.CKFetchRecordZoneChangesWithIDWasDeletedHandler

public sealed delegate CKFetchRecordZoneChangesWithIDWasDeletedHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKFetchRecordZoneChangesWithIDWasDeletedHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CKRecordID recordID, Foundation.NSString recordType, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CKRecordID recordID, Foundation.NSString recordType);
}

New Type CloudKit.CKFetchRecordZonesOperation

public class CKFetchRecordZonesOperation : CloudKit.CKDatabaseOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchRecordZonesOperation (CKRecordZoneID[] zoneIds);
	protected CKFetchRecordZonesOperation (Foundation.NSObjectFlag t);
	protected CKFetchRecordZonesOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CKRecordZoneCompleteHandler Completed { get; set; }
	public virtual CKRecordZoneID[] RecordZoneIds { get; set; }
	// methods
	public static CKFetchRecordZonesOperation FetchAllRecordZonesOperation ();
}

New Type CloudKit.CKFetchRecordsCompletedHandler

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

New Type CloudKit.CKFetchRecordsOperation

public class CKFetchRecordsOperation : CloudKit.CKDatabaseOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchRecordsOperation (CKRecordID[] recordIds);
	protected CKFetchRecordsOperation (Foundation.NSObjectFlag t);
	protected CKFetchRecordsOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CKFetchRecordsCompletedHandler Completed { get; set; }
	public virtual string[] DesiredKeys { get; set; }
	public virtual System.Action<CKRecord,CloudKit.CKRecordID,Foundation.NSError> PerRecordCompletion { get; set; }
	public virtual System.Action<CKRecordID,System.Double> PerRecordProgress { get; set; }
	public virtual CKRecordID[] RecordIds { get; set; }
	// methods
	public static CKFetchRecordsOperation FetchCurrentUserRecordOperation ();
}

New Type CloudKit.CKFetchShareMetadataOperation

public class CKFetchShareMetadataOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchShareMetadataOperation ();
	protected CKFetchShareMetadataOperation (Foundation.NSObjectFlag t);
	public CKFetchShareMetadataOperation (Foundation.NSUrl[] shareUrls);
	protected CKFetchShareMetadataOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual System.Action<Foundation.NSError> FetchShareMetadataCompleted { get; set; }
	public virtual CKFetchPerShareMetadataHandler PerShareMetadata { get; set; }
	public virtual string[] RootRecordDesiredKeys { get; set; }
	public virtual Foundation.NSUrl[] ShareUrls { get; set; }
	public virtual bool ShouldFetchRootRecord { get; set; }
}

New Type CloudKit.CKFetchShareParticipantsOperation

public class CKFetchShareParticipantsOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchShareParticipantsOperation ();
	public CKFetchShareParticipantsOperation (CKUserIdentityLookupInfo[] userIdentityLookupInfos);
	protected CKFetchShareParticipantsOperation (Foundation.NSObjectFlag t);
	protected CKFetchShareParticipantsOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual System.Action<Foundation.NSError> Completed { get; set; }
	public virtual System.Action<CKShareParticipant> Fetched { get; set; }
	public virtual CKUserIdentityLookupInfo[] UserIdentityLookupInfos { get; set; }
}

New Type CloudKit.CKFetchWebAuthTokenOperation

public class CKFetchWebAuthTokenOperation : CloudKit.CKDatabaseOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected CKFetchWebAuthTokenOperation (Foundation.NSObjectFlag t);
	protected CKFetchWebAuthTokenOperation (IntPtr handle);
	public CKFetchWebAuthTokenOperation (string token);
	// properties
	public virtual string ApiToken { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual CKFetchWebAuthTokenOperationHandler Completed { get; set; }
}

New Type CloudKit.CKFetchWebAuthTokenOperationHandler

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

New Type CloudKit.CKLocationSortDescriptor

public class CKLocationSortDescriptor : Foundation.NSSortDescriptor, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKLocationSortDescriptor (Foundation.NSCoder coder);
	protected CKLocationSortDescriptor (Foundation.NSObjectFlag t);
	protected CKLocationSortDescriptor (IntPtr handle);
	public CKLocationSortDescriptor (string key, CoreLocation.CLLocation relativeLocation);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CoreLocation.CLLocation RelativeLocation { get; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKMarkNotificationsReadHandler

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

New Type CloudKit.CKMarkNotificationsReadOperation

public class CKMarkNotificationsReadOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKMarkNotificationsReadOperation (CKNotificationID[] notificationIds);
	protected CKMarkNotificationsReadOperation (Foundation.NSObjectFlag t);
	protected CKMarkNotificationsReadOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CKMarkNotificationsReadHandler Completed { get; set; }
	public virtual CKNotificationID[] NotificationIds { get; set; }
}

New Type CloudKit.CKModifyBadgeOperation

public class CKModifyBadgeOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKModifyBadgeOperation ();
	protected CKModifyBadgeOperation (Foundation.NSObjectFlag t);
	protected CKModifyBadgeOperation (IntPtr handle);
	public CKModifyBadgeOperation (uint badgeValue);
	// properties
	public virtual uint BadgeValue { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual System.Action<Foundation.NSError> Completed { get; set; }
}

New Type CloudKit.CKModifyRecordZonesHandler

public sealed delegate CKModifyRecordZonesHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKModifyRecordZonesHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CKRecordZone[] savedRecordZones, CKRecordZoneID[] deletedRecordZoneIds, Foundation.NSError operationError, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CKRecordZone[] savedRecordZones, CKRecordZoneID[] deletedRecordZoneIds, Foundation.NSError operationError);
}

New Type CloudKit.CKModifyRecordZonesOperation

public class CKModifyRecordZonesOperation : CloudKit.CKDatabaseOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKModifyRecordZonesOperation ();
	protected CKModifyRecordZonesOperation (Foundation.NSObjectFlag t);
	protected CKModifyRecordZonesOperation (IntPtr handle);
	public CKModifyRecordZonesOperation (CKRecordZone[] recordZonesToSave, CKRecordZoneID[] recordZoneIdsToDelete);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CKModifyRecordZonesHandler Completed { get; set; }
	public virtual CKRecordZoneID[] RecordZoneIdsToDelete { get; set; }
	public virtual CKRecordZone[] RecordZonesToSave { get; set; }
}

New Type CloudKit.CKModifyRecordsOperation

public class CKModifyRecordsOperation : CloudKit.CKDatabaseOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKModifyRecordsOperation ();
	protected CKModifyRecordsOperation (Foundation.NSObjectFlag t);
	protected CKModifyRecordsOperation (IntPtr handle);
	public CKModifyRecordsOperation (CKRecord[] recordsToSave, CKRecordID[] recordsToDelete);
	// properties
	public virtual bool Atomic { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSData ClientChangeTokenData { get; set; }
	public virtual CKModifyRecordsOperationHandler Completed { get; set; }
	public virtual System.Action<CKRecord,Foundation.NSError> PerRecordCompletion { get; set; }
	public virtual System.Action<CKRecord,System.Double> PerRecordProgress { get; set; }
	public virtual CKRecordID[] RecordIdsToDelete { get; set; }
	public virtual CKRecord[] RecordsToSave { get; set; }
	public virtual CKRecordSavePolicy SavePolicy { get; set; }
}

New Type CloudKit.CKModifyRecordsOperationHandler

public sealed delegate CKModifyRecordsOperationHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKModifyRecordsOperationHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CKRecord[] savedRecords, CKRecordID[] deletedRecordIds, Foundation.NSError operationError, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CKRecord[] savedRecords, CKRecordID[] deletedRecordIds, Foundation.NSError operationError);
}

New Type CloudKit.CKNotification

public abstract class CKNotification : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected CKNotification (Foundation.NSCoder coder);
	protected CKNotification (Foundation.NSObjectFlag t);
	protected CKNotification (IntPtr handle);
	// properties
	public virtual string AlertActionLocalizationKey { get; }
	public virtual string AlertBody { get; }
	public virtual string AlertLaunchImage { get; }
	public virtual string[] AlertLocalizationArgs { get; }
	public virtual string AlertLocalizationKey { get; }
	public virtual Foundation.NSNumber Badge { get; }
	public virtual string Category { get; }
	public override IntPtr ClassHandle { get; }
	public virtual string ContainerIdentifier { get; }
	public virtual bool IsPruned { get; }
	public virtual CKNotificationID NotificationId { get; }
	public virtual CKNotificationType NotificationType { get; }
	public virtual string SoundName { get; }
	public virtual string SubscriptionID { get; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static CKNotification FromRemoteNotificationDictionary (Foundation.NSDictionary notificationDictionary);
}

New Type CloudKit.CKNotificationID

public class CKNotificationID : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKNotificationID (Foundation.NSCoder coder);
	protected CKNotificationID (Foundation.NSObjectFlag t);
	protected CKNotificationID (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 CloudKit.CKNotificationType

[Serializable]
public enum CKNotificationType {
	Database = 4,
	Query = 1,
	ReadNotification = 3,
	RecordZone = 2,
}

New Type CloudKit.CKOperation

public abstract class CKOperation : Foundation.NSOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected CKOperation (Foundation.NSObjectFlag t);
	protected CKOperation (IntPtr handle);
	// properties
	public virtual bool AllowsCellularAccess { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual CKContainer Container { get; set; }
	public virtual bool LongLived { get; set; }
	public virtual System.Action LongLivedOperationWasPersistedCallback { get; set; }
	public virtual string OperationID { get; }
	public virtual double TimeoutIntervalForRequest { get; set; }
	public virtual double TimeoutIntervalForResource { get; set; }
}

New Type CloudKit.CKQuery

public class CKQuery : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKQuery (Foundation.NSCoder coder);
	protected CKQuery (Foundation.NSObjectFlag t);
	protected CKQuery (IntPtr handle);
	public CKQuery (string recordType, Foundation.NSPredicate predicate);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSPredicate Predicate { get; }
	public virtual string RecordType { get; }
	public virtual Foundation.NSSortDescriptor[] SortDescriptors { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKQueryCursor

public class CKQueryCursor : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKQueryCursor (Foundation.NSCoder coder);
	protected CKQueryCursor (Foundation.NSObjectFlag t);
	protected CKQueryCursor (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 CloudKit.CKQueryNotification

public class CKQueryNotification : CloudKit.CKNotification, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKQueryNotification (Foundation.NSCoder coder);
	protected CKQueryNotification (Foundation.NSObjectFlag t);
	protected CKQueryNotification (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CKDatabaseScope DatabaseScope { get; }
	public virtual bool IsPublicDatabase { get; }
	public virtual CKQueryNotificationReason QueryNotificationReason { get; }
	public virtual Foundation.NSDictionary RecordFields { get; }
	public virtual CKRecordID RecordId { get; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKQueryNotificationReason

[Serializable]
public enum CKQueryNotificationReason {
	RecordCreated = 1,
	RecordDeleted = 3,
	RecordUpdated = 2,
}

New Type CloudKit.CKQueryOperation

public class CKQueryOperation : CloudKit.CKDatabaseOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKQueryOperation (CKQuery query);
	public CKQueryOperation (CKQueryCursor cursor);
	protected CKQueryOperation (Foundation.NSObjectFlag t);
	protected CKQueryOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual System.Action<CKQueryCursor,Foundation.NSError> Completed { get; set; }
	public virtual CKQueryCursor Cursor { get; set; }
	public virtual string[] DesiredKeys { get; set; }
	public virtual CKQuery Query { get; set; }
	public virtual System.Action<CKRecord> RecordFetched { get; set; }
	public virtual uint ResultsLimit { get; set; }
	public virtual CKRecordZoneID ZoneId { get; set; }
}

New Type CloudKit.CKRecord

public class CKRecord : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKRecord (Foundation.NSCoder coder);
	protected CKRecord (Foundation.NSObjectFlag t);
	protected CKRecord (IntPtr handle);
	public CKRecord (string recordType);
	public CKRecord (string recordType, CKRecordID recordId);
	public CKRecord (string recordType, CKRecordZoneID zoneId);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSDate CreationDate { get; }
	public virtual CKRecordID CreatorUserRecordId { get; }
	public virtual CKRecordID Id { get; }
	public Foundation.NSObject Item { get; set; }
	public virtual CKRecordID LastModifiedUserRecordId { get; }
	public virtual Foundation.NSDate ModificationDate { get; }
	public virtual CKReference Parent { get; set; }
	public static Foundation.NSString ParentKey { get; }
	public virtual string RecordChangeTag { get; }
	public virtual string RecordType { get; }
	public virtual CKReference Share { get; }
	public static Foundation.NSString ShareKey { get; }
	public static Foundation.NSString TypeShare { get; }
	public static Foundation.NSString TypeUserRecord { get; }
	// methods
	public virtual string[] AllKeys ();
	public virtual string[] AllTokens ();
	public virtual string[] ChangedKeys ();
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeSystemFields (Foundation.NSCoder coder);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public virtual void SetParent (CKRecord parentRecord);
	public virtual void SetParent (CKRecordID parentRecordID);
}

New Type CloudKit.CKRecordID

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

New Type CloudKit.CKRecordSavePolicy

[Serializable]
public enum CKRecordSavePolicy {
	SaveAllKeys = 2,
	SaveChangedKeys = 1,
	SaveIfServerRecordUnchanged = 0,
}

New Type CloudKit.CKRecordValue

public class CKRecordValue : Foundation.NSObject, ICKRecordValue, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKRecordValue ();
	protected CKRecordValue (Foundation.NSObjectFlag t);
	protected CKRecordValue (IntPtr handle);
}

New Type CloudKit.CKRecordZone

public class CKRecordZone : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKRecordZone (CKRecordZoneID zoneId);
	public CKRecordZone (Foundation.NSCoder coder);
	protected CKRecordZone (Foundation.NSObjectFlag t);
	protected CKRecordZone (IntPtr handle);
	public CKRecordZone (string zoneName);
	// properties
	public virtual CKRecordZoneCapabilities Capabilities { get; }
	public override IntPtr ClassHandle { get; }
	public static Foundation.NSString DefaultName { get; }
	public virtual CKRecordZoneID ZoneId { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static CKRecordZone DefaultRecordZone ();
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKRecordZoneCapabilities

[Serializable]
[Flags]
public enum CKRecordZoneCapabilities {
	Atomic = 2,
	FetchChanges = 1,
	Sharing = 4,
}

New Type CloudKit.CKRecordZoneCompleteHandler

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

New Type CloudKit.CKRecordZoneID

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

New Type CloudKit.CKRecordZoneNotification

public class CKRecordZoneNotification : CloudKit.CKNotification, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKRecordZoneNotification (Foundation.NSCoder coder);
	protected CKRecordZoneNotification (Foundation.NSObjectFlag t);
	protected CKRecordZoneNotification (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CKDatabaseScope DatabaseScope { get; }
	public virtual CKRecordZoneID RecordZoneId { get; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKReference

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

New Type CloudKit.CKReferenceAction

[Serializable]
public enum CKReferenceAction {
	DeleteSelf = 1,
	None = 0,
}

New Type CloudKit.CKServerChangeToken

public class CKServerChangeToken : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKServerChangeToken (Foundation.NSCoder coder);
	protected CKServerChangeToken (Foundation.NSObjectFlag t);
	protected CKServerChangeToken (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 CloudKit.CKShare

public class CKShare : CloudKit.CKRecord, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKShare (CKRecord rootRecord);
	public CKShare (Foundation.NSCoder coder);
	protected CKShare (Foundation.NSObjectFlag t);
	protected CKShare (IntPtr handle);
	public CKShare (CKRecord rootRecord, CKRecordID shareID);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CKShareParticipant CurrentUser { get; }
	public virtual CKShareParticipant Owner { get; }
	public virtual CKShareParticipant[] Participants { get; }
	public virtual CKShareParticipantPermission PublicPermission { get; set; }
	public virtual Foundation.NSUrl Url { get; }
	// methods
	public virtual void Add (CKShareParticipant participant);
	public virtual void Remove (CKShareParticipant participant);
}

New Type CloudKit.CKShareKeys

public static class CKShareKeys {
	// properties
	public static Foundation.NSString ThumbnailImageData { get; }
	public static Foundation.NSString Title { get; }
	public static Foundation.NSString Type { get; }
}

New Type CloudKit.CKShareMetadata

public class CKShareMetadata : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKShareMetadata ();
	public CKShareMetadata (Foundation.NSCoder coder);
	protected CKShareMetadata (Foundation.NSObjectFlag t);
	protected CKShareMetadata (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string ContainerIdentifier { get; }
	public virtual CKUserIdentity OwnerIdentity { get; }
	public virtual CKShareParticipantPermission Permission { get; }
	public virtual CKRecord RootRecord { get; }
	public virtual CKRecordID RootRecordID { get; }
	public virtual CKShare Share { get; }
	public virtual CKShareParticipantAcceptanceStatus Status { get; }
	public virtual CKShareParticipantType Type { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKShareParticipant

public class CKShareParticipant : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKShareParticipant (Foundation.NSCoder coder);
	protected CKShareParticipant (Foundation.NSObjectFlag t);
	protected CKShareParticipant (IntPtr handle);
	// properties
	public virtual CKShareParticipantAcceptanceStatus AcceptanceStatus { get; }
	public override IntPtr ClassHandle { get; }
	public virtual CKShareParticipantPermission Permission { get; set; }
	public virtual CKShareParticipantType Type { get; set; }
	public virtual CKUserIdentity UserIdentity { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKShareParticipantAcceptanceStatus

[Serializable]
public enum CKShareParticipantAcceptanceStatus {
	Accepted = 2,
	Pending = 1,
	Removed = 3,
	Unknown = 0,
}

New Type CloudKit.CKShareParticipantPermission

[Serializable]
public enum CKShareParticipantPermission {
	None = 1,
	ReadOnly = 2,
	ReadWrite = 3,
	Unknown = 0,
}

New Type CloudKit.CKShareParticipantType

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

New Type CloudKit.CKUserIdentity

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

New Type CloudKit.CKUserIdentityLookupInfo

public class CKUserIdentityLookupInfo : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKUserIdentityLookupInfo (CKRecordID userRecordID);
	public CKUserIdentityLookupInfo (Foundation.NSCoder coder);
	protected CKUserIdentityLookupInfo (Foundation.NSObjectFlag t);
	protected CKUserIdentityLookupInfo (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string EmailAddress { get; }
	public virtual string PhoneNumber { get; }
	public virtual CKRecordID UserRecordID { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static CKUserIdentityLookupInfo FromEmail (string email);
	public static CKUserIdentityLookupInfo FromPhoneNumber (string phoneNumber);
	public static CKUserIdentityLookupInfo[] GetLookupInfos (CKRecordID[] recordIDs);
	public static CKUserIdentityLookupInfo[] GetLookupInfosWithEmails (string[] emails);
	public static CKUserIdentityLookupInfo[] GetLookupInfosWithPhoneNumbers (string[] phoneNumbers);
}

New Type CloudKit.ICKRecordValue

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

New Namespace CoreVideo

New Type CoreVideo.CVPixelFormatType

[Serializable]
public enum CVPixelFormatType {
	CV128RGBAFloat = 1380410945,
	CV14BayerBggr = 1650943796,
	CV14BayerGbrg = 1734505012,
	CV14BayerGrbg = 1735549492,
	CV14BayerRggb = 1919379252,
	CV16BE555 = 16,
	CV16BE565 = 1110783541,
	CV16Gray = 1647392359,
	CV16LE555 = 1278555445,
	CV16LE5551 = 892679473,
	CV16LE565 = 1278555701,
	CV1IndexedGray_WhiteIsZero = 33,
	CV1Monochrome = 1,
	CV24BGR = 842285639,
	CV24RGB = 24,
	CV2Indexed = 2,
	CV2IndexedGray_WhiteIsZero = 34,
	CV30RGB = 1378955371,
	CV30RgbLePackedWideGamut = 1999843442,
	CV32ABGR = 1094862674,
	CV32ARGB = 32,
	CV32AlphaGray = 1647522401,
	CV32BGRA = 1111970369,
	CV32RGBA = 1380401729,
	CV420YpCbCr8BiPlanarFullRange = 875704422,
	CV420YpCbCr8BiPlanarVideoRange = 875704438,
	CV420YpCbCr8Planar = 2033463856,
	CV420YpCbCr8PlanarFullRange = 1714696752,
	CV422YpCbCr10 = 1983000880,
	CV422YpCbCr16 = 1983000886,
	CV422YpCbCr8 = 846624121,
	CV422YpCbCr8FullRange = 2037741158,
	CV422YpCbCr8_yuvs = 2037741171,
	CV422YpCbCr_4A_8BiPlanar = 1630697081,
	CV4444AYpCbCr16 = 2033463606,
	CV4444AYpCbCr8 = 2033463352,
	CV4444YpCbCrA8 = 1983131704,
	CV4444YpCbCrA8R = 1916022840,
	CV444YpCbCr10 = 1983131952,
	CV444YpCbCr8 = 1983066168,
	CV48RGB = 1647589490,
	CV4Indexed = 4,
	CV4IndexedGray_WhiteIsZero = 36,
	CV64ARGB = 1647719521,
	CV64RGBAHalf = 1380411457,
	CV8Indexed = 8,
	CV8IndexedGray_WhiteIsZero = 40,
	OneComponent16Half = 1278226536,
	OneComponent32Float = 1278226534,
	OneComponent8 = 1278226488,
	TwoComponent16Half = 843264104,
	TwoComponent32Float = 843264102,
	TwoComponent8 = 843264056,
}

New Namespace GameKit

New Type GameKit.GKAchievement

public class GKAchievement : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKAchievement ();
	public GKAchievement (Foundation.NSCoder coder);
	protected GKAchievement (Foundation.NSObjectFlag t);
	protected GKAchievement (IntPtr handle);
	public GKAchievement (string identifier);
	public GKAchievement (string identifier, GKPlayer player);
	public GKAchievement (string identifier, string playerId);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool Completed { get; }
	public virtual bool Hidden { get; }
	public virtual string Identifier { get; set; }
	public virtual Foundation.NSDate LastReportedDate { get; set; }
	public virtual double PercentComplete { get; set; }
	public virtual GKPlayer Player { get; }
	public virtual string PlayerID { get; }
	public virtual bool ShowsCompletionBanner { get; set; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static void LoadAchievements (GKCompletionHandler completionHandler);
	public static System.Threading.Tasks.Task<GKAchievement[]> LoadAchievementsAsync ();
	public static void ReportAchievements (GKAchievement[] achievements, System.Action<Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task ReportAchievementsAsync (GKAchievement[] achievements);
	public static void ResetAchivements (System.Action<Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task ResetAchivementsAsync ();
}

New Type GameKit.GKAchievementDescription

public class GKAchievementDescription : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKAchievementDescription ();
	public GKAchievementDescription (Foundation.NSCoder coder);
	protected GKAchievementDescription (Foundation.NSObjectFlag t);
	protected GKAchievementDescription (IntPtr handle);
	// properties
	public virtual string AchievedDescription { get; }
	public override IntPtr ClassHandle { get; }
	public virtual string GroupIdentifier { get; }
	public virtual bool Hidden { get; }
	public virtual string Identifier { get; }
	public virtual UIKit.UIImage Image { get; }
	public virtual nint MaximumPoints { get; }
	public virtual bool Replayable { get; }
	public virtual string Title { get; }
	public virtual string UnachievedDescription { get; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static void LoadAchievementDescriptions (GKAchievementDescriptionHandler handler);
	public static System.Threading.Tasks.Task<GKAchievementDescription[]> LoadAchievementDescriptionsAsync ();
}

New Type GameKit.GKAchievementDescriptionHandler

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

New Type GameKit.GKBasePlayer

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

New Type GameKit.GKChallenge

public class GKChallenge {
	// constructors
	public GKChallenge ();
	// methods
	public override string ToString ();
}

New Type GameKit.GKChallengeState

[Serializable]
public enum GKChallengeState {
	Completed = 2,
	Declined = 3,
	Invalid = 0,
	Pending = 1,
}

New Type GameKit.GKCompletionHandler

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

New Type GameKit.GKConnectionState

[Serializable]
public enum GKConnectionState {
	Connected = 1,
	NotConnected = 0,
}

New Type GameKit.GKError

[Serializable]
public enum GKError {
	AuthenticationInProgress = 7,
	Cancelled = 2,
	ChallengeInvalid = 19,
	CommunicationsFailure = 3,
	GameSessionRequestInvalid = 29,
	GameUnrecognized = 15,
	InvalidCredentials = 5,
	InvalidParameter = 17,
	InvalidPlayer = 8,
	InvitationsDisabled = 25,
	MatchNotConnected = 28,
	MatchRequestInvalid = 13,
	None = 0,
	NotAuthenticated = 6,
	NotSupported = 16,
	ParentalControlsBlocked = 10,
	PlayerPhotoFailure = 26,
	PlayerStatusExceedsMaximumLength = 11,
	PlayerStatusInvalid = 12,
	ScoreNotSet = 9,
	TurnBasedInvalidParticipant = 22,
	TurnBasedInvalidState = 24,
	TurnBasedInvalidTurn = 23,
	TurnBasedMatchDataTooLarge = 20,
	TurnBasedTooManySessions = 21,
	UbiquityContainerUnavailable = 27,
	Underage = 14,
	UnexpectedConnection = 18,
	Unknown = 1,
	UserDenied = 4,
}

New Type GameKit.GKErrorExtensions

public static class GKErrorExtensions {
	// methods
	public static Foundation.NSString GetDomain (GKError self);
}

New Type GameKit.GKGameSessionErrorCode

[Serializable]
public enum GKGameSessionErrorCode {
	BadContainer = 12,
	CloudDriveDisabled = 15,
	CloudQuotaExceeded = 13,
	ConnectionCancelledByUser = 5,
	ConnectionFailed = 6,
	InvalidSession = 16,
	NetworkFailure = 14,
	NotAuthenticated = 2,
	SendDataNoRecipients = 9,
	SendDataNotConnected = 8,
	SendDataNotReachable = 10,
	SendRateLimitReached = 11,
	SessionConflict = 3,
	SessionHasMaxConnectedPlayers = 7,
	SessionNotShared = 4,
	Unknown = 1,
}

New Type GameKit.GKGameSessionErrorCodeExtensions

public static class GKGameSessionErrorCodeExtensions {
	// methods
	public static Foundation.NSString GetDomain (GKGameSessionErrorCode self);
}

New Type GameKit.GKIdentityVerificationSignatureHandler

public sealed delegate GKIdentityVerificationSignatureHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public GKIdentityVerificationSignatureHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (Foundation.NSUrl publicKeyUrl, Foundation.NSData signature, Foundation.NSData salt, ulong timestamp, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (Foundation.NSUrl publicKeyUrl, Foundation.NSData signature, Foundation.NSData salt, ulong timestamp, Foundation.NSError error);
}

New Type GameKit.GKInviteRecipientResponse

[Serializable]
public enum GKInviteRecipientResponse {
	Accepted = 0,
	Declined = 1,
	Failed = 2,
	Incompatible = 3,
	NoAnswer = 5,
	UnableToConnect = 4,
}

New Type GameKit.GKInviteeResponse

[Serializable]
public enum GKInviteeResponse {
	Accepted = 0,
	Declined = 1,
	Failed = 2,
	Incompatible = 3,
	NoAnswer = 5,
	UnableToConnect = 4,
}

New Type GameKit.GKLeaderboard

public class GKLeaderboard : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKLeaderboard ();
	protected GKLeaderboard (Foundation.NSObjectFlag t);
	public GKLeaderboard (GKPlayer[] players);
	protected GKLeaderboard (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string GroupIdentifier { get; set; }
	public virtual string Identifier { get; set; }
	public virtual bool IsLoading { get; }
	public virtual GKScore LocalPlayerScore { get; }
	public virtual nint MaxRange { get; }
	public virtual GKLeaderboardPlayerScope PlayerScope { get; set; }
	public virtual Foundation.NSRange Range { get; set; }
	public virtual GKScore[] Scores { get; }
	public virtual GKLeaderboardTimeScope TimeScope { get; set; }
	public virtual string Title { get; }
	// methods
	public static void LoadLeaderboards (System.Action<GKLeaderboard[],Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task<GKLeaderboard[]> LoadLeaderboardsAsync ();
	public virtual void LoadScores (GKScoresLoadedHandler scoresLoadedHandler);
	public virtual System.Threading.Tasks.Task<GKScore[]> LoadScoresAsync ();
}

New Type GameKit.GKLeaderboardPlayerScope

[Serializable]
public enum GKLeaderboardPlayerScope {
	FriendsOnly = 1,
	Global = 0,
}

New Type GameKit.GKLeaderboardSet

public class GKLeaderboardSet : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKLeaderboardSet ();
	public GKLeaderboardSet (Foundation.NSCoder coder);
	protected GKLeaderboardSet (Foundation.NSObjectFlag t);
	protected GKLeaderboardSet (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string GroupIdentifier { get; set; }
	public virtual string Identifier { get; set; }
	public virtual string Title { get; set; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static void LoadLeaderboardSets (GKLeaderboardSetsHandler completionHandler);
	public static System.Threading.Tasks.Task<GKLeaderboardSet[]> LoadLeaderboardSetsAsync ();
	public virtual void LoadLeaderboards (GKLeaderboardsHandler completionHandler);
	public virtual System.Threading.Tasks.Task<GKLeaderboard[]> LoadLeaderboardsAsync ();
}

New Type GameKit.GKLeaderboardSetsHandler

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

New Type GameKit.GKLeaderboardTimeScope

[Serializable]
public enum GKLeaderboardTimeScope {
	AllTime = 2,
	Today = 0,
	Week = 1,
}

New Type GameKit.GKLeaderboardsHandler

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

New Type GameKit.GKLocalPlayer

public class GKLocalPlayer : GameKit.GKPlayer, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKLocalPlayer ();
	public GKLocalPlayer (Foundation.NSCoder coder);
	protected GKLocalPlayer (Foundation.NSObjectFlag t);
	protected GKLocalPlayer (IntPtr handle);
	// properties
	public virtual System.Action<Foundation.NSError> AuthenticateHandler { get; set; }
	public virtual bool Authenticated { get; }
	public static Foundation.NSString AuthenticationDidChangeNotificationName { get; }
	public override IntPtr ClassHandle { get; }
	public virtual bool IsUnderage { get; }
	public static GKLocalPlayer LocalPlayer { get; }
	// methods
	public virtual void GenerateIdentityVerificationSignature (GKIdentityVerificationSignatureHandler completionHandler);
	public virtual void LoadDefaultLeaderboardIdentifier (System.Action<System.String,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<string> LoadDefaultLeaderboardIdentifierAsync ();
	public virtual void LoadFriendPlayers (System.Action<GKPlayer[],Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<GKPlayer[]> LoadFriendPlayersAsync ();
	public virtual void LoadRecentPlayers (System.Action<GKPlayer[],Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<GKPlayer[]> LoadRecentPlayersAsync ();
	public virtual void RegisterListener (IGKLocalPlayerListener listener);
	public virtual void SetDefaultLeaderboardIdentifier (string leaderboardIdentifier, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task SetDefaultLeaderboardIdentifierAsync (string leaderboardIdentifier);
	public virtual void UnregisterAllListeners ();
	public virtual void UnregisterListener (IGKLocalPlayerListener listener);

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

New Type GameKit.GKLocalPlayerListener

public class GKLocalPlayerListener : Foundation.NSObject, Foundation.INSObjectProtocol, IGKLocalPlayerListener, IGKTurnBasedEventListener, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKLocalPlayerListener ();
	protected GKLocalPlayerListener (Foundation.NSObjectFlag t);
	protected GKLocalPlayerListener (IntPtr handle);
	// methods
	public virtual void MatchEnded (GKPlayer player, GKTurnBasedMatch match);
	public virtual void ReceivedExchangeCancellation (GKPlayer player, GKTurnBasedExchange exchange, GKTurnBasedMatch match);
	public virtual void ReceivedExchangeReplies (GKPlayer player, GKTurnBasedExchangeReply[] replies, GKTurnBasedExchange exchange, GKTurnBasedMatch match);
	public virtual void ReceivedExchangeRequest (GKPlayer player, GKTurnBasedExchange exchange, GKTurnBasedMatch match);
	public virtual void ReceivedTurnEvent (GKPlayer player, GKTurnBasedMatch match, bool becameActive);
	public virtual void WantsToQuitMatch (GKPlayer player, GKTurnBasedMatch match);
}

New Type GameKit.GKMatch

public class GKMatch {
	// constructors
	public GKMatch ();
}

New Type GameKit.GKMatchRequest

public class GKMatchRequest : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKMatchRequest ();
	protected GKMatchRequest (Foundation.NSObjectFlag t);
	protected GKMatchRequest (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual nint DefaultNumberOfPlayers { get; set; }
	public virtual string InviteMessage { get; set; }
	public virtual nint MaxPlayers { get; set; }
	public virtual nint MinPlayers { get; set; }
	public virtual uint PlayerAttributes { get; set; }
	public virtual nint PlayerGroup { get; set; }
	public virtual System.Action<GKPlayer,GameKit.GKInviteRecipientResponse> RecipientResponseHandler { get; set; }
	public virtual GKPlayer[] Recipients { get; set; }
	// methods
	public static nint GetMaxPlayersAllowed (GKMatchType matchType);
}

New Type GameKit.GKMatchSendDataMode

[Serializable]
public enum GKMatchSendDataMode {
	Reliable = 0,
	Unreliable = 1,
}

New Type GameKit.GKMatchType

[Serializable]
public enum GKMatchType {
	Hosted = 1,
	PeerToPeer = 0,
	TurnBased = 2,
}

New Type GameKit.GKPeerConnectionState

[Serializable]
public enum GKPeerConnectionState {
	Available = 0,
	Connected = 2,
	Connecting = 4,
	Disconnected = 3,
	Unavailable = 1,
}

New Type GameKit.GKPhotoSize

[Serializable]
public enum GKPhotoSize {
	Normal = 1,
	Small = 0,
}

New Type GameKit.GKPlayer

public class GKPlayer : GameKit.GKBasePlayer, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKPlayer ();
	public GKPlayer (Foundation.NSCoder coder);
	protected GKPlayer (Foundation.NSObjectFlag t);
	protected GKPlayer (IntPtr handle);
	// properties
	public virtual string Alias { get; }
	public override IntPtr ClassHandle { get; }
	public static Foundation.NSString DidChangeNotificationNameNotification { get; }
	public virtual string DisplayName { get; }
	public virtual string PlayerID { get; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static void LoadPlayersForIdentifiers (string[] identifiers, GKPlayersHandler completionHandler);
	public static System.Threading.Tasks.Task<GKPlayer[]> LoadPlayersForIdentifiersAsync (string[] identifiers);

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

New Type GameKit.GKPlayerConnectionState

[Serializable]
public enum GKPlayerConnectionState {
	Connected = 1,
	Disconnected = 2,
	Unknown = 0,
}

New Type GameKit.GKPlayersHandler

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

New Type GameKit.GKScore

public class GKScore : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKScore ();
	public GKScore (Foundation.NSCoder coder);
	protected GKScore (Foundation.NSObjectFlag t);
	protected GKScore (IntPtr handle);
	public GKScore (string categoryOrIdentifier);
	public GKScore (string identifier, GKPlayer player);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual ulong Context { get; set; }
	public virtual Foundation.NSDate Date { get; }
	public virtual string FormattedValue { get; }
	public virtual string LeaderboardIdentifier { get; set; }
	public virtual GKPlayer Player { get; }
	public virtual nint Rank { get; }
	public virtual bool ShouldSetDefaultLeaderboard { get; set; }
	public virtual long Value { get; set; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static void ReportScores (GKScore[] scores, System.Action<Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task ReportScoresAsync (GKScore[] scores);
}

New Type GameKit.GKScoresLoadedHandler

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

New Type GameKit.GKSendDataMode

[Serializable]
public enum GKSendDataMode {
	Reliable = 0,
	Unreliable = 1,
}

New Type GameKit.GKSessionMode

[Serializable]
public enum GKSessionMode {
	Client = 1,
	Peer = 2,
	Server = 0,
}

New Type GameKit.GKTransportType

[Serializable]
public enum GKTransportType {
	Reliable = 1,
	Unreliable = 0,
}

New Type GameKit.GKTurnBasedEventHandler

public class GKTurnBasedEventHandler : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKTurnBasedEventHandler ();
	protected GKTurnBasedEventHandler (Foundation.NSObjectFlag t);
	protected GKTurnBasedEventHandler (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public IGKTurnBasedEventHandlerDelegate Delegate { get; set; }
	public static GKTurnBasedEventHandler SharedTurnBasedEventHandler { get; }
	public virtual Foundation.NSObject WeakDelegate { get; set; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type GameKit.GKTurnBasedEventHandlerDelegate

public abstract class GKTurnBasedEventHandlerDelegate : Foundation.NSObject, Foundation.INSObjectProtocol, IGKTurnBasedEventHandlerDelegate, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKTurnBasedEventHandlerDelegate ();
	protected GKTurnBasedEventHandlerDelegate (Foundation.NSObjectFlag t);
	protected GKTurnBasedEventHandlerDelegate (IntPtr handle);
	// methods
	public virtual void HandleInviteFromGameCenter (Foundation.NSString[] playersToInvite);
	public virtual void HandleMatchEnded (GKTurnBasedMatch match);
	public virtual void HandleTurnEvent (GKTurnBasedMatch match, bool activated);
	public virtual void HandleTurnEventForMatch (GKTurnBasedMatch match);
}

New Type GameKit.GKTurnBasedEventHandlerDelegate_Extensions

public static class GKTurnBasedEventHandlerDelegate_Extensions {
	// methods
	public static void HandleMatchEnded (IGKTurnBasedEventHandlerDelegate This, GKTurnBasedMatch match);
	public static void HandleTurnEventForMatch (IGKTurnBasedEventHandlerDelegate This, GKTurnBasedMatch match);
}

New Type GameKit.GKTurnBasedEventListener

public class GKTurnBasedEventListener : Foundation.NSObject, Foundation.INSObjectProtocol, IGKTurnBasedEventListener, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKTurnBasedEventListener ();
	protected GKTurnBasedEventListener (Foundation.NSObjectFlag t);
	protected GKTurnBasedEventListener (IntPtr handle);
	// methods
	public virtual void MatchEnded (GKPlayer player, GKTurnBasedMatch match);
	public virtual void ReceivedExchangeCancellation (GKPlayer player, GKTurnBasedExchange exchange, GKTurnBasedMatch match);
	public virtual void ReceivedExchangeReplies (GKPlayer player, GKTurnBasedExchangeReply[] replies, GKTurnBasedExchange exchange, GKTurnBasedMatch match);
	public virtual void ReceivedExchangeRequest (GKPlayer player, GKTurnBasedExchange exchange, GKTurnBasedMatch match);
	public virtual void ReceivedTurnEvent (GKPlayer player, GKTurnBasedMatch match, bool becameActive);
	public virtual void WantsToQuitMatch (GKPlayer player, GKTurnBasedMatch match);
}

New Type GameKit.GKTurnBasedEventListener_Extensions

public static class GKTurnBasedEventListener_Extensions {
	// methods
	public static void MatchEnded (IGKTurnBasedEventListener This, GKPlayer player, GKTurnBasedMatch match);
	public static void ReceivedExchangeCancellation (IGKTurnBasedEventListener This, GKPlayer player, GKTurnBasedExchange exchange, GKTurnBasedMatch match);
	public static void ReceivedExchangeReplies (IGKTurnBasedEventListener This, GKPlayer player, GKTurnBasedExchangeReply[] replies, GKTurnBasedExchange exchange, GKTurnBasedMatch match);
	public static void ReceivedExchangeRequest (IGKTurnBasedEventListener This, GKPlayer player, GKTurnBasedExchange exchange, GKTurnBasedMatch match);
	public static void ReceivedTurnEvent (IGKTurnBasedEventListener This, GKPlayer player, GKTurnBasedMatch match, bool becameActive);
	public static void WantsToQuitMatch (IGKTurnBasedEventListener This, GKPlayer player, GKTurnBasedMatch match);
}

New Type GameKit.GKTurnBasedExchange

public class GKTurnBasedExchange : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKTurnBasedExchange ();
	protected GKTurnBasedExchange (Foundation.NSObjectFlag t);
	protected GKTurnBasedExchange (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSDate CompletionDate { get; }
	public virtual Foundation.NSData Data { get; }
	public virtual string ExchangeID { get; }
	public virtual string Message { get; }
	public virtual GKTurnBasedParticipant[] Recipients { get; }
	public virtual GKTurnBasedExchangeReply[] Replies { get; }
	public virtual Foundation.NSDate SendDate { get; }
	public virtual GKTurnBasedParticipant Sender { get; }
	public virtual GKTurnBasedExchangeStatus Status { get; }
	public virtual Foundation.NSDate TimeoutDate { get; }
	public static double TimeoutDefault { get; }
	public static double TimeoutNone { get; }
	// methods
	public virtual void Cancel (string localizableMessage, Foundation.NSObject[] arguments, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task CancelAsync (string localizableMessage, Foundation.NSObject[] arguments);
	public virtual void Reply (string localizableMessage, Foundation.NSObject[] arguments, Foundation.NSData data, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task ReplyAsync (string localizableMessage, Foundation.NSObject[] arguments, Foundation.NSData data);
	public override string ToString ();
}

New Type GameKit.GKTurnBasedExchangeReply

public class GKTurnBasedExchangeReply : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKTurnBasedExchangeReply ();
	protected GKTurnBasedExchangeReply (Foundation.NSObjectFlag t);
	protected GKTurnBasedExchangeReply (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSData Data { get; }
	public virtual string Message { get; }
	public virtual GKTurnBasedParticipant Recipient { get; }
	public virtual Foundation.NSDate ReplyDate { get; }
	// methods
	public override string ToString ();
}

New Type GameKit.GKTurnBasedExchangeStatus

[Serializable]
public enum GKTurnBasedExchangeStatus {
	Active = 1,
	Canceled = 4,
	Complete = 2,
	Resolved = 3,
	Unknown = 0,
}

New Type GameKit.GKTurnBasedMatch

public class GKTurnBasedMatch : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKTurnBasedMatch ();
	protected GKTurnBasedMatch (Foundation.NSObjectFlag t);
	protected GKTurnBasedMatch (IntPtr handle);
	// properties
	public virtual GKTurnBasedExchange[] ActiveExchanges { get; }
	public override IntPtr ClassHandle { get; }
	public virtual GKTurnBasedExchange[] CompletedExchanges { get; }
	public virtual Foundation.NSDate CreationDate { get; }
	public virtual GKTurnBasedParticipant CurrentParticipant { get; }
	public static double DefaultTimeout { get; }
	public virtual uint ExchangeMaxInitiatedExchangesPerPlayer { get; }
	public virtual GKTurnBasedExchange[] Exchanges { get; }
	public virtual uint ExhangeDataMaximumSize { get; }
	public virtual Foundation.NSData MatchData { get; }
	public virtual nint MatchDataMaximumSize { get; }
	public virtual string MatchID { get; }
	public virtual string Message { get; set; }
	public static double NoTimeout { get; }
	public virtual GKTurnBasedParticipant[] Participants { get; }
	public virtual GKTurnBasedMatchStatus Status { get; }
	// methods
	public virtual void AcceptInvite (System.Action<GKTurnBasedMatch,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<GKTurnBasedMatch> AcceptInviteAsync ();
	public virtual void DeclineInvite (System.Action<GKTurnBasedMatch,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<GKTurnBasedMatch> DeclineInviteAsync ();
	public virtual void EndMatchInTurn (Foundation.NSData matchData, System.Action<Foundation.NSError> onCompletion);
	public virtual void EndMatchInTurn (Foundation.NSData matchData, GKScore[] scores, GKAchievement[] achievements, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task EndMatchInTurnAsync (Foundation.NSData matchData);
	public virtual System.Threading.Tasks.Task EndMatchInTurnAsync (Foundation.NSData matchData, GKScore[] scores, GKAchievement[] achievements);
	public virtual void EndTurn (GKTurnBasedParticipant[] nextParticipants, double timeoutSeconds, Foundation.NSData matchData, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task EndTurnAsync (GKTurnBasedParticipant[] nextParticipants, double timeoutSeconds, Foundation.NSData matchData);
	public virtual void EndTurnWithNextParticipant (GKTurnBasedParticipant nextParticipant, Foundation.NSData matchData, System.Action<Foundation.NSError> noCompletion);
	public virtual System.Threading.Tasks.Task EndTurnWithNextParticipantAsync (GKTurnBasedParticipant nextParticipant, Foundation.NSData matchData);
	public static void FindMatch (GKMatchRequest request, GKTurnBasedMatchRequest onCompletion);
	public static System.Threading.Tasks.Task<GKTurnBasedMatch> FindMatchAsync (GKMatchRequest request);
	public static void LoadMatch (string matchId, System.Action<GKTurnBasedMatch,Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task<GKTurnBasedMatch> LoadMatchAsync (string matchId);
	public virtual void LoadMatchData (GKTurnBasedMatchData onCompletion);
	public virtual System.Threading.Tasks.Task<Foundation.NSData> LoadMatchDataAsync ();
	public static void LoadMatches (GKTurnBasedMatchesRequest onCompletion);
	public static System.Threading.Tasks.Task<GKTurnBasedMatch[]> LoadMatchesAsync ();
	public virtual void ParticipantQuitInTurn (GKTurnBasedMatchOutcome matchOutcome, GKTurnBasedParticipant nextParticipant, Foundation.NSData matchData, System.Action<Foundation.NSError> onCompletion);
	public virtual void ParticipantQuitInTurn (GKTurnBasedMatchOutcome matchOutcome, GKTurnBasedParticipant[] nextParticipants, double timeoutSeconds, Foundation.NSData matchData, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task ParticipantQuitInTurnAsync (GKTurnBasedMatchOutcome matchOutcome, GKTurnBasedParticipant nextParticipant, Foundation.NSData matchData);
	public virtual System.Threading.Tasks.Task ParticipantQuitInTurnAsync (GKTurnBasedMatchOutcome matchOutcome, GKTurnBasedParticipant[] nextParticipants, double timeoutSeconds, Foundation.NSData matchData);
	public virtual void ParticipantQuitOutOfTurn (GKTurnBasedMatchOutcome matchOutcome, System.Action<Foundation.NSError> onCompletion);
	public virtual System.Threading.Tasks.Task ParticipantQuitOutOfTurnAsync (GKTurnBasedMatchOutcome matchOutcome);
	public virtual void Rematch (System.Action<GKTurnBasedMatch,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<GKTurnBasedMatch> RematchAsync ();
	public virtual void Remove (System.Action<Foundation.NSError> onCompletion);
	public virtual System.Threading.Tasks.Task RemoveAsync ();
	public virtual void SaveCurrentTurn (Foundation.NSData matchData, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task SaveCurrentTurnAsync (Foundation.NSData matchData);
	public virtual void SaveMergedMatchData (Foundation.NSData matchData, GKTurnBasedExchange[] exchanges, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task SaveMergedMatchDataAsync (Foundation.NSData matchData, GKTurnBasedExchange[] exchanges);
	public virtual void SendExchange (GKTurnBasedParticipant[] participants, Foundation.NSData data, string localizableMessage, Foundation.NSObject[] arguments, double timeout, System.Action<GKTurnBasedExchange,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<GKTurnBasedExchange> SendExchangeAsync (GKTurnBasedParticipant[] participants, Foundation.NSData data, string localizableMessage, Foundation.NSObject[] arguments, double timeout);
	public virtual void SendReminder (GKTurnBasedParticipant[] participants, string localizableMessage, Foundation.NSObject[] arguments, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task SendReminderAsync (GKTurnBasedParticipant[] participants, string localizableMessage, Foundation.NSObject[] arguments);
	public virtual void SetMessage (string localizableMessage, Foundation.NSObject[] arguments);
}

New Type GameKit.GKTurnBasedMatchData

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

New Type GameKit.GKTurnBasedMatchOutcome

[Serializable]
public enum GKTurnBasedMatchOutcome {
	CustomRange = 16711680,
	First = 6,
	Fourth = 9,
	Lost = 3,
	None = 0,
	Quit = 1,
	Second = 7,
	Third = 8,
	Tied = 4,
	TimeExpired = 5,
	Won = 2,
}

New Type GameKit.GKTurnBasedMatchRequest

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

New Type GameKit.GKTurnBasedMatchStatus

[Serializable]
public enum GKTurnBasedMatchStatus {
	Ended = 2,
	Matching = 3,
	Open = 1,
	Unknown = 0,
}

New Type GameKit.GKTurnBasedMatchesRequest

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

New Type GameKit.GKTurnBasedParticipant

public class GKTurnBasedParticipant : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKTurnBasedParticipant ();
	protected GKTurnBasedParticipant (Foundation.NSObjectFlag t);
	protected GKTurnBasedParticipant (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSDate LastTurnDate { get; }
	public virtual GKTurnBasedMatchOutcome MatchOutcome { get; set; }
	public virtual GKPlayer Player { get; }
	public virtual string PlayerID { get; }
	public virtual GKTurnBasedParticipantStatus Status { get; }
	public virtual Foundation.NSDate TimeoutDate { get; }
}

New Type GameKit.GKTurnBasedParticipantStatus

[Serializable]
public enum GKTurnBasedParticipantStatus {
	Active = 4,
	Declined = 2,
	Done = 5,
	Invited = 1,
	Matching = 3,
	Unknown = 0,
}

New Type GameKit.GKVoiceChat

public class GKVoiceChat {
	// constructors
	public GKVoiceChat ();
}

New Type GameKit.GKVoiceChatPlayerState

[Serializable]
public enum GKVoiceChatPlayerState {
	Connected = 0,
	Connecting = 4,
	Disconnected = 1,
	Silent = 3,
	Speaking = 2,
}

New Type GameKit.GKVoiceChatServiceError

[Serializable]
public enum GKVoiceChatServiceError {
	AudioUnavailable = 32005,
	ClientMissingRequiredMethods = 32007,
	Internal = 32000,
	InvalidCallID = 32004,
	InvalidParameter = 32016,
	MethodCurrentlyInvalid = 32012,
	NetworkConfiguration = 32013,
	NoRemotePackets = 32001,
	OutOfMemory = 32015,
	RemoteParticipantBusy = 32008,
	RemoteParticipantCancelled = 32009,
	RemoteParticipantDeclinedInvite = 32011,
	RemoteParticipantHangup = 32003,
	RemoteParticipantResponseInvalid = 32010,
	UnableToConnect = 32002,
	UninitializedClient = 32006,
	UnsupportedRemoteVersion = 32014,
}

New Type GameKit.GKVoiceChatServiceErrorExtensions

public static class GKVoiceChatServiceErrorExtensions {
	// methods
	public static Foundation.NSString GetDomain (GKVoiceChatServiceError self);
}

New Type GameKit.IGKLocalPlayerListener

public interface IGKLocalPlayerListener : IGKTurnBasedEventListener, ObjCRuntime.INativeObject, System.IDisposable {
}

New Type GameKit.IGKTurnBasedEventHandlerDelegate

public interface IGKTurnBasedEventHandlerDelegate : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual void HandleInviteFromGameCenter (Foundation.NSString[] playersToInvite);
	public virtual void HandleTurnEvent (GKTurnBasedMatch match, bool activated);
}

New Type GameKit.IGKTurnBasedEventListener

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

New Namespace OpenTK

New Type OpenTK.BezierCurve

[Serializable]
public struct BezierCurve {
	// constructors
	public BezierCurve (Vector2[] points);
	public BezierCurve (System.Collections.Generic.IEnumerable<Vector2> points);
	public BezierCurve (float parallel, Vector2[] points);
	public BezierCurve (float parallel, System.Collections.Generic.IEnumerable<Vector2> points);
	// fields
	public float Parallel;
	// properties
	public System.Collections.Generic.IList<Vector2> Points { get; }
	// methods
	public float CalculateLength (float precision);
	public static float CalculateLength (System.Collections.Generic.IList<Vector2> points, float precision);
	public static float CalculateLength (System.Collections.Generic.IList<Vector2> points, float precision, float parallel);
	public Vector2 CalculatePoint (float t);
	public static Vector2 CalculatePoint (System.Collections.Generic.IList<Vector2> points, float t);
	public static Vector2 CalculatePoint (System.Collections.Generic.IList<Vector2> points, float t, float parallel);
}

New Type OpenTK.BezierCurveCubic

[Serializable]
public struct BezierCurveCubic {
	// constructors
	public BezierCurveCubic (Vector2 startAnchor, Vector2 endAnchor, Vector2 firstControlPoint, Vector2 secondControlPoint);
	public BezierCurveCubic (float parallel, Vector2 startAnchor, Vector2 endAnchor, Vector2 firstControlPoint, Vector2 secondControlPoint);
	// fields
	public Vector2 EndAnchor;
	public Vector2 FirstControlPoint;
	public float Parallel;
	public Vector2 SecondControlPoint;
	public Vector2 StartAnchor;
	// methods
	public float CalculateLength (float precision);
	public Vector2 CalculatePoint (float t);
}

New Type OpenTK.BezierCurveQuadric

[Serializable]
public struct BezierCurveQuadric {
	// constructors
	public BezierCurveQuadric (Vector2 startAnchor, Vector2 endAnchor, Vector2 controlPoint);
	public BezierCurveQuadric (float parallel, Vector2 startAnchor, Vector2 endAnchor, Vector2 controlPoint);
	// fields
	public Vector2 ControlPoint;
	public Vector2 EndAnchor;
	public float Parallel;
	public Vector2 StartAnchor;
	// methods
	public float CalculateLength (float precision);
	public Vector2 CalculatePoint (float t);
}

New Type OpenTK.Box2

public struct Box2 {
	// constructors
	public Box2 (Vector2 topLeft, Vector2 bottomRight);
	public Box2 (float left, float top, float right, float bottom);
	// fields
	public float Bottom;
	public float Left;
	public float Right;
	public float Top;
	// properties
	public float Height { get; }
	public float Width { get; }
	// methods
	public static Box2 FromTLRB (float top, float left, float right, float bottom);
	public override string ToString ();
}

New Type OpenTK.Functions

public static class Functions {
	// fields
	public static double DTOR;
	public static float DTORF;
	public static double PI;
	public static float PIF;
	public static double RTOD;
	public static float RTODF;
	// methods
	public static long BinomialCoefficient (int n, int k);
	public static float DegreesToRadians (float degrees);
	public static long Factorial (int n);
	public static double InverseSqrtFast (double x);
	public static float InverseSqrtFast (float x);
	public static double NextPowerOfTwo (double n);
	public static int NextPowerOfTwo (int n);
	public static long NextPowerOfTwo (long n);
	public static float NextPowerOfTwo (float n);
	public static float RadiansToDegrees (float radians);
	public static void Swap (ref double a, ref double b);
	public static void Swap (ref float a, ref float b);
}

New Type OpenTK.Half

[Serializable]
public struct Half, System.IComparable<Half>, System.IEquatable<Half>, System.IFormattable, System.Runtime.Serialization.ISerializable {
	// constructors
	public Half (double d);
	public Half (float f);
	public Half (double d, bool throwOnError);
	public Half (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
	public Half (float f, bool throwOnError);
	// fields
	public static float Epsilon;
	public static float MaxValue;
	public static float MinNormalizedValue;
	public static float MinValue;
	public static int SizeInBytes;
	// properties
	public bool IsNaN { get; }
	public bool IsNegativeInfinity { get; }
	public bool IsPositiveInfinity { get; }
	public bool IsZero { get; }
	// methods
	public virtual int CompareTo (Half other);
	public virtual bool Equals (Half other);
	public void FromBinaryStream (System.IO.BinaryReader bin);
	public static Half FromBytes (byte[] value, int startIndex);
	public static byte[] GetBytes (Half h);
	public virtual void GetObjectData (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
	public static Half Parse (string s);
	public static Half Parse (string s, System.Globalization.NumberStyles style, System.IFormatProvider provider);
	public void ToBinaryStream (System.IO.BinaryWriter bin);
	public float ToSingle ();
	public override string ToString ();
	public virtual string ToString (string format, System.IFormatProvider formatProvider);
	public static bool TryParse (string s, out Half result);
	public static bool TryParse (string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out Half result);
	public static Half op_Explicit (double d);
	public static Half op_Explicit (float f);
	public static double op_Implicit (Half h);
	public static float op_Implicit (Half h);
}

New Type OpenTK.MathHelper

public static class MathHelper {
	// fields
	public static const float E;
	public static const float Log10E;
	public static const float Log2E;
	public static const float Pi;
	public static const float PiOver2;
	public static const float PiOver3;
	public static const float PiOver4;
	public static const float PiOver6;
	public static const float ThreePiOver2;
	public static const float TwoPi;
	// methods
	public static long BinomialCoefficient (int n, int k);
	public static double DegreesToRadians (double degrees);
	public static float DegreesToRadians (float degrees);
	public static long Factorial (int n);
	public static double InverseSqrtFast (double x);
	public static float InverseSqrtFast (float x);
	public static double NextPowerOfTwo (double n);
	public static int NextPowerOfTwo (int n);
	public static long NextPowerOfTwo (long n);
	public static float NextPowerOfTwo (float n);
	public static double RadiansToDegrees (double radians);
	public static float RadiansToDegrees (float radians);
	public static void Swap (ref double a, ref double b);
	public static void Swap (ref float a, ref float b);
}

New Type OpenTK.Matrix2

[Serializable]
public struct Matrix2, System.IEquatable<Matrix2> {
	// constructors
	public Matrix2 (ref Matrix2 matrix);
	public Matrix2 (float[] floatArray);
	public Matrix2 (float r0c0, float r0c1, float r1c0, float r1c1);
	// fields
	public static Matrix2 Identity;
	public float R0C0;
	public float R0C1;
	public float R1C0;
	public float R1C1;
	public static Matrix2 Zero;
	// properties
	public float Determinant { get; }
	public float Item { get; set; }
	public float Item { get; set; }
	// methods
	public void Add (ref Matrix2 matrix);
	public void Add (ref Matrix2 matrix, out Matrix2 result);
	public static void Add (ref Matrix2 left, ref Matrix2 right, out Matrix2 result);
	public virtual bool Equals (Matrix2 matrix);
	public bool Equals (ref Matrix2 matrix);
	public static bool Equals (ref Matrix2 left, ref Matrix2 right);
	public bool EqualsApprox (ref Matrix2 matrix, float tolerance);
	public static bool EqualsApprox (ref Matrix2 left, ref Matrix2 right, float tolerance);
	public override int GetHashCode ();
	public void Multiply (ref Matrix2 matrix);
	public void Multiply (float scalar);
	public void Multiply (ref Matrix2 matrix, out Matrix2 result);
	public void Multiply (float scalar, out Matrix2 result);
	public static void Multiply (ref Matrix2 left, ref Matrix2 right, out Matrix2 result);
	public static void Multiply (ref Matrix2 matrix, float scalar, out Matrix2 result);
	public void Rotate (float angle);
	public void Rotate (float angle, out Matrix2 result);
	public static void Rotate (ref Matrix2 matrix, float angle, out Matrix2 result);
	public static void RotateMatrix (float angle, out Matrix2 result);
	public void Subtract (ref Matrix2 matrix);
	public void Subtract (ref Matrix2 matrix, out Matrix2 result);
	public static void Subtract (ref Matrix2 left, ref Matrix2 right, out Matrix2 result);
	public override string ToString ();
	public void Transform (ref Vector2 vector);
	public static void Transform (ref Matrix2 matrix, ref Vector2 vector);
	public void Transform (ref Vector2 vector, out Vector2 result);
	public static void Transform (ref Matrix2 matrix, ref Vector2 vector, out Vector2 result);
	public void Transpose ();
	public void Transpose (out Matrix2 result);
	public static void Transpose (ref Matrix2 matrix, out Matrix2 result);
	public static IntPtr op_Explicit (Matrix2 matrix);
	public static float* op_Explicit (Matrix2 matrix);
	public static float[] op_Explicit (Matrix2 matrix);
}

New Type OpenTK.Matrix3

[Serializable]
public struct Matrix3, System.IEquatable<Matrix3> {
	// constructors
	public Matrix3 (ref Matrix3 matrix);
	public Matrix3 (Matrix4 matrix);
	public Matrix3 (Quaterniond quaternion);
	public Matrix3 (float[] floatArray);
	public Matrix3 (float r0c0, float r0c1, float r0c2, float r1c0, float r1c1, float r1c2, float r2c0, float r2c1, float r2c2);
	// fields
	public static Matrix3 Identity;
	public float R0C0;
	public float R0C1;
	public float R0C2;
	public float R1C0;
	public float R1C1;
	public float R1C2;
	public float R2C0;
	public float R2C1;
	public float R2C2;
	public static Matrix3 Zero;
	// properties
	public float Determinant { get; }
	public float Item { get; set; }
	public float Item { get; set; }
	// methods
	public void Add (ref Matrix3 matrix);
	public void Add (ref Matrix3 matrix, out Matrix3 result);
	public static void Add (ref Matrix3 left, ref Matrix3 right, out Matrix3 result);
	public virtual bool Equals (Matrix3 matrix);
	public bool Equals (ref Matrix3 matrix);
	public static bool Equals (ref Matrix3 left, ref Matrix3 right);
	public bool EqualsApprox (ref Matrix3 matrix, float tolerance);
	public static bool EqualsApprox (ref Matrix3 left, ref Matrix3 right, float tolerance);
	public override int GetHashCode ();
	public void Multiply (ref Matrix3 matrix);
	public void Multiply (float scalar);
	public void Multiply (ref Matrix3 matrix, out Matrix3 result);
	public void Multiply (float scalar, out Matrix3 result);
	public static void Multiply (ref Matrix3 left, ref Matrix3 right, out Matrix3 result);
	public static void Multiply (ref Matrix3 matrix, float scalar, out Matrix3 result);
	public void Rotate (float angle);
	public void Rotate (float angle, out Matrix3 result);
	public static void Rotate (ref Matrix3 matrix, float angle, out Matrix3 result);
	public static void RotateMatrix (float angle, out Matrix3 result);
	public void Subtract (ref Matrix3 matrix);
	public void Subtract (ref Matrix3 matrix, out Matrix3 result);
	public static void Subtract (ref Matrix3 left, ref Matrix3 right, out Matrix3 result);
	public Quaternion ToQuaternion ();
	public override string ToString ();
	public void Transform (ref Vector3 vector);
	public static void Transform (ref Matrix3 matrix, ref Vector3 vector);
	public void Transform (ref Vector3 vector, out Vector3 result);
	public static void Transform (ref Matrix3 matrix, ref Vector3 vector, out Vector3 result);
	public void Transpose ();
	public void Transpose (out Matrix3 result);
	public static void Transpose (ref Matrix3 matrix, out Matrix3 result);
	public static IntPtr op_Explicit (Matrix3 matrix);
	public static float* op_Explicit (Matrix3 matrix);
	public static float[] op_Explicit (Matrix3 matrix);
}

New Type OpenTK.Matrix4

[Serializable]
public struct Matrix4, System.IEquatable<Matrix4> {
	// constructors
	public Matrix4 (Vector4 row0, Vector4 row1, Vector4 row2, Vector4 row3);
	public Matrix4 (float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13, float m20, float m21, float m22, float m23, float m30, float m31, float m32, float m33);
	// fields
	public static Matrix4 Identity;
	public Vector4 Row0;
	public Vector4 Row1;
	public Vector4 Row2;
	public Vector4 Row3;
	// properties
	public Vector4 Column0 { get; }
	public Vector4 Column1 { get; }
	public Vector4 Column2 { get; }
	public Vector4 Column3 { get; }
	public float Determinant { get; }
	public float M11 { get; set; }
	public float M12 { get; set; }
	public float M13 { get; set; }
	public float M14 { get; set; }
	public float M21 { get; set; }
	public float M22 { get; set; }
	public float M23 { get; set; }
	public float M24 { get; set; }
	public float M31 { get; set; }
	public float M32 { get; set; }
	public float M33 { get; set; }
	public float M34 { get; set; }
	public float M41 { get; set; }
	public float M42 { get; set; }
	public float M43 { get; set; }
	public float M44 { get; set; }
	// methods
	public static Matrix4 CreateFromAxisAngle (Vector3 axis, float angle);
	public static void CreateFromAxisAngle (Vector3 axis, float angle, out Matrix4 result);
	public static Matrix4 CreateOrthographic (float width, float height, float zNear, float zFar);
	public static void CreateOrthographic (float width, float height, float zNear, float zFar, out Matrix4 result);
	public static Matrix4 CreateOrthographicOffCenter (float left, float right, float bottom, float top, float zNear, float zFar);
	public static void CreateOrthographicOffCenter (float left, float right, float bottom, float top, float zNear, float zFar, out Matrix4 result);
	public static Matrix4 CreatePerspectiveFieldOfView (float fovy, float aspect, float zNear, float zFar);
	public static void CreatePerspectiveFieldOfView (float fovy, float aspect, float zNear, float zFar, out Matrix4 result);
	public static Matrix4 CreatePerspectiveOffCenter (float left, float right, float bottom, float top, float zNear, float zFar);
	public static void CreatePerspectiveOffCenter (float left, float right, float bottom, float top, float zNear, float zFar, out Matrix4 result);
	public static Matrix4 CreateRotationX (float angle);
	public static void CreateRotationX (float angle, out Matrix4 result);
	public static Matrix4 CreateRotationY (float angle);
	public static void CreateRotationY (float angle, out Matrix4 result);
	public static Matrix4 CreateRotationZ (float angle);
	public static void CreateRotationZ (float angle, out Matrix4 result);
	public static Matrix4 CreateTranslation (Vector3 vector);
	public static void CreateTranslation (ref Vector3 vector, out Matrix4 result);
	public static Matrix4 CreateTranslation (float x, float y, float z);
	public static void CreateTranslation (float x, float y, float z, out Matrix4 result);
	public virtual bool Equals (Matrix4 other);
	public override bool Equals (object obj);

	[Obsolete ("Use CreatePerspectiveOffCenter instead.")]
	public static Matrix4 Frustum (float left, float right, float bottom, float top, float near, float far);
	public override int GetHashCode ();
	public void Invert ();
	public static Matrix4 Invert (Matrix4 mat);
	public void Invert (ref Matrix4 result);
	public static Matrix4 LookAt (Vector3 eye, Vector3 target, Vector3 up);
	public static Matrix4 LookAt (float eyeX, float eyeY, float eyeZ, float targetX, float targetY, float targetZ, float upX, float upY, float upZ);
	public static Matrix4 Mult (Matrix4 left, Matrix4 right);
	public static void Mult (ref Matrix4 left, ref Matrix4 right, out Matrix4 result);

	[Obsolete ("Use CreatePerspectiveFieldOfView instead.")]
	public static Matrix4 Perspective (float fovy, float aspect, float near, float far);
	public static Matrix4 Rotate (Quaternion q);

	[Obsolete ("Use CreateFromAxisAngle instead.")]
	public static Matrix4 Rotate (Vector3 axis, float angle);

	[Obsolete ("Use CreateRotationX instead.")]
	public static Matrix4 RotateX (float angle);

	[Obsolete ("Use CreateRotationY instead.")]
	public static Matrix4 RotateY (float angle);

	[Obsolete ("Use CreateRotationZ instead.")]
	public static Matrix4 RotateZ (float angle);
	public static Matrix4 Scale (Vector3 scale);
	public static Matrix4 Scale (float scale);
	public static Matrix4 Scale (float x, float y, float z);
	public override string ToString ();

	[Obsolete ("Use CreateTranslation instead.")]
	public static Matrix4 Translation (Vector3 trans);

	[Obsolete ("Use CreateTranslation instead.")]
	public static Matrix4 Translation (float x, float y, float z);
	public void Transpose ();
	public static Matrix4 Transpose (Matrix4 mat);
	public static void Transpose (ref Matrix4 mat, out Matrix4 result);
	public static bool op_Equality (Matrix4 left, Matrix4 right);
	public static bool op_Inequality (Matrix4 left, Matrix4 right);
	public static Matrix4 op_Multiply (Matrix4 left, Matrix4 right);
}

New Type OpenTK.Matrix4d

[Serializable]
public struct Matrix4d, System.IEquatable<Matrix4d> {
	// constructors
	public Matrix4d (Vector4d row0, Vector4d row1, Vector4d row2, Vector4d row3);
	public Matrix4d (double m00, double m01, double m02, double m03, double m10, double m11, double m12, double m13, double m20, double m21, double m22, double m23, double m30, double m31, double m32, double m33);
	// fields
	public static Matrix4d Identity;
	public Vector4d Row0;
	public Vector4d Row1;
	public Vector4d Row2;
	public Vector4d Row3;
	// properties
	public Vector4d Column0 { get; }
	public Vector4d Column1 { get; }
	public Vector4d Column2 { get; }
	public Vector4d Column3 { get; }
	public double Determinant { get; }
	public double M11 { get; set; }
	public double M12 { get; set; }
	public double M13 { get; set; }
	public double M14 { get; set; }
	public double M21 { get; set; }
	public double M22 { get; set; }
	public double M23 { get; set; }
	public double M24 { get; set; }
	public double M31 { get; set; }
	public double M32 { get; set; }
	public double M33 { get; set; }
	public double M34 { get; set; }
	public double M41 { get; set; }
	public double M42 { get; set; }
	public double M43 { get; set; }
	public double M44 { get; set; }
	// methods
	public static Matrix4d CreateFromAxisAngle (Vector3d axis, double angle);
	public static void CreateFromAxisAngle (Vector3d axis, double angle, out Matrix4d result);
	public static Matrix4d CreateOrthographic (double width, double height, double zNear, double zFar);
	public static void CreateOrthographic (double width, double height, double zNear, double zFar, out Matrix4d result);
	public static Matrix4d CreateOrthographicOffCenter (double left, double right, double bottom, double top, double zNear, double zFar);
	public static void CreateOrthographicOffCenter (double left, double right, double bottom, double top, double zNear, double zFar, out Matrix4d result);
	public static Matrix4d CreatePerspectiveFieldOfView (double fovy, double aspect, double zNear, double zFar);
	public static void CreatePerspectiveFieldOfView (double fovy, double aspect, double zNear, double zFar, out Matrix4d result);
	public static Matrix4d CreatePerspectiveOffCenter (double left, double right, double bottom, double top, double zNear, double zFar);
	public static void CreatePerspectiveOffCenter (double left, double right, double bottom, double top, double zNear, double zFar, out Matrix4d result);
	public static Matrix4d CreateRotationX (double angle);
	public static void CreateRotationX (double angle, out Matrix4d result);
	public static Matrix4d CreateRotationY (double angle);
	public static void CreateRotationY (double angle, out Matrix4d result);
	public static Matrix4d CreateRotationZ (double angle);
	public static void CreateRotationZ (double angle, out Matrix4d result);
	public static Matrix4d CreateTranslation (Vector3d vector);
	public static void CreateTranslation (ref Vector3d vector, out Matrix4d result);
	public static Matrix4d CreateTranslation (double x, double y, double z);
	public static void CreateTranslation (double x, double y, double z, out Matrix4d result);
	public virtual bool Equals (Matrix4d other);
	public override bool Equals (object obj);
	public static Matrix4d Frustum (double left, double right, double bottom, double top, double near, double far);
	public override int GetHashCode ();
	public void Invert ();
	public static Matrix4d Invert (Matrix4d mat);
	public void Invert (ref Matrix4d result);
	public static Matrix4d LookAt (Vector3d eye, Vector3d target, Vector3d up);
	public static Matrix4d LookAt (double eyeX, double eyeY, double eyeZ, double targetX, double targetY, double targetZ, double upX, double upY, double upZ);
	public static Matrix4d Mult (Matrix4d left, Matrix4d right);
	public static void Mult (ref Matrix4d left, ref Matrix4d right, out Matrix4d result);
	public static Matrix4d Perspective (double fovy, double aspect, double near, double far);
	public static Matrix4d Rotate (Quaterniond q);
	public static Matrix4d Rotate (Vector3d axis, double angle);
	public static Matrix4d RotateX (double angle);
	public static Matrix4d RotateY (double angle);
	public static Matrix4d RotateZ (double angle);
	public static Matrix4d Scale (Vector3d scale);
	public static Matrix4d Scale (double scale);
	public static Matrix4d Scale (double x, double y, double z);
	public override string ToString ();

	[Obsolete ("Use CreateTranslation instead.")]
	public static Matrix4d Translation (Vector3d trans);

	[Obsolete ("Use CreateTranslation instead.")]
	public static Matrix4d Translation (double x, double y, double z);
	public void Transpose ();
	public static Matrix4d Transpose (Matrix4d mat);
	public static void Transpose (ref Matrix4d mat, out Matrix4d result);
	public static bool op_Equality (Matrix4d left, Matrix4d right);
	public static bool op_Inequality (Matrix4d left, Matrix4d right);
	public static Matrix4d op_Multiply (Matrix4d left, Matrix4d right);
}

New Type OpenTK.Quaternion

[Serializable]
public struct Quaternion, System.IEquatable<Quaternion> {
	// constructors
	public Quaternion (ref Matrix3 matrix);
	public Quaternion (Vector3 v, float w);
	public Quaternion (float x, float y, float z, float w);
	// fields
	public static Quaternion Identity;
	// properties
	public float Length { get; }
	public float LengthSquared { get; }
	public float W { get; set; }
	public float X { get; set; }

	[Obsolete ("Use Xyz property instead.")]
	public Vector3 XYZ { get; set; }
	public Vector3 Xyz { get; set; }
	public float Y { get; set; }
	public float Z { get; set; }
	// methods
	public static Quaternion Add (Quaternion left, Quaternion right);
	public static void Add (ref Quaternion left, ref Quaternion right, out Quaternion result);
	public void Conjugate ();
	public static Quaternion Conjugate (Quaternion q);
	public static void Conjugate (ref Quaternion q, out Quaternion result);
	public virtual bool Equals (Quaternion other);
	public override bool Equals (object other);
	public static Quaternion FromAxisAngle (Vector3 axis, float angle);
	public override int GetHashCode ();
	public static Quaternion Invert (Quaternion q);
	public static void Invert (ref Quaternion q, out Quaternion result);

	[Obsolete ("Use Multiply instead.")]
	public static Quaternion Mult (Quaternion left, Quaternion right);

	[Obsolete ("Use Multiply instead.")]
	public static void Mult (ref Quaternion left, ref Quaternion right, out Quaternion result);
	public static Quaternion Multiply (Quaternion left, Quaternion right);
	public static Quaternion Multiply (Quaternion quaternion, float scale);
	public static void Multiply (ref Quaternion left, ref Quaternion right, out Quaternion result);

	[Obsolete ("Use the overload without the ref float scale")]
	public static void Multiply (ref Quaternion quaternion, ref float scale, out Quaternion result);
	public static void Multiply (ref Quaternion quaternion, float scale, out Quaternion result);
	public void Normalize ();
	public static Quaternion Normalize (Quaternion q);
	public static void Normalize (ref Quaternion q, out Quaternion result);
	public static Quaternion Slerp (Quaternion q1, Quaternion q2, float blend);
	public static Quaternion Sub (Quaternion left, Quaternion right);
	public static void Sub (ref Quaternion left, ref Quaternion right, out Quaternion result);
	public Vector4 ToAxisAngle ();
	public void ToAxisAngle (out Vector3 axis, out float angle);
	public override string ToString ();
	public static Quaternion op_Addition (Quaternion left, Quaternion right);
	public static bool op_Equality (Quaternion left, Quaternion right);
	public static bool op_Inequality (Quaternion left, Quaternion right);
	public static Quaternion op_Multiply (Quaternion left, Quaternion right);
	public static Quaternion op_Multiply (Quaternion quaternion, float scale);
	public static Quaternion op_Multiply (float scale, Quaternion quaternion);
	public static Quaternion op_Subtraction (Quaternion left, Quaternion right);
}

New Type OpenTK.Quaterniond

[Serializable]
public struct Quaterniond, System.IEquatable<Quaterniond> {
	// constructors
	public Quaterniond (Vector3d v, double w);
	public Quaterniond (double x, double y, double z, double w);
	// fields
	public static Quaterniond Identity;
	// properties
	public double Length { get; }
	public double LengthSquared { get; }
	public double W { get; set; }
	public double X { get; set; }

	[Obsolete ("Use Xyz property instead.")]
	public Vector3d XYZ { get; set; }
	public Vector3d Xyz { get; set; }
	public double Y { get; set; }
	public double Z { get; set; }
	// methods
	public static Quaterniond Add (Quaterniond left, Quaterniond right);
	public static void Add (ref Quaterniond left, ref Quaterniond right, out Quaterniond result);
	public void Conjugate ();
	public static Quaterniond Conjugate (Quaterniond q);
	public static void Conjugate (ref Quaterniond q, out Quaterniond result);
	public virtual bool Equals (Quaterniond other);
	public override bool Equals (object other);
	public static Quaterniond FromAxisAngle (Vector3d axis, double angle);
	public override int GetHashCode ();
	public static Quaterniond Invert (Quaterniond q);
	public static void Invert (ref Quaterniond q, out Quaterniond result);

	[Obsolete ("Use Multiply instead.")]
	public static Quaterniond Mult (Quaterniond left, Quaterniond right);

	[Obsolete ("Use Multiply instead.")]
	public static void Mult (ref Quaterniond left, ref Quaterniond right, out Quaterniond result);
	public static Quaterniond Multiply (Quaterniond left, Quaterniond right);
	public static Quaterniond Multiply (Quaterniond quaternion, double scale);
	public static void Multiply (ref Quaterniond left, ref Quaterniond right, out Quaterniond result);
	public static void Multiply (ref Quaterniond quaternion, ref double scale, out Quaterniond result);
	public static void Multiply (ref Quaterniond quaternion, double scale, out Quaterniond result);
	public void Normalize ();
	public static Quaterniond Normalize (Quaterniond q);
	public static void Normalize (ref Quaterniond q, out Quaterniond result);
	public static Quaterniond Slerp (Quaterniond q1, Quaterniond q2, double blend);
	public static Quaterniond Sub (Quaterniond left, Quaterniond right);
	public static void Sub (ref Quaterniond left, ref Quaterniond right, out Quaterniond result);
	public Vector4d ToAxisAngle ();
	public void ToAxisAngle (out Vector3d axis, out double angle);
	public override string ToString ();
	public static Quaterniond op_Addition (Quaterniond left, Quaterniond right);
	public static bool op_Equality (Quaterniond left, Quaterniond right);
	public static bool op_Inequality (Quaterniond left, Quaterniond right);
	public static Quaterniond op_Multiply (Quaterniond left, Quaterniond right);
	public static Quaterniond op_Multiply (Quaterniond quaternion, double scale);
	public static Quaterniond op_Multiply (double scale, Quaterniond quaternion);
	public static Quaterniond op_Subtraction (Quaterniond left, Quaterniond right);
}

New Type OpenTK.Vector2

[Serializable]
public struct Vector2, System.IEquatable<Vector2> {
	// constructors

	[Obsolete]
	public Vector2 (Vector2 v);

	[Obsolete]
	public Vector2 (Vector3 v);

	[Obsolete]
	public Vector2 (Vector4 v);
	public Vector2 (float value);
	public Vector2 (float x, float y);
	// fields
	public static Vector2 One;
	public static int SizeInBytes;
	public static Vector2 UnitX;
	public static Vector2 UnitY;
	public float X;
	public float Y;
	public static Vector2 Zero;
	// properties
	public float Length { get; }
	public float LengthFast { get; }
	public float LengthSquared { get; }
	public Vector2 PerpendicularLeft { get; }
	public Vector2 PerpendicularRight { get; }
	// methods

	[Obsolete ("Use static Add() method instead.")]
	public void Add (Vector2 right);

	[Obsolete ("Use static Add() method instead.")]
	public void Add (ref Vector2 right);
	public static Vector2 Add (Vector2 a, Vector2 b);
	public static void Add (ref Vector2 a, ref Vector2 b, out Vector2 result);
	public static Vector2 BaryCentric (Vector2 a, Vector2 b, Vector2 c, float u, float v);
	public static void BaryCentric (ref Vector2 a, ref Vector2 b, ref Vector2 c, float u, float v, out Vector2 result);
	public static Vector2 Clamp (Vector2 vec, Vector2 min, Vector2 max);
	public static void Clamp (ref Vector2 vec, ref Vector2 min, ref Vector2 max, out Vector2 result);
	public static Vector2 ComponentMax (Vector2 a, Vector2 b);
	public static void ComponentMax (ref Vector2 a, ref Vector2 b, out Vector2 result);
	public static Vector2 ComponentMin (Vector2 a, Vector2 b);
	public static void ComponentMin (ref Vector2 a, ref Vector2 b, out Vector2 result);

	[Obsolete ("Use static Divide() method instead.")]
	public void Div (float f);

	[Obsolete ("Use static Divide() method instead.")]
	public static Vector2 Div (Vector2 a, float f);

	[Obsolete ("Use static Divide() method instead.")]
	public static void Div (ref Vector2 a, float f, out Vector2 result);
	public static Vector2 Divide (Vector2 vector, Vector2 scale);
	public static Vector2 Divide (Vector2 vector, float scale);
	public static void Divide (ref Vector2 vector, ref Vector2 scale, out Vector2 result);
	public static void Divide (ref Vector2 vector, float scale, out Vector2 result);
	public static float Dot (Vector2 left, Vector2 right);
	public static void Dot (ref Vector2 left, ref Vector2 right, out float result);
	public virtual bool Equals (Vector2 other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static Vector2 Lerp (Vector2 a, Vector2 b, float blend);
	public static void Lerp (ref Vector2 a, ref Vector2 b, float blend, out Vector2 result);
	public static Vector2 Max (Vector2 left, Vector2 right);
	public static Vector2 Min (Vector2 left, Vector2 right);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Mult (float f);

	[Obsolete ("Use static Multiply() method instead.")]
	public static Vector2 Mult (Vector2 a, float f);

	[Obsolete ("Use static Multiply() method instead.")]
	public static void Mult (ref Vector2 a, float f, out Vector2 result);
	public static Vector2 Multiply (Vector2 vector, Vector2 scale);
	public static Vector2 Multiply (Vector2 vector, float scale);
	public static void Multiply (ref Vector2 vector, ref Vector2 scale, out Vector2 result);
	public static void Multiply (ref Vector2 vector, float scale, out Vector2 result);
	public void Normalize ();
	public static Vector2 Normalize (Vector2 vec);
	public static void Normalize (ref Vector2 vec, out Vector2 result);
	public void NormalizeFast ();
	public static Vector2 NormalizeFast (Vector2 vec);
	public static void NormalizeFast (ref Vector2 vec, out Vector2 result);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (Vector2 scale);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (ref Vector2 scale);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (float sx, float sy);

	[Obsolete ("Use static Subtract() method instead.")]
	public void Sub (Vector2 right);

	[Obsolete ("Use static Subtract() method instead.")]
	public void Sub (ref Vector2 right);

	[Obsolete ("Use static Subtract() method instead.")]
	public static Vector2 Sub (Vector2 a, Vector2 b);

	[Obsolete ("Use static Subtract() method instead.")]
	public static void Sub (ref Vector2 a, ref Vector2 b, out Vector2 result);
	public static Vector2 Subtract (Vector2 a, Vector2 b);
	public static void Subtract (ref Vector2 a, ref Vector2 b, out Vector2 result);
	public override string ToString ();
	public static Vector2 Transform (Vector2 vec, Quaternion quat);
	public static void Transform (ref Vector2 vec, ref Quaternion quat, out Vector2 result);
	public static Vector2 op_Addition (Vector2 left, Vector2 right);
	public static Vector2 op_Division (Vector2 vec, float scale);
	public static bool op_Equality (Vector2 left, Vector2 right);
	public static bool op_Inequality (Vector2 left, Vector2 right);
	public static Vector2 op_Multiply (Vector2 vec, float scale);
	public static Vector2 op_Multiply (float scale, Vector2 vec);
	public static Vector2 op_Subtraction (Vector2 left, Vector2 right);
	public static Vector2 op_UnaryNegation (Vector2 vec);
}

New Type OpenTK.Vector2d

[Serializable]
public struct Vector2d, System.IEquatable<Vector2d> {
	// constructors
	public Vector2d (double value);
	public Vector2d (double x, double y);
	// fields
	public static Vector2d One;
	public static int SizeInBytes;
	public static Vector2d UnitX;
	public static Vector2d UnitY;
	public double X;
	public double Y;
	public static Vector2d Zero;
	// properties
	public double Length { get; }
	public double LengthSquared { get; }
	public Vector2d PerpendicularLeft { get; }
	public Vector2d PerpendicularRight { get; }
	// methods

	[Obsolete ("Use static Add() method instead.")]
	public void Add (Vector2d right);

	[Obsolete ("Use static Add() method instead.")]
	public void Add (ref Vector2d right);
	public static Vector2d Add (Vector2d a, Vector2d b);
	public static void Add (ref Vector2d a, ref Vector2d b, out Vector2d result);
	public static Vector2d BaryCentric (Vector2d a, Vector2d b, Vector2d c, double u, double v);
	public static void BaryCentric (ref Vector2d a, ref Vector2d b, ref Vector2d c, double u, double v, out Vector2d result);
	public static Vector2d Clamp (Vector2d vec, Vector2d min, Vector2d max);
	public static void Clamp (ref Vector2d vec, ref Vector2d min, ref Vector2d max, out Vector2d result);

	[Obsolete ("Use static Divide() method instead.")]
	public void Div (double f);

	[Obsolete ("Use static Divide() method instead.")]
	public static Vector2d Div (Vector2d a, double d);

	[Obsolete ("Use static Divide() method instead.")]
	public static void Div (ref Vector2d a, double d, out Vector2d result);
	public static Vector2d Divide (Vector2d vector, Vector2d scale);
	public static Vector2d Divide (Vector2d vector, double scale);
	public static void Divide (ref Vector2d vector, ref Vector2d scale, out Vector2d result);
	public static void Divide (ref Vector2d vector, double scale, out Vector2d result);
	public static double Dot (Vector2d left, Vector2d right);
	public static void Dot (ref Vector2d left, ref Vector2d right, out double result);
	public virtual bool Equals (Vector2d other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static Vector2d Lerp (Vector2d a, Vector2d b, double blend);
	public static void Lerp (ref Vector2d a, ref Vector2d b, double blend, out Vector2d result);
	public static Vector2d Max (Vector2d a, Vector2d b);
	public static void Max (ref Vector2d a, ref Vector2d b, out Vector2d result);
	public static Vector2d Min (Vector2d a, Vector2d b);
	public static void Min (ref Vector2d a, ref Vector2d b, out Vector2d result);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Mult (double f);

	[Obsolete ("Use static Multiply() method instead.")]
	public static Vector2d Mult (Vector2d a, double d);

	[Obsolete ("Use static Multiply() method instead.")]
	public static void Mult (ref Vector2d a, double d, out Vector2d result);
	public static Vector2d Multiply (Vector2d vector, Vector2d scale);
	public static Vector2d Multiply (Vector2d vector, double scale);
	public static void Multiply (ref Vector2d vector, ref Vector2d scale, out Vector2d result);
	public static void Multiply (ref Vector2d vector, double scale, out Vector2d result);
	public void Normalize ();
	public static Vector2d Normalize (Vector2d vec);
	public static void Normalize (ref Vector2d vec, out Vector2d result);
	public static Vector2d NormalizeFast (Vector2d vec);
	public static void NormalizeFast (ref Vector2d vec, out Vector2d result);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (Vector2d scale);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (ref Vector2d scale);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (double sx, double sy);

	[Obsolete ("Use static Subtract() method instead.")]
	public void Sub (Vector2d right);

	[Obsolete ("Use static Subtract() method instead.")]
	public void Sub (ref Vector2d right);

	[Obsolete ("Use static Subtract() method instead.")]
	public static Vector2d Sub (Vector2d a, Vector2d b);

	[Obsolete ("Use static Subtract() method instead.")]
	public static void Sub (ref Vector2d a, ref Vector2d b, out Vector2d result);
	public static Vector2d Subtract (Vector2d a, Vector2d b);
	public static void Subtract (ref Vector2d a, ref Vector2d b, out Vector2d result);
	public override string ToString ();
	public static Vector2d Transform (Vector2d vec, Quaterniond quat);
	public static void Transform (ref Vector2d vec, ref Quaterniond quat, out Vector2d result);
	public static Vector2d op_Addition (Vector2d left, Vector2d right);
	public static Vector2d op_Division (Vector2d vec, double f);
	public static bool op_Equality (Vector2d left, Vector2d right);
	public static Vector2d op_Explicit (Vector2 v2);
	public static Vector2 op_Explicit (Vector2d v2d);
	public static bool op_Inequality (Vector2d left, Vector2d right);
	public static Vector2d op_Multiply (Vector2d vec, double f);
	public static Vector2d op_Multiply (double f, Vector2d vec);
	public static Vector2d op_Subtraction (Vector2d left, Vector2d right);
	public static Vector2d op_UnaryNegation (Vector2d vec);
}

New Type OpenTK.Vector2h

[Serializable]
public struct Vector2h, System.IEquatable<Vector2h>, System.Runtime.Serialization.ISerializable {
	// constructors
	public Vector2h (Half value);
	public Vector2h (Vector2 v);
	public Vector2h (ref Vector2 v);
	public Vector2h (Vector2d v);
	public Vector2h (ref Vector2d v);
	public Vector2h (float value);
	public Vector2h (Half x, Half y);
	public Vector2h (ref Vector2 v, bool throwOnError);
	public Vector2h (Vector2 v, bool throwOnError);
	public Vector2h (ref Vector2d v, bool throwOnError);
	public Vector2h (Vector2d v, bool throwOnError);
	public Vector2h (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
	public Vector2h (float x, float y);
	public Vector2h (float x, float y, bool throwOnError);
	// fields
	public static int SizeInBytes;
	public Half X;
	public Half Y;
	// methods
	public virtual bool Equals (Vector2h other);
	public void FromBinaryStream (System.IO.BinaryReader bin);
	public static Vector2h FromBytes (byte[] value, int startIndex);
	public static byte[] GetBytes (Vector2h h);
	public virtual void GetObjectData (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
	public void ToBinaryStream (System.IO.BinaryWriter bin);
	public override string ToString ();
	public Vector2 ToVector2 ();
	public Vector2d ToVector2d ();
	public static Vector2h op_Explicit (Vector2 v);
	public static Vector2h op_Explicit (Vector2d v);
	public static Vector2 op_Explicit (Vector2h h);
	public static Vector2d op_Explicit (Vector2h h);
}

New Type OpenTK.Vector2i

[Serializable]
public struct Vector2i, System.IEquatable<Vector2i> {
	// constructors
	public Vector2i (int x, int y);
	// fields
	public static Vector2i One;
	public static int SizeInBytes;
	public static Vector2i UnitX;
	public static Vector2i UnitY;
	public int X;
	public int Y;
	public static Vector2i Zero;
	// methods
	public static Vector2i Add (Vector2i a, Vector2i b);
	public static void Add (ref Vector2i a, ref Vector2i b, out Vector2i result);
	public static Vector2i Clamp (Vector2i vec, Vector2i min, Vector2i max);
	public static void Clamp (ref Vector2i vec, ref Vector2i min, ref Vector2i max, out Vector2i result);
	public virtual bool Equals (Vector2i other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static Vector2i Subtract (Vector2i a, Vector2i b);
	public static void Subtract (ref Vector2i a, ref Vector2i b, out Vector2i result);
	public override string ToString ();
	public static Vector2i op_Addition (Vector2i left, Vector2i right);
	public static bool op_Equality (Vector2i left, Vector2i right);
	public static bool op_Inequality (Vector2i left, Vector2i right);
	public static Vector2i op_Subtraction (Vector2i left, Vector2i right);
	public static Vector2i op_UnaryNegation (Vector2i vec);
}

New Type OpenTK.Vector3

[Serializable]
public struct Vector3, System.IEquatable<Vector3> {
	// constructors
	public Vector3 (Vector2 v);
	public Vector3 (Vector3 v);
	public Vector3 (Vector4 v);
	public Vector3 (float value);
	public Vector3 (float x, float y, float z);
	// fields
	public static Vector3 One;
	public static int SizeInBytes;
	public static Vector3 UnitX;
	public static Vector3 UnitY;
	public static Vector3 UnitZ;
	public float X;
	public float Y;
	public float Z;
	public static Vector3 Zero;
	// properties
	public float Length { get; }
	public float LengthFast { get; }
	public float LengthSquared { get; }
	public Vector2 Xy { get; set; }
	// methods

	[Obsolete ("Use static Add() method instead.")]
	public void Add (Vector3 right);

	[Obsolete ("Use static Add() method instead.")]
	public void Add (ref Vector3 right);
	public static Vector3 Add (Vector3 a, Vector3 b);
	public static void Add (ref Vector3 a, ref Vector3 b, out Vector3 result);
	public static Vector3 BaryCentric (Vector3 a, Vector3 b, Vector3 c, float u, float v);
	public static void BaryCentric (ref Vector3 a, ref Vector3 b, ref Vector3 c, float u, float v, out Vector3 result);
	public static float CalculateAngle (Vector3 first, Vector3 second);
	public static void CalculateAngle (ref Vector3 first, ref Vector3 second, out float result);
	public static Vector3 Clamp (Vector3 vec, Vector3 min, Vector3 max);
	public static void Clamp (ref Vector3 vec, ref Vector3 min, ref Vector3 max, out Vector3 result);
	public static Vector3 ComponentMax (Vector3 a, Vector3 b);
	public static void ComponentMax (ref Vector3 a, ref Vector3 b, out Vector3 result);
	public static Vector3 ComponentMin (Vector3 a, Vector3 b);
	public static void ComponentMin (ref Vector3 a, ref Vector3 b, out Vector3 result);
	public static Vector3 Cross (Vector3 left, Vector3 right);
	public static void Cross (ref Vector3 left, ref Vector3 right, out Vector3 result);

	[Obsolete ("Use static Divide() method instead.")]
	public void Div (float f);

	[Obsolete ("Use static Divide() method instead.")]
	public static Vector3 Div (Vector3 a, float f);

	[Obsolete ("Use static Divide() method instead.")]
	public static void Div (ref Vector3 a, float f, out Vector3 result);
	public static Vector3 Divide (Vector3 vector, Vector3 scale);
	public static Vector3 Divide (Vector3 vector, float scale);
	public static void Divide (ref Vector3 vector, ref Vector3 scale, out Vector3 result);
	public static void Divide (ref Vector3 vector, float scale, out Vector3 result);
	public static float Dot (Vector3 left, Vector3 right);
	public static void Dot (ref Vector3 left, ref Vector3 right, out float result);
	public virtual bool Equals (Vector3 other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static Vector3 Lerp (Vector3 a, Vector3 b, float blend);
	public static void Lerp (ref Vector3 a, ref Vector3 b, float blend, out Vector3 result);
	public static Vector3 Max (Vector3 left, Vector3 right);
	public static Vector3 Min (Vector3 left, Vector3 right);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Mult (float f);

	[Obsolete ("Use static Multiply() method instead.")]
	public static Vector3 Mult (Vector3 a, float f);

	[Obsolete ("Use static Multiply() method instead.")]
	public static void Mult (ref Vector3 a, float f, out Vector3 result);
	public static Vector3 Multiply (Vector3 vector, Vector3 scale);
	public static Vector3 Multiply (Vector3 vector, float scale);
	public static void Multiply (ref Vector3 vector, ref Vector3 scale, out Vector3 result);
	public static void Multiply (ref Vector3 vector, float scale, out Vector3 result);
	public void Normalize ();
	public static Vector3 Normalize (Vector3 vec);
	public static void Normalize (ref Vector3 vec, out Vector3 result);
	public void NormalizeFast ();
	public static Vector3 NormalizeFast (Vector3 vec);
	public static void NormalizeFast (ref Vector3 vec, out Vector3 result);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (Vector3 scale);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (ref Vector3 scale);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (float sx, float sy, float sz);

	[Obsolete ("Use static Subtract() method instead.")]
	public void Sub (Vector3 right);

	[Obsolete ("Use static Subtract() method instead.")]
	public void Sub (ref Vector3 right);

	[Obsolete ("Use static Subtract() method instead.")]
	public static Vector3 Sub (Vector3 a, Vector3 b);

	[Obsolete ("Use static Subtract() method instead.")]
	public static void Sub (ref Vector3 a, ref Vector3 b, out Vector3 result);
	public static Vector3 Subtract (Vector3 a, Vector3 b);
	public static void Subtract (ref Vector3 a, ref Vector3 b, out Vector3 result);
	public override string ToString ();
	public static Vector3 Transform (Vector3 vec, Matrix4 mat);
	public static Vector3 Transform (Vector3 vec, Quaternion quat);
	public static void Transform (ref Vector3 vec, ref Matrix4 mat, out Vector3 result);
	public static void Transform (ref Vector3 vec, ref Matrix4 mat, out Vector4 result);
	public static void Transform (ref Vector3 vec, ref Quaternion quat, out Vector3 result);
	public static Vector3 TransformNormal (Vector3 norm, Matrix4 mat);
	public static void TransformNormal (ref Vector3 norm, ref Matrix4 mat, out Vector3 result);
	public static Vector3 TransformNormalInverse (Vector3 norm, Matrix4 invMat);
	public static void TransformNormalInverse (ref Vector3 norm, ref Matrix4 invMat, out Vector3 result);
	public static Vector3 TransformPerspective (Vector3 vec, Matrix4 mat);
	public static void TransformPerspective (ref Vector3 vec, ref Matrix4 mat, out Vector3 result);
	public static Vector3 TransformPosition (Vector3 pos, Matrix4 mat);
	public static void TransformPosition (ref Vector3 pos, ref Matrix4 mat, out Vector3 result);
	public static Vector3 TransformVector (Vector3 vec, Matrix4 mat);
	public static void TransformVector (ref Vector3 vec, ref Matrix4 mat, out Vector3 result);
	public static Vector3 op_Addition (Vector3 left, Vector3 right);
	public static Vector3 op_Division (Vector3 vec, float scale);
	public static bool op_Equality (Vector3 left, Vector3 right);
	public static bool op_Inequality (Vector3 left, Vector3 right);
	public static Vector3 op_Multiply (Vector3 vec, float scale);
	public static Vector3 op_Multiply (float scale, Vector3 vec);
	public static Vector3 op_Subtraction (Vector3 left, Vector3 right);
	public static Vector3 op_UnaryNegation (Vector3 vec);
}

New Type OpenTK.Vector3d

[Serializable]
public struct Vector3d, System.IEquatable<Vector3d> {
	// constructors
	public Vector3d (Vector2d v);
	public Vector3d (Vector3d v);
	public Vector3d (Vector4d v);
	public Vector3d (double value);
	public Vector3d (double x, double y, double z);
	// fields
	public static Vector3d One;
	public static int SizeInBytes;
	public static Vector3d UnitX;
	public static Vector3d UnitY;
	public static Vector3d UnitZ;
	public double X;
	public double Y;
	public double Z;
	public static Vector3d Zero;
	// properties
	public double Length { get; }
	public double LengthFast { get; }
	public double LengthSquared { get; }
	public Vector2d Xy { get; set; }
	// methods

	[Obsolete ("Use static Add() method instead.")]
	public void Add (Vector3d right);

	[Obsolete ("Use static Add() method instead.")]
	public void Add (ref Vector3d right);
	public static Vector3d Add (Vector3d a, Vector3d b);
	public static void Add (ref Vector3d a, ref Vector3d b, out Vector3d result);
	public static Vector3d BaryCentric (Vector3d a, Vector3d b, Vector3d c, double u, double v);
	public static void BaryCentric (ref Vector3d a, ref Vector3d b, ref Vector3d c, double u, double v, out Vector3d result);
	public static double CalculateAngle (Vector3d first, Vector3d second);
	public static void CalculateAngle (ref Vector3d first, ref Vector3d second, out double result);
	public static Vector3d Clamp (Vector3d vec, Vector3d min, Vector3d max);
	public static void Clamp (ref Vector3d vec, ref Vector3d min, ref Vector3d max, out Vector3d result);
	public static Vector3d ComponentMax (Vector3d a, Vector3d b);
	public static void ComponentMax (ref Vector3d a, ref Vector3d b, out Vector3d result);
	public static Vector3d ComponentMin (Vector3d a, Vector3d b);
	public static void ComponentMin (ref Vector3d a, ref Vector3d b, out Vector3d result);
	public static Vector3d Cross (Vector3d left, Vector3d right);
	public static void Cross (ref Vector3d left, ref Vector3d right, out Vector3d result);

	[Obsolete ("Use static Divide() method instead.")]
	public void Div (double f);

	[Obsolete ("Use static Divide() method instead.")]
	public static Vector3d Div (Vector3d a, double f);

	[Obsolete ("Use static Divide() method instead.")]
	public static void Div (ref Vector3d a, double f, out Vector3d result);
	public static Vector3d Divide (Vector3d vector, Vector3d scale);
	public static Vector3d Divide (Vector3d vector, double scale);
	public static void Divide (ref Vector3d vector, ref Vector3d scale, out Vector3d result);
	public static void Divide (ref Vector3d vector, double scale, out Vector3d result);
	public static double Dot (Vector3d left, Vector3d right);
	public static void Dot (ref Vector3d left, ref Vector3d right, out double result);
	public virtual bool Equals (Vector3d other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static Vector3d Lerp (Vector3d a, Vector3d b, double blend);
	public static void Lerp (ref Vector3d a, ref Vector3d b, double blend, out Vector3d result);
	public static Vector3d Max (Vector3d left, Vector3d right);
	public static Vector3d Min (Vector3d left, Vector3d right);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Mult (double f);

	[Obsolete ("Use static Multiply() method instead.")]
	public static Vector3d Mult (Vector3d a, double f);

	[Obsolete ("Use static Multiply() method instead.")]
	public static void Mult (ref Vector3d a, double f, out Vector3d result);
	public static Vector3d Multiply (Vector3d vector, Vector3d scale);
	public static Vector3d Multiply (Vector3d vector, double scale);
	public static void Multiply (ref Vector3d vector, ref Vector3d scale, out Vector3d result);
	public static void Multiply (ref Vector3d vector, double scale, out Vector3d result);
	public void Normalize ();
	public static Vector3d Normalize (Vector3d vec);
	public static void Normalize (ref Vector3d vec, out Vector3d result);
	public void NormalizeFast ();
	public static Vector3d NormalizeFast (Vector3d vec);
	public static void NormalizeFast (ref Vector3d vec, out Vector3d result);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (Vector3d scale);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (ref Vector3d scale);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (double sx, double sy, double sz);

	[Obsolete ("Use static Subtract() method instead.")]
	public void Sub (Vector3d right);

	[Obsolete ("Use static Subtract() method instead.")]
	public void Sub (ref Vector3d right);

	[Obsolete ("Use static Subtract() method instead.")]
	public static Vector3d Sub (Vector3d a, Vector3d b);

	[Obsolete ("Use static Subtract() method instead.")]
	public static void Sub (ref Vector3d a, ref Vector3d b, out Vector3d result);
	public static Vector3d Subtract (Vector3d a, Vector3d b);
	public static void Subtract (ref Vector3d a, ref Vector3d b, out Vector3d result);
	public override string ToString ();
	public static Vector3d Transform (Vector3d vec, Matrix4d mat);
	public static Vector3d Transform (Vector3d vec, Quaterniond quat);
	public static void Transform (ref Vector3d vec, ref Matrix4d mat, out Vector3d result);
	public static void Transform (ref Vector3d vec, ref Matrix4d mat, out Vector4d result);
	public static void Transform (ref Vector3d vec, ref Quaterniond quat, out Vector3d result);
	public static Vector3d TransformNormal (Vector3d norm, Matrix4d mat);
	public static void TransformNormal (ref Vector3d norm, ref Matrix4d mat, out Vector3d result);
	public static Vector3d TransformNormalInverse (Vector3d norm, Matrix4d invMat);
	public static void TransformNormalInverse (ref Vector3d norm, ref Matrix4d invMat, out Vector3d result);
	public static Vector3d TransformPerspective (Vector3d vec, Matrix4d mat);
	public static void TransformPerspective (ref Vector3d vec, ref Matrix4d mat, out Vector3d result);
	public static Vector3d TransformPosition (Vector3d pos, Matrix4d mat);
	public static void TransformPosition (ref Vector3d pos, ref Matrix4d mat, out Vector3d result);
	public static Vector3d TransformVector (Vector3d vec, Matrix4d mat);
	public static void TransformVector (ref Vector3d vec, ref Matrix4d mat, out Vector3d result);
	public static Vector3d op_Addition (Vector3d left, Vector3d right);
	public static Vector3d op_Division (Vector3d vec, double scale);
	public static bool op_Equality (Vector3d left, Vector3d right);
	public static Vector3d op_Explicit (Vector3 v3);
	public static Vector3 op_Explicit (Vector3d v3d);
	public static bool op_Inequality (Vector3d left, Vector3d right);
	public static Vector3d op_Multiply (Vector3d vec, double scale);
	public static Vector3d op_Multiply (double scale, Vector3d vec);
	public static Vector3d op_Subtraction (Vector3d left, Vector3d right);
	public static Vector3d op_UnaryNegation (Vector3d vec);
}

New Type OpenTK.Vector3h

[Serializable]
public struct Vector3h, System.IEquatable<Vector3h>, System.Runtime.Serialization.ISerializable {
	// constructors
	public Vector3h (Half value);
	public Vector3h (Vector3 v);
	public Vector3h (ref Vector3 v);
	public Vector3h (Vector3d v);
	public Vector3h (ref Vector3d v);
	public Vector3h (float value);
	public Vector3h (ref Vector3 v, bool throwOnError);
	public Vector3h (Vector3 v, bool throwOnError);
	public Vector3h (ref Vector3d v, bool throwOnError);
	public Vector3h (Vector3d v, bool throwOnError);
	public Vector3h (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
	public Vector3h (Half x, Half y, Half z);
	public Vector3h (float x, float y, float z);
	public Vector3h (float x, float y, float z, bool throwOnError);
	// fields
	public static int SizeInBytes;
	public Half X;
	public Half Y;
	public Half Z;
	// properties
	public Vector2h Xy { get; set; }
	// methods
	public virtual bool Equals (Vector3h other);
	public void FromBinaryStream (System.IO.BinaryReader bin);
	public static Vector3h FromBytes (byte[] value, int startIndex);
	public static byte[] GetBytes (Vector3h h);
	public virtual void GetObjectData (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
	public void ToBinaryStream (System.IO.BinaryWriter bin);
	public override string ToString ();
	public Vector3 ToVector3 ();
	public Vector3d ToVector3d ();
	public static Vector3h op_Explicit (Vector3 v3f);
	public static Vector3h op_Explicit (Vector3d v3d);
	public static Vector3 op_Explicit (Vector3h h3);
	public static Vector3d op_Explicit (Vector3h h3);
}

New Type OpenTK.Vector3i

[Serializable]
public struct Vector3i, System.IEquatable<Vector3i> {
	// constructors
	public Vector3i (Vector2i v);
	public Vector3i (Vector3i v);
	public Vector3i (int x, int y, int z);
	// fields
	public static Vector3i One;
	public static int SizeInBytes;
	public static Vector3i UnitX;
	public static Vector3i UnitY;
	public static Vector3i UnitZ;
	public int X;
	public int Y;
	public int Z;
	public static Vector3i Zero;
	// properties
	public Vector2i Xy { get; set; }
	// methods
	public static Vector3i Add (Vector3i a, Vector3i b);
	public static void Add (ref Vector3i a, ref Vector3i b, out Vector3i result);
	public static Vector3i Clamp (Vector3i vec, Vector3i min, Vector3i max);
	public static void Clamp (ref Vector3i vec, ref Vector3i min, ref Vector3i max, out Vector3i result);
	public static Vector3i ComponentMax (Vector3i a, Vector3i b);
	public static void ComponentMax (ref Vector3i a, ref Vector3i b, out Vector3i result);
	public static Vector3i ComponentMin (Vector3i a, Vector3i b);
	public static void ComponentMin (ref Vector3i a, ref Vector3i b, out Vector3i result);
	public virtual bool Equals (Vector3i other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static Vector3i Subtract (Vector3i a, Vector3i b);
	public static void Subtract (ref Vector3i a, ref Vector3i b, out Vector3i result);
	public override string ToString ();
	public static Vector3i op_Addition (Vector3i left, Vector3i right);
	public static bool op_Equality (Vector3i left, Vector3i right);
	public static bool op_Inequality (Vector3i left, Vector3i right);
	public static Vector3i op_Subtraction (Vector3i left, Vector3i right);
	public static Vector3i op_UnaryNegation (Vector3i vec);
}

New Type OpenTK.Vector4

[Serializable]
public struct Vector4, System.IEquatable<Vector4> {
	// constructors
	public Vector4 (Vector2 v);
	public Vector4 (Vector3 v);
	public Vector4 (Vector4 v);
	public Vector4 (float value);
	public Vector4 (Vector3 v, float w);
	public Vector4 (float x, float y, float z, float w);
	// fields
	public static Vector4 One;
	public static int SizeInBytes;
	public static Vector4 UnitW;
	public static Vector4 UnitX;
	public static Vector4 UnitY;
	public static Vector4 UnitZ;
	public float W;
	public float X;
	public float Y;
	public float Z;
	public static Vector4 Zero;
	// properties
	public float Length { get; }
	public float LengthFast { get; }
	public float LengthSquared { get; }
	public Vector2 Xy { get; set; }
	public Vector3 Xyz { get; set; }
	// methods

	[Obsolete ("Use static Add() method instead.")]
	public void Add (Vector4 right);

	[Obsolete ("Use static Add() method instead.")]
	public void Add (ref Vector4 right);
	public static Vector4 Add (Vector4 a, Vector4 b);
	public static void Add (ref Vector4 a, ref Vector4 b, out Vector4 result);
	public static Vector4 BaryCentric (Vector4 a, Vector4 b, Vector4 c, float u, float v);
	public static void BaryCentric (ref Vector4 a, ref Vector4 b, ref Vector4 c, float u, float v, out Vector4 result);
	public static Vector4 Clamp (Vector4 vec, Vector4 min, Vector4 max);
	public static void Clamp (ref Vector4 vec, ref Vector4 min, ref Vector4 max, out Vector4 result);

	[Obsolete ("Use static Divide() method instead.")]
	public void Div (float f);
	public static Vector4 Div (Vector4 a, float f);
	public static void Div (ref Vector4 a, float f, out Vector4 result);
	public static Vector4 Divide (Vector4 vector, Vector4 scale);
	public static Vector4 Divide (Vector4 vector, float scale);
	public static void Divide (ref Vector4 vector, ref Vector4 scale, out Vector4 result);
	public static void Divide (ref Vector4 vector, float scale, out Vector4 result);
	public static float Dot (Vector4 left, Vector4 right);
	public static void Dot (ref Vector4 left, ref Vector4 right, out float result);
	public virtual bool Equals (Vector4 other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static Vector4 Lerp (Vector4 a, Vector4 b, float blend);
	public static void Lerp (ref Vector4 a, ref Vector4 b, float blend, out Vector4 result);
	public static Vector4 Max (Vector4 a, Vector4 b);
	public static void Max (ref Vector4 a, ref Vector4 b, out Vector4 result);
	public static Vector4 Min (Vector4 a, Vector4 b);
	public static void Min (ref Vector4 a, ref Vector4 b, out Vector4 result);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Mult (float f);
	public static Vector4 Mult (Vector4 a, float f);
	public static void Mult (ref Vector4 a, float f, out Vector4 result);
	public static Vector4 Multiply (Vector4 vector, Vector4 scale);
	public static Vector4 Multiply (Vector4 vector, float scale);
	public static void Multiply (ref Vector4 vector, ref Vector4 scale, out Vector4 result);
	public static void Multiply (ref Vector4 vector, float scale, out Vector4 result);
	public void Normalize ();
	public static Vector4 Normalize (Vector4 vec);
	public static void Normalize (ref Vector4 vec, out Vector4 result);
	public void NormalizeFast ();
	public static Vector4 NormalizeFast (Vector4 vec);
	public static void NormalizeFast (ref Vector4 vec, out Vector4 result);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (Vector4 scale);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (ref Vector4 scale);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (float sx, float sy, float sz, float sw);

	[Obsolete ("Use static Subtract() method instead.")]
	public void Sub (Vector4 right);

	[Obsolete ("Use static Subtract() method instead.")]
	public void Sub (ref Vector4 right);
	public static Vector4 Sub (Vector4 a, Vector4 b);
	public static void Sub (ref Vector4 a, ref Vector4 b, out Vector4 result);
	public static Vector4 Subtract (Vector4 a, Vector4 b);
	public static void Subtract (ref Vector4 a, ref Vector4 b, out Vector4 result);
	public override string ToString ();
	public static Vector4 Transform (Vector4 vec, Matrix4 mat);
	public static Vector4 Transform (Vector4 vec, Quaternion quat);
	public static void Transform (ref Vector4 vec, ref Matrix4 mat, out Vector4 result);
	public static void Transform (ref Vector4 vec, ref Quaternion quat, out Vector4 result);
	public static Vector4 op_Addition (Vector4 left, Vector4 right);
	public static Vector4 op_Division (Vector4 vec, float scale);
	public static bool op_Equality (Vector4 left, Vector4 right);
	public static IntPtr op_Explicit (Vector4 v);
	public static float* op_Explicit (Vector4 v);
	public static bool op_Inequality (Vector4 left, Vector4 right);
	public static Vector4 op_Multiply (Vector4 vec, float scale);
	public static Vector4 op_Multiply (float scale, Vector4 vec);
	public static Vector4 op_Subtraction (Vector4 left, Vector4 right);
	public static Vector4 op_UnaryNegation (Vector4 vec);
}

New Type OpenTK.Vector4d

[Serializable]
public struct Vector4d, System.IEquatable<Vector4d> {
	// constructors
	public Vector4d (Vector2d v);
	public Vector4d (Vector3d v);
	public Vector4d (Vector4d v);
	public Vector4d (double value);

	[Obsolete ("Use the Vector4d (Vector3d, double) constructor instead")]
	public Vector4d (Vector3 v, double w);
	public Vector4d (Vector3d v, double w);
	public Vector4d (double x, double y, double z, double w);
	// fields
	public static Vector4d One;
	public static int SizeInBytes;
	public static Vector4d UnitW;
	public static Vector4d UnitX;
	public static Vector4d UnitY;
	public static Vector4d UnitZ;
	public double W;
	public double X;
	public double Y;
	public double Z;
	public static Vector4d Zero;
	// properties
	public double Length { get; }
	public double LengthFast { get; }
	public double LengthSquared { get; }
	public Vector2d Xy { get; set; }
	public Vector3d Xyz { get; set; }
	// methods

	[Obsolete ("Use static Add() method instead.")]
	public void Add (Vector4d right);

	[Obsolete ("Use static Add() method instead.")]
	public void Add (ref Vector4d right);
	public static Vector4d Add (Vector4d a, Vector4d b);
	public static void Add (ref Vector4d a, ref Vector4d b, out Vector4d result);
	public static Vector4d BaryCentric (Vector4d a, Vector4d b, Vector4d c, double u, double v);
	public static void BaryCentric (ref Vector4d a, ref Vector4d b, ref Vector4d c, double u, double v, out Vector4d result);
	public static Vector4d Clamp (Vector4d vec, Vector4d min, Vector4d max);
	public static void Clamp (ref Vector4d vec, ref Vector4d min, ref Vector4d max, out Vector4d result);

	[Obsolete ("Use static Divide() method instead.")]
	public void Div (double f);

	[Obsolete ("Use static Divide() method instead.")]
	public static Vector4d Div (Vector4d a, double f);

	[Obsolete ("Use static Divide() method instead.")]
	public static void Div (ref Vector4d a, double f, out Vector4d result);
	public static Vector4d Divide (Vector4d vector, Vector4d scale);
	public static Vector4d Divide (Vector4d vector, double scale);
	public static void Divide (ref Vector4d vector, ref Vector4d scale, out Vector4d result);
	public static void Divide (ref Vector4d vector, double scale, out Vector4d result);
	public static double Dot (Vector4d left, Vector4d right);
	public static void Dot (ref Vector4d left, ref Vector4d right, out double result);
	public virtual bool Equals (Vector4d other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static Vector4d Lerp (Vector4d a, Vector4d b, double blend);
	public static void Lerp (ref Vector4d a, ref Vector4d b, double blend, out Vector4d result);
	public static Vector4d Max (Vector4d a, Vector4d b);
	public static void Max (ref Vector4d a, ref Vector4d b, out Vector4d result);
	public static Vector4d Min (Vector4d a, Vector4d b);
	public static void Min (ref Vector4d a, ref Vector4d b, out Vector4d result);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Mult (double f);

	[Obsolete ("Use static Multiply() method instead.")]
	public static Vector4d Mult (Vector4d a, double f);

	[Obsolete ("Use static Multiply() method instead.")]
	public static void Mult (ref Vector4d a, double f, out Vector4d result);
	public static Vector4d Multiply (Vector4d vector, Vector4d scale);
	public static Vector4d Multiply (Vector4d vector, double scale);
	public static void Multiply (ref Vector4d vector, ref Vector4d scale, out Vector4d result);
	public static void Multiply (ref Vector4d vector, double scale, out Vector4d result);
	public void Normalize ();
	public static Vector4d Normalize (Vector4d vec);
	public static void Normalize (ref Vector4d vec, out Vector4d result);
	public void NormalizeFast ();
	public static Vector4d NormalizeFast (Vector4d vec);
	public static void NormalizeFast (ref Vector4d vec, out Vector4d result);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (Vector4d scale);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (ref Vector4d scale);

	[Obsolete ("Use static Multiply() method instead.")]
	public void Scale (double sx, double sy, double sz, double sw);

	[Obsolete ("Use static Subtract() method instead.")]
	public void Sub (Vector4d right);

	[Obsolete ("Use static Subtract() method instead.")]
	public void Sub (ref Vector4d right);

	[Obsolete ("Use static Subtract() method instead.")]
	public static Vector4d Sub (Vector4d a, Vector4d b);

	[Obsolete ("Use static Subtract() method instead.")]
	public static void Sub (ref Vector4d a, ref Vector4d b, out Vector4d result);
	public static Vector4d Subtract (Vector4d a, Vector4d b);
	public static void Subtract (ref Vector4d a, ref Vector4d b, out Vector4d result);
	public override string ToString ();
	public static Vector4d Transform (Vector4d vec, Matrix4d mat);
	public static Vector4d Transform (Vector4d vec, Quaterniond quat);
	public static void Transform (ref Vector4d vec, ref Matrix4d mat, out Vector4d result);
	public static void Transform (ref Vector4d vec, ref Quaterniond quat, out Vector4d result);
	public static Vector4d op_Addition (Vector4d left, Vector4d right);
	public static Vector4d op_Division (Vector4d vec, double scale);
	public static bool op_Equality (Vector4d left, Vector4d right);
	public static Vector4d op_Explicit (Vector4 v4);
	public static Vector4 op_Explicit (Vector4d v4d);
	public static double* op_Explicit (Vector4d v);
	public static IntPtr op_Explicit (Vector4d v);
	public static bool op_Inequality (Vector4d left, Vector4d right);
	public static Vector4d op_Multiply (Vector4d vec, double scale);
	public static Vector4d op_Multiply (double scale, Vector4d vec);
	public static Vector4d op_Subtraction (Vector4d left, Vector4d right);
	public static Vector4d op_UnaryNegation (Vector4d vec);
}

New Type OpenTK.Vector4h

[Serializable]
public struct Vector4h, System.IEquatable<Vector4h>, System.Runtime.Serialization.ISerializable {
	// constructors
	public Vector4h (Half value);
	public Vector4h (Vector4 v);
	public Vector4h (ref Vector4 v);
	public Vector4h (Vector4d v);
	public Vector4h (ref Vector4d v);
	public Vector4h (float value);
	public Vector4h (ref Vector4 v, bool throwOnError);
	public Vector4h (Vector4 v, bool throwOnError);
	public Vector4h (ref Vector4d v, bool throwOnError);
	public Vector4h (Vector4d v, bool throwOnError);
	public Vector4h (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
	public Vector4h (Half x, Half y, Half z, Half w);
	public Vector4h (float x, float y, float z, float w);
	public Vector4h (float x, float y, float z, float w, bool throwOnError);
	// fields
	public static int SizeInBytes;
	public Half W;
	public Half X;
	public Half Y;
	public Half Z;
	// properties
	public Vector2h Xy { get; set; }
	public Vector3h Xyz { get; set; }
	// methods
	public virtual bool Equals (Vector4h other);
	public void FromBinaryStream (System.IO.BinaryReader bin);
	public static Vector4h FromBytes (byte[] value, int startIndex);
	public static byte[] GetBytes (Vector4h h);
	public virtual void GetObjectData (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
	public void ToBinaryStream (System.IO.BinaryWriter bin);
	public override string ToString ();
	public Vector4 ToVector4 ();
	public Vector4d ToVector4d ();
	public static Vector4h op_Explicit (Vector4 v4f);
	public static Vector4h op_Explicit (Vector4d v4d);
	public static Vector4 op_Explicit (Vector4h h4);
	public static Vector4d op_Explicit (Vector4h h4);
}

New Type OpenTK.Vector4i

[Serializable]
public struct Vector4i, System.IEquatable<Vector4i> {
	// constructors
	public Vector4i (Vector2i v);
	public Vector4i (Vector3i v);
	public Vector4i (Vector4i v);
	public Vector4i (Vector3i v, int w);
	public Vector4i (int x, int y, int z, int w);
	// fields
	public static Vector4i One;
	public static int SizeInBytes;
	public static Vector4i UnitW;
	public static Vector4i UnitX;
	public static Vector4i UnitY;
	public static Vector4i UnitZ;
	public int W;
	public int X;
	public int Y;
	public int Z;
	public static Vector4i Zero;
	// properties
	public Vector2i Xy { get; set; }
	public Vector3i Xyz { get; set; }
	// methods
	public static Vector4i Add (Vector4i a, Vector4i b);
	public static void Add (ref Vector4i a, ref Vector4i b, out Vector4i result);
	public static Vector4i Clamp (Vector4i vec, Vector4i min, Vector4i max);
	public static void Clamp (ref Vector4i vec, ref Vector4i min, ref Vector4i max, out Vector4i result);
	public virtual bool Equals (Vector4i other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static Vector4i Max (Vector4i a, Vector4i b);
	public static void Max (ref Vector4i a, ref Vector4i b, out Vector4i result);
	public static Vector4i Min (Vector4i a, Vector4i b);
	public static void Min (ref Vector4i a, ref Vector4i b, out Vector4i result);
	public static Vector4i Sub (Vector4i a, Vector4i b);
	public static void Sub (ref Vector4i a, ref Vector4i b, out Vector4i result);
	public static Vector4i Subtract (Vector4i a, Vector4i b);
	public static void Subtract (ref Vector4i a, ref Vector4i b, out Vector4i result);
	public override string ToString ();
	public static Vector4i op_Addition (Vector4i left, Vector4i right);
	public static bool op_Equality (Vector4i left, Vector4i right);
	public static IntPtr op_Explicit (Vector4i v);
	public static bool op_Inequality (Vector4i left, Vector4i right);
	public static Vector4i op_Subtraction (Vector4i left, Vector4i right);
	public static Vector4i op_UnaryNegation (Vector4i vec);
}

New Namespace SceneKit

New Type SceneKit.ISCNActionable

public interface ISCNActionable : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual SCNAction GetAction (string key);
	public virtual bool HasActions ();
	public virtual void RemoveAction (string key);
	public virtual void RemoveAllActions ();
	public virtual void RunAction (SCNAction action);
	public virtual void RunAction (SCNAction action, System.Action block);
	public virtual void RunAction (SCNAction action, string key);
	public virtual void RunAction (SCNAction action, string key, System.Action block);
}

New Type SceneKit.ISCNAnimatable

public interface ISCNAnimatable : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual Foundation.NSString[] GetAnimationKeys ();
	public virtual bool IsAnimationPaused (Foundation.NSString key);
	public virtual void PauseAnimation (Foundation.NSString key);
	public virtual void RemoveAllAnimations ();
	public virtual void RemoveAnimation (Foundation.NSString key);
	public virtual void RemoveAnimation (Foundation.NSString key, nfloat duration);
	public virtual void ResumeAnimation (Foundation.NSString key);
}

New Type SceneKit.ISCNBoundingVolume

public interface ISCNBoundingVolume : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual bool GetBoundingBox (ref SCNVector3 min, ref SCNVector3 max);
	public virtual bool GetBoundingSphere (ref SCNVector3 center, ref nfloat radius);
	public virtual void SetBoundingBox (ref SCNVector3 min, ref SCNVector3 max);
}

New Type SceneKit.ISCNBufferStream

public interface ISCNBufferStream : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual void Length (IntPtr bytes, uint length);
}

New Type SceneKit.ISCNPhysicsContactDelegate

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

New Type SceneKit.ISCNSceneRenderer

public interface ISCNSceneRenderer : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual bool AutoenablesDefaultLighting { get; set; }
	public virtual IntPtr Context { get; }
	public virtual bool JitteringEnabled { get; set; }
	public virtual bool Loops { get; set; }
	public virtual SpriteKit.SKScene OverlayScene { get; set; }
	public virtual bool Playing { get; set; }
	public virtual SCNNode PointOfView { get; set; }
	public virtual SCNScene Scene { get; set; }
	public virtual double SceneTimeInSeconds { get; set; }
	public virtual bool ShowsStatistics { get; set; }
	public virtual Foundation.NSObject WeakSceneRendererDelegate { get; set; }
	// methods
	public virtual SCNHitTestResult[] HitTest (CoreGraphics.CGPoint thePoint, Foundation.NSDictionary options);
	public virtual bool IsNodeInsideFrustum (SCNNode node, SCNNode pointOfView);
	public virtual bool Prepare (Foundation.NSObject obj, System.Func<bool> abortHandler);
	public virtual void Prepare (Foundation.NSObject[] objects, System.Action<bool> completionHandler);
	public virtual SCNVector3 ProjectPoint (SCNVector3 point);
	public virtual SCNVector3 UnprojectPoint (SCNVector3 point);
}

New Type SceneKit.ISCNSceneRendererDelegate

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

New Type SceneKit.ISCNShadable

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

New Type SceneKit.ISCNTechniqueSupport

public interface ISCNTechniqueSupport : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual SCNTechnique Technique { get; set; }
}

New Type SceneKit.MTLPixelFormat

[Serializable]
public enum MTLPixelFormat {
}

New Type SceneKit.MTLVertexFormat

[Serializable]
public enum MTLVertexFormat {
}

New Type SceneKit.SCNAction

public class SCNAction : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SCNAction ();
	public SCNAction (Foundation.NSCoder coder);
	protected SCNAction (Foundation.NSObjectFlag t);
	protected SCNAction (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double DurationInSeconds { get; set; }
	public virtual nfloat Speed { get; set; }
	public virtual System.Action<float> TimingFunction { get; set; }
	public virtual SCNActionTimingMode TimingMode { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static SCNAction CustomAction (double seconds, SCNActionNodeWithElapsedTimeHandler handler);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static SCNAction FadeIn (double durationInSeconds);
	public static SCNAction FadeOpacityBy (nfloat factor, double durationInSeconds);
	public static SCNAction FadeOpacityTo (nfloat opacity, double durationInSeconds);
	public static SCNAction FadeOut (double durationInSeconds);
	public static SCNAction FromJavascript (string script, double seconds);
	public static SCNAction Group (SCNAction[] actions);
	public static SCNAction Hide ();
	public static SCNAction MoveBy (SCNVector3 delta, double durationInSeconds);
	public static SCNAction MoveBy (nfloat deltaX, nfloat deltaY, nfloat deltaZ, double durationInSeconds);
	public static SCNAction MoveTo (SCNVector3 location, double durationInSeconds);
	public static SCNAction PlayAudioSource (SCNAudioSource source, bool wait);
	public static SCNAction RemoveFromParentNode ();
	public static SCNAction RepeatAction (SCNAction action, uint count);
	public static SCNAction RepeatActionForever (SCNAction action);
	public virtual SCNAction ReversedAction ();
	public static SCNAction RotateBy (nfloat angle, SCNVector3 axis, double durationInSeconds);
	public static SCNAction RotateBy (nfloat xAngle, nfloat yAngle, nfloat zAngle, double durationInSeconds);
	public static SCNAction RotateTo (SCNVector4 axisAngle, double durationInSeconds);
	public static SCNAction RotateTo (nfloat xAngle, nfloat yAngle, nfloat zAngle, double durationInSeconds);
	public static SCNAction RotateTo (nfloat xAngle, nfloat yAngle, nfloat zAngle, double durationInSeconds, bool shortestUnitArc);
	public static SCNAction Run (System.Action<SCNNode> handler);
	public static SCNAction Run (System.Action<SCNNode> handler, CoreFoundation.DispatchQueue queue);
	public static SCNAction ScaleBy (nfloat scale, double durationInSeconds);
	public static SCNAction ScaleTo (nfloat scale, double durationInSeconds);
	public static SCNAction Sequence (SCNAction[] actions);
	public static SCNAction Unhide ();
	public static SCNAction Wait (double durationInSeconds);
	public static SCNAction Wait (double durationInSeconds, double durationRange);
}

New Type SceneKit.SCNActionNodeWithElapsedTimeHandler

public sealed delegate SCNActionNodeWithElapsedTimeHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public SCNActionNodeWithElapsedTimeHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (SCNNode node, nfloat elapsedTime, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (SCNNode node, nfloat elapsedTime);
}

New Type SceneKit.SCNActionTimingMode

[Serializable]
public enum SCNActionTimingMode {
	EaseIn = 1,
	EaseInEaseOut = 3,
	EaseOut = 2,
	Linear = 0,
}

New Type SceneKit.SCNActionable

public abstract class SCNActionable : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, ISCNActionable, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected SCNActionable ();
	protected SCNActionable (Foundation.NSObjectFlag t);
	protected SCNActionable (IntPtr handle);
	// properties
	public virtual string[] ActionKeys { get; }
	// methods
	public virtual SCNAction GetAction (string key);
	public virtual bool HasActions ();
	public virtual void RemoveAction (string key);
	public virtual void RemoveAllActions ();
	public virtual void RunAction (SCNAction action);
	public virtual void RunAction (SCNAction action, System.Action block);
	public virtual void RunAction (SCNAction action, string key);
	public virtual void RunAction (SCNAction action, string key, System.Action block);
}

New Type SceneKit.SCNActionable_Extensions

public static class SCNActionable_Extensions {
	// methods
	public static string[] GetActionKeys (ISCNActionable This);
}

New Type SceneKit.SCNAnimatable

public abstract class SCNAnimatable : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, ISCNAnimatable, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected SCNAnimatable ();
	protected SCNAnimatable (Foundation.NSObjectFlag t);
	protected SCNAnimatable (IntPtr handle);
	// methods
	public virtual Foundation.NSString[] GetAnimationKeys ();
	public virtual bool IsAnimationPaused (Foundation.NSString key);
	public virtual void PauseAnimation (Foundation.NSString key);
	public virtual void RemoveAllAnimations ();
	public virtual void RemoveAnimation (Foundation.NSString key);
	public virtual void RemoveAnimation (Foundation.NSString key, nfloat duration);
	public virtual void ResumeAnimation (Foundation.NSString key);
	public virtual void SetSpeed (nfloat speed, Foundation.NSString key);
}

New Type SceneKit.SCNAnimatable_Extensions

public static class SCNAnimatable_Extensions {
	// methods
	public static void SetSpeed (ISCNAnimatable This, nfloat speed, Foundation.NSString key);
}

New Type SceneKit.SCNAnimationImportPolicy

[Serializable]
public enum SCNAnimationImportPolicy {
	DoNotPlay = 3,
	Play = 1,
	PlayRepeatedly = 2,
	PlayUsingSceneTimeBase = 4,
	Unknown = 0,
}

New Type SceneKit.SCNAntialiasingMode

[Serializable]
public enum SCNAntialiasingMode {
	Multisampling2X = 1,
	Multisampling4X = 2,
	None = 0,
}

New Type SceneKit.SCNAudioPlayer

public class SCNAudioPlayer : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SCNAudioPlayer (AVFoundation.AVAudioNode audioNode);
	protected SCNAudioPlayer (Foundation.NSObjectFlag t);
	public SCNAudioPlayer (SCNAudioSource source);
	protected SCNAudioPlayer (IntPtr handle);
	// properties
	public virtual AVFoundation.AVAudioNode AudioNode { get; }
	public virtual SCNAudioSource AudioSource { get; }
	public override IntPtr ClassHandle { get; }
	public virtual System.Action DidFinishPlayback { get; set; }
	public virtual System.Action WillStartPlayback { get; set; }
	// methods
	public static SCNAudioPlayer AVAudioNode (AVFoundation.AVAudioNode audioNode);
	public static SCNAudioPlayer FromSource (SCNAudioSource source);
}

New Type SceneKit.SCNAudioSource

public class SCNAudioSource : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SCNAudioSource (Foundation.NSCoder coder);
	protected SCNAudioSource (Foundation.NSObjectFlag t);
	public SCNAudioSource (Foundation.NSUrl url);
	protected SCNAudioSource (IntPtr handle);
	public SCNAudioSource (string filename);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool Loops { get; set; }
	public virtual bool Positional { get; set; }
	public virtual float Rate { get; set; }
	public virtual float ReverbBlend { get; set; }
	public virtual bool ShouldStream { get; set; }
	public virtual float Volume { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static SCNAudioSource FromFile (string fileName);
	public virtual void Load ();
}

New Type SceneKit.SCNBillboardAxis

[Serializable]
public enum SCNBillboardAxis {
	All = 7,
	X = 1,
	Y = 2,
	Z = 4,
}

New Type SceneKit.SCNBillboardConstraint

public class SCNBillboardConstraint : SceneKit.SCNConstraint, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, ISCNAnimatable, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SCNBillboardConstraint ();
	public SCNBillboardConstraint (Foundation.NSCoder coder);
	protected SCNBillboardConstraint (Foundation.NSObjectFlag t);
	protected SCNBillboardConstraint (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual SCNBillboardAxis FreeAxes { get; set; }
	// methods
	public static SCNBillboardConstraint Create ();
}

New Type SceneKit.SCNBlendMode

[Serializable]
public enum SCNBlendMode {
	Add = 1,
	Alpha = 0,
	Multiply = 3,
	Replace = 5,
	Screen = 4,
	Subtract = 2,
}

New Type SceneKit.SCNBoundingVolume

public abstract class SCNBoundingVolume : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, ISCNBoundingVolume, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected SCNBoundingVolume ();
	protected SCNBoundingVolume (Foundation.NSObjectFlag t);
	protected SCNBoundingVolume (IntPtr handle);
	// methods
	public virtual bool GetBoundingBox (ref SCNVector3 min, ref SCNVector3 max);
	public virtual bool GetBoundingSphere (ref SCNVector3 center, ref nfloat radius);
	public virtual void SetBoundingBox (ref SCNVector3 min, ref SCNVector3 max);
}

New Type SceneKit.SCNBox

public class SCNBox : SceneKit.SCNGeometry, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, ISCNAnimatable, ISCNBoundingVolume, ISCNShadable, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SCNBox ();
	public SCNBox (Foundation.NSCoder coder);
	protected SCNBox (Foundation.NSObjectFlag t);
	protected SCNBox (IntPtr handle);
	// properties
	public virtual nfloat ChamferRadius { get; set; }
	public virtual nint ChamferSegmentCount { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual nfloat Height { get; set; }
	public virtual nint HeightSegmentCount { get; set; }
	public virtual nfloat Length { get; set; }
	public virtual nint LengthSegmentCount { get; set; }
	public virtual nfloat Width { get; set; }
	public virtual nint WidthSegmentCount { get; set; }
	// methods
	public static SCNBox Create (nfloat width, nfloat height, nfloat length, nfloat chamferRadius);
}

New Type SceneKit.SCNBufferFrequency

[Serializable]
public enum SCNBufferFrequency {
	Frame = 0,
	Node = 1,
	Shadable = 2,
}

New Type SceneKit.SCNCamera

public class SCNCamera : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, ISCNAnimatable, ISCNTechniqueSupport, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SCNCamera ();
	public SCNCamera (Foundation.NSCoder coder);
	protected SCNCamera (Foundation.NSObjectFlag t);
	protected SCNCamera (IntPtr handle);
	// properties
	public virtual nfloat Aperture { get; set; }
	public virtual bool AutomaticallyAdjustsZRange { get; set; }
	public virtual nfloat AverageGray { get; set; }
	public virtual nfloat BloomBlurRadius { get; set; }
	public virtual nfloat BloomIntensity { get; set; }
	public virtual nfloat BloomThreshold { get; set; }
	public virtual uint CategoryBitMask { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual nfloat ColorFringeIntensity { get; set; }
	public virtual nfloat ColorFringeStrength { get; set; }
	public virtual SCNMaterialProperty ColorGrading { get; }
	public virtual nfloat Contrast { get; set; }
	public virtual nfloat ExposureAdaptationBrighteningSpeedFactor { get; set; }
	public virtual nfloat ExposureAdaptationDarkeningSpeedFactor { get; set; }
	public virtual nfloat ExposureOffset { get; set; }
	public virtual nfloat FocalBlurRadius { get; set; }
	public virtual nfloat FocalDistance { get; set; }
	public virtual nfloat FocalSize { get; set; }
	public virtual nfloat MaximumExposure { get; set; }
	public virtual nfloat MinimumExposure { get; set; }
	public virtual nfloat MotionBlurIntensity { get; set; }
	public virtual string Name { get; set; }
	public virtual double OrthographicScale { get; set; }
	public virtual SCNMatrix4 ProjectionTransform { get; set; }
	public virtual nfloat Saturation { get; set; }
	public virtual SCNTechnique Technique { get; set; }
	public virtual bool UsesOrthographicProjection { get; set; }
	public virtual nfloat VignettingIntensity { get; set; }
	public virtual nfloat VignettingPower { get; set; }
	public virtual bool WantsExposureAdaptation { get; set; }
	public virtual bool WantsHdr { get; set; }
	public virtual nfloat WhitePoint { get; set; }
	public virtual double XFov { get; set; }
	public virtual double YFov { get; set; }
	public virtual double ZFar { get; set; }
	public virtual double ZNear { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static SCNCamera Create ();
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public virtual Foundation.NSString[] GetAnimationKeys ();
	public virtual bool IsAnimationPaused (Foundation.NSString key);
	public virtual void PauseAnimation (Foundation.NSString key);
	public virtual void RemoveAllAnimations ();
	public virtual void RemoveAnimation (Foundation.NSString key);
	public virtual void RemoveAnimation (Foundation.NSString key, nfloat duration);
	public virtual void ResumeAnimation (Foundation.NSString key);
	public virtual void SetSpeed (nfloat speed, Foundation.NSString key);
}

New Type SceneKit.SCNCapsule

public class SCNCapsule : SceneKit.SCNGeometry, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, ISCNAnimatable, ISCNBoundingVolume, ISCNShadable, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SCNCapsule ();
	public SCNCapsule (Foundation.NSCoder coder);
	protected SCNCapsule (Foundation.NSObjectFlag t);
	protected SCNCapsule (IntPtr handle);
	// properties
	public virtual nfloat CapRadius { get; set; }
	public virtual nint CapSegmentCount { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual nfloat Height { get; set; }
	public virtual nint HeightSegmentCount { get; set; }
	public virtual nint RadialSegmentCount { get; set; }
	// methods
	public static SCNCapsule Create (nfloat capRadius, nfloat height);
}

New Type SceneKit.SCNChamferMode

[Serializable]
public enum SCNChamferMode {
	Back = 2,
	Both = 0,
	Front = 1,
}

New Type SceneKit.SCNCone

public class SCNCone : SceneKit.SCNGeometry, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, ISCNAnimatable, ISCNBoundingVolume, ISCNShadable, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SCNCone ();
	public SCNCone (Foundation.NSCoder coder);
	protected SCNCone (Foundation.NSObjectFlag t);
	protected SCNCone (IntPtr handle);
	// properties
	public virtual nfloat BottomRadius { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual nfloat Height { get; set; }
	public virtual nint HeightSegmentCount { get; set; }
	public virtual nint RadialSegmentCount { get; set; }
	public virtual nfloat TopRadius { get; set; }
	// methods
	public static SCNCone Create (nfloat topRadius, nfloat bottomRadius, nfloat height);
}

New Type SceneKit.SCNConstraint

public abstract class SCNConstraint : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, ISCNAnimatable, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected SCNConstraint (Foundation.NSCoder coder);
	protected SCNConstraint (Foundation.NSObjectFlag t);
	protected SCNConstraint (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual nfloat InfluenceFactor { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public virtual Foundation.NSString[] GetAnimationKeys ();
	public virtual bool IsAnimationPaused (Foundation.NSString key);
	public virtual void PauseAnimation (Foundation.NSString key);
	public virtual void RemoveAllAnimations ();
	public virtual void RemoveAnimation (Foundation.NSString key);
	public virtual void RemoveAnimation (Foundation.NSString key, nfloat duration);
	public virtual void ResumeAnimation (Foundation.NSString key);
	public virtual void SetSpeed (nfloat speed, Foundation.NSString key);
}

New Type SceneKit.SCNCullMode

[Serializable]
public enum SCNCullMode {
	Back = 0,
	Front = 1,
}

New Type SceneKit.SCNCylinder

public class SCNCylinder : SceneKit.SCNGeometry, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, ISCNAnimatable, ISCNBoundingVolume, ISCNShadable, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SCNCylinder ();
	public SCNCylinder (Foundation.NSCoder coder);
	protected SCNCylinder (Foundation.NSObjectFlag t);
	protected SCNCylinder (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual nfloat Height { get; set; }
	public virtual nint HeightSegmentCount { get; set; }
	public virtual nint RadialSegmentCount { get; set; }
	public virtual nfloat Radius { get; set; }
	// methods
	public static SCNCylinder Create (nfloat radius, nfloat height);
}

New Type SceneKit.SCNDebugOptions

[Serializable]
[Flags]
public enum SCNDebugOptions {
	None = 0,
	ShowBoundingBoxes = 2,
	ShowLightExtents = 8,
	ShowLightInfluences = 4,
	ShowPhysicsFields = 16,
	ShowPhysicsShapes = 1,
	ShowWireframe = 32,
}

New Type SceneKit.SCNErrorCode

[Serializable]
public enum SCNErrorCode {
	ProgramCompilationError = 1,
}

New Type SceneKit.SCNErrorCodeExtensions

public static class SCNErrorCodeExtensions {
	// methods
	public static Foundation.NSString GetDomain (SCNErrorCode self);
}

New Type SceneKit.SCNFieldForceEvaluator

public sealed delegate SCNFieldForceEvaluator : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public SCNFieldForceEvaluator (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (SCNVector3 position, SCNVector3 velocity, float mass, float charge, double timeInSeconds, System.AsyncCallback callback, object object);
	public virtual SCNVector3 EndInvoke (System.IAsyncResult result);
	public virtual SCNVector3 Invoke (SCNVector3 position, SCNVector3 velocity, float mass, float charge, double timeInSeconds);
}

New Type SceneKit.SCNFilterMode

[Serializable]
public enum SCNFilterMode {
	Linear = 2,
	Nearest = 1,
	None = 0,
}

New Type SceneKit.SCNFloor

public class SCNFloor : SceneKit.SCNGeometry, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, ISCNAnimatable, ISCNBoundingVolume, ISCNShadable, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SCNFloor ();
	public SCNFloor (Foundation.NSCoder coder);
	protected SCNFloor (Foundation.NSObjectFlag t);
	protected SCNFloor (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual nfloat Length { get; set; }
	public virtual uint ReflectionCategoryBitMask { get; set; }
	public virtual nfloat ReflectionFalloffEnd { get; set; }