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

import NitroModules

/**
 * Represents an instance of `NativeAzureConfig`, backed by a C++ struct.
 */
public typealias NativeAzureConfig = margelo.nitro.clarion.azure.NativeAzureConfig

public extension NativeAzureConfig {
  private typealias bridge = margelo.nitro.clarion.azure.bridge.swift

  /**
   * Create a new instance of `NativeAzureConfig`.
   */
  init(language: String, emitPartials: Bool, emitAudioLevel: Bool, audioLevelIntervalMs: Double, subscriptionKey: String, region: String, authToken: String, endpoint: String, outputFormat: String, profanity: String, enableSpeakerDiarization: Bool, autoDetectLanguages: String, silenceTimeoutMs: Double, phraseHints: String, degradeOnTierMismatch: Bool) {
    self.init(std.string(language), emitPartials, emitAudioLevel, audioLevelIntervalMs, std.string(subscriptionKey), std.string(region), std.string(authToken), std.string(endpoint), std.string(outputFormat), std.string(profanity), enableSpeakerDiarization, std.string(autoDetectLanguages), silenceTimeoutMs, std.string(phraseHints), degradeOnTierMismatch)
  }

  @inline(__always)
  var language: String {
    return String(self.__language)
  }
  
  @inline(__always)
  var emitPartials: Bool {
    return self.__emitPartials
  }
  
  @inline(__always)
  var emitAudioLevel: Bool {
    return self.__emitAudioLevel
  }
  
  @inline(__always)
  var audioLevelIntervalMs: Double {
    return self.__audioLevelIntervalMs
  }
  
  @inline(__always)
  var subscriptionKey: String {
    return String(self.__subscriptionKey)
  }
  
  @inline(__always)
  var region: String {
    return String(self.__region)
  }
  
  @inline(__always)
  var authToken: String {
    return String(self.__authToken)
  }
  
  @inline(__always)
  var endpoint: String {
    return String(self.__endpoint)
  }
  
  @inline(__always)
  var outputFormat: String {
    return String(self.__outputFormat)
  }
  
  @inline(__always)
  var profanity: String {
    return String(self.__profanity)
  }
  
  @inline(__always)
  var enableSpeakerDiarization: Bool {
    return self.__enableSpeakerDiarization
  }
  
  @inline(__always)
  var autoDetectLanguages: String {
    return String(self.__autoDetectLanguages)
  }
  
  @inline(__always)
  var silenceTimeoutMs: Double {
    return self.__silenceTimeoutMs
  }
  
  @inline(__always)
  var phraseHints: String {
    return String(self.__phraseHints)
  }
  
  @inline(__always)
  var degradeOnTierMismatch: Bool {
    return self.__degradeOnTierMismatch
  }
}
