Skip to content

Instantly share code, notes, and snippets.

@vs-mobiletools-engineering-service2
Created May 31, 2024 23:58
Show Gist options
  • Save vs-mobiletools-engineering-service2/29a089d46ac884385b0b56a0ef07e660 to your computer and use it in GitHub Desktop.
Save vs-mobiletools-engineering-service2/29a089d46ac884385b0b56a0ef07e660 to your computer and use it in GitHub Desktop.
stable-api-comparison/diff/dotnet/Microsoft.tvOS.Ref/ref/net8.0/Microsoft.tvOS.md

API diff: Microsoft.tvOS.dll

Microsoft.tvOS.dll

Namespace AVFoundation

Type Changed: AVFoundation.AVAudioSourceNode

Obsoleted constructors:

 [Obsolete ("Use the overload that takes a delegate that does not take a 'ref AudioBuffers' instead. Assigning a value to the 'inputData' parameter in the callback has no effect.")]
 public AVAudioSourceNode (AVAudioSourceNodeRenderHandler renderHandler);
 [Obsolete ("Use the overload that takes a delegate that does not take a 'ref AudioBuffers' instead. Assigning a value to the 'inputData' parameter in the callback has no effect.")]
 public AVAudioSourceNode (AVAudioFormat format, AVAudioSourceNodeRenderHandler renderHandler);

Added constructors:

public AVAudioSourceNode (AVAudioSourceNodeRenderHandler3 renderHandler);
public AVAudioSourceNode (AVAudioSourceNodeRenderHandlerRaw renderHandler);
public AVAudioSourceNode (AVAudioFormat format, AVAudioSourceNodeRenderHandler3 renderHandler);
public AVAudioSourceNode (AVAudioFormat format, AVAudioSourceNodeRenderHandlerRaw renderHandler);

Type Changed: AVFoundation.AVSpeechSynthesizer

Obsoleted methods:

 [Obsolete ("Do not use this API, it doesn't work correctly. Use the non-Async version (WriteUtterance) instead.")]
 public virtual System.Threading.Tasks.Task<AVAudioBuffer> WriteUtteranceAsync (AVSpeechUtterance utterance);

New Type: AVFoundation.AVAudioSourceNodeRenderHandler3

public sealed delegate AVAudioSourceNodeRenderHandler3 : System.MulticastDelegate {
	// constructors
	public AVAudioSourceNodeRenderHandler3 (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (ref bool isSilence, ref AudioToolbox.AudioTimeStamp timestamp, uint frameCount, AudioToolbox.AudioBuffers outputData, System.AsyncCallback callback, object object);
	public virtual int EndInvoke (ref bool isSilence, ref AudioToolbox.AudioTimeStamp timestamp, System.IAsyncResult result);
	public virtual int Invoke (ref bool isSilence, ref AudioToolbox.AudioTimeStamp timestamp, uint frameCount, AudioToolbox.AudioBuffers outputData);
}

New Type: AVFoundation.AVAudioSourceNodeRenderHandlerRaw

public sealed delegate AVAudioSourceNodeRenderHandlerRaw : System.MulticastDelegate {
	// constructors
	public AVAudioSourceNodeRenderHandlerRaw (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (IntPtr isSilence, IntPtr timestamp, uint frameCount, IntPtr outputData, System.AsyncCallback callback, object object);
	public virtual int EndInvoke (System.IAsyncResult result);
	public virtual int Invoke (IntPtr isSilence, IntPtr timestamp, uint frameCount, IntPtr outputData);
}

Namespace AudioToolbox

Type Changed: AudioToolbox.MusicPlayer

Modified methods:

-protected virtual void Dispose (bool disposing)
+protected override void Dispose (bool disposing)

Added methods:

public MusicPlayerStatus GetTime (out double time);
public MusicPlayerStatus SetTime (double time);

Namespace AudioUnit

Type Changed: AudioUnit.AudioComponentDescription

Modified fields:

 ---[MarshalAs]---
 public AudioComponentManufacturerType ComponentManufacturer;
 ---[MarshalAs]---
 public AudioUnitSubType ComponentSubType;
 ---[MarshalAs]---
 public AudioComponentType ComponentType;

Namespace Compression

Type Changed: Compression.CompressionAlgorithm

Added values:

Brotli = 2818,
LZBitmap = 1794,

Namespace CoreImage

Type Changed: CoreImage.ICIFilterProtocol

Added method:

public static Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> GetCustomAttributes<T> ();

Namespace CoreML

Type Changed: CoreML.IMLCustomModel

Added method:

public static T CreateInstance<T> (MLModelDescription modelDescription, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> parameters, out Foundation.NSError error);

Namespace CoreText

Type Changed: CoreText.CTFontDescriptor

Obsoleted methods:

 [Obsolete ("Use 'MatchFontDescriptors (CTFontDescriptor[], NSSet, CTFontDescriptorProgressHandler)' instead.")]
 public static bool MatchFontDescriptors (CTFontDescriptor[] descriptors, Foundation.NSSet mandatoryAttributes, System.Func<CTFontDescriptorMatchingState,System.IntPtr,System.Boolean> progressHandler);

Added method:

public static bool MatchFontDescriptors (CTFontDescriptor[] descriptors, Foundation.NSSet mandatoryAttributes, CTFontDescriptor.CTFontDescriptorProgressHandler progressHandler);

Type Changed: CoreText.CTFontDescriptorAttributes

Added property:

public bool? WeakEnabled { get; set; }

New Type: CoreText.CTFontDescriptorMatchingProgress

public class CTFontDescriptorMatchingProgress : Foundation.DictionaryContainer {
	// constructors
	public CTFontDescriptorMatchingProgress ();
	public CTFontDescriptorMatchingProgress (Foundation.NSDictionary dictionary);
	// properties
	public long? CurrentAssetSize { get; }
	public CTFontDescriptor[] Descriptors { get; }
	public Foundation.NSError Error { get; }
	public double? Percentage { get; }
	public CTFontDescriptor[] Result { get; }
	public CTFontDescriptor SourceDescriptor { get; }
	public long? TotalAssetSize { get; }
	public long? TotalDownloadedSize { get; }
}

Namespace Foundation

Type Changed: Foundation.DictionaryContainer

Added methods:

protected UIKit.UIEdgeInsets? GetUIEdgeInsets (NSString key);
protected void SetUIEdgeInsets (NSString key, UIKit.UIEdgeInsets? value);

Type Changed: Foundation.INSCoding

Added method:

public static T CreateInstance<T> (NSCoder decoder);

Type Changed: Foundation.INSItemProviderReading

Added methods:

public static INSItemProviderReading GetObject<T> (NSData data, string typeIdentifier, out NSError outError);
public static string[] GetReadableTypeIdentifiers<T> ();

Type Changed: Foundation.INSItemProviderWriting

Added method:

public static string[] GetWritableTypeIdentifiers<T> ();

Type Changed: Foundation.NSAttributedStringDocumentAttributes

Obsoleted properties:

 [Obsolete ("Use 'CharacterEncoding' instead.")]
 public NSStringEncoding? StringEncoding { get; set; }

Added properties:

public NSStringEncoding? CharacterEncoding { get; set; }
public float? CocoaVersion { get; set; }
public NSAttributedStringDocumentAttributes DefaultAttributes { get; set; }
public UIKit.NSTextScalingType? SourceTextScaling { get; set; }
public UIKit.NSTextScalingType? TextScaling { get; set; }

Type Changed: Foundation.NSAttributedStringNameKey

Added values:

InflectionAgreementArgument = 10,
InflectionAgreementConcept = 11,
InflectionReferentConcept = 12,

Type Changed: Foundation.NSBundle

Added property:

public static NSString BundleDidLoadNotification { get; }

Type Changed: Foundation.NSDataWritingOptions

Added value:

FileProtectionCompleteWhenUserInactive = 1342177280,

Type Changed: Foundation.NSDate

Added property:

public static NSString SystemClockDidChangeNotification { get; }

Type Changed: Foundation.NSError

Added property:

public static NSString NSNetServicesErrorCode { get; }

Type Changed: Foundation.NSFileProtectionType

Added value:

CompleteWhenUserInactive = 4,

Type Changed: Foundation.NSLocale

Added properties:

public virtual string LanguageIdentifier { get; }
public virtual string RegionCode { get; }

Type Changed: Foundation.NSMorphology

Added properties:

public virtual NSGrammaticalDefiniteness Definiteness { get; set; }
public virtual NSGrammaticalDetermination Determination { get; set; }
public virtual NSGrammaticalCase GrammaticalCase { get; set; }
public virtual NSGrammaticalPerson GrammaticalPerson { get; set; }
public virtual NSGrammaticalPronounType PronounType { get; set; }

Type Changed: Foundation.NSPort

Added property:

public static NSString PortDidBecomeInvalidNotification { get; }

Type Changed: Foundation.NSThread

Added properties:

public static NSString ThreadWillExitNotification { get; }
public static NSString WillBecomeMultiThreadedNotification { get; }

Type Changed: Foundation.NSTimeZone

Added property:

public static NSString SystemTimeZoneDidChangeNotification { get; }

Type Changed: Foundation.NSUrl

Added properties:

public static NSString DirectoryEntryCountKey { get; }
public static NSString FileProtectionCompleteWhenUserInactive { get; }

Added method:

public static NSUrl FromString (string url, bool encodingInvalidCharacters);

Type Changed: Foundation.NSUrlComponents

Added method:

public static NSUrlComponents FromString (string url, bool encodingInvalidCharacters);

Type Changed: Foundation.NSUrlSession

Added methods:

public virtual NSUrlSessionUploadTask CreateUploadTask (NSData resumeData);
public virtual NSUrlSessionUploadTask CreateUploadTask (NSData resumeData, System.Action<NSData,Foundation.NSUrlResponse,Foundation.NSError> completionHandler);
public virtual System.Threading.Tasks.Task<NSUrlSessionUploadTaskResumeRequest> CreateUploadTaskAsync (NSData resumeData);
public virtual System.Threading.Tasks.Task<NSUrlSessionUploadTaskResumeRequest> CreateUploadTaskAsync (NSData resumeData, out NSUrlSessionUploadTask result);

Type Changed: Foundation.NSUrlSessionConfiguration

Added property:

public Network.NWProxyConfig[] ProxyConfigurations { get; set; }

Type Changed: Foundation.NSUrlSessionTaskDelegate

Added methods:

public virtual void DidReceiveInformationalResponse (NSUrlSession session, NSUrlSessionTask task, NSHttpUrlResponse response);
public virtual void NeedNewBodyStream (NSUrlSession session, NSUrlSessionTask task, long offset, System.Action<NSInputStream> completionHandler);

Type Changed: Foundation.NSUrlSessionTaskDelegate_Extensions

Added methods:

public static void DidReceiveInformationalResponse (this INSUrlSessionTaskDelegate This, NSUrlSession session, NSUrlSessionTask task, NSHttpUrlResponse response);
public static void NeedNewBodyStream (this INSUrlSessionTaskDelegate This, NSUrlSession session, NSUrlSessionTask task, long offset, System.Action<NSInputStream> completionHandler);

Type Changed: Foundation.NSUrlSessionUploadTask

Added property:

public static NSString ResumeDataKey { get; }

Added methods:

public virtual void CancelByProducingResumeData (System.Action<NSData> completionHandler);
public virtual System.Threading.Tasks.Task<NSData> CancelByProducingResumeDataAsync ();

Type Changed: Foundation.NSUserDefaults

Added properties:

public static NSString CompletedInitialSyncNotification { get; }
public static NSString DidChangeAccountsNotification { get; }
public static NSString SizeLimitExceededNotification { get; }

Type Changed: Foundation.NSUserDefaults.Notifications

Added methods:

public static NSObject ObserveCompletedInitialSync (System.EventHandler<NSNotificationEventArgs> handler);
public static NSObject ObserveCompletedInitialSync (NSObject objectToObserve, System.EventHandler<NSNotificationEventArgs> handler);
public static NSObject ObserveDidChangeAccounts (System.EventHandler<NSNotificationEventArgs> handler);
public static NSObject ObserveDidChangeAccounts (NSObject objectToObserve, System.EventHandler<NSNotificationEventArgs> handler);
public static NSObject ObserveSizeLimitExceeded (System.EventHandler<NSNotificationEventArgs> handler);
public static NSObject ObserveSizeLimitExceeded (NSObject objectToObserve, System.EventHandler<NSNotificationEventArgs> handler);

New Type: Foundation.NSExceptionError

public sealed class NSExceptionError : Foundation.NSError {
	// constructors
	public NSExceptionError (System.Exception exception);
	// properties
	public System.Exception Exception { get; }
}

New Type: Foundation.NSGrammaticalCase

[Serializable]
public enum NSGrammaticalCase {
	Ablative = 6,
	Accusative = 2,
	Adessive = 7,
	Allative = 8,
	Dative = 3,
	Elative = 9,
	Essive = 11,
	Genitive = 4,
	Illative = 10,
	Inessive = 12,
	Locative = 13,
	Nominative = 1,
	NotSet = 0,
	Prepositional = 5,
	Translative = 14,
}

New Type: Foundation.NSGrammaticalDefiniteness

[Serializable]
public enum NSGrammaticalDefiniteness {
	Definite = 2,
	Indefinite = 1,
	NotSet = 0,
}

New Type: Foundation.NSGrammaticalDetermination

[Serializable]
public enum NSGrammaticalDetermination {
	Dependent = 2,
	Independent = 1,
	NotSet = 0,
}

New Type: Foundation.NSGrammaticalPerson

[Serializable]
public enum NSGrammaticalPerson {
	First = 1,
	NotSet = 0,
	Second = 2,
	Third = 3,
}

New Type: Foundation.NSGrammaticalPronounType

[Serializable]
public enum NSGrammaticalPronounType {
	NotSet = 0,
	Personal = 1,
	Possessive = 3,
	Reflexive = 2,
}

New Type: Foundation.NSMorphologyPronoun

public class NSMorphologyPronoun : Foundation.NSObject, INSCoding, INSCopying, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NSMorphologyPronoun (NSCoder coder);
	protected NSMorphologyPronoun (NSObjectFlag t);
	protected NSMorphologyPronoun (ObjCRuntime.NativeHandle handle);
	public NSMorphologyPronoun (string pronoun, NSMorphology morphology, NSMorphology dependentMorphology);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual NSMorphology DependentMorphology { get; }
	public virtual NSMorphology Morphology { get; }
	public virtual string Pronoun { get; }
	// methods
	public virtual NSObject Copy (NSZone zone);
	public virtual void EncodeTo (NSCoder encoder);
}

New Type: Foundation.NSTermOfAddress

public class NSTermOfAddress : Foundation.NSObject, INSCoding, INSCopying, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NSTermOfAddress (NSCoder coder);
	protected NSTermOfAddress (NSObjectFlag t);
	protected NSTermOfAddress (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public static NSTermOfAddress Feminine { get; }
	public virtual string LanguageIdentifier { get; }
	public static NSTermOfAddress Masculine { get; }
	public static NSTermOfAddress Neutral { get; }
	public virtual NSMorphologyPronoun[] Pronouns { get; }
	// methods
	public virtual NSObject Copy (NSZone zone);
	public virtual void EncodeTo (NSCoder encoder);
	public static NSTermOfAddress GetLocalized (string language, NSMorphologyPronoun[] pronouns);
}

New Type: Foundation.NSUrlSessionUploadTaskResumeRequest

public class NSUrlSessionUploadTaskResumeRequest {
	// constructors
	public NSUrlSessionUploadTaskResumeRequest (NSData arg1, NSUrlResponse arg2);
	// properties
	public NSData Arg1 { get; set; }
	public NSUrlResponse Arg2 { get; set; }
}

Namespace GameKit

Type Changed: GameKit.GKAchievement

Added methods:

public virtual UIKit.UIViewController ChallengeComposeControllerWithMessage (string message, GKPlayer[] players, GKChallengeComposeHandler2 completionHandler);
public virtual System.Threading.Tasks.Task<GKChallengeComposeControllerResult> ChallengeComposeControllerWithMessageAsync (string message, GKPlayer[] players);
public virtual System.Threading.Tasks.Task<GKChallengeComposeControllerResult> ChallengeComposeControllerWithMessageAsync (string message, GKPlayer[] players, out UIKit.UIViewController result);

Type Changed: GameKit.GKAchievementDescription

Added property:

public virtual Foundation.NSNumber RarityPercent { get; }

Type Changed: GameKit.GKLeaderboardEntry

Added methods:

public virtual UIKit.UIViewController ChallengeComposeControllerWithMessage (string message, GKPlayer[] players, GKChallengeComposeHandler2 completionHandler);
public virtual System.Threading.Tasks.Task<GKChallengeComposeControllerResult> ChallengeComposeControllerWithMessageAsync (string message, GKPlayer[] players);
public virtual System.Threading.Tasks.Task<GKChallengeComposeControllerResult> ChallengeComposeControllerWithMessageAsync (string message, GKPlayer[] players, out UIKit.UIViewController result);

Type Changed: GameKit.GKVoiceChat

Added property:

public virtual System.Action<GKPlayer,GameKit.GKVoiceChatPlayerState> PlayerVoiceChatStateDidChangeHandler { get; }

New Type: GameKit.GKChallengeComposeControllerResult

public class GKChallengeComposeControllerResult {
	// constructors
	public GKChallengeComposeControllerResult (UIKit.UIViewController composeController, bool issuedChallenge, GKPlayer[] sentPlayers);
	// properties
	public UIKit.UIViewController ComposeController { get; set; }
	public bool IssuedChallenge { get; set; }
	public GKPlayer[] SentPlayers { get; set; }
}

New Type: GameKit.GKChallengeComposeHandler2

public sealed delegate GKChallengeComposeHandler2 : System.MulticastDelegate {
	// constructors
	public GKChallengeComposeHandler2 (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (UIKit.UIViewController composeController, bool issuedChallenge, GKPlayer[] sentPlayers, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (UIKit.UIViewController composeController, bool issuedChallenge, GKPlayer[] sentPlayers);
}

Namespace Metal

Type Changed: Metal.IMTLDevice

Added properties:

public virtual ulong RecommendedMaxWorkingSetSize { get; }
public virtual bool SupportsBCTextureCompression { get; }

Type Changed: Metal.IMTLRenderPipelineState

Added properties:

public virtual MTLResourceId GpuResourceId { get; }
public virtual UIntPtr MaxTotalThreadgroupsPerMeshGrid { get; }
public virtual UIntPtr MeshThreadExecutionWidth { get; }

Type Changed: Metal.IMTLTexture

Added property:

public virtual UIntPtr FirstMipmapInTail { get; }

Type Changed: Metal.MTLArgumentEncoder_Extensions

Added methods:

public static void SetAccelerationStructure (this IMTLArgumentEncoder This, IMTLAccelerationStructure accelerationStructure, UIntPtr index);
public static void SetIntersectionFunctionTable (this IMTLArgumentEncoder This, IMTLIntersectionFunctionTable intersectionFunctionTable, UIntPtr index);
public static void SetIntersectionFunctionTables (this IMTLArgumentEncoder This, IMTLIntersectionFunctionTable[] intersectionFunctionTables, Foundation.NSRange range);
public static void SetVisibleFunctionTable (this IMTLArgumentEncoder This, IMTLVisibleFunctionTable visibleFunctionTable, UIntPtr index);
public static void SetVisibleFunctionTables (this IMTLArgumentEncoder This, IMTLVisibleFunctionTable[] visibleFunctionTables, Foundation.NSRange range);

Type Changed: Metal.MTLAttributeFormat

Added values:

FloatRG11B10 = 54,
FloatRGB9E5 = 55,

Type Changed: Metal.MTLBinaryArchiveError

Added value:

InternalError = 4,

Type Changed: Metal.MTLCompileOptions

Added properties:

public virtual bool AllowReferencingUndefinedSymbols { get; set; }
public virtual MTLCompileSymbolVisibility CompileSymbolVisibility { get; set; }
public virtual UIntPtr MaxTotalThreadsPerThreadgroup { get; set; }
public virtual MTLLibraryOptimizationLevel OptimizationLevel { get; set; }

Type Changed: Metal.MTLComputePipelineDescriptor

Added properties:

public virtual UIntPtr MaxCallStackDepth { get; set; }
public virtual bool SupportAddingBinaryFunctions { get; set; }

Type Changed: Metal.MTLComputePipelineReflection

Added property:

public virtual IMTLBinding[] Bindings { get; }

Type Changed: Metal.MTLDataType

Added values:

BFloat = 121,
BFloat2 = 122,
BFloat3 = 123,
BFloat4 = 124,

Type Changed: Metal.MTLDevice_Extensions

Added methods:

public static void ConvertSparsePixelRegions (this IMTLDevice This, IntPtr pixelRegions, IntPtr tileRegions, MTLSize tileSize, MTLSparseTextureRegionAlignmentMode mode, UIntPtr numRegions);
public static void ConvertSparseTileRegions (this IMTLDevice This, IntPtr tileRegions, IntPtr pixelRegions, MTLSize tileSize, UIntPtr numRegions);
public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLDevice This, MTLAccelerationStructureDescriptor descriptor);
public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLDevice This, UIntPtr size);
public static MTLAccelerationStructureSizes CreateAccelerationStructureSizes (this IMTLDevice This, MTLAccelerationStructureDescriptor descriptor);
public static IMTLArgumentEncoder CreateArgumentEncoder (this IMTLDevice This, IMTLBufferBinding bufferBinding);
public static IMTLRasterizationRateMap CreateRasterizationRateMap (this IMTLDevice This, MTLRasterizationRateMapDescriptor descriptor);
public static void CreateRenderPipelineState (this IMTLDevice This, MTLMeshRenderPipelineDescriptor descriptor, MTLPipelineOption options, MTLNewRenderPipelineStateWithReflectionCompletionHandler completionHandler);
public static IMTLRenderPipelineState CreateRenderPipelineState (this IMTLDevice This, MTLMeshRenderPipelineDescriptor descriptor, MTLPipelineOption options, out MTLRenderPipelineReflection reflection, out Foundation.NSError error);
public static MTLArchitecture GetArchitecture (this IMTLDevice This);
public static MTLSizeAndAlign GetHeapAccelerationStructureSizeAndAlign (this IMTLDevice This, MTLAccelerationStructureDescriptor descriptor);
public static MTLSizeAndAlign GetHeapAccelerationStructureSizeAndAlign (this IMTLDevice This, UIntPtr size);
public static MTLSize GetSparseTileSize (this IMTLDevice This, MTLTextureType textureType, MTLPixelFormat pixelFormat, UIntPtr sampleCount);
public static MTLSize GetSparseTileSize (this IMTLDevice This, MTLTextureType textureType, MTLPixelFormat pixelFormat, UIntPtr sampleCount, MTLSparsePageSize sparsePageSize);
public static UIntPtr GetSparseTileSizeInBytes (this IMTLDevice This);
public static UIntPtr GetSparseTileSizeInBytes (this IMTLDevice This, MTLSparsePageSize sparsePageSize);
public static bool GetSupports32BitFloatFiltering (this IMTLDevice This);
public static bool GetSupports32BitMsaa (this IMTLDevice This);
public static bool GetSupportsFunctionPointers (this IMTLDevice This);
public static bool GetSupportsFunctionPointersFromRender (this IMTLDevice This);
public static bool GetSupportsPrimitiveMotionBlur (this IMTLDevice This);
public static bool GetSupportsQueryTextureLod (this IMTLDevice This);
public static bool GetSupportsRaytracing (this IMTLDevice This);
public static bool GetSupportsRaytracingFromRender (this IMTLDevice This);
public static bool GetSupportsShaderBarycentricCoordinates (this IMTLDevice This);
public static bool SupportsRasterizationRateMap (this IMTLDevice This, UIntPtr layerCount);
public static bool SupportsVertexAmplification (this IMTLDevice This, UIntPtr count);

Type Changed: Metal.MTLFunctionOptions

Added value:

StoreFunctionInMetalScript = 2,

Type Changed: Metal.MTLFunctionType

Added values:

Mesh = 7,
Object = 8,

Type Changed: Metal.MTLGpuFamily

Added values:

Apple8 = 1008,
Apple9 = 1009,
Metal3 = 5001,

Type Changed: Metal.MTLHeapDescriptor

Added property:

public virtual MTLSparsePageSize SparsePageSize { get; set; }

Type Changed: Metal.MTLIndirectCommandBufferDescriptor

Added properties:

public virtual UIntPtr MaxKernelThreadgroupMemoryBindCount { get; set; }
public virtual UIntPtr MaxMeshBufferBindCount { get; set; }
public virtual UIntPtr MaxObjectBufferBindCount { get; set; }
public virtual UIntPtr MaxObjectThreadgroupMemoryBindCount { get; set; }
public virtual bool SupportDynamicAttributeStride { get; set; }
public virtual bool SupportRayTracing { get; set; }

Type Changed: Metal.MTLIndirectCommandType

Added values:

DrawMeshThreadgroups = 128,
DrawMeshThreads = 256,

Type Changed: Metal.MTLLanguageVersion

Added values:

v3_0 = 196608,
v3_1 = 196609,

Type Changed: Metal.MTLLibrary_Extensions

Added methods:

public static void CreateIntersectionFunction (this IMTLLibrary This, MTLIntersectionFunctionDescriptor descriptor, System.Action<IMTLFunction,Foundation.NSError> completionHandler);
public static IMTLFunction CreateIntersectionFunction (this IMTLLibrary This, MTLIntersectionFunctionDescriptor descriptor, out Foundation.NSError error);

Type Changed: Metal.MTLLinkedFunctions

Added property:

public virtual IMTLFunction[] BinaryFunctions { get; set; }

Type Changed: Metal.MTLRenderPassDescriptor

Added property:

public virtual IMTLRasterizationRateMap RasterizationRateMap { get; set; }

Type Changed: Metal.MTLRenderPipelineDescriptor

Added property:

public virtual UIntPtr MaxVertexAmplificationCount { get; set; }

Type Changed: Metal.MTLRenderPipelineReflection

Added properties:

public virtual IMTLBinding[] FragmentBindings { get; }
public virtual IMTLBinding[] MeshBindings { get; }
public virtual IMTLBinding[] ObjectBindings { get; }
public virtual IMTLBinding[] TileBindings { get; }
public virtual IMTLBinding[] VertexBindings { get; }

Type Changed: Metal.MTLRenderStages

Added values:

Mesh = 16,
Object = 8,

Type Changed: Metal.MTLSamplerDescriptor

Added property:

public virtual MTLSamplerBorderColor BorderColor { get; set; }

Type Changed: Metal.MTLTextureDescriptor

Added property:

public virtual MTLTextureCompressionType CompressionType { get; set; }

Type Changed: Metal.MTLTextureUsage

Added value:

ShaderAtomic = 32,

Type Changed: Metal.MTLTileRenderPipelineDescriptor

Added properties:

public virtual UIntPtr MaxCallStackDepth { get; set; }
public virtual bool SupportAddingBinaryFunctions { get; set; }

Type Changed: Metal.MTLVertexFormat

Added values:

FloatRG11B10 = 54,
FloatRgb9E5 = 55,

New Type: Metal.IMTLAccelerationStructure

public interface IMTLAccelerationStructure : IMTLResource, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual MTLResourceId GpuResourceId { get; }
	public virtual UIntPtr Size { get; }
}

