///
/// PermissionResponse.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 `PermissionResponse`, backed by a C++ struct.
 */
public typealias PermissionResponse = margelo.nitro.nitroscreenrecorder.PermissionResponse

public extension PermissionResponse {
  private typealias bridge = margelo.nitro.nitroscreenrecorder.bridge.swift

  /**
   * Create a new instance of `PermissionResponse`.
   */
  init(canAskAgain: Bool, granted: Bool, status: PermissionStatus, expiresAt: Double) {
    self.init(canAskAgain, granted, status, expiresAt)
  }

  var canAskAgain: Bool {
    @inline(__always)
    get {
      return self.__canAskAgain
    }
    @inline(__always)
    set {
      self.__canAskAgain = newValue
    }
  }
  
  var granted: Bool {
    @inline(__always)
    get {
      return self.__granted
    }
    @inline(__always)
    set {
      self.__granted = newValue
    }
  }
  
  var status: PermissionStatus {
    @inline(__always)
    get {
      return self.__status
    }
    @inline(__always)
    set {
      self.__status = newValue
    }
  }
  
  var expiresAt: Double {
    @inline(__always)
    get {
      return self.__expiresAt
    }
    @inline(__always)
    set {
      self.__expiresAt = newValue
    }
  }
}
