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

import Foundation
import NitroModules

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

public extension GenerationStats {
  private typealias bridge = margelo.nitro.mlxreactnative.bridge.swift

  /**
   * Create a new instance of `GenerationStats`.
   */
  init(tokenCount: Double, tokensPerSecond: Double, timeToFirstToken: Double, totalTime: Double, toolExecutionTime: Double) {
    self.init(tokenCount, tokensPerSecond, timeToFirstToken, totalTime, toolExecutionTime)
  }

  var tokenCount: Double {
    @inline(__always)
    get {
      return self.__tokenCount
    }
    @inline(__always)
    set {
      self.__tokenCount = newValue
    }
  }
  
  var tokensPerSecond: Double {
    @inline(__always)
    get {
      return self.__tokensPerSecond
    }
    @inline(__always)
    set {
      self.__tokensPerSecond = newValue
    }
  }
  
  var timeToFirstToken: Double {
    @inline(__always)
    get {
      return self.__timeToFirstToken
    }
    @inline(__always)
    set {
      self.__timeToFirstToken = newValue
    }
  }
  
  var totalTime: Double {
    @inline(__always)
    get {
      return self.__totalTime
    }
    @inline(__always)
    set {
      self.__totalTime = newValue
    }
  }
  
  var toolExecutionTime: Double {
    @inline(__always)
    get {
      return self.__toolExecutionTime
    }
    @inline(__always)
    set {
      self.__toolExecutionTime = newValue
    }
  }
}
