-keep class io.kotzilla.sdk.security.DefaultTrustManager {
    public *;
}

### Kotzilla SDK Public API ###

-keep public class io.kotzilla.sdk.KotzillaSDK {
    public static final *** INSTANCE;
    setup(android.content.Context);
    close();
    log(java.lang.String);
    log(***);
    trace(java.lang.String, kotlin.jvm.functions.Function0);
    lazyTrace(java.lang.String, kotlin.jvm.functions.Function0);
    setProperties(***);
    setUserId(java.lang.String);
    createIssue(java.lang.String,java.lang.String);
}

-keep public class io.kotzilla.sdk.analytics.koin.KoinApplicationExtKt { *; }

# Generated config from Kotzilla Gradle Plugin (loaded via Class.forName)
-keep class io.kotzilla.generated.KotzillaGeneratedConfig { *; }
-keep class io.kotzilla.generated.KotzillaGeneratedConfigKt { *; }

### Kotlinx Serialization ###

-if @kotlinx.serialization.Serializable class **
-keepclassmembers class <1> {
    static <1>$Companion Companion;
}

-keepnames @kotlinx.serialization.internal.NamedCompanion class *
-if @kotlinx.serialization.internal.NamedCompanion class *
-keepclassmembernames class * {
    static <1> *;
}

-if @kotlinx.serialization.Serializable class ** {
    static **$* *;
}
-keepclassmembers class <2>$<3> {
    kotlinx.serialization.KSerializer serializer(...);
}

-if @kotlinx.serialization.Serializable class ** {
    public static ** INSTANCE;
}
-keepclassmembers class <1> {
    public static <1> INSTANCE;
    kotlinx.serialization.KSerializer serializer(...);
}

-keepattributes RuntimeVisibleAnnotations,AnnotationDefault

-dontnote kotlinx.serialization.**
-dontwarn kotlinx.serialization.internal.ClassValueReferences

-keepclassmembers public class **$serializer {
    private ** descriptor;
}