New Type: Metal.IMTLAccelerationStructureCommandEncoder

public interface IMTLAccelerationStructureCommandEncoder : IMTLCommandEncoder, ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public abstract void BuildAccelerationStructure (IMTLAccelerationStructure accelerationStructure, MTLAccelerationStructureDescriptor descriptor, IMTLBuffer scratchBuffer, UIntPtr scratchBufferOffset);
	public abstract void CopyAccelerationStructure (IMTLAccelerationStructure sourceAccelerationStructure, IMTLAccelerationStructure destinationAccelerationStructure);
	public abstract void CopyAndCompactAccelerationStructure (IMTLAccelerationStructure sourceAccelerationStructure, IMTLAccelerationStructure destinationAccelerationStructure);
	public abstract void RefitAccelerationStructure (IMTLAccelerationStructure sourceAccelerationStructure, MTLAccelerationStructureDescriptor descriptor, IMTLAccelerationStructure destinationAccelerationStructure, IMTLBuffer scratchBuffer, UIntPtr scratchBufferOffset);
	public abstract void SampleCountersInBuffer (IMTLCounterSampleBuffer sampleBuffer, UIntPtr sampleIndex, bool barrier);
	public abstract void UpdateFence (IMTLFence fence);
	public abstract void UseHeap (IMTLHeap heap);
	public abstract void UseHeaps (IMTLHeap[] heaps, UIntPtr count);
	public abstract void UseResource (IMTLResource resource, MTLResourceUsage usage);
	public abstract void UseResources (IMTLResource[] resources, UIntPtr count, MTLResourceUsage usage);
	public abstract void WaitForFence (IMTLFence fence);
	public abstract void WriteCompactedAccelerationStructureSize (IMTLAccelerationStructure accelerationStructure, IMTLBuffer buffer, UIntPtr offset);
	public abstract void WriteCompactedAccelerationStructureSize (IMTLAccelerationStructure accelerationStructure, IMTLBuffer buffer, UIntPtr offset, MTLDataType sizeDataType);
}

New Type: Metal.IMTLBinding

public interface IMTLBinding : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual MTLBindingAccess Access { get; }
	public virtual bool Argument { get; }
	public virtual UIntPtr Index { get; }
	public virtual string Name { get; }
	public virtual MTLBindingType Type { get; }
	public virtual bool Used { get; }
}

New Type: Metal.IMTLBufferBinding

public interface IMTLBufferBinding : IMTLBinding, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual UIntPtr BufferAlignment { get; }
	public virtual UIntPtr BufferDataSize { get; }
	public virtual MTLDataType BufferDataType { get; }
	public virtual MTLPointerType BufferPointerType { get; }
	public virtual MTLStructType BufferStructType { get; }
}

New Type: Metal.IMTLFunctionHandle

public interface IMTLFunctionHandle : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual IMTLDevice Device { get; }
	public virtual MTLFunctionType FunctionType { get; }
	public virtual string Name { get; }
}

New Type: Metal.IMTLIntersectionFunctionTable

public interface IMTLIntersectionFunctionTable : IMTLResource, ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public abstract void SetBuffer (IMTLBuffer buffer, UIntPtr offset, UIntPtr index);
	public abstract void SetBuffers (IntPtr buffers, IntPtr offsets, Foundation.NSRange range);
	public abstract void SetFunction (IMTLFunctionHandle function, UIntPtr index);
	public abstract void SetFunctions (IMTLFunctionHandle[] functions, Foundation.NSRange range);
	public abstract void SetOpaqueTriangleIntersectionFunction (MTLIntersectionFunctionSignature signature, Foundation.NSRange range);
	public abstract void SetOpaqueTriangleIntersectionFunction (MTLIntersectionFunctionSignature signature, UIntPtr index);
	public abstract void SetVisibleFunctionTable (IMTLVisibleFunctionTable functionTable, UIntPtr bufferIndex);
	public abstract void SetVisibleFunctionTables (IMTLVisibleFunctionTable[] functionTables, Foundation.NSRange bufferRange);
}

New Type: Metal.IMTLObjectPayloadBinding

public interface IMTLObjectPayloadBinding : IMTLBinding, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual UIntPtr ObjectPayloadAlignment { get; }
	public virtual UIntPtr ObjectPayloadDataSize { get; }
}

New Type: Metal.IMTLRasterizationRateMap

public interface IMTLRasterizationRateMap : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual IMTLDevice Device { get; }
	public virtual string Label { get; }
	public virtual UIntPtr LayerCount { get; }
	public virtual MTLSizeAndAlign ParameterBufferSizeAndAlign { get; }
	public virtual MTLSize PhysicalGranularity { get; }
	public virtual MTLSize ScreenSize { get; }
	// methods
	public abstract void CopyParameterData (IMTLBuffer buffer, UIntPtr offset);
	public abstract MTLSize GetPhysicalSize (UIntPtr layerIndex);
	public abstract MTLCoordinate2D MapPhysicalToScreenCoordinates (MTLCoordinate2D physicalCoordinates, UIntPtr layerIndex);
	public abstract MTLCoordinate2D MapScreenToPhysicalCoordinates (MTLCoordinate2D screenCoordinates, UIntPtr layerIndex);
}

New Type: Metal.IMTLResourceStateCommandEncoder

public interface IMTLResourceStateCommandEncoder : IMTLCommandEncoder, ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public abstract void Update (IMTLFence fence);
	public abstract void Update (IMTLTexture texture, MTLSparseTextureMappingMode mode, IMTLBuffer indirectBuffer, UIntPtr indirectBufferOffset);
	public abstract void Update (IMTLTexture texture, MTLSparseTextureMappingMode mode, MTLRegion region, UIntPtr mipLevel, UIntPtr slice);
	public abstract void Update (IMTLTexture texture, MTLSparseTextureMappingMode mode, IntPtr regions, IntPtr mipLevels, IntPtr slices, UIntPtr numRegions);
	public abstract void Wait (IMTLFence fence);
}

New Type: Metal.IMTLTextureBinding

public interface IMTLTextureBinding : IMTLBinding, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual UIntPtr ArrayLength { get; }
	public virtual bool DepthTexture { get; }
	public virtual MTLDataType TextureDataType { get; }
	public virtual MTLTextureType TextureType { get; }
}

New Type: Metal.IMTLThreadgroupBinding

public interface IMTLThreadgroupBinding : IMTLBinding, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual UIntPtr ThreadgroupMemoryAlignment { get; }
	public virtual UIntPtr ThreadgroupMemoryDataSize { get; }
}

New Type: Metal.IMTLVisibleFunctionTable

public interface IMTLVisibleFunctionTable : IMTLResource, ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public abstract void SetFunction (IMTLFunctionHandle function, UIntPtr index);
	public abstract void SetFunctions (IMTLFunctionHandle[] functions, Foundation.NSRange range);
}

New Type: Metal.MTLAccelerationStructureBoundingBoxGeometryDescriptor

public class MTLAccelerationStructureBoundingBoxGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor {
	// constructors
	protected MTLAccelerationStructureBoundingBoxGeometryDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructureBoundingBoxGeometryDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual IMTLBuffer BoundingBoxBuffer { get; set; }
	public virtual UIntPtr BoundingBoxBufferOffset { get; set; }
	public virtual UIntPtr BoundingBoxCount { get; set; }
	public virtual UIntPtr BoundingBoxStride { get; set; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public static MTLAccelerationStructureBoundingBoxGeometryDescriptor Create ();
}

New Type: Metal.MTLAccelerationStructureCommandEncoder_Extensions

public static class MTLAccelerationStructureCommandEncoder_Extensions {
	// methods
	public static void RefitAccelerationStructure (this IMTLAccelerationStructureCommandEncoder This, IMTLAccelerationStructure sourceAccelerationStructure, MTLAccelerationStructureDescriptor descriptor, IMTLAccelerationStructure destinationAccelerationStructure, IMTLBuffer scratchBuffer, UIntPtr scratchBufferOffset, MTLAccelerationStructureRefitOptions options);
}

New Type: Metal.MTLAccelerationStructureCurveGeometryDescriptor

public class MTLAccelerationStructureCurveGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor {
	// constructors
	public MTLAccelerationStructureCurveGeometryDescriptor ();
	protected MTLAccelerationStructureCurveGeometryDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructureCurveGeometryDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual IMTLBuffer ControlPointBuffer { get; set; }
	public virtual UIntPtr ControlPointBufferOffset { get; set; }
	public virtual UIntPtr ControlPointCount { get; set; }
	public virtual MTLAttributeFormat ControlPointFormat { get; set; }
	public virtual UIntPtr ControlPointStride { get; set; }
	public virtual MTLCurveBasis CurveBasis { get; set; }
	public virtual MTLCurveEndCaps CurveEndCaps { get; set; }
	public virtual MTLCurveType CurveType { get; set; }
	public virtual IMTLBuffer IndexBuffer { get; set; }
	public virtual UIntPtr IndexBufferOffset { get; set; }
	public virtual MTLIndexType IndexType { get; set; }
	public virtual IMTLBuffer RadiusBuffer { get; set; }
	public virtual UIntPtr RadiusBufferOffset { get; set; }
	public virtual MTLAttributeFormat RadiusFormat { get; set; }
	public virtual UIntPtr RadiusStride { get; set; }
	public virtual UIntPtr SegmentControlPointCount { get; set; }
	public virtual UIntPtr SegmentCount { get; set; }
	// methods
	public static MTLAccelerationStructureCurveGeometryDescriptor GetDescriptor ();
}

New Type: Metal.MTLAccelerationStructureDescriptor

public class MTLAccelerationStructureDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLAccelerationStructureDescriptor ();
	protected MTLAccelerationStructureDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructureDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual MTLAccelerationStructureUsage Usage { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLAccelerationStructureGeometryDescriptor

public class MTLAccelerationStructureGeometryDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLAccelerationStructureGeometryDescriptor ();
	protected MTLAccelerationStructureGeometryDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructureGeometryDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual bool AllowDuplicateIntersectionFunctionInvocation { get; set; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual UIntPtr IntersectionFunctionTableOffset { get; set; }
	public virtual string Label { get; set; }
	public virtual bool Opaque { get; set; }
	public virtual IMTLBuffer PrimitiveDataBuffer { get; set; }
	public virtual UIntPtr PrimitiveDataBufferOffset { get; set; }
	public virtual UIntPtr PrimitiveDataElementSize { get; set; }
	public virtual UIntPtr PrimitiveDataStride { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLAccelerationStructureInstanceDescriptorType

[Serializable]
public enum MTLAccelerationStructureInstanceDescriptorType {
	Default = 0,
	Indirect = 3,
	IndirectMotion = 4,
	Motion = 2,
	UserID = 1,
}

New Type: Metal.MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor

public class MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor {
	// constructors
	public MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor ();
	protected MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual MTLMotionKeyframeData[] BoundingBoxBuffers { get; set; }
	public virtual UIntPtr BoundingBoxCount { get; set; }
	public virtual UIntPtr BoundingBoxStride { get; set; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public static MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor Create ();
}

New Type: Metal.MTLAccelerationStructureMotionCurveGeometryDescriptor

public class MTLAccelerationStructureMotionCurveGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor {
	// constructors
	public MTLAccelerationStructureMotionCurveGeometryDescriptor ();
	protected MTLAccelerationStructureMotionCurveGeometryDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructureMotionCurveGeometryDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual MTLMotionKeyframeData[] ControlPointBuffers { get; set; }
	public virtual UIntPtr ControlPointCount { get; set; }
	public virtual MTLAttributeFormat ControlPointFormat { get; set; }
	public virtual UIntPtr ControlPointStride { get; set; }
	public virtual MTLCurveBasis CurveBasis { get; set; }
	public virtual MTLCurveEndCaps CurveEndCaps { get; set; }
	public virtual MTLCurveType CurveType { get; set; }
	public virtual IMTLBuffer IndexBuffer { get; set; }
	public virtual UIntPtr IndexBufferOffset { get; set; }
	public virtual MTLIndexType IndexType { get; set; }
	public virtual MTLMotionKeyframeData[] RadiusBuffers { get; set; }
	public virtual MTLAttributeFormat RadiusFormat { get; set; }
	public virtual UIntPtr RadiusStride { get; set; }
	public virtual UIntPtr SegmentControlPointCount { get; set; }
	public virtual UIntPtr SegmentCount { get; set; }
	// methods
	public static MTLAccelerationStructureMotionCurveGeometryDescriptor GetDescriptor ();
}

New Type: Metal.MTLAccelerationStructureMotionTriangleGeometryDescriptor

public class MTLAccelerationStructureMotionTriangleGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor {
	// constructors
	public MTLAccelerationStructureMotionTriangleGeometryDescriptor ();
	protected MTLAccelerationStructureMotionTriangleGeometryDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructureMotionTriangleGeometryDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual IMTLBuffer IndexBuffer { get; set; }
	public virtual UIntPtr IndexBufferOffset { get; set; }
	public virtual MTLIndexType IndexType { get; set; }
	public virtual IMTLBuffer TransformationMatrixBuffer { get; set; }
	public virtual UIntPtr TransformationMatrixBufferOffset { get; set; }
	public virtual UIntPtr TriangleCount { get; set; }
	public virtual MTLMotionKeyframeData[] VertexBuffers { get; set; }
	public virtual MTLAttributeFormat VertexFormat { get; set; }
	public virtual UIntPtr VertexStride { get; set; }
	// methods
	public static MTLAccelerationStructureMotionTriangleGeometryDescriptor Create ();
}

New Type: Metal.MTLAccelerationStructurePassDescriptor

public class MTLAccelerationStructurePassDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLAccelerationStructurePassDescriptor ();
	protected MTLAccelerationStructurePassDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructurePassDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public static MTLAccelerationStructurePassDescriptor AccelerationStructurePassDescriptor { get; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray SampleBufferAttachments { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLAccelerationStructurePassSampleBufferAttachmentDescriptor

public class MTLAccelerationStructurePassSampleBufferAttachmentDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLAccelerationStructurePassSampleBufferAttachmentDescriptor ();
	protected MTLAccelerationStructurePassSampleBufferAttachmentDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructurePassSampleBufferAttachmentDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual UIntPtr EndOfEncoderSampleIndex { get; set; }
	public virtual IMTLCounterSampleBuffer SampleBuffer { get; set; }
	public virtual UIntPtr StartOfEncoderSampleIndex { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray

public class MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray : Foundation.NSObject {
	// constructors
	public MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray ();
	protected MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public virtual MTLAccelerationStructurePassSampleBufferAttachmentDescriptor GetObject (UIntPtr attachmentIndex);
	public virtual void SetObject (MTLAccelerationStructurePassSampleBufferAttachmentDescriptor attachment, UIntPtr attachmentIndex);
}

New Type: Metal.MTLAccelerationStructureRefitOptions

[Serializable]
[Flags]
public enum MTLAccelerationStructureRefitOptions {
	PerPrimitiveData = 2,
	VertexData = 1,
}

New Type: Metal.MTLAccelerationStructureSizes

public struct MTLAccelerationStructureSizes {
	// fields
	public UIntPtr AccelerationStructureSize;
	public UIntPtr BuildScratchBufferSize;
	public UIntPtr RefitScratchBufferSize;
}

New Type: Metal.MTLAccelerationStructureTriangleGeometryDescriptor

public class MTLAccelerationStructureTriangleGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor {
	// constructors
	public MTLAccelerationStructureTriangleGeometryDescriptor ();
	protected MTLAccelerationStructureTriangleGeometryDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructureTriangleGeometryDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual IMTLBuffer IndexBuffer { get; set; }
	public virtual UIntPtr IndexBufferOffset { get; set; }
	public virtual MTLIndexType IndexType { get; set; }
	public virtual IMTLBuffer TransformationMatrixBuffer { get; set; }
	public virtual UIntPtr TransformationMatrixBufferOffset { get; set; }
	public virtual UIntPtr TriangleCount { get; set; }
	public virtual IMTLBuffer VertexBuffer { get; set; }
	public virtual UIntPtr VertexBufferOffset { get; set; }
	public virtual MTLAttributeFormat VertexFormat { get; set; }
	public virtual UIntPtr VertexStride { get; set; }
	// methods
	public static MTLAccelerationStructureTriangleGeometryDescriptor Create ();
}

New Type: Metal.MTLAccelerationStructureUsage

[Serializable]
[Flags]
public enum MTLAccelerationStructureUsage {
	ExtendedLimits = 4,
	None = 0,
	PreferFastBuild = 2,
	Refit = 1,
}

New Type: Metal.MTLArchitecture

public class MTLArchitecture : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLArchitecture ();
	protected MTLArchitecture (Foundation.NSObjectFlag t);
	protected MTLArchitecture (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual string Name { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLBindingAccess

[Serializable]
public enum MTLBindingAccess {
	ReadOnly = 0,
	ReadWrite = 1,
	WriteOnly = 2,
}

New Type: Metal.MTLBindingType

[Serializable]
public enum MTLBindingType {
	Buffer = 0,
	Imageblock = 17,
	ImageblockData = 16,
	InstanceAccelerationStructure = 26,
	IntersectionFunctionTable = 27,
	ObjectPayload = 34,
	PrimitiveAccelerationStructure = 25,
	Sampler = 3,
	Texture = 2,
	ThreadgroupMemory = 1,
	VisibleFunctionTable = 24,
}

New Type: Metal.MTLBlitCommandEncoder_Extensions

public static class MTLBlitCommandEncoder_Extensions {
	// methods
	public static void GetTextureAccessCounters (this IMTLBlitCommandEncoder This, IMTLTexture texture, MTLRegion region, UIntPtr mipLevel, UIntPtr slice, bool resetCounters, IMTLBuffer countersBuffer, UIntPtr countersBufferOffset);
	public static void ResetTextureAccessCounters (this IMTLBlitCommandEncoder This, IMTLTexture texture, MTLRegion region, UIntPtr mipLevel, UIntPtr slice);
}

New Type: Metal.MTLBuffer_Extensions

public static class MTLBuffer_Extensions {
	// methods
	public static ulong GetGpuAddress (this IMTLBuffer This);
}

New Type: Metal.MTLCommandBuffer_Extensions

public static class MTLCommandBuffer_Extensions {
	// methods
	public static IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (this IMTLCommandBuffer This);
	public static IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (this IMTLCommandBuffer This, MTLAccelerationStructurePassDescriptor descriptor);
	public static IMTLResourceStateCommandEncoder CreateResourceStateCommandEncoder (this IMTLCommandBuffer This, MTLResourceStatePassDescriptor resourceStatePassDescriptor);
	public static IMTLResourceStateCommandEncoder GetResourceStateCommandEncoder (this IMTLCommandBuffer This);
}

New Type: Metal.MTLCompileSymbolVisibility

[Serializable]
public enum MTLCompileSymbolVisibility {
	Default = 0,
	Hidden = 1,
}

New Type: Metal.MTLComputeCommandEncoder_Extensions

public static class MTLComputeCommandEncoder_Extensions {
	// methods
	public static void SetAccelerationStructure (this IMTLComputeCommandEncoder This, IMTLAccelerationStructure accelerationStructure, UIntPtr bufferIndex);
	public static void SetBuffer (this IMTLComputeCommandEncoder This, IMTLBuffer buffer, UIntPtr offset, UIntPtr stride, UIntPtr index);
	public static void SetBufferOffset (this IMTLComputeCommandEncoder This, UIntPtr offset, UIntPtr stride, UIntPtr index);
	public static void SetBuffers (this IMTLComputeCommandEncoder This, IntPtr buffers, IntPtr offsets, IntPtr strides, Foundation.NSRange range);
	public static void SetBytes (this IMTLComputeCommandEncoder This, IntPtr bytes, UIntPtr length, UIntPtr stride, UIntPtr index);
	public static void SetIntersectionFunctionTable (this IMTLComputeCommandEncoder This, IMTLIntersectionFunctionTable intersectionFunctionTable, UIntPtr bufferIndex);
	public static void SetIntersectionFunctionTables (this IMTLComputeCommandEncoder This, IMTLIntersectionFunctionTable[] intersectionFunctionTables, Foundation.NSRange range);
	public static void SetVisibleFunctionTable (this IMTLComputeCommandEncoder This, IMTLVisibleFunctionTable visibleFunctionTable, UIntPtr bufferIndex);
	public static void SetVisibleFunctionTables (this IMTLComputeCommandEncoder This, IMTLVisibleFunctionTable[] visibleFunctionTables, Foundation.NSRange range);
}

New Type: Metal.MTLComputePipelineState_Extensions

public static class MTLComputePipelineState_Extensions {
	// methods
	public static IMTLComputePipelineState CreateComputePipelineState (this IMTLComputePipelineState This, IMTLFunction[] functions, out Foundation.NSError error);
	public static IMTLFunctionHandle CreateFunctionHandle (this IMTLComputePipelineState This, IMTLFunction function);
	public static IMTLIntersectionFunctionTable CreateIntersectionFunctionTable (this IMTLComputePipelineState This, MTLIntersectionFunctionTableDescriptor descriptor);
	public static IMTLVisibleFunctionTable CreateVisibleFunctionTable (this IMTLComputePipelineState This, MTLVisibleFunctionTableDescriptor descriptor);
	public static MTLResourceId GetGpuResourceId (this IMTLComputePipelineState This);
}

New Type: Metal.MTLCoordinate2D

public struct MTLCoordinate2D {
	// fields
	public float X;
	public float Y;
}

New Type: Metal.MTLCurveBasis

[Serializable]
public enum MTLCurveBasis {
	BSpline = 0,
	Bezier = 3,
	CatmullRom = 1,
	Linear = 2,
}

New Type: Metal.MTLCurveEndCaps

[Serializable]
public enum MTLCurveEndCaps {
	Disk = 1,
	None = 0,
	Sphere = 2,
}

New Type: Metal.MTLCurveType

[Serializable]
public enum MTLCurveType {
	Flat = 1,
	Round = 0,
}

New Type: Metal.MTLFunction_Extensions

public static class MTLFunction_Extensions {
	// methods
	public static MTLFunctionOptions GetOptions (this IMTLFunction This);
}

New Type: Metal.MTLHeap_Extensions

public static class MTLHeap_Extensions {
	// methods
	public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLHeap This, MTLAccelerationStructureDescriptor descriptor);
	public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLHeap This, UIntPtr size);
	public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLHeap This, MTLAccelerationStructureDescriptor descriptor, UIntPtr offset);
	public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLHeap This, UIntPtr size, UIntPtr offset);
}

New Type: Metal.MTLIOCommandQueueType

[Serializable]
public enum MTLIOCommandQueueType {
	Concurrent = 0,
	Serial = 1,
}

New Type: Metal.MTLIOCompressionContext

public class MTLIOCompressionContext : ObjCRuntime.DisposableObject {
	// properties
	public static IntPtr DefaultChunkSize { get; }
	// methods
	public void AppendData (Foundation.NSData data);
	public void AppendData (byte[] data);
	public void AppendData (System.ReadOnlySpan<byte> data);
	public static MTLIOCompressionContext Create (string path, MTLIOCompressionMethod type, long chunkSize);
	protected override void Dispose (bool disposing);
	public MTLIOCompressionStatus FlushAndDestroy ();
}

New Type: Metal.MTLIOCompressionMethod

[Serializable]
public enum MTLIOCompressionMethod {
	Lz4 = 2,
	LzBitmap = 4,
	Lzfse = 1,
	Lzma = 3,
	Zlib = 0,
}

New Type: Metal.MTLIOCompressionStatus

[Serializable]
public enum MTLIOCompressionStatus {
	Complete = 0,
	Error = 1,
}

New Type: Metal.MTLIOError

[Serializable]
public enum MTLIOError {
	Internal = 2,
	UrlInvalid = 1,
}

New Type: Metal.MTLIOErrorExtensions

public static class MTLIOErrorExtensions {
	// methods
	public static Foundation.NSString GetDomain (this MTLIOError self);
}

New Type: Metal.MTLIOPriority

[Serializable]
public enum MTLIOPriority {
	High = 0,
	Low = 2,
	Normal = 1,
}

New Type: Metal.MTLIOStatus

[Serializable]
public enum MTLIOStatus {
	Cancelled = 1,
	Complete = 3,
	Error = 2,
	Pending = 0,
}

New Type: Metal.MTLIndirectCommandBuffer_Extensions

public static class MTLIndirectCommandBuffer_Extensions {
	// methods
	public static MTLResourceId GetGpuResourceID (this IMTLIndirectCommandBuffer This);
}

New Type: Metal.MTLIndirectComputeCommand_Extensions

public static class MTLIndirectComputeCommand_Extensions {
	// methods
	public static void SetKernelBuffer (this IMTLIndirectComputeCommand This, IMTLBuffer buffer, UIntPtr offset, UIntPtr stride, UIntPtr index);
}

New Type: Metal.MTLIndirectInstanceAccelerationStructureDescriptor

public class MTLIndirectInstanceAccelerationStructureDescriptor : Metal.MTLAccelerationStructureDescriptor {
	// constructors
	public MTLIndirectInstanceAccelerationStructureDescriptor ();
	protected MTLIndirectInstanceAccelerationStructureDescriptor (Foundation.NSObjectFlag t);
	protected MTLIndirectInstanceAccelerationStructureDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual IMTLBuffer InstanceCountBuffer { get; set; }
	public virtual UIntPtr InstanceCountBufferOffset { get; set; }
	public virtual IMTLBuffer InstanceDescriptorBuffer { get; set; }
	public virtual UIntPtr InstanceDescriptorBufferOffset { get; set; }
	public virtual UIntPtr InstanceDescriptorStride { get; set; }
	public virtual MTLAccelerationStructureInstanceDescriptorType InstanceDescriptorType { get; set; }
	public virtual UIntPtr MaxInstanceCount { get; set; }
	public virtual UIntPtr MaxMotionTransformCount { get; set; }
	public virtual IMTLBuffer MotionTransformBuffer { get; set; }
	public virtual UIntPtr MotionTransformBufferOffset { get; set; }
	public virtual IMTLBuffer MotionTransformCountBuffer { get; set; }
	public virtual UIntPtr MotionTransformCountBufferOffset { get; set; }
	// methods
	public static MTLIndirectInstanceAccelerationStructureDescriptor GetDescriptor ();
}

New Type: Metal.MTLIndirectRenderCommand_Extensions

public static class MTLIndirectRenderCommand_Extensions {
	// methods
	public static void SetVertexBuffer (this IMTLIndirectRenderCommand This, IMTLBuffer buffer, UIntPtr offset, UIntPtr stride, UIntPtr index);
}

New Type: Metal.MTLInstanceAccelerationStructureDescriptor

public class MTLInstanceAccelerationStructureDescriptor : Metal.MTLAccelerationStructureDescriptor {
	// constructors
	protected MTLInstanceAccelerationStructureDescriptor (Foundation.NSObjectFlag t);
	protected MTLInstanceAccelerationStructureDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual UIntPtr InstanceCount { get; set; }
	public virtual IMTLBuffer InstanceDescriptorBuffer { get; set; }
	public virtual UIntPtr InstanceDescriptorBufferOffset { get; set; }
	public virtual UIntPtr InstanceDescriptorStride { get; set; }
	public virtual MTLAccelerationStructureInstanceDescriptorType InstanceDescriptorType { get; set; }
	public virtual IMTLAccelerationStructure[] InstancedAccelerationStructures { get; set; }
	public virtual IMTLBuffer MotionTransformBuffer { get; set; }
	public virtual UIntPtr MotionTransformBufferOffset { get; set; }
	public virtual UIntPtr MotionTransformCount { get; set; }
	// methods
	public static MTLInstanceAccelerationStructureDescriptor Create ();
}

New Type: Metal.MTLIntersectionFunctionDescriptor

public class MTLIntersectionFunctionDescriptor : Metal.MTLFunctionDescriptor, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected MTLIntersectionFunctionDescriptor (Foundation.NSObjectFlag t);
	protected MTLIntersectionFunctionDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLIntersectionFunctionSignature

[Serializable]
[Flags]
public enum MTLIntersectionFunctionSignature {
	CurveData = 128,
	ExtendedLimits = 32,
	InstanceMotion = 8,
	Instancing = 1,
	MaxLevels = 64,
	None = 0,
	PrimitiveMotion = 16,
	TriangleData = 2,
	WorldSpaceData = 4,
}

New Type: Metal.MTLIntersectionFunctionTableDescriptor

public class MTLIntersectionFunctionTableDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected MTLIntersectionFunctionTableDescriptor (Foundation.NSObjectFlag t);
	protected MTLIntersectionFunctionTableDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual UIntPtr FunctionCount { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static MTLIntersectionFunctionTableDescriptor Create ();
}

New Type: Metal.MTLIntersectionFunctionTable_Extensions

public static class MTLIntersectionFunctionTable_Extensions {
	// methods
	public static MTLResourceId GetGpuResourceId (this IMTLIntersectionFunctionTable This);
	public static void SetOpaqueCurveIntersectionFunction (this IMTLIntersectionFunctionTable This, MTLIntersectionFunctionSignature signature, Foundation.NSRange range);
	public static void SetOpaqueCurveIntersectionFunction (this IMTLIntersectionFunctionTable This, MTLIntersectionFunctionSignature signature, UIntPtr index);
}

New Type: Metal.MTLLibraryOptimizationLevel

[Serializable]
public enum MTLLibraryOptimizationLevel {
	Default = 0,
	Size = 1,
}

New Type: Metal.MTLMeshRenderPipelineDescriptor

public class MTLMeshRenderPipelineDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLMeshRenderPipelineDescriptor ();
	protected MTLMeshRenderPipelineDescriptor (Foundation.NSObjectFlag t);
	protected MTLMeshRenderPipelineDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual bool AlphaToCoverageEnabled { get; set; }
	public virtual bool AlphaToOneEnabled { get; set; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual MTLRenderPipelineColorAttachmentDescriptorArray ColorAttachments { get; }
	public virtual MTLPixelFormat DepthAttachmentPixelFormat { get; set; }
	public virtual MTLPipelineBufferDescriptorArray FragmentBuffers { get; }
	public virtual IMTLFunction FragmentFunction { get; set; }
	public virtual MTLLinkedFunctions FragmentLinkedFunctions { get; set; }
	public virtual string Label { get; set; }
	public virtual UIntPtr MaxTotalThreadgroupsPerMeshGrid { get; set; }
	public virtual UIntPtr MaxTotalThreadsPerMeshThreadgroup { get; set; }
	public virtual UIntPtr MaxTotalThreadsPerObjectThreadgroup { get; set; }
	public virtual UIntPtr MaxVertexAmplificationCount { get; set; }
	public virtual MTLPipelineBufferDescriptorArray MeshBuffers { get; }
	public virtual IMTLFunction MeshFunction { get; set; }
	public virtual MTLLinkedFunctions MeshLinkedFunctions { get; set; }
	public virtual bool MeshThreadgroupSizeIsMultipleOfThreadExecutionWidth { get; set; }
	public virtual MTLPipelineBufferDescriptorArray ObjectBuffers { get; }
	public virtual IMTLFunction ObjectFunction { get; set; }
	public virtual MTLLinkedFunctions ObjectLinkedFunctions { get; set; }
	public virtual bool ObjectThreadgroupSizeIsMultipleOfThreadExecutionWidth { get; set; }
	public virtual UIntPtr PayloadMemoryLength { get; set; }
	public virtual UIntPtr RasterSampleCount { get; set; }
	public virtual bool RasterizationEnabled { get; set; }
	public virtual MTLPixelFormat StencilAttachmentPixelFormat { get; set; }
	public virtual bool SupportIndirectCommandBuffers { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void Reset ();
}

New Type: Metal.MTLMotionBorderMode

[Serializable]
public enum MTLMotionBorderMode {
	Clamp = 0,
	Vanish = 1,
}

New Type: Metal.MTLMotionKeyframeData

public class MTLMotionKeyframeData : Foundation.NSObject {
	// constructors
	public MTLMotionKeyframeData ();
	protected MTLMotionKeyframeData (Foundation.NSObjectFlag t);
	protected MTLMotionKeyframeData (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual IMTLBuffer Buffer { get; set; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual UIntPtr Offset { get; set; }
	// methods
	public static MTLMotionKeyframeData Create ();
}

New Type: Metal.MTLPrimitiveAccelerationStructureDescriptor

public class MTLPrimitiveAccelerationStructureDescriptor : Metal.MTLAccelerationStructureDescriptor {
	// constructors
	protected MTLPrimitiveAccelerationStructureDescriptor (Foundation.NSObjectFlag t);
	protected MTLPrimitiveAccelerationStructureDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual MTLAccelerationStructureGeometryDescriptor[] GeometryDescriptors { get; set; }
	public virtual MTLMotionBorderMode MotionEndBorderMode { get; set; }
	public virtual float MotionEndTime { get; set; }
	public virtual UIntPtr MotionKeyframeCount { get; set; }
	public virtual MTLMotionBorderMode MotionStartBorderMode { get; set; }
	public virtual float MotionStartTime { get; set; }
	// methods
	public static MTLPrimitiveAccelerationStructureDescriptor Create ();
}

New Type: Metal.MTLRasterizationRateLayerArray

public class MTLRasterizationRateLayerArray : Foundation.NSObject {
	// constructors
	public MTLRasterizationRateLayerArray ();
	protected MTLRasterizationRateLayerArray (Foundation.NSObjectFlag t);
	protected MTLRasterizationRateLayerArray (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public virtual MTLRasterizationRateLayerDescriptor GetObject (UIntPtr layerIndex);
	public virtual void SetObject (MTLRasterizationRateLayerDescriptor layer, UIntPtr layerIndex);
}

New Type: Metal.MTLRasterizationRateLayerDescriptor

public class MTLRasterizationRateLayerDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected MTLRasterizationRateLayerDescriptor (Foundation.NSObjectFlag t);
	public MTLRasterizationRateLayerDescriptor (MTLSize sampleCount);
	protected MTLRasterizationRateLayerDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual MTLRasterizationRateSampleArray Horizontal { get; }
	public virtual MTLSize MaxSampleCount { get; }
	public virtual MTLSize SampleCount { get; set; }
	public virtual MTLRasterizationRateSampleArray Vertical { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLRasterizationRateMapDescriptor

public class MTLRasterizationRateMapDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLRasterizationRateMapDescriptor ();
	protected MTLRasterizationRateMapDescriptor (Foundation.NSObjectFlag t);
	protected MTLRasterizationRateMapDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual string Label { get; set; }
	public virtual UIntPtr LayerCount { get; }
	public virtual MTLRasterizationRateLayerArray Layers { get; }
	public virtual MTLSize ScreenSize { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static MTLRasterizationRateMapDescriptor Create (MTLSize screenSize);
	public static MTLRasterizationRateMapDescriptor Create (MTLSize screenSize, MTLRasterizationRateLayerDescriptor layer);
	public static MTLRasterizationRateMapDescriptor Create (MTLSize screenSize, UIntPtr layerCount, out MTLRasterizationRateLayerDescriptor layers);
	public virtual MTLRasterizationRateLayerDescriptor GetLayer (UIntPtr layerIndex);
	public virtual void SetLayer (MTLRasterizationRateLayerDescriptor layer, UIntPtr layerIndex);
}

New Type: Metal.MTLRasterizationRateSampleArray

public class MTLRasterizationRateSampleArray : Foundation.NSObject {
	// constructors
	public MTLRasterizationRateSampleArray ();
	protected MTLRasterizationRateSampleArray (Foundation.NSObjectFlag t);
	protected MTLRasterizationRateSampleArray (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public virtual Foundation.NSNumber GetObject (UIntPtr index);
	public virtual void SetObject (Foundation.NSNumber value, UIntPtr index);
}

New Type: Metal.MTLRenderCommandEncoder_Extensions

public static class MTLRenderCommandEncoder_Extensions {
	// methods
	public static void DrawMeshThreadgroups (this IMTLRenderCommandEncoder This, MTLSize threadgroupsPerGrid, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup);
	public static void DrawMeshThreadgroups (this IMTLRenderCommandEncoder This, IMTLBuffer indirectBuffer, UIntPtr indirectBufferOffset, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup);
	public static void DrawMeshThreads (this IMTLRenderCommandEncoder This, MTLSize threadsPerGrid, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup);
	public static void MemoryBarrier (this IMTLRenderCommandEncoder This, MTLBarrierScope scope, MTLRenderStages after, MTLRenderStages before);
	public static void MemoryBarrier (this IMTLRenderCommandEncoder This, IMTLResource[] resources, UIntPtr count, MTLRenderStages after, MTLRenderStages before);
	public static void SetFragmentAccelerationStructure (this IMTLRenderCommandEncoder This, IMTLAccelerationStructure accelerationStructure, UIntPtr bufferIndex);
	public static void SetFragmentIntersectionFunctionTable (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable intersectionFunctionTable, UIntPtr bufferIndex);
	public static void SetFragmentIntersectionFunctionTables (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable[] intersectionFunctionTable, Foundation.NSRange range);
	public static void SetFragmentVisibleFunctionTable (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable functionTable, UIntPtr bufferIndex);
	public static void SetFragmentVisibleFunctionTables (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable[] functionTables, Foundation.NSRange range);
	public static void SetMeshBuffer (this IMTLRenderCommandEncoder This, IMTLBuffer buffer, UIntPtr offset, UIntPtr index);
	public static void SetMeshBufferOffset (this IMTLRenderCommandEncoder This, UIntPtr offset, UIntPtr index);
	public static void SetMeshBuffers (this IMTLRenderCommandEncoder This, IntPtr buffers, IntPtr offsets, Foundation.NSRange range);
	public static void SetMeshBytes (this IMTLRenderCommandEncoder This, IntPtr bytes, UIntPtr length, UIntPtr index);
	public static void SetMeshSamplerState (this IMTLRenderCommandEncoder This, IMTLSamplerState sampler, UIntPtr index);
	public static void SetMeshSamplerState (this IMTLRenderCommandEncoder This, IMTLSamplerState sampler, float lodMinClamp, float lodMaxClamp, UIntPtr index);
	public static void SetMeshSamplerStates (this IMTLRenderCommandEncoder This, IntPtr samplers, Foundation.NSRange range);
	public static void SetMeshSamplerStates (this IMTLRenderCommandEncoder This, IntPtr samplers, IntPtr lodMinClamps, IntPtr lodMaxClamps, Foundation.NSRange range);
	public static void SetMeshTexture (this IMTLRenderCommandEncoder This, IMTLTexture texture, UIntPtr index);
	public static void SetMeshTextures (this IMTLRenderCommandEncoder This, IntPtr textures, Foundation.NSRange range);
	public static void SetObjectBuffer (this IMTLRenderCommandEncoder This, IMTLBuffer buffer, UIntPtr offset, UIntPtr index);
	public static void SetObjectBufferOffset (this IMTLRenderCommandEncoder This, UIntPtr offset, UIntPtr index);
	public static void SetObjectBuffers (this IMTLRenderCommandEncoder This, IntPtr buffers, IntPtr offsets, Foundation.NSRange range);
	public static void SetObjectBytes (this IMTLRenderCommandEncoder This, IntPtr bytes, UIntPtr length, UIntPtr index);
	public static void SetObjectSamplerState (this IMTLRenderCommandEncoder This, IMTLSamplerState sampler, UIntPtr index);
	public static void SetObjectSamplerState (this IMTLRenderCommandEncoder This, IMTLSamplerState sampler, float lodMinClamp, float lodMaxClamp, UIntPtr index);
	public static void SetObjectSamplerStates (this IMTLRenderCommandEncoder This, IntPtr samplers, Foundation.NSRange range);
	public static void SetObjectSamplerStates (this IMTLRenderCommandEncoder This, IntPtr samplers, IntPtr lodMinClamps, IntPtr lodMaxClamps, Foundation.NSRange range);
	public static void SetObjectTexture (this IMTLRenderCommandEncoder This, IMTLTexture texture, UIntPtr index);
	public static void SetObjectTextures (this IMTLRenderCommandEncoder This, IntPtr textures, Foundation.NSRange range);
	public static void SetObjectThreadgroupMemoryLength (this IMTLRenderCommandEncoder This, UIntPtr length, UIntPtr index);
	public static void SetTileAccelerationStructure (this IMTLRenderCommandEncoder This, IMTLAccelerationStructure accelerationStructure, UIntPtr bufferIndex);
	public static void SetTileIntersectionFunctionTable (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable intersectionFunctionTable, UIntPtr bufferIndex);
	public static void SetTileIntersectionFunctionTables (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable[] intersectionFunctionTable, Foundation.NSRange range);
	public static void SetTileVisibleFunctionTable (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable functionTable, UIntPtr bufferIndex);
	public static void SetTileVisibleFunctionTables (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable[] functionTables, Foundation.NSRange range);
	public static void SetVertexAccelerationStructure (this IMTLRenderCommandEncoder This, IMTLAccelerationStructure accelerationStructure, UIntPtr bufferIndex);
	public static void SetVertexAmplificationCount (this IMTLRenderCommandEncoder This, UIntPtr count, MTLVertexAmplificationViewMapping viewMappings);
	public static void SetVertexBuffer (this IMTLRenderCommandEncoder This, IMTLBuffer buffer, UIntPtr offset, UIntPtr stride, UIntPtr index);
	public static void SetVertexBufferOffset (this IMTLRenderCommandEncoder This, UIntPtr offset, UIntPtr stride, UIntPtr index);
	public static void SetVertexBuffers (this IMTLRenderCommandEncoder This, IntPtr buffers, IntPtr offsets, IntPtr strides, Foundation.NSRange range);
	public static void SetVertexBytes (this IMTLRenderCommandEncoder This, IntPtr bytes, UIntPtr length, UIntPtr stride, UIntPtr index);
	public static void SetVertexIntersectionFunctionTable (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable intersectionFunctionTable, UIntPtr bufferIndex);
	public static void SetVertexIntersectionFunctionTables (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable[] intersectionFunctionTable, Foundation.NSRange range);
	public static void SetVertexVisibleFunctionTable (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable functionTable, UIntPtr bufferIndex);
	public static void SetVertexVisibleFunctionTables (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable[] functionTables, Foundation.NSRange range);
}

New Type: Metal.MTLRenderPipelineFunctionsDescriptor

public class MTLRenderPipelineFunctionsDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLRenderPipelineFunctionsDescriptor ();
	protected MTLRenderPipelineFunctionsDescriptor (Foundation.NSObjectFlag t);
	protected MTLRenderPipelineFunctionsDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual IMTLFunction[] FragmentAdditionalBinaryFunctions { get; set; }
	public virtual IMTLFunction[] TileAdditionalBinaryFunctions { get; set; }
	public virtual IMTLFunction[] VertexAdditionalBinaryFunctions { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLRenderPipelineState_Extensions

public static class MTLRenderPipelineState_Extensions {
	// methods
	public static IMTLFunctionHandle FunctionHandleWithFunction (this IMTLRenderPipelineState This, IMTLFunction function, MTLRenderStages stage);
	public static UIntPtr GetMaxTotalThreadsPerMeshThreadgroup (this IMTLRenderPipelineState This);
	public static UIntPtr GetMaxTotalThreadsPerObjectThreadgroup (this IMTLRenderPipelineState This);
	public static UIntPtr GetObjectThreadExecutionWidth (this IMTLRenderPipelineState This);
	public static IMTLIntersectionFunctionTable NewIntersectionFunctionTableWithDescriptor (this IMTLRenderPipelineState This, MTLIntersectionFunctionTableDescriptor descriptor, MTLRenderStages stage);
	public static IMTLRenderPipelineState NewRenderPipelineStateWithAdditionalBinaryFunctions (this IMTLRenderPipelineState This, MTLRenderPipelineFunctionsDescriptor additionalBinaryFunctions, out Foundation.NSError error);
	public static IMTLVisibleFunctionTable NewVisibleFunctionTableWithDescriptor (this IMTLRenderPipelineState This, MTLVisibleFunctionTableDescriptor descriptor, MTLRenderStages stage);
}

New Type: Metal.MTLResourceId

public struct MTLResourceId {
	// fields
	public ulong Impl;
}

New Type: Metal.MTLResourceStateCommandEncoder_Extensions

public static class MTLResourceStateCommandEncoder_Extensions {
	// methods
	public static void MoveTextureMappings (this IMTLResourceStateCommandEncoder This, IMTLTexture sourceTexture, UIntPtr sourceSlice, UIntPtr sourceLevel, MTLOrigin sourceOrigin, MTLSize sourceSize, IMTLTexture destinationTexture, UIntPtr destinationSlice, UIntPtr destinationLevel, MTLOrigin destinationOrigin);
}

New Type: Metal.MTLResourceStatePassDescriptor

public class MTLResourceStatePassDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected MTLResourceStatePassDescriptor (Foundation.NSObjectFlag t);
	protected MTLResourceStatePassDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual MTLResourceStatePassSampleBufferAttachmentDescriptorArray SampleBufferAttachments { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static MTLResourceStatePassDescriptor Create ();
}

New Type: Metal.MTLResourceStatePassSampleBufferAttachmentDescriptor

public class MTLResourceStatePassSampleBufferAttachmentDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLResourceStatePassSampleBufferAttachmentDescriptor ();
	protected MTLResourceStatePassSampleBufferAttachmentDescriptor (Foundation.NSObjectFlag t);
	protected MTLResourceStatePassSampleBufferAttachmentDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual UIntPtr EndOfEncoderSampleIndex { get; set; }
	public virtual IMTLCounterSampleBuffer SampleBuffer { get; set; }
	public virtual UIntPtr StartOfEncoderSampleIndex { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLResourceStatePassSampleBufferAttachmentDescriptorArray

public class MTLResourceStatePassSampleBufferAttachmentDescriptorArray : Foundation.NSObject {
	// constructors
	public MTLResourceStatePassSampleBufferAttachmentDescriptorArray ();
	protected MTLResourceStatePassSampleBufferAttachmentDescriptorArray (Foundation.NSObjectFlag t);
	protected MTLResourceStatePassSampleBufferAttachmentDescriptorArray (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public virtual MTLResourceStatePassSampleBufferAttachmentDescriptor GetObject (UIntPtr attachmentIndex);
	public virtual void SetObject (MTLResourceStatePassSampleBufferAttachmentDescriptor attachment, UIntPtr attachmentIndex);
}

New Type: Metal.MTLSamplerBorderColor

[Serializable]
public enum MTLSamplerBorderColor {
	OpaqueBlack = 1,
	OpaqueWhite = 2,
	TransparentBlack = 0,
}

New Type: Metal.MTLSamplerState_Extensions

public static class MTLSamplerState_Extensions {
	// methods
	public static MTLResourceId GetGpuResourceId (this IMTLSamplerState This);
}

New Type: Metal.MTLSparsePageSize

[Serializable]
public enum MTLSparsePageSize {
	Size16 = 101,
	Size256 = 103,
	Size64 = 102,
}

New Type: Metal.MTLSparseTextureMappingMode

[Serializable]
[Flags]
public enum MTLSparseTextureMappingMode {
	Map = 0,
	Unmap = 1,
}

New Type: Metal.MTLSparseTextureRegionAlignmentMode

[Serializable]
[Flags]
public enum MTLSparseTextureRegionAlignmentMode {
	Inward = 1,
	Outward = 0,
}

New Type: Metal.MTLTextureCompressionType

[Serializable]
public enum MTLTextureCompressionType {
	Lossless = 0,
	Lossy = 1,
}

New Type: Metal.MTLTexture_Extensions

public static class MTLTexture_Extensions {
	// methods
	public static MTLTextureCompressionType GetCompressionType (this IMTLTexture This);
	public static MTLResourceId GetGpuResourceId (this IMTLTexture This);
	public static bool GetIsSparse (this IMTLTexture This);
	public static UIntPtr GetTailSizeInBytes (this IMTLTexture This);
}

New Type: Metal.MTLVertexAmplificationViewMapping

public struct MTLVertexAmplificationViewMapping {
	// fields
	public uint RenderTargetArrayIndexOffset;
	public uint ViewportArrayIndexOffset;
}

New Type: Metal.MTLVisibleFunctionTableDescriptor

public class MTLVisibleFunctionTableDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected MTLVisibleFunctionTableDescriptor (Foundation.NSObjectFlag t);
	protected MTLVisibleFunctionTableDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual UIntPtr FunctionCount { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static MTLVisibleFunctionTableDescriptor Create ();
}

New Type: Metal.MTLVisibleFunctionTable_Extensions

public static class MTLVisibleFunctionTable_Extensions {
	// methods
	public static MTLResourceId GetGpuResourceId (this IMTLVisibleFunctionTable This);
}

Namespace MetalPerformanceShaders

Type Changed: MetalPerformanceShaders.IMPSCnnBatchNormalizationDataSource

Added methods:

public static T CreateInstance<T> (Foundation.NSCoder decoder);
public static bool GetSupportsSecureCoding<T> ();

Type Changed: MetalPerformanceShaders.IMPSCnnInstanceNormalizationDataSource

Added method:

public static T CreateInstance<T> (Foundation.NSCoder decoder);

Type Changed: MetalPerformanceShaders.MPSCommandBuffer

Added property:

public virtual Metal.IMTLResourceStateCommandEncoder ResourceStateCommandEncoder { get; }

Added methods:

public virtual Metal.IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder ();
public virtual Metal.IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (Metal.MTLAccelerationStructurePassDescriptor descriptor);
public virtual Metal.IMTLResourceStateCommandEncoder CreateResourceStateCommandEncoder (Metal.MTLResourceStatePassDescriptor resourceStatePassDescriptor);

Namespace ModelIO

Type Changed: ModelIO.IMDLTransformComponent

Added method:

public static CoreGraphics.NMatrix4 CreateGlobalTransform<T> (MDLObject obj, double atTime);

Type Changed: ModelIO.MDLMaterial

Added properties:

public MDLMaterialProperty Item { get; }
public MDLMaterialProperty Item { get; }

Namespace Network

Type Changed: Network.NWPrivacyContext

Added methods:

public void AddProxy (NWProxyConfig proxyConfig);
public void ClearProxies ();

New Type: Network.NWProxyConfig

public class NWProxyConfig : CoreFoundation.NativeObject {
	// properties
	public bool FailoverAllowed { get; set; }
	// methods
	public void AddExcludedDomain (string domain);
	public void AddMatchDomain (string domain);
	public void ClearExcludedDomains ();
	public void ClearMatchDomains ();
	public static NWProxyConfig CreateHttpConnect (NWEndpoint proxyEndpoint, NWProtocolTlsOptions options);
	public static NWProxyConfig CreateObliviousHttp (NWRelayHop hop, string relaysResourcePath, byte[] gatewayKeyConfig);
	public static NWProxyConfig CreateRelay (NWRelayHop firstHop, NWRelayHop secondHop);
	public static NWProxyConfig CreateSocksV5 (NWEndpoint endpoint);
	public void EnumerateExcludedDomains (System.Action<string> handler);
	public void EnumerateMatchDomains (System.Action<string> handler);
	public void SetUsernameAndPassword (string username, string password);
}

New Type: Network.NWRelayHop

public class NWRelayHop : CoreFoundation.NativeObject {
	// methods
	public void AddAdditionalHttpHeaderField (string fieldName, string fieldValue);
	public static NWRelayHop Create (NWEndpoint http3RelayEndpoint, NWEndpoint http2RelayEndpoint, NWProtocolOptions relayTlsOptions);
}

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string Version = "17.2.0";
+public const string Version = "17.3.0";

Added fields:

public static const string CoreMidiLibrary = "/System/Library/Frameworks/CoreMIDI.framework/CoreMIDI";
public static const string CryptoTokenKitLibrary = "/System/Library/Frameworks/CryptoTokenKit.framework/CryptoTokenKit";
public static const string DeviceDiscoveryUILibrary = "/System/Library/Frameworks/DeviceDiscoveryUI.framework/DeviceDiscoveryUI";

Type Changed: ObjCRuntime.DisposableObject

Added method:

protected void ClearHandle ();

Type Changed: ObjCRuntime.LinkWithAttribute

Added property:

public bool LinkWithSwiftSystemLibraries { get; set; }

New Type: ObjCRuntime.BlockCallbackAttribute

public class BlockCallbackAttribute : System.Attribute {
	// constructors
	public BlockCallbackAttribute ();
}

New Type: ObjCRuntime.CCallbackAttribute

public class CCallbackAttribute : System.Attribute {
	// constructors
	public CCallbackAttribute ();
}

Namespace UIKit

Type Changed: UIKit.IUICGFloatTraitDefinition

Added method:

public static System.Runtime.InteropServices.NFloat GetDefaultValue<T> ();

Type Changed: UIKit.IUINSIntegerTraitDefinition

Added method:

public static IntPtr GetDefaultValue<T> ();

Type Changed: UIKit.IUIObjectTraitDefinition

Added method:

public static Foundation.NSObject GetDefaultValue<T> ();

Type Changed: UIKit.IUIPopoverBackgroundViewMethods

Added methods:

public static System.Runtime.InteropServices.NFloat GetArrowBase<T> ();
public static System.Runtime.InteropServices.NFloat GetArrowHeight<T> ();
public static UIEdgeInsets GetContentViewInsets<T> ();

Type Changed: UIKit.IUITraitDefinition

Added methods:

public static bool GetAffectsColorAppearance<T> ();
public static string GetIdentifier<T> ();
public static string GetName<T> ();

Type Changed: UIKit.UITextView

Obsoleted properties:

 [Obsolete ("Use 'TypingAttributes2' instead, because this property will return null instead of an empty dictionary.")]
 public virtual Foundation.NSDictionary TypingAttributes { get; set; }

Added property:

public Foundation.NSDictionary TypingAttributes2 { get; set; }

New Type: UIKit.NSAttributedStringDocumentReadingOptions

public class NSAttributedStringDocumentReadingOptions : Foundation.DictionaryContainer {
	// constructors
	public NSAttributedStringDocumentReadingOptions ();
	public NSAttributedStringDocumentReadingOptions (Foundation.NSDictionary dictionary);
	// properties
	public Foundation.NSStringEncoding? CharacterEncoding { get; set; }
	public Foundation.NSDictionary DefaultAttributes { get; set; }
	public NSAttributedStringDocumentType? DocumentType { get; set; }
	public NSTextScalingType? SourceTextScaling { get; set; }
	public NSTextScalingType? TargetTextScaling { get; set; }
}

New Type: UIKit.NSAttributedStringDocumentType

[Serializable]
public enum NSAttributedStringDocumentType {
	DocFormat = 5,
	Html = 3,
	MacSimple = 4,
	OfficeOpenXml = 7,
	OpenDocument = 9,
	Plain = 0,
	Rtf = 1,
	Rtfd = 2,
	Unknown = -1,
	WebArchive = 8,
	WordML = 6,
}

New Type: UIKit.NSAttributedStringDocumentTypeExtensions

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

Namespace Vision

Type Changed: Vision.VNBarcodeObservation

Added properties:

public virtual bool IsColorInverted { get; }
public virtual bool IsGS1DataCarrier { get; }
public virtual Foundation.NSData PayloadData { get; }
public virtual VNBarcodeCompositeType SupplementalCompositeType { get; }
public virtual Foundation.NSData SupplementalPayloadData { get; }
public virtual string SupplementalPayloadString { get; }

Type Changed: Vision.VNBarcodeSymbology

Added value:

MsiPlessey = 23,

Type Changed: Vision.VNClassifyImageRequestRevision

Added value:

Two = 2,

Type Changed: Vision.VNDetectBarcodesRequest

Added property:

public virtual bool CoalesceCompositeSymbologies { get; set; }

Type Changed: Vision.VNDetectBarcodesRequestRevision

Added values:

Four = 4,
Three = 3,

Type Changed: Vision.VNDetectFaceCaptureQualityRequestRevision

Added value:

Three = 3,

Type Changed: Vision.VNDetectHumanBodyPoseRequest

Added methods:

public virtual VNHumanBodyPoseObservationJointName[] GetSupportedJointNames (out Foundation.NSError error);
public virtual VNHumanBodyPoseObservationJointsGroupName[] GetSupportedJointsGroupNames (out Foundation.NSError error);

Type Changed: Vision.VNDetectHumanHandPoseRequest

Added methods:

public virtual VNHumanHandPoseObservationJointName[] GetSupportedJointNames (out Foundation.NSError error);
public virtual VNHumanHandPoseObservationJointsGroupName[] GetSupportedJointsGroupNames (out Foundation.NSError error);

Type Changed: Vision.VNErrorCode

Added values:

UnsupportedComputeDevice = 22,
UnsupportedComputeStage = 21,

Type Changed: Vision.VNGenerateAttentionBasedSaliencyImageRequestRevision

Added value:

Two = 2,

Type Changed: Vision.VNGenerateImageFeaturePrintRequestRevision

Added value:

Two = 2,

Type Changed: Vision.VNGenerateObjectnessBasedSaliencyImageRequestRevision

Added value:

Two = 2,

Type Changed: Vision.VNImageRequestHandler

Added constructors:

public VNImageRequestHandler (CoreMedia.CMSampleBuffer sampleBuffer, AVFoundation.AVDepthData depthData, ImageIO.CGImagePropertyOrientation orientation, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> options);
public VNImageRequestHandler (CoreVideo.CVPixelBuffer pixelBuffer, AVFoundation.AVDepthData depthData, ImageIO.CGImagePropertyOrientation orientation, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> options);

Type Changed: Vision.VNRectangleObservation

Added method:

public static VNRectangleObservation FromRectangleObservation (VNRectangleObservationRequestRevision requestRevision, CoreGraphics.CGPoint topLeft, CoreGraphics.CGPoint topRight, CoreGraphics.CGPoint bottomRight, CoreGraphics.CGPoint bottomLeft);

Type Changed: Vision.VNRequest

Added methods:

public virtual CoreML.IMLComputeDeviceProtocol GetComputeDevice (string computeStage);
public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSArray<CoreML.IMLComputeDeviceProtocol>> GetSupportedComputeDevices (out Foundation.NSError error);
public virtual void SetComputeDevice (CoreML.IMLComputeDeviceProtocol computeDevice, string computeStage);

Type Changed: Vision.VNTrackingRequest

Added method:

public virtual UIntPtr GetSupportedNumberOfTrackers (out Foundation.NSError error);

New Type: Vision.VNAnimalBodyPoseObservation

public class VNAnimalBodyPoseObservation : Vision.VNRecognizedPointsObservation {
	// constructors
	public VNAnimalBodyPoseObservation (Foundation.NSCoder coder);
	protected VNAnimalBodyPoseObservation (Foundation.NSObjectFlag t);
	protected VNAnimalBodyPoseObservation (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual VNAnimalBodyPoseObservationJointsGroupName[] AvailableJointGroupNames { get; }
	public virtual VNAnimalBodyPoseObservationJointName[] AvailableJointNames { get; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public virtual VNRecognizedPoint GetRecognizedPoint (VNAnimalBodyPoseObservationJointName jointName, out Foundation.NSError error);
	public virtual Foundation.NSDictionary<Foundation.NSString,Vision.VNRecognizedPoint> GetRecognizedPoints (VNAnimalBodyPoseObservationJointsGroupName jointsGroupName, out Foundation.NSError error);
}

New Type: Vision.VNAnimalBodyPoseObservationJointName

[Serializable]
public enum VNAnimalBodyPoseObservationJointName {
	LeftBackElbow = 17,
	LeftBackKnee = 19,
	LeftBackPaw = 21,
	LeftEarBottom = 5,
	LeftEarMiddle = 3,
	LeftEarTop = 1,
	LeftEye = 7,
	LeftFrontElbow = 11,
	LeftFrontKnee = 13,
	LeftFrontPaw = 15,
	Neck = 10,
	None = 0,
	Nose = 9,
	RightBackElbow = 18,
	RightBackKnee = 20,
	RightBackPaw = 22,
	RightEarBottom = 6,
	RightEarMiddle = 4,
	RightEarTop = 2,
	RightEye = 8,
	RightFrontElbow = 12,
	RightFrontKnee = 14,
	RightFrontPaw = 16,
	TailBottom = 25,
	TailMiddle = 24,
	TailTop = 23,
}

New Type: Vision.VNAnimalBodyPoseObservationJointNameExtensions

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

New Type: Vision.VNAnimalBodyPoseObservationJointsGroupName

[Serializable]
public enum VNAnimalBodyPoseObservationJointsGroupName {
	All = 6,
	Forelegs = 3,
	Head = 1,
	Hindlegs = 4,
	None = 0,
	Tail = 5,
	Trunk = 2,
}

New Type: Vision.VNAnimalBodyPoseObservationJointsGroupNameExtensions

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

New Type: Vision.VNBarcodeCompositeType

[Serializable]
public enum VNBarcodeCompositeType {
	Gs1TypeA = 2,
	Gs1TypeB = 3,
	Gs1TypeC = 4,
	Linked = 1,
	None = 0,
}

New Type: Vision.VNComputeStage

[Serializable]
public enum VNComputeStage {
	Main = 1,
	None = 0,
	PostProcessing = 2,
}

New Type: Vision.VNComputeStageExtensions

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

New Type: Vision.VNDetectAnimalBodyPoseRequest

public class VNDetectAnimalBodyPoseRequest : Vision.VNImageBasedRequest {
	// constructors
	protected VNDetectAnimalBodyPoseRequest (Foundation.NSObjectFlag t);
	protected VNDetectAnimalBodyPoseRequest (ObjCRuntime.NativeHandle handle);
	public VNDetectAnimalBodyPoseRequest (VNRequestCompletionHandler completionHandler);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual VNAnimalBodyPoseObservation[] Results { get; }
	// methods
	public virtual VNAnimalBodyPoseObservationJointName[] GetSupportedJointNames (out Foundation.NSError error);
	public virtual VNAnimalBodyPoseObservationJointsGroupName[] GetSupportedJointsGroupNames (out Foundation.NSError error);
}

New Type: Vision.VNDetectHumanBodyPose3DRequest

public class VNDetectHumanBodyPose3DRequest : Vision.VNStatefulRequest {
	// constructors
	public VNDetectHumanBodyPose3DRequest ();
	protected VNDetectHumanBodyPose3DRequest (Foundation.NSObjectFlag t);
	protected VNDetectHumanBodyPose3DRequest (ObjCRuntime.NativeHandle handle);
	public VNDetectHumanBodyPose3DRequest (VNRequestCompletionHandler completionHandler);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public static VNDetectHumanBodyPose3DRequestRevision CurrentRevision { get; }
	public static VNDetectHumanBodyPose3DRequestRevision DefaultRevision { get; }
	public virtual VNHumanBodyPose3DObservation[] Results { get; }
	public virtual VNDetectHumanBodyPose3DRequestRevision Revision { get; set; }
	public static VNDetectHumanBodyPose3DRequestRevision[] SupportedRevisions { get; }
	public static Foundation.NSIndexSet WeakSupportedRevisions { get; }
	// methods
	public virtual VNHumanBodyPose3DObservationJointName[] GetSupportedJointNames (out Foundation.NSError error);
	public virtual VNHumanBodyPose3DObservationJointsGroupName[] GetSupportedJointsGroupNames (out Foundation.NSError error);
}

New Type: Vision.VNDetectHumanBodyPose3DRequestRevision

[Serializable]
public enum VNDetectHumanBodyPose3DRequestRevision {
	One = 1,
}

New Type: Vision.VNGenerateForegroundInstanceMaskRequest

public class VNGenerateForegroundInstanceMaskRequest : Vision.VNImageBasedRequest {
	// constructors
	protected VNGenerateForegroundInstanceMaskRequest (Foundation.NSObjectFlag t);
	protected VNGenerateForegroundInstanceMaskRequest (ObjCRuntime.NativeHandle handle);
	public VNGenerateForegroundInstanceMaskRequest (VNRequestCompletionHandler completionHandler);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual VNInstanceMaskObservation[] Results { get; }
}

New Type: Vision.VNGeneratePersonInstanceMaskRequest

public class VNGeneratePersonInstanceMaskRequest : Vision.VNImageBasedRequest {
	// constructors
	protected VNGeneratePersonInstanceMaskRequest (Foundation.NSObjectFlag t);
	protected VNGeneratePersonInstanceMaskRequest (ObjCRuntime.NativeHandle handle);
	public VNGeneratePersonInstanceMaskRequest (VNRequestCompletionHandler completionHandler);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual VNInstanceMaskObservation[] Results { get; }
}

New Type: Vision.VNHumanBodyPose3DObservation

public class VNHumanBodyPose3DObservation : Vision.VNRecognizedPoints3DObservation {
	// constructors
	public VNHumanBodyPose3DObservation (Foundation.NSCoder coder);
	protected VNHumanBodyPose3DObservation (Foundation.NSObjectFlag t);
	protected VNHumanBodyPose3DObservation (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual VNHumanBodyPose3DObservationJointName[] AvailableJointNames { get; }
	public virtual VNHumanBodyPose3DObservationJointsGroupName[] AvailableJointsGroupNames { get; }
	public virtual float BodyHeight { get; }
	public virtual CoreGraphics.NMatrix4 CameraOriginMatrix { get; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual VNHumanBodyPose3DObservationHeightEstimation HeightEstimation { get; }
	// methods
	public virtual bool GetCameraRelativePosition (out CoreGraphics.NMatrix4 modelPositionOut, VNHumanBodyPose3DObservationJointName jointName, out Foundation.NSError error);
	public virtual VNHumanBodyPose3DObservationJointName GetParentJointName (VNHumanBodyPose3DObservationJointName jointName);
	public virtual VNPoint GetPointInImage (VNHumanBodyPose3DObservationJointName jointName, out Foundation.NSError error);
	public virtual VNHumanBodyRecognizedPoint3D GetRecognizedPoint (VNHumanBodyPose3DObservationJointName jointName, out Foundation.NSError error);
	public virtual Foundation.NSDictionary<Foundation.NSString,Vision.VNHumanBodyRecognizedPoint3D> GetRecognizedPoints (VNHumanBodyPose3DObservationJointsGroupName jointName, out Foundation.NSError error);
}

New Type: Vision.VNHumanBodyPose3DObservationHeightEstimation

[Serializable]
public enum VNHumanBodyPose3DObservationHeightEstimation {
	Measured = 1,
	Reference = 0,
}

New Type: Vision.VNHumanBodyPose3DObservationJointName

[Serializable]
public enum VNHumanBodyPose3DObservationJointName {
	CenterHead = 11,
	CenterShoulder = 10,
	LeftAnkle = 8,
	LeftElbow = 14,
	LeftHip = 6,
	LeftKnee = 7,
	LeftShoulder = 13,
	LeftWrist = 15,
	None = 0,
	RightAnkle = 4,
	RightElbow = 16,
	RightHip = 2,
	RightKnee = 3,
	RightShoulder = 5,
	RightWrist = 17,
	Root = 1,
	Spine = 9,
	TopHead = 12,
}

New Type: Vision.VNHumanBodyPose3DObservationJointNameExtensions

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

New Type: Vision.VNHumanBodyPose3DObservationJointsGroupName

[Serializable]
public enum VNHumanBodyPose3DObservationJointsGroupName {
	All = 7,
	Head = 1,
	LeftArm = 3,
	LeftLeg = 5,
	None = 0,
	RightArm = 4,
	RightLeg = 6,
	Torso = 2,
}

New Type: Vision.VNHumanBodyPose3DObservationJointsGroupNameExtensions

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

New Type: Vision.VNHumanBodyRecognizedPoint3D

public class VNHumanBodyRecognizedPoint3D : Vision.VNRecognizedPoint3D {
	// constructors
	public VNHumanBodyRecognizedPoint3D (CoreGraphics.NMatrix4 position);
	public VNHumanBodyRecognizedPoint3D (Foundation.NSCoder coder);
	protected VNHumanBodyRecognizedPoint3D (Foundation.NSObjectFlag t);
	protected VNHumanBodyRecognizedPoint3D (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual CoreGraphics.NMatrix4 LocalPosition { get; }
	public virtual VNHumanBodyPose3DObservationJointName ParentJoint { get; }
}

New Type: Vision.VNInstanceMaskObservation

public class VNInstanceMaskObservation : Vision.VNObservation {
	// constructors
	public VNInstanceMaskObservation (Foundation.NSCoder coder);
	protected VNInstanceMaskObservation (Foundation.NSObjectFlag t);
	protected VNInstanceMaskObservation (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual Foundation.NSIndexSet AllInstances { get; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual CoreVideo.CVPixelBuffer InstanceMask { get; }
	// methods
	public virtual CoreVideo.CVPixelBuffer GenerateMask (Foundation.NSIndexSet instances, out Foundation.NSError error);
	public virtual CoreVideo.CVPixelBuffer GenerateMaskedImage (Foundation.NSIndexSet instances, VNImageRequestHandler requestHandler, bool cropResult, out Foundation.NSError error);
	public virtual CoreVideo.CVPixelBuffer GenerateScaledMask (Foundation.NSIndexSet instances, VNImageRequestHandler requestHandler, out Foundation.NSError error);
}

New Type: Vision.VNPoint3D

public class VNPoint3D : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public VNPoint3D (CoreGraphics.NMatrix4 position);
	public VNPoint3D (Foundation.NSCoder coder);
	protected VNPoint3D (Foundation.NSObjectFlag t);
	protected VNPoint3D (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual CoreGraphics.NMatrix4 Position { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: Vision.VNRecognizedPoint3D

public class VNRecognizedPoint3D : Vision.VNPoint3D {
	// constructors
	public VNRecognizedPoint3D (CoreGraphics.NMatrix4 position);
	public VNRecognizedPoint3D (Foundation.NSCoder coder);
	protected VNRecognizedPoint3D (Foundation.NSObjectFlag t);
	protected VNRecognizedPoint3D (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public static Foundation.NSString GroupKeyAll { get; }
	public virtual string Identifier { get; }
}

New Type: Vision.VNRecognizedPoints3DObservation

public class VNRecognizedPoints3DObservation : Vision.VNObservation {
	// constructors
	public VNRecognizedPoints3DObservation (Foundation.NSCoder coder);
	protected VNRecognizedPoints3DObservation (Foundation.NSObjectFlag t);
	protected VNRecognizedPoints3DObservation (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual Foundation.NSString[] AvailableGroupKeys { get; }
	public virtual Foundation.NSString[] AvailableKeys { get; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public virtual VNRecognizedPoint3D GetRecognizedPoint (Foundation.NSString pointKey, out Foundation.NSError error);
	public virtual Foundation.NSDictionary<Foundation.NSString,Vision.VNRecognizedPoint3D> GetRecognizedPoints (Foundation.NSString groupKey, out Foundation.NSError error);
}

New Type: Vision.VNTrackHomographicImageRegistrationRequest

public class VNTrackHomographicImageRegistrationRequest : Vision.VNStatefulRequest {
	// constructors
	public VNTrackHomographicImageRegistrationRequest ();
	protected VNTrackHomographicImageRegistrationRequest (Foundation.NSObjectFlag t);
	protected VNTrackHomographicImageRegistrationRequest (ObjCRuntime.NativeHandle handle);
	public VNTrackHomographicImageRegistrationRequest (VNRequestCompletionHandler completionHandler);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public static VNTrackHomographicImageRegistrationRequestRevision CurrentRevision { get; }
	public static VNTrackHomographicImageRegistrationRequestRevision DefaultRevision { get; }
	public virtual VNImageHomographicAlignmentObservation[] Results { get; }
	public virtual VNTrackHomographicImageRegistrationRequestRevision Revision { get; set; }
	public static VNTrackHomographicImageRegistrationRequestRevision[] SupportedRevisions { get; }
	public static Foundation.NSIndexSet WeakSupportedRevisions { get; }
}

New Type: Vision.VNTrackHomographicImageRegistrationRequestRevision

[Serializable]
public enum VNTrackHomographicImageRegistrationRequestRevision {
	One = 1,
}

New Type: Vision.VNTrackOpticalFlowRequest

public class VNTrackOpticalFlowRequest : Vision.VNStatefulRequest {
	// constructors
	public VNTrackOpticalFlowRequest ();
	protected VNTrackOpticalFlowRequest (Foundation.NSObjectFlag t);
	protected VNTrackOpticalFlowRequest (ObjCRuntime.NativeHandle handle);
	public VNTrackOpticalFlowRequest (VNRequestCompletionHandler completionHandler);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual VNTrackOpticalFlowRequestComputationAccuracy ComputationAccuracy { get; set; }
	public virtual bool KeepNetworkOutput { get; set; }
	public virtual uint OutputPixelFormat { get; set; }
	public virtual VNPixelBufferObservation[] Results { get; }
}

New Type: Vision.VNTrackOpticalFlowRequestComputationAccuracy

[Serializable]
public enum VNTrackOpticalFlowRequestComputationAccuracy {
	High = 2,
	Low = 0,
	Medium = 1,
	VeryHigh = 3,
}

New Type: Vision.VNTrackOpticalFlowRequestRevision

[Serializable]
public enum VNTrackOpticalFlowRequestRevision {
	One = 1,
}

New Type: Vision.VNTrackTranslationalImageRegistrationRequest

public class VNTrackTranslationalImageRegistrationRequest : Vision.VNStatefulRequest {
	// constructors
	public VNTrackTranslationalImageRegistrationRequest ();
	protected VNTrackTranslationalImageRegistrationRequest (Foundation.NSObjectFlag t);
	protected VNTrackTranslationalImageRegistrationRequest (ObjCRuntime.NativeHandle handle);
	public VNTrackTranslationalImageRegistrationRequest (VNRequestCompletionHandler completionHandler);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public static VNTrackTranslationalImageRegistrationRequestRevision CurrentRevision { get; }
	public static VNTrackTranslationalImageRegistrationRequestRevision DefaultRevision { get; }
	public virtual VNImageTranslationAlignmentObservation[] Results { get; }
	public virtual VNTrackTranslationalImageRegistrationRequestRevision Revision { get; set; }
	public static VNTrackTranslationalImageRegistrationRequestRevision[] SupportedRevisions { get; }
	public static Foundation.NSIndexSet WeakSupportedRevisions { get; }
}

New Type: Vision.VNTrackTranslationalImageRegistrationRequestRevision

[Serializable]
public enum VNTrackTranslationalImageRegistrationRequestRevision {
	One = 1,
}

New Namespace CoreMidi

New Type: CoreMidi.MidiCVStatus

[Serializable]
public enum MidiCVStatus {
	AssignableControl = 3,
	AssignablePnc = 1,
	ChannelPressure = 13,
	ControlChange = 11,
	NoteOff = 8,
	NoteOn = 9,
	PerNoteMgmt = 15,
	PerNotePitchBend = 6,
	PitchBend = 14,
	PolyPressure = 10,
	ProgramChange = 12,
	RegisteredControl = 2,
	RegisteredPnc = 0,
	RelAssignableControl = 5,
	RelRegisteredControl = 4,
}

New Type: CoreMidi.MidiMessageType

[Serializable]
public enum MidiMessageType {
	ChannelVoice1 = 2,
	ChannelVoice2 = 4,
	Data128 = 5,
	SysEx = 3,
	System = 1,
	UnknownF = 15,
	Utility = 0,
}

New Type: CoreMidi.MidiNetworkConnectionPolicy

[Serializable]
public enum MidiNetworkConnectionPolicy {
	Anyone = 2,
	HostsInContactsList = 1,
	NoOne = 0,
}

New Type: CoreMidi.MidiNoteAttribute

[Serializable]
public enum MidiNoteAttribute {
	ManufacturerSpecific = 1,
	None = 0,
	Pitch = 3,
	ProfileSpecific = 2,
}

New Type: CoreMidi.MidiPerNoteManagementOptions

[Serializable]
[Flags]
public enum MidiPerNoteManagementOptions {
	Detach = 2,
	Reset = 1,
}

New Type: CoreMidi.MidiProgramChangeOptions

[Serializable]
[Flags]
public enum MidiProgramChangeOptions {
	BankValid = 1,
}

New Type: CoreMidi.MidiProtocolId

[Serializable]
public enum MidiProtocolId {
	Protocol_1_0 = 1,
	Protocol_2_0 = 2,
}

New Type: CoreMidi.MidiSysExStatus

[Serializable]
public enum MidiSysExStatus {
	Complete = 0,
	Continue = 2,
	End = 3,
	MixedDataSetHeader = 8,
	MixedDataSetPayload = 9,
	Start = 1,
}

New Type: CoreMidi.MidiSystemStatus

[Serializable]
public enum MidiSystemStatus {
	ActiveSending = 254,
	Continue = 251,
	EndOfExclusive = 247,
	Mtc = 241,
	SongPosPointer = 242,
	SongSelect = 243,
	Start = 250,
	StartOfExclusive = 240,
	Stop = 252,
	SystemReset = 255,
	TimingClock = 248,
	TuneRequest = 246,
}

New Type: CoreMidi.MidiUtilityStatus

[Serializable]
public enum MidiUtilityStatus {
	JitterReductionClock = 1,
	JitterReductionTimestamp = 2,
	Noop = 0,
}

New Namespace CryptoTokenKit

New Type: CryptoTokenKit.ITKSmartCardTokenDriverDelegate

public interface ITKSmartCardTokenDriverDelegate : ITKTokenDriverDelegate, ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public abstract TKSmartCardToken CreateToken (TKSmartCardTokenDriver driver, TKSmartCard smartCard, Foundation.NSData aid, out Foundation.NSError error);
}

New Type: CryptoTokenKit.ITKSmartCardUserInteractionDelegate

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

New Type: CryptoTokenKit.ITKTokenDelegate

public interface ITKTokenDelegate : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public abstract TKTokenSession CreateSession (TKToken token, out Foundation.NSError error);
}

New Type: CryptoTokenKit.ITKTokenDriverDelegate

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

New Type: CryptoTokenKit.ITKTokenSessionDelegate

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

New Type: CryptoTokenKit.TKBerTlvRecord

public class TKBerTlvRecord : CryptoTokenKit.TKTlvRecord {
	// constructors
	public TKBerTlvRecord ();
	protected TKBerTlvRecord (Foundation.NSObjectFlag t);
	protected TKBerTlvRecord (ObjCRuntime.NativeHandle handle);
	public TKBerTlvRecord (ulong tag, TKTlvRecord[] records);
	public TKBerTlvRecord (ulong tag, Foundation.NSData value);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public static Foundation.NSData GetData (ulong tag);
}

New Type: CryptoTokenKit.TKCompactTlvRecord

public class TKCompactTlvRecord : CryptoTokenKit.TKTlvRecord {
	// constructors
	public TKCompactTlvRecord ();
	protected TKCompactTlvRecord (Foundation.NSObjectFlag t);
	protected TKCompactTlvRecord (ObjCRuntime.NativeHandle handle);
	public TKCompactTlvRecord (byte tag, Foundation.NSData value);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
}

New Type: CryptoTokenKit.TKErrorCode

[Serializable]
public enum TKErrorCode {
	AuthenticationFailed = -5,
	AuthenticationNeeded = -9,
	BadParameter = -8,
	CanceledByUser = -4,
	CommunicationError = -2,
	CorruptedData = -3,
	NotImplemented = -1,
	ObjectNotFound = -6,
	TokenNotFound = -7,
}

New Type: CryptoTokenKit.TKErrorCodeExtensions

public static class TKErrorCodeExtensions {
	// methods
	public static Foundation.NSString GetDomain (this TKErrorCode self);
}

New Type: CryptoTokenKit.TKGetSlotCallback

public sealed delegate TKGetSlotCallback : System.MulticastDelegate {
	// constructors
	public TKGetSlotCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (TKSmartCardSlot slot, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (TKSmartCardSlot slot);
}

New Type: CryptoTokenKit.TKSimpleTlvRecord

public class TKSimpleTlvRecord : CryptoTokenKit.TKTlvRecord {
	// constructors
	public TKSimpleTlvRecord ();
	protected TKSimpleTlvRecord (Foundation.NSObjectFlag t);
	protected TKSimpleTlvRecord (ObjCRuntime.NativeHandle handle);
	public TKSimpleTlvRecord (byte tag, Foundation.NSData value);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
}

New Type: CryptoTokenKit.TKSmartCard

public class TKSmartCard : Foundation.NSObject {
	// constructors
	public TKSmartCard ();
	protected TKSmartCard (Foundation.NSObjectFlag t);
	protected TKSmartCard (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual TKSmartCardProtocol AllowedProtocols { get; set; }
	public virtual byte Cla { get; set; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual Foundation.NSObject Context { get; set; }
	public virtual TKSmartCardProtocol CurrentProtocol { get; }
	public virtual bool Sensitive { get; set; }
	public virtual TKSmartCardSlot Slot { get; }
	public virtual bool UseCommandChaining { get; set; }
	public virtual bool UseExtendedLength { get; set; }
	public virtual bool Valid { get; }
	// methods
	public virtual void BeginSession (System.Action<System.Boolean,Foundation.NSError> reply);
	public virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> BeginSessionAsync ();
	public virtual TKSmartCardUserInteractionForSecurePinChange CreateUserInteractionForSecurePinChange (TKSmartCardPinFormat pinFormat, Foundation.NSData apdu, IntPtr currentPinByteOffset, IntPtr newPinByteOffset);
	public virtual TKSmartCardUserInteractionForSecurePinVerification CreateUserInteractionForSecurePinVerification (TKSmartCardPinFormat pinFormat, Foundation.NSData apdu, IntPtr pinByteOffset);
	protected override void Dispose (bool disposing);
	public virtual void EndSession ();
	public virtual bool ExecuteBlock (out Foundation.NSError error, TKSmartCardExecuteCallback block);
	public virtual void Send (byte ins, byte p1, byte p2, Foundation.NSData requestData, Foundation.NSNumber le, TKSmartCardSendCallback reply);
	public virtual Foundation.NSData Send (byte ins, byte p1, byte p2, Foundation.NSData requestData, Foundation.NSNumber le, out ushort sw, out Foundation.NSError error);
	public virtual void TransmitRequest (Foundation.NSData request, System.Action<Foundation.NSData,Foundation.NSError> reply);
	public virtual System.Threading.Tasks.Task<Foundation.NSData> TransmitRequestAsync (Foundation.NSData request);
}

New Type: CryptoTokenKit.TKSmartCardAtr

public class TKSmartCardAtr : Foundation.NSObject {
	// constructors
	public TKSmartCardAtr (Foundation.NSData bytes);
	protected TKSmartCardAtr (Foundation.NSObjectFlag t);
	protected TKSmartCardAtr (ObjCRuntime.NativeHandle handle);
	public TKSmartCardAtr (System.Func<int> source);
	// properties
	public virtual Foundation.NSData Bytes { get; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual Foundation.NSData HistoricalBytes { get; }
	public virtual TKCompactTlvRecord[] HistoricalRecords { get; }
	public virtual TKSmartCardProtocol[] Protocols { get; }
	// methods
	public virtual TKSmartCardAtrInterfaceGroup GetInterfaceGroup (TKSmartCardProtocol protocol);
	public virtual TKSmartCardAtrInterfaceGroup GetInterfaceGroup (IntPtr index);
}

New Type: CryptoTokenKit.TKSmartCardAtrInterfaceGroup

public class TKSmartCardAtrInterfaceGroup : Foundation.NSObject {
	// constructors
	public TKSmartCardAtrInterfaceGroup ();
	protected TKSmartCardAtrInterfaceGroup (Foundation.NSObjectFlag t);
	protected TKSmartCardAtrInterfaceGroup (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual Foundation.NSNumber Protocol { get; }
	public virtual Foundation.NSNumber TA { get; }
	public virtual Foundation.NSNumber TB { get; }
	public virtual Foundation.NSNumber TC { get; }
}

New Type: CryptoTokenKit.TKSmartCardExecuteCallback

public sealed delegate TKSmartCardExecuteCallback : System.MulticastDelegate {
	// constructors
	public TKSmartCardExecuteCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (out Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual bool EndInvoke (out Foundation.NSError error, System.IAsyncResult result);
	public virtual bool Invoke (out Foundation.NSError error);
}

New Type: CryptoTokenKit.TKSmartCardPinCharset

[Serializable]
public enum TKSmartCardPinCharset {
	Alphanumeric = 1,
	Numeric = 0,
	UpperAlphanumeric = 2,
}

New Type: CryptoTokenKit.TKSmartCardPinCompletion

[Serializable]
[Flags]
public enum TKSmartCardPinCompletion {
	Key = 2,
	MaxLength = 1,
	Timeout = 4,
}

New Type: CryptoTokenKit.TKSmartCardPinConfirmation

[Serializable]
[Flags]
public enum TKSmartCardPinConfirmation {
	Current = 2,
	New = 1,
	None = 0,
}

New Type: CryptoTokenKit.TKSmartCardPinEncoding

[Serializable]
public enum TKSmartCardPinEncoding {
	Ascii = 1,
	Bcd = 2,
	Binary = 0,
}

New Type: CryptoTokenKit.TKSmartCardPinFormat

public class TKSmartCardPinFormat : Foundation.NSObject {
	// constructors
	public TKSmartCardPinFormat ();
	protected TKSmartCardPinFormat (Foundation.NSObjectFlag t);
	protected TKSmartCardPinFormat (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual TKSmartCardPinCharset Charset { get; set; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual TKSmartCardPinEncoding Encoding { get; set; }
	public virtual IntPtr MaxPinLength { get; set; }
	public virtual IntPtr MinPinLength { get; set; }
	public virtual IntPtr PinBitOffset { get; set; }
	public virtual IntPtr PinBlockByteLength { get; set; }
	public virtual TKSmartCardPinJustification PinJustification { get; set; }
	public virtual IntPtr PinLengthBitOffset { get; set; }
	public virtual IntPtr PinLengthBitSize { get; set; }
}

New Type: CryptoTokenKit.TKSmartCardPinJustification

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

New Type: CryptoTokenKit.TKSmartCardProtocol

[Serializable]
[Flags]
public enum TKSmartCardProtocol {
	Any = 65535,
	None = 0,
	T0 = 1,
	T1 = 2,
	T15 = 32768,
}

New Type: CryptoTokenKit.TKSmartCardSendCallback

public sealed delegate TKSmartCardSendCallback : System.MulticastDelegate {
	// constructors
	public TKSmartCardSendCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (Foundation.NSData replyData, ushort sq, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (Foundation.NSData replyData, ushort sq, Foundation.NSError error);
}

New Type: CryptoTokenKit.TKSmartCardSlot

public class TKSmartCardSlot : Foundation.NSObject {
	// constructors
	public TKSmartCardSlot ();
	protected TKSmartCardSlot (Foundation.NSObjectFlag t);
	protected TKSmartCardSlot (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual TKSmartCardAtr Atr { get; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual IntPtr MaxInputLength { get; }
	public virtual IntPtr MaxOutputLength { get; }
	public virtual string Name { get; }
	public virtual TKSmartCardSlotState State { get; }
	// methods
	public virtual TKSmartCard MakeSmartCard ();
}

New Type: CryptoTokenKit.TKSmartCardSlotManager

public class TKSmartCardSlotManager : Foundation.NSObject {
	// constructors
	protected TKSmartCardSlotManager (Foundation.NSObjectFlag t);
	protected TKSmartCardSlotManager (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public static TKSmartCardSlotManager DefaultManager { get; }
	public virtual string[] SlotNames { get; }
	// methods
	public virtual TKSmartCardSlot GetSlot (string name);
	public virtual void GetSlot (string name, TKGetSlotCallback reply);
	public virtual System.Threading.Tasks.Task<TKSmartCardSlot> GetSlotAsync (string name);
}

New Type: CryptoTokenKit.TKSmartCardSlotState

[Serializable]
public enum TKSmartCardSlotState {
	Empty = 1,
	Missing = 0,
	MuteCard = 3,
	Probing = 2,
	ValidCard = 4,
}

New Type: CryptoTokenKit.TKSmartCardToken

public class TKSmartCardToken : CryptoTokenKit.TKToken {
	// constructors
	public TKSmartCardToken ();
	protected TKSmartCardToken (Foundation.NSObjectFlag t);
	protected TKSmartCardToken (ObjCRuntime.NativeHandle handle);
	public TKSmartCardToken (TKSmartCard smartCard, Foundation.NSData aid, string instanceId, TKSmartCardTokenDriver tokenDriver);
	// properties
	public virtual Foundation.NSData Aid { get; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
}

New Type: CryptoTokenKit.TKSmartCardTokenDriver

public class TKSmartCardTokenDriver : CryptoTokenKit.TKTokenDriver {
	// constructors
	public TKSmartCardTokenDriver ();
	protected TKSmartCardTokenDriver (Foundation.NSObjectFlag t);
	protected TKSmartCardTokenDriver (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
}

New Type: CryptoTokenKit.TKSmartCardTokenSession

public class TKSmartCardTokenSession : CryptoTokenKit.TKTokenSession {
	// constructors
	public TKSmartCardTokenSession ();
	public TKSmartCardTokenSession (TKToken token);
	protected TKSmartCardTokenSession (Foundation.NSObjectFlag t);
	protected TKSmartCardTokenSession (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual TKSmartCard SmartCard { get; }
}

New Type: CryptoTokenKit.TKSmartCardUserInteraction

public class TKSmartCardUserInteraction : Foundation.NSObject {
	// constructors
	public TKSmartCardUserInteraction ();
	protected TKSmartCardUserInteraction (Foundation.NSObjectFlag t);
	protected TKSmartCardUserInteraction (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public ITKSmartCardUserInteractionDelegate Delegate { get; set; }
	public virtual double InitialTimeout { get; set; }
	public virtual double InteractionTimeout { get; set; }
	public virtual Foundation.NSObject WeakDelegate { get; set; }
	// methods
	public virtual bool Cancel ();
	protected override void Dispose (bool disposing);
	public virtual void Run (System.Action<System.Boolean,Foundation.NSError> reply);
	public virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> RunAsync ();
}

New Type: CryptoTokenKit.TKSmartCardUserInteractionDelegate_Extensions

public static class TKSmartCardUserInteractionDelegate_Extensions {
	// methods
	public static void CharacterEntered (this ITKSmartCardUserInteractionDelegate This, TKSmartCardUserInteraction interaction);
	public static void CorrectionKeyPressed (this ITKSmartCardUserInteractionDelegate This, TKSmartCardUserInteraction interaction);
	public static void InvalidCharacterEntered (this ITKSmartCardUserInteractionDelegate This, TKSmartCardUserInteraction interaction);
	public static void NewPinConfirmationRequested (this ITKSmartCardUserInteractionDelegate This, TKSmartCardUserInteraction interaction);
	public static void NewPinRequested (this ITKSmartCardUserInteractionDelegate This, TKSmartCardUserInteraction interaction);
	public static void OldPinRequested (this ITKSmartCardUserInteractionDelegate This, TKSmartCardUserInteraction interaction);
	public static void ValidationKeyPressed (this ITKSmartCardUserInteractionDelegate This, TKSmartCardUserInteraction interaction);
}

New Type: CryptoTokenKit.TKSmartCardUserInteractionForPinOperation

public class TKSmartCardUserInteractionForPinOperation : CryptoTokenKit.TKSmartCardUserInteraction {
	// constructors
	public TKSmartCardUserInteractionForPinOperation ();
	protected TKSmartCardUserInteractionForPinOperation (Foundation.NSObjectFlag t);
	protected TKSmartCardUserInteractionForPinOperation (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual Foundation.NSLocale Locale { get; set; }
	public virtual TKSmartCardPinCompletion PinCompletion { get; set; }
	public virtual Foundation.NSNumber[] PinMessageIndices { get; set; }
	public virtual Foundation.NSData ResultData { get; set; }
	public virtual ushort ResultSW { get; set; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type: CryptoTokenKit.TKSmartCardUserInteractionForSecurePinChange

public class TKSmartCardUserInteractionForSecurePinChange : CryptoTokenKit.TKSmartCardUserInteractionForPinOperation {
	// constructors
	public TKSmartCardUserInteractionForSecurePinChange ();
	protected TKSmartCardUserInteractionForSecurePinChange (Foundation.NSObjectFlag t);
	protected TKSmartCardUserInteractionForSecurePinChange (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual TKSmartCardPinConfirmation PinConfirmation { get; set; }
}

New Type: CryptoTokenKit.TKSmartCardUserInteractionForSecurePinVerification

public class TKSmartCardUserInteractionForSecurePinVerification : CryptoTokenKit.TKSmartCardUserInteractionForPinOperation {
	// constructors
	public TKSmartCardUserInteractionForSecurePinVerification ();
	protected TKSmartCardUserInteractionForSecurePinVerification (Foundation.NSObjectFlag t);
	protected TKSmartCardUserInteractionForSecurePinVerification (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
}

New Type: CryptoTokenKit.TKTlvRecord

public class TKTlvRecord : Foundation.NSObject {
	// constructors
	protected TKTlvRecord (Foundation.NSObjectFlag t);
	protected TKTlvRecord (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual Foundation.NSData Data { get; }
	public virtual ulong Tag { get; }
	public virtual Foundation.NSData Value { get; }
	// methods
	public static TKTlvRecord CreateRecord (Foundation.NSData data);
	public static TKTlvRecord[] CreateSequenceOfRecords (Foundation.NSData data);
}

New Type: CryptoTokenKit.TKToken

public class TKToken : Foundation.NSObject {
	// constructors
	protected TKToken (Foundation.NSObjectFlag t);
	protected TKToken (ObjCRuntime.NativeHandle handle);
	public TKToken (TKTokenDriver tokenDriver, string instanceId);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual TKTokenConfiguration Configuration { get; }
	public ITKTokenDelegate Delegate { get; set; }
	public virtual TKTokenKeychainContents KeychainContents { get; }
	public virtual TKTokenDriver TokenDriver { get; }
	public virtual Foundation.NSObject WeakDelegate { get; set; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type: CryptoTokenKit.TKTokenAuthOperation

public class TKTokenAuthOperation : Foundation.NSObject, Foundation.INSCoding, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public TKTokenAuthOperation ();
	public TKTokenAuthOperation (Foundation.NSCoder coder);
	protected TKTokenAuthOperation (Foundation.NSObjectFlag t);
	protected TKTokenAuthOperation (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public virtual bool Finish (out Foundation.NSError error);
}

New Type: CryptoTokenKit.TKTokenConfiguration

public class TKTokenConfiguration : Foundation.NSObject {
	// constructors
	protected TKTokenConfiguration (Foundation.NSObjectFlag t);
	protected TKTokenConfiguration (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual Foundation.NSData ConfigurationData { get; set; }
	public virtual string InstanceId { get; }
	public virtual TKTokenKeychainItem[] KeychainItems { get; set; }
	// methods
	public virtual TKTokenKeychainCertificate GetCertificate (Foundation.NSObject objectId, out Foundation.NSError error);
	public virtual TKTokenKeychainKey GetKey (Foundation.NSObject objectId, out Foundation.NSError error);
}

New Type: CryptoTokenKit.TKTokenDelegate

public abstract class TKTokenDelegate : Foundation.NSObject, ITKTokenDelegate, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected TKTokenDelegate ();
	protected TKTokenDelegate (Foundation.NSObjectFlag t);
	protected TKTokenDelegate (ObjCRuntime.NativeHandle handle);
	// methods
	public virtual TKTokenSession CreateSession (TKToken token, out Foundation.NSError error);
	public virtual void TerminateSession (TKToken token, TKTokenSession session);
}

New Type: CryptoTokenKit.TKTokenDelegate_Extensions

public static class TKTokenDelegate_Extensions {
	// methods
	public static void TerminateSession (this ITKTokenDelegate This, TKToken token, TKTokenSession session);
}

New Type: CryptoTokenKit.TKTokenDriver

public class TKTokenDriver : Foundation.NSObject {
	// constructors
	public TKTokenDriver ();
	protected TKTokenDriver (Foundation.NSObjectFlag t);
	protected TKTokenDriver (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public ITKTokenDriverDelegate Delegate { get; set; }
	public virtual Foundation.NSObject WeakDelegate { get; set; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type: CryptoTokenKit.TKTokenDriverConfiguration

public class TKTokenDriverConfiguration : Foundation.NSObject {
	// constructors
	protected TKTokenDriverConfiguration (Foundation.NSObjectFlag t);
	protected TKTokenDriverConfiguration (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual string ClassId { get; }
	public static Foundation.NSDictionary<Foundation.NSString,CryptoTokenKit.TKTokenDriverConfiguration> DriverConfigurations { get; }
	public virtual Foundation.NSDictionary<Foundation.NSString,CryptoTokenKit.TKTokenConfiguration> TokenConfigurations { get; }
	// methods
	public virtual TKTokenConfiguration AddTokenConfiguration (string instanceId);
	public virtual void RemoveTokenConfiguration (string instanceId);
}

New Type: CryptoTokenKit.TKTokenDriverDelegate

public class TKTokenDriverDelegate : Foundation.NSObject, ITKTokenDriverDelegate, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public TKTokenDriverDelegate ();
	protected TKTokenDriverDelegate (Foundation.NSObjectFlag t);
	protected TKTokenDriverDelegate (ObjCRuntime.NativeHandle handle);
	// methods
	public virtual TKToken GetToken (TKTokenDriver driver, TKTokenConfiguration configuration, out Foundation.NSError error);
	public virtual void TerminateToken (TKTokenDriver driver, TKToken token);
}

New Type: CryptoTokenKit.TKTokenDriverDelegate_Extensions

public static class TKTokenDriverDelegate_Extensions {
	// methods
	public static TKToken GetToken (this ITKTokenDriverDelegate This, TKTokenDriver driver, TKTokenConfiguration configuration, out Foundation.NSError error);
	public static void TerminateToken (this ITKTokenDriverDelegate This, TKTokenDriver driver, TKToken token);
}

New Type: CryptoTokenKit.TKTokenKeyAlgorithm

public class TKTokenKeyAlgorithm : Foundation.NSObject {
	// constructors
	protected TKTokenKeyAlgorithm (Foundation.NSObjectFlag t);
	protected TKTokenKeyAlgorithm (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public virtual bool IsAlgorithm (Security.SecKeyAlgorithm algorithm);
	public virtual bool SupportsAlgorithm (Security.SecKeyAlgorithm algorithm);
}

New Type: CryptoTokenKit.TKTokenKeyExchangeParameters

public class TKTokenKeyExchangeParameters : Foundation.NSObject {
	// constructors
	public TKTokenKeyExchangeParameters ();
	protected TKTokenKeyExchangeParameters (Foundation.NSObjectFlag t);
	protected TKTokenKeyExchangeParameters (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual IntPtr RequestedSize { get; }
	public virtual Foundation.NSData SharedInfo { get; }
}

New Type: CryptoTokenKit.TKTokenKeychainCertificate

public class TKTokenKeychainCertificate : CryptoTokenKit.TKTokenKeychainItem {
	// constructors
	public TKTokenKeychainCertificate ();
	protected TKTokenKeychainCertificate (Foundation.NSObjectFlag t);
	protected TKTokenKeychainCertificate (ObjCRuntime.NativeHandle handle);
	public TKTokenKeychainCertificate (Security.SecKeyAlgorithm certificateRef, Foundation.NSObject objectId);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual Foundation.NSData Data { get; }
}

New Type: CryptoTokenKit.TKTokenKeychainContents

public class TKTokenKeychainContents : Foundation.NSObject {
	// constructors
	protected TKTokenKeychainContents (Foundation.NSObjectFlag t);
	protected TKTokenKeychainContents (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual TKTokenKeychainItem[] Items { get; }
	// methods
	public virtual void Fill (TKTokenKeychainItem[] items);
	public virtual TKTokenKeychainCertificate GetCertificate (Foundation.NSObject objectId, out Foundation.NSError error);
	public virtual TKTokenKeychainKey GetKey (Foundation.NSObject objectId, out Foundation.NSError error);
}

New Type: CryptoTokenKit.TKTokenKeychainItem

public class TKTokenKeychainItem : Foundation.NSObject {
	// constructors
	public TKTokenKeychainItem (Foundation.NSObject objectId);
	protected TKTokenKeychainItem (Foundation.NSObjectFlag t);
	protected TKTokenKeychainItem (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual Foundation.NSDictionary<Foundation.NSNumber,Foundation.NSObject> Constraints { get; set; }
	public virtual string Label { get; set; }
	public virtual Foundation.NSObject ObjectId { get; }
}

New Type: CryptoTokenKit.TKTokenKeychainKey

public class TKTokenKeychainKey : CryptoTokenKit.TKTokenKeychainItem {
	// constructors
	public TKTokenKeychainKey ();
	protected TKTokenKeychainKey (Foundation.NSObjectFlag t);
	protected TKTokenKeychainKey (ObjCRuntime.NativeHandle handle);
	public TKTokenKeychainKey (Security.SecCertificate certificate, Foundation.NSObject objectId);
	public TKTokenKeychainKey (IntPtr certificate, Foundation.NSObject objectId);
	// properties
	public virtual Foundation.NSData ApplicationTag { get; set; }
	public virtual bool CanDecrypt { get; set; }
	public virtual bool CanPerformKeyExchange { get; set; }
	public virtual bool CanSign { get; set; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual IntPtr KeySizeInBits { get; set; }
	public virtual string KeyType { get; set; }
	public virtual Foundation.NSData PublicKeyData { get; set; }
	public virtual Foundation.NSData PublicKeyHash { get; set; }
	public virtual bool SuitableForLogin { get; set; }
}

New Type: CryptoTokenKit.TKTokenOperation

[Serializable]
public enum TKTokenOperation {
	DecryptData = 3,
	None = 0,
	PerformKeyExchange = 4,
	ReadData = 1,
	SignData = 2,
}

New Type: CryptoTokenKit.TKTokenPasswordAuthOperation

public class TKTokenPasswordAuthOperation : CryptoTokenKit.TKTokenAuthOperation {
	// constructors
	public TKTokenPasswordAuthOperation ();
	public TKTokenPasswordAuthOperation (Foundation.NSCoder coder);
	protected TKTokenPasswordAuthOperation (Foundation.NSObjectFlag t);
	protected TKTokenPasswordAuthOperation (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual string Password { get; set; }
}

New Type: CryptoTokenKit.TKTokenSession

public class TKTokenSession : Foundation.NSObject {
	// constructors
	public TKTokenSession (TKToken token);
	protected TKTokenSession (Foundation.NSObjectFlag t);
	protected TKTokenSession (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public ITKTokenSessionDelegate Delegate { get; set; }
	public virtual TKToken Token { get; }
	public virtual Foundation.NSObject WeakDelegate { get; set; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type: CryptoTokenKit.TKTokenSessionDelegate

public class TKTokenSessionDelegate : Foundation.NSObject, ITKTokenSessionDelegate, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public TKTokenSessionDelegate ();
	protected TKTokenSessionDelegate (Foundation.NSObjectFlag t);
	protected TKTokenSessionDelegate (ObjCRuntime.NativeHandle handle);
	// methods
	public virtual TKTokenAuthOperation BeginAuthentication (TKTokenSession session, TKTokenOperation operation, Foundation.NSObject constraint, out Foundation.NSError error);
	public virtual Foundation.NSData DecryptData (TKTokenSession session, Foundation.NSData ciphertext, Foundation.NSObject keyObjectId, TKTokenKeyAlgorithm algorithm, out Foundation.NSError error);
	public virtual Foundation.NSData PerformKeyExchange (TKTokenSession session, Foundation.NSData otherPartyPublicKeyData, Foundation.NSObject objectId, TKTokenKeyAlgorithm algorithm, TKTokenKeyExchangeParameters parameters, out Foundation.NSError error);
	public virtual Foundation.NSData SignData (TKTokenSession session, Foundation.NSData dataToSign, Foundation.NSObject keyObjectId, TKTokenKeyAlgorithm algorithm, out Foundation.NSError error);
	public virtual bool SupportsOperation (TKTokenSession session, TKTokenOperation operation, Foundation.NSObject keyObjectId, TKTokenKeyAlgorithm algorithm);
}

New Type: CryptoTokenKit.TKTokenSessionDelegate_Extensions

public static class TKTokenSessionDelegate_Extensions {
	// methods
	public static TKTokenAuthOperation BeginAuthentication (this ITKTokenSessionDelegate This, TKTokenSession session, TKTokenOperation operation, Foundation.NSObject constraint, out Foundation.NSError error);
	public static Foundation.NSData DecryptData (this ITKTokenSessionDelegate This, TKTokenSession session, Foundation.NSData ciphertext, Foundation.NSObject keyObjectId, TKTokenKeyAlgorithm algorithm, out Foundation.NSError error);
	public static Foundation.NSData PerformKeyExchange (this ITKTokenSessionDelegate This, TKTokenSession session, Foundation.NSData otherPartyPublicKeyData, Foundation.NSObject objectId, TKTokenKeyAlgorithm algorithm, TKTokenKeyExchangeParameters parameters, out Foundation.NSError error);
	public static Foundation.NSData SignData (this ITKTokenSessionDelegate This, TKTokenSession session, Foundation.NSData dataToSign, Foundation.NSObject keyObjectId, TKTokenKeyAlgorithm algorithm, out Foundation.NSError error);
	public static bool SupportsOperation (this ITKTokenSessionDelegate This, TKTokenSession session, TKTokenOperation operation, Foundation.NSObject keyObjectId, TKTokenKeyAlgorithm algorithm);
}

New Type: CryptoTokenKit.TKTokenSmartCardPinAuthOperation

public class TKTokenSmartCardPinAuthOperation : CryptoTokenKit.TKTokenAuthOperation {
	// constructors
	public TKTokenSmartCardPinAuthOperation ();
	public TKTokenSmartCardPinAuthOperation (Foundation.NSCoder coder);
	protected TKTokenSmartCardPinAuthOperation (Foundation.NSObjectFlag t);
	protected TKTokenSmartCardPinAuthOperation (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual Foundation.NSData ApduTemplate { get; set; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual string Pin { get; set; }
	public virtual IntPtr PinByteOffset { get; set; }
	public virtual TKSmartCardPinFormat PinFormat { get; set; }
	public virtual TKSmartCard SmartCard { get; set; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type: CryptoTokenKit.TKTokenWatcher

public class TKTokenWatcher : Foundation.NSObject {
	// constructors
	public TKTokenWatcher ();
	protected TKTokenWatcher (Foundation.NSObjectFlag t);
	protected TKTokenWatcher (ObjCRuntime.NativeHandle handle);
	public TKTokenWatcher (System.Action<Foundation.NSString> insertionHandler);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual string[] TokenIds { get; }
	// methods
	public virtual void AddRemovalHandler (System.Action<Foundation.NSString> removalHandler, string tokenId);
	public virtual TKTokenWatcherTokenInfo GetTokenInfo (string tokenId);
	public virtual void SetInsertionHandler (System.Action<Foundation.NSString> insertionHandler);
}

New Type: CryptoTokenKit.TKTokenWatcherTokenInfo

public class TKTokenWatcherTokenInfo : Foundation.NSObject {
	// constructors
	protected TKTokenWatcherTokenInfo (Foundation.NSObjectFlag t);
	protected TKTokenWatcherTokenInfo (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual string DriverName { get; }
	public virtual string SlotName { get; }
	public virtual string TokenId { get; }
}

New Namespace DeviceDiscoveryUI

New Type: DeviceDiscoveryUI.DDDevicePickerViewController

public class DDDevicePickerViewController : UIKit.UIViewController {
	// constructors
	public DDDevicePickerViewController (Foundation.NSCoder coder);
	protected DDDevicePickerViewController (Foundation.NSObjectFlag t);
	protected DDDevicePickerViewController (ObjCRuntime.NativeHandle handle);
	public DDDevicePickerViewController (Network.NWBrowserDescriptor browseDescriptor, Network.NWParameters parameters);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public static bool IsSupported (Network.NWBrowserDescriptor browseDescriptor, Network.NWParameters parameters);
	public void SetDevicePicker (DDDevicePickerViewController.DevicePickerCompletionHandler devicePickerCompletionHandler);

	// inner types
	public sealed delegate DevicePickerCompletionHandler : System.MulticastDelegate {
		// constructors
		public DDDevicePickerViewController.DevicePickerCompletionHandler (object object, IntPtr method);
		// methods
		public virtual System.IAsyncResult BeginInvoke (Network.NWEndpoint endpoint, Network.NWError error, System.AsyncCallback callback, object object);
		public virtual void EndInvoke (System.IAsyncResult result);
		public virtual void Invoke (Network.NWEndpoint endpoint, Network.NWError error);
	}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment