[versions]
# Do not remove because despite what AS says, they're actually being used
android-compileSdk = "36"
android-minSdk = "24"
android-targetSdk = "36"
# Platform specific versions
agp = "8.13.0"
kotlin = "2.2.20"
androidx-activity = "1.11.0"
androidx-core = "1.17.0"
androidx-espresso = "3.7.0"
androidx-lifecycle = "2.9.4"
androidx-testExt = "1.3.0"
androidx-navigation = "2.9.4"
androidx-security = "1.1.0"
androidx-datastore = "1.1.7"
kotlinx-serialization = "1.9.0"
kotlinx-datetime = "0.7.1"
kotlinx-coroutines = "1.10.2"
compose-multiplatform-navigation = "2.9.0"
compose-multiplatform = "1.9.0"
# Additional Libraries
koin = "4.1.1"
insetsx = "0.1.0-alpha10"
atomicfu = "0.29.0"
markdown = "0.7.3"
multiplatform-settings = "1.3.0"
moko-permissions = "0.20.1"
# Testing
junit = "4.13.2"

[libraries]
# Platform specific libraries
androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidx-core" }
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity" }
androidx-lifecycle-viewmodelCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" }
androidx-lifecycle-runtimeCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle" }
androidx-compose-navigation = { module = "androidx.navigation:navigation-compose", version.ref = "androidx-navigation" }
androidx-security-crypto = { module = "androidx.security:security-crypto", version.ref = "androidx-security" }
androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "androidx-datastore" }
androidx-datastore-preferences-core = { module = "androidx.datastore:datastore-preferences-core", version.ref = "androidx-datastore" }
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" }
kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinx-coroutines" }
kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinx-datetime"}
compose-multiplatform-navigation = { module = "org.jetbrains.androidx.navigation:navigation-compose", version.ref = "compose-multiplatform-navigation" }

# Koin - Dependency Injection
koin-core = { module = "io.insert-koin:koin-core", version.ref = "koin" }
koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin" }
koin-compose = { module = "io.insert-koin:koin-compose", version.ref = "koin" }
koin-compose-viewmodel = { module = "io.insert-koin:koin-compose-viewmodel", version.ref = "koin" }
koin-compose-viewmodel-navigation = { module = "io.insert-koin:koin-compose-viewmodel-navigation", version.ref = "koin" }
koin-test = { module = "io.insert-koin:koin-test", version.ref = "koin" }

# MOKO
moko-permissions = { module = "dev.icerock.moko:permissions", version.ref = "moko-permissions"}
moko-permissions-compose = { module = "dev.icerock.moko:permissions-compose", version.ref = "moko-permissions"}
moko-permissions-bluetooth = { module = "dev.icerock.moko:permissions-bluetooth", version.ref = "moko-permissions"}
moko-permissions-camera = { module = "dev.icerock.moko:permissions-camera", version.ref = "moko-permissions"}
moko-permissions-contacts = { module = "dev.icerock.moko:permissions-contacts", version.ref = "moko-permissions"}
moko-permissions-gallery = { module = "dev.icerock.moko:permissions-gallery", version.ref = "moko-permissions"}
moko-permissions-location = { module = "dev.icerock.moko:permissions-location", version.ref = "moko-permissions"}
moko-permissions-microphone = { module = "dev.icerock.moko:permissions-microphone", version.ref = "moko-permissions"}
moko-permissions-motion = { module = "dev.icerock.moko:permissions-motion", version.ref = "moko-permissions"}
moko-permissions-notifications = { module = "dev.icerock.moko:permissions-notifications", version.ref = "moko-permissions"}
moko-permissions-storage = { module = "dev.icerock.moko:permissions-storage", version.ref = "moko-permissions"}

# Multiplatform-settings
multiplatform-settings-core = { module = "com.russhwolf:multiplatform-settings", version.ref = "multiplatform-settings" }
multiplatform-settings-noarg = { module = "com.russhwolf:multiplatform-settings-no-arg", version.ref = "multiplatform-settings" }
multiplatform-settings-coroutines = { module = "com.russhwolf:multiplatform-settings-coroutines", version.ref = "multiplatform-settings" }
multiplatform-settings-serialization = { module = "com.russhwolf:multiplatform-settings-serialization", version.ref = "multiplatform-settings" }

# Others
insetsx = { module = "com.moriatsushi.insetsx:insetsx", version.ref = "insetsx" }
atomicfu = { module = "org.jetbrains.kotlinx:atomicfu", version.ref = "atomicfu" }
markdown = { module = "org.jetbrains:markdown", version.ref = "markdown"}

# Test libraries
junit = { module = "junit:junit", version.ref = "junit" }
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
kotlin-testJunit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" }
androidx-testExt-junit = { module = "androidx.test.ext:junit", version.ref = "androidx-testExt" }
androidx-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidx-espresso" }

[plugins]
androidApplication = { id = "com.android.application", version.ref = "agp" }
androidLibrary = { id = "com.android.library", version.ref = "agp" }
androidMultiplatform = { id = "com.android.kotlin.multiplatform.library", version.ref = "agp" }
composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" }
composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
kotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }

# Buildlogic defined plugins -> buildlogic/convention/build.gradle.kts
composeDevKit = { id = "dev.carlosmartino.plugins.composeMultiplatform", version = "unspecified" }
kotlinDevKit = { id = "dev.carlosmartino.plugins.kotlinMultiplatform", version = "unspecified" }
