///
/// HybridNitroAccessibilityModuleSpec.swift
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
/// https://github.com/mrousavy/nitro
/// Copyright © 2024 Marc Rousavy @ Margelo
///

import Foundation
import NitroModules

/**
 * A Swift protocol representing the NitroAccessibilityModule HybridObject.
 * Implement this protocol to create Swift-based instances of NitroAccessibilityModule.
 *
 * When implementing this protocol, make sure to initialize `hybridContext` - example:
 * ```
 * public class HybridNitroAccessibilityModule : HybridNitroAccessibilityModuleSpec {
 *   // Initialize HybridContext
 *   var hybridContext = margelo.nitro.HybridContext()
 *
 *   // Return size of the instance to inform JS GC about memory pressure
 *   var memorySize: Int {
 *     return getSizeOf(self)
 *   }
 *
 *   // ...
 * }
 * ```
 */
public protocol HybridNitroAccessibilityModuleSpec: AnyObject, HybridObjectSpec {
  // Properties
  

  // Methods
  func removeListeners() throws -> Void
  func getAllSettings() throws -> AccessibilitySettings
  func getIsReduceMotionEnabled() throws -> Bool?
  func addReduceMotionListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getIsReduceTransparencyEnabled() throws -> Bool?
  func addReduceTransparencyListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getIsDifferentiateWithoutColorEnabled() throws -> Bool?
  func addDifferentiateWithoutColorListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getIsInvertColorsEnabled() throws -> Bool?
  func addInvertColorsListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getIsShowButtonShapesEnabled() throws -> Bool?
  func addShowButtonShapesListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getIsBoldTextEnabled() throws -> Bool?
  func addBoldTextListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getIsVoiceOverEnabled() throws -> Bool?
  func addVoiceOverListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getIsSwitchControlEnabled() throws -> Bool?
  func addSwitchControlListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getIsVideoAutoplayEnabled() throws -> Bool?
  func addVideoAutoplayListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getIsClosedCaptioningEnabled() throws -> Bool?
  func addClosedCaptioningListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getPrefersCrossFadeTransitionsEnabled() throws -> Bool?
  func addPrefersCrossFadeTransitionsListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getIsGrayscaleEnabled() throws -> Bool?
  func addGrayscaleListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getIsDarkerSystemColorsEnabled() throws -> Bool?
  func addDarkerSystemColorsListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getIsMonoAudioEnabled() throws -> Bool?
  func addMonoAudioListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getIsShakeToUndoEnabled() throws -> Bool?
  func addShakeToUndoListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getIsSpeakScreenEnabled() throws -> Bool?
  func addSpeakScreenListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getIsSpeakSelectionEnabled() throws -> Bool?
  func addSpeakSelectionListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
  func getIsOnOffSwitchLabelsEnabled() throws -> Bool?
  func addOnOffSwitchLabelsListener(onChanged: @escaping ((_ isEnabled: Bool?) -> Void)) throws -> Void
}
