# API diff: Microsoft.tvOS.dll

## Microsoft.tvOS.dll

<h4>Assembly Version Changed: 18.0.0.0 -> 18.2.0.0</h4>

### Namespace AVFoundation

#### New Type: AVFoundation.AVAudioApplication

```csharp
public class AVAudioApplication : Foundation.NSObject {
	// constructors
	protected AVAudioApplication (Foundation.NSObjectFlag t);
	protected AVAudioApplication (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual bool InputMuted { get; }
	public virtual AVAudioApplicationRecordPermission RecordPermission { get; }
	public static AVAudioApplication SharedInstance { get; }
	// methods
	public static void RequestRecordPermission (System.Action<bool> response);
	public static System.Threading.Tasks.Task<bool> RequestRecordPermissionAsync ();
	public virtual bool SetInputMuted (bool muted, out Foundation.NSError outError);
}
```

#### New Type: AVFoundation.AVAudioApplicationRecordPermission

```csharp
[Serializable]
public enum AVAudioApplicationRecordPermission {
	Denied = 1684369017,
	Granted = 1735552628,
	Undetermined = 1970168948,
}
```

#### New Type: AVFoundation.AVCaptureReactionType

```csharp
[Serializable]
public enum AVCaptureReactionType {
	Balloons = 2,
	Confetti = 6,
	Fireworks = 4,
	Heart = 3,
	Lasers = 7,
	Rain = 5,
	ThumbsDown = 1,
	ThumbsUp = 0,
}
```

#### New Type: AVFoundation.AVCaptureReactionTypeExtensions

```csharp
public static class AVCaptureReactionTypeExtensions {
	// methods
	public static Foundation.NSString GetConstant (this AVCaptureReactionType self);
	public static AVCaptureReactionType GetValue (Foundation.NSString constant);
}
```


### Namespace AudioUnit

#### Type Changed: AudioUnit.AudioComponentStatus

Added value:

```csharp
InstanceTimedOut = -66754,
```


#### Type Changed: AudioUnit.AudioUnitStatus

Added values:

```csharp
ComponentManagerNotSupported = -66740,
InvalidFilePath = -66742,
MissingKey = -66741,
MultipleVoiceProcessors = -66635,
RenderTimeout = -66745,
```



### Namespace CoreImage

#### New Type: CoreImage.CIDistanceGradientFromRedMask

```csharp
public class CIDistanceGradientFromRedMask : CoreImage.CIFilter, ICIFilterProtocol, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public CIDistanceGradientFromRedMask ();
	public CIDistanceGradientFromRedMask (Foundation.NSCoder coder);
	protected CIDistanceGradientFromRedMask (Foundation.NSObjectFlag t);
	protected CIDistanceGradientFromRedMask (ObjCRuntime.NativeHandle handle);
	// properties
	public CIImage InputImage { get; set; }
	public int MaximumDistance { get; set; }
	public virtual CIImage OutputImage { get; }
}
```


### Namespace CoreLocation

#### Type Changed: CoreLocation.CLLocation

Obsoleted properties:

```diff
 [Obsolete ("Use 'AccuracyBestForNavigation' instead.")]
 public static double AccurracyBestForNavigation { get; }
```

Added property:

```csharp
public static double AccuracyBestForNavigation { get; }
```



### Namespace NetworkExtension

#### Type Changed: NetworkExtension.NEProviderStopReason

Added value:

```csharp
InternalError = 17,
```



### Namespace ObjCRuntime

#### Type Changed: ObjCRuntime.Constants

Modified fields:

```diff
-public const string SdkVersion = "18.0";
+public const string SdkVersion = "18.2";
-public const string Version = "17.99.0";
+public const string Version = "18.2.9057";
```



### Namespace TVServices

#### Type Changed: TVServices.TVUserActivityType

Added property:

```csharp
public static Foundation.NSString BrowsingEntertainmentContent { get; }
```



### Namespace UIKit

#### Type Changed: UIKit.UIApplication

Added property:

```csharp
public static Foundation.NSString UIApplicationOpenDefaultApplicationsSettingsUrlString { get; }
```


#### Type Changed: UIKit.UIBarButtonSystemItem

Added value:

```csharp
WritingTools = 25,
```


#### Type Changed: UIKit.UIMenuIdentifier

Added value:

```csharp
Open = 48,
```


#### Type Changed: UIKit.UIPresentationController

Added methods:

```csharp
public virtual IUITraitChangeRegistration RegisterForTraitChanges<T> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges<T1, T2> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges<T1, T2, T3> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges<T1, T2, T3, T4> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler, System.Type[] traits);
public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Type[] traits, ObjCRuntime.Selector action);
public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Type[] traits, System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Type[] traits, Foundation.NSObject target, ObjCRuntime.Selector action);
```


#### Type Changed: UIKit.UIPressType

Added values:

```csharp
TVRemoteFourColors = 33,
TVRemoteOneTwoThree = 32,
```


#### Type Changed: UIKit.UITraitCollection

Obsoleted methods:

```diff
 [Obsolete ("Use the overload that takes a 'UITraitMutations' parameter instead.")]
 public virtual UITraitCollection GetTraitCollectionByModifyingTraits (System.Func<IUIMutableTraits> mutations);
 [Obsolete ("Use the overload that takes a 'UITraitMutations' parameter instead.")]
 public static UITraitCollection GetTraitCollectionWithTraits (System.Func<IUIMutableTraits> mutations);
```

Added methods:

```csharp
public virtual UITraitCollection GetTraitCollectionByModifyingTraits (UITraitMutations mutations);
public static UITraitCollection GetTraitCollectionWithTraits (UITraitMutations mutations);
```


#### Type Changed: UIKit.UIView

Added methods:

```csharp
public virtual IUITraitChangeRegistration RegisterForTraitChanges<T> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges<T1, T2> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges<T1, T2, T3> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges<T1, T2, T3, T4> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler, System.Type[] traits);
public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Type[] traits, ObjCRuntime.Selector action);
public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Type[] traits, System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Type[] traits, Foundation.NSObject target, ObjCRuntime.Selector action);
```


#### Type Changed: UIKit.UIViewController

Added methods:

```csharp
public virtual IUITraitChangeRegistration RegisterForTraitChanges<T> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges<T1, T2> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges<T1, T2, T3> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges<T1, T2, T3, T4> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler, System.Type[] traits);
public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Type[] traits, ObjCRuntime.Selector action);
public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Type[] traits, System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Type[] traits, Foundation.NSObject target, ObjCRuntime.Selector action);
```


#### Type Changed: UIKit.UIWindowScene

Added methods:

```csharp
public virtual IUITraitChangeRegistration RegisterForTraitChanges<T> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges<T1, T2> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges<T1, T2, T3> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges<T1, T2, T3, T4> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler, System.Type[] traits);
public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Type[] traits, ObjCRuntime.Selector action);
public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Type[] traits, System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler);
public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Type[] traits, Foundation.NSObject target, ObjCRuntime.Selector action);
```


#### New Type: UIKit.UITraitMutations

```csharp
public sealed delegate UITraitMutations : System.MulticastDelegate {
	// constructors
	public UITraitMutations (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (IUIMutableTraits mutableTraits, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (IUIMutableTraits mutableTraits);
}
```


### Namespace UniformTypeIdentifiers

#### Type Changed: UniformTypeIdentifiers.UTTypes

Added property:

```csharp
public static UTType JpegXl { get; }
```



### Namespace Vision

#### Type Changed: Vision.VNCircle

Added constructor:

```csharp
public VNCircle (VNPoint center, double radiusOrDiameter, VNCircleInitializationOption option);
```


#### Type Changed: Vision.VNUtils

Added property:

```csharp
public static double VisionVersionNumber { get; }
```


#### Type Changed: Vision.VNVector

Added constructor:

```csharp
public VNVector (System.ValueTuple<System.Double,System.Double> polarCoordinates);
```


#### New Type: Vision.VNCircleInitializationOption

```csharp
[Serializable]
public enum VNCircleInitializationOption {
	Diameter = 1,
	Radius = 0,
}
```


### New Namespace ObjCBindings

#### New Type: ObjCBindings.BindingTypeAttribute

```csharp
public class BindingTypeAttribute : System.Attribute {
	// constructors
	public BindingTypeAttribute ();
	// properties
	public string Name { get; set; }
}
```

#### New Type: ObjCBindings.Constructor

```csharp
[Serializable]
[Flags]
public enum Constructor {
	Default = 0,
	DesignatedInitializer = 4,
}
```

#### New Type: ObjCBindings.EnumValue

```csharp
[Serializable]
[Flags]
public enum EnumValue {
	None = 0,
}
```

#### New Type: ObjCBindings.ExportAttribute`1

```csharp
public class ExportAttribute`1 : System.Attribute {
	// constructors
	protected ExportAttribute`1 ();
	public ExportAttribute`1 (string selector);
	public ExportAttribute`1 (string selector, ObjCRuntime.ArgumentSemantic semantic);
	public ExportAttribute`1 (string selector, T flags);
	public ExportAttribute`1 (string selector, ObjCRuntime.ArgumentSemantic semantic, T flags);
	// properties
	public ObjCRuntime.ArgumentSemantic ArgumentSemantic { get; set; }
	public T Flags { get; set; }
	public string Selector { get; set; }
}
```

#### New Type: ObjCBindings.Field

```csharp
[Serializable]
[Flags]
public enum Field {
	None = 0,
}
```

#### New Type: ObjCBindings.FieldAttribute`1

```csharp
public class FieldAttribute`1 : System.Attribute {
	// constructors
	public FieldAttribute`1 (string symbolName);
	public FieldAttribute`1 (string symbolName, string libraryName);
	public FieldAttribute`1 (string symbolName, T flags);
	public FieldAttribute`1 (string symbolName, string libraryName, T flags);
	// properties
	public T Flags { get; set; }
	public string LibraryName { get; set; }
	public string SymbolName { get; set; }
}
```

#### New Type: ObjCBindings.Method

```csharp
[Serializable]
[Flags]
public enum Method {
	Default = 0,
	IgnoredInDelegate = 8,
	IsVariadic = 4,
	MarshalNativeExceptions = 16,
}
```

#### New Type: ObjCBindings.Property

```csharp
[Serializable]
[Flags]
public enum Property {
	Default = 0,
	IsThreadStaticAttribute = 4,
	Notification = 8,
}
```