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

package com.margelo.nitro.video

import androidx.annotation.Keep
import com.facebook.proguard.annotations.DoNotStrip
import com.margelo.nitro.core.*


/**
 * Represents the JavaScript object/struct "NativeDrmParams".
 */
@DoNotStrip
@Keep
data class NativeDrmParams
  @DoNotStrip
  @Keep
  constructor(
    @DoNotStrip
    @Keep
    val type: String?,
    @DoNotStrip
    @Keep
    val licenseUrl: String?,
    @DoNotStrip
    @Keep
    val certificateUrl: String?,
    @DoNotStrip
    @Keep
    val contentId: String?,
    @DoNotStrip
    @Keep
    val licenseHeaders: Map<String, String>?,
    @DoNotStrip
    @Keep
    val multiSession: Boolean?,
    @DoNotStrip
    @Keep
    val getLicense: Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__string_____OnGetLicensePayload?
  ) {
  /**
   * Initialize a new instance of `NativeDrmParams` from Kotlin.
   */
  constructor(type: String?, licenseUrl: String?, certificateUrl: String?, contentId: String?, licenseHeaders: Map<String, String>?, multiSession: Boolean?, getLicense: ((payload: OnGetLicensePayload) -> Promise<Promise<String>>)?)
       : this(type, licenseUrl, certificateUrl, contentId, licenseHeaders, multiSession, getLicense?.let { Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__string_____OnGetLicensePayload_java(it) })
}
