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

import NitroModules

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

public extension LDP_CustomStyle {
  private typealias bridge = margelo.nitro.lunardatepicker.bridge.swift

  /**
   * Create a new instance of `LDP_CustomStyle`.
   */
  init(titleColor: String, cancelColor: String, dateLabelColor: String, lunarDateLabelColor: String, selectedTextColor: String, weekendLabelColor: String, specialDayLabelColor: String, priceLabelColor: String, cheapestPriceLabelColor: String, monthLabelColor: String, backgroundColor: String, weekViewBackgroundColor: String, selectedBackgroundColor: String, rangeBackgroundColor: String) {
    self.init(std.string(titleColor), std.string(cancelColor), std.string(dateLabelColor), std.string(lunarDateLabelColor), std.string(selectedTextColor), std.string(weekendLabelColor), std.string(specialDayLabelColor), std.string(priceLabelColor), std.string(cheapestPriceLabelColor), std.string(monthLabelColor), std.string(backgroundColor), std.string(weekViewBackgroundColor), std.string(selectedBackgroundColor), std.string(rangeBackgroundColor))
  }

  var titleColor: String {
    @inline(__always)
    get {
      return String(self.__titleColor)
    }
    @inline(__always)
    set {
      self.__titleColor = std.string(newValue)
    }
  }
  
  var cancelColor: String {
    @inline(__always)
    get {
      return String(self.__cancelColor)
    }
    @inline(__always)
    set {
      self.__cancelColor = std.string(newValue)
    }
  }
  
  var dateLabelColor: String {
    @inline(__always)
    get {
      return String(self.__dateLabelColor)
    }
    @inline(__always)
    set {
      self.__dateLabelColor = std.string(newValue)
    }
  }
  
  var lunarDateLabelColor: String {
    @inline(__always)
    get {
      return String(self.__lunarDateLabelColor)
    }
    @inline(__always)
    set {
      self.__lunarDateLabelColor = std.string(newValue)
    }
  }
  
  var selectedTextColor: String {
    @inline(__always)
    get {
      return String(self.__selectedTextColor)
    }
    @inline(__always)
    set {
      self.__selectedTextColor = std.string(newValue)
    }
  }
  
  var weekendLabelColor: String {
    @inline(__always)
    get {
      return String(self.__weekendLabelColor)
    }
    @inline(__always)
    set {
      self.__weekendLabelColor = std.string(newValue)
    }
  }
  
  var specialDayLabelColor: String {
    @inline(__always)
    get {
      return String(self.__specialDayLabelColor)
    }
    @inline(__always)
    set {
      self.__specialDayLabelColor = std.string(newValue)
    }
  }
  
  var priceLabelColor: String {
    @inline(__always)
    get {
      return String(self.__priceLabelColor)
    }
    @inline(__always)
    set {
      self.__priceLabelColor = std.string(newValue)
    }
  }
  
  var cheapestPriceLabelColor: String {
    @inline(__always)
    get {
      return String(self.__cheapestPriceLabelColor)
    }
    @inline(__always)
    set {
      self.__cheapestPriceLabelColor = std.string(newValue)
    }
  }
  
  var monthLabelColor: String {
    @inline(__always)
    get {
      return String(self.__monthLabelColor)
    }
    @inline(__always)
    set {
      self.__monthLabelColor = std.string(newValue)
    }
  }
  
  var backgroundColor: String {
    @inline(__always)
    get {
      return String(self.__backgroundColor)
    }
    @inline(__always)
    set {
      self.__backgroundColor = std.string(newValue)
    }
  }
  
  var weekViewBackgroundColor: String {
    @inline(__always)
    get {
      return String(self.__weekViewBackgroundColor)
    }
    @inline(__always)
    set {
      self.__weekViewBackgroundColor = std.string(newValue)
    }
  }
  
  var selectedBackgroundColor: String {
    @inline(__always)
    get {
      return String(self.__selectedBackgroundColor)
    }
    @inline(__always)
    set {
      self.__selectedBackgroundColor = std.string(newValue)
    }
  }
  
  var rangeBackgroundColor: String {
    @inline(__always)
    get {
      return String(self.__rangeBackgroundColor)
    }
    @inline(__always)
    set {
      self.__rangeBackgroundColor = std.string(newValue)
    }
  }
}
