// DO NOT EDIT MANUALLY!
// Generated by org/jetbrains/kotlin/generators/arguments/GenerateGradleOptions.kt
// To regenerate run 'generateGradleOptions' task
@file:Suppress("RemoveRedundantQualifierName", "Deprecation", "Deprecation_Error", "DuplicatedCode")

package org.jetbrains.kotlin.gradle.dsl

/**
 * Common compiler options for all Kotlin platforms.
 */
@OptIn(org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi::class)
@Deprecated(
    message = org.jetbrains.kotlin.gradle.dsl.KOTLIN_OPTIONS_DEPRECATION_MESSAGE,
    level = DeprecationLevel.ERROR,
)
interface KotlinCommonOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonToolOptions {

    @OptIn(org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi::class)
    @Deprecated(
        message = org.jetbrains.kotlin.gradle.dsl.KOTLIN_OPTIONS_DEPRECATION_MESSAGE,
        level = DeprecationLevel.ERROR,
    )
    /**
     * @suppress
     */
    override val options: org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions

    private val kotlin.String?.apiVersionCompilerOption get() = if (this != null) org.jetbrains.kotlin.gradle.dsl.KotlinVersion.fromVersion(this) else null

    private val org.jetbrains.kotlin.gradle.dsl.KotlinVersion?.apiVersionKotlinOption get() = this?.version

    /**
     * Allow using declarations from only the specified version of bundled libraries.
     *
     * Possible values: "1.8 (deprecated)", "1.9 (deprecated)", "2.0", "2.1", "2.2", "2.3 (experimental)", "2.4 (experimental)", "2.5 (experimental)"
     *
     * Default value: null
     */
    @OptIn(org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi::class)
    @Deprecated(
        message = org.jetbrains.kotlin.gradle.dsl.KOTLIN_OPTIONS_DEPRECATION_MESSAGE,
        level = DeprecationLevel.WARNING,
    )
    var apiVersion: kotlin.String?
        get() = options.apiVersion.orNull.apiVersionKotlinOption
        set(value) = options.apiVersion.set(value.apiVersionCompilerOption)

    private val kotlin.String?.languageVersionCompilerOption get() = if (this != null) org.jetbrains.kotlin.gradle.dsl.KotlinVersion.fromVersion(this) else null

    private val org.jetbrains.kotlin.gradle.dsl.KotlinVersion?.languageVersionKotlinOption get() = this?.version

    /**
     * Provide source compatibility with the specified version of Kotlin.
     *
     * Possible values: "1.8 (deprecated)", "1.9 (deprecated)", "2.0", "2.1", "2.2", "2.3 (experimental)", "2.4 (experimental)", "2.5 (experimental)"
     *
     * Default value: null
     */
    @OptIn(org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi::class)
    @Deprecated(
        message = org.jetbrains.kotlin.gradle.dsl.KOTLIN_OPTIONS_DEPRECATION_MESSAGE,
        level = DeprecationLevel.WARNING,
    )
    var languageVersion: kotlin.String?
        get() = options.languageVersion.orNull.languageVersionKotlinOption
        set(value) = options.languageVersion.set(value.languageVersionCompilerOption)
}
