# generated Moshi adapaters
-keep class com.appcues.data.remote.**.response.** { *; }
-keep class com.appcues.ViewElement { *; }

# required for element targeting with Jetpack Compose
-keep class androidx.compose.ui.platform.AndroidComposeView { *; }

# used in API levels <= 28 to find the root window for injecting content
-keep class android.view.WindowManagerGlobal { *; }

# *** START For AGP 8 issue with Retrofit and R8 https://github.com/square/retrofit/issues/3751#issuecomment-1192043644
# Keep generic signature of Call, Response (R8 full mode strips signatures from non-kept items).
-keep,allowobfuscation,allowshrinking interface retrofit2.Call
-keep,allowobfuscation,allowshrinking class retrofit2.Response

# With R8 full mode generic signatures are stripped for classes that are not
# kept. Suspend functions are wrapped in continuations where the type argument
# is used.
-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation
# *** END For AGP 8 issue with Retrofit and R8
-if class com.appcues.AppcuesFirebaseMessagingService$AppcuesMessagingData
-keepnames class com.appcues.AppcuesFirebaseMessagingService$AppcuesMessagingData
-if class com.appcues.AppcuesFirebaseMessagingService$AppcuesMessagingData
-keep class com.appcues.AppcuesFirebaseMessagingService_AppcuesMessagingDataJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class com.appcues.AppcuesFirebaseMessagingService$AppcuesMessagingData
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class com.appcues.AppcuesFirebaseMessagingService$AppcuesMessagingData
-keepclassmembers class com.appcues.AppcuesFirebaseMessagingService$AppcuesMessagingData {
    public synthetic <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.Long,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.Long,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,boolean,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class com.appcues.ViewElement
-keepnames class com.appcues.ViewElement
-if class com.appcues.ViewElement
-keep class com.appcues.ViewElementJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class com.appcues.ViewElement
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class com.appcues.ViewElement
-keepclassmembers class com.appcues.ViewElement {
    public synthetic <init>(java.util.UUID,int,int,int,int,java.lang.String,java.lang.String,com.appcues.ElementSelector,java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class com.appcues.action.appcues.Check
-keepnames class com.appcues.action.appcues.Check
-if class com.appcues.action.appcues.Check
-keep class com.appcues.action.appcues.CheckJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.appcues.adapters.ExperienceStepFormStateAdapter$StubExperienceStepFormState
-keepnames class com.appcues.data.remote.appcues.adapters.ExperienceStepFormStateAdapter$StubExperienceStepFormState
-if class com.appcues.data.remote.appcues.adapters.ExperienceStepFormStateAdapter$StubExperienceStepFormState
-keep class com.appcues.data.remote.appcues.adapters.ExperienceStepFormStateAdapter_StubExperienceStepFormStateJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.appcues.adapters.StepOrContainerResponse
-keepnames class com.appcues.data.remote.appcues.adapters.StepOrContainerResponse
-if class com.appcues.data.remote.appcues.adapters.StepOrContainerResponse
-keep class com.appcues.data.remote.appcues.adapters.StepOrContainerResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.appcues.request.ActivityRequest
-keepnames class com.appcues.data.remote.appcues.request.ActivityRequest
-if class com.appcues.data.remote.appcues.request.ActivityRequest
-keep class com.appcues.data.remote.appcues.request.ActivityRequestJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class com.appcues.data.remote.appcues.request.ActivityRequest
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class com.appcues.data.remote.appcues.request.ActivityRequest
-keepclassmembers class com.appcues.data.remote.appcues.request.ActivityRequest {
    public synthetic <init>(java.util.UUID,java.util.List,java.util.Map,java.lang.String,java.lang.String,java.lang.String,java.util.UUID,java.lang.String,java.util.Map,java.util.Date,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class com.appcues.data.remote.appcues.request.EventRequest
-keepnames class com.appcues.data.remote.appcues.request.EventRequest
-if class com.appcues.data.remote.appcues.request.EventRequest
-keep class com.appcues.data.remote.appcues.request.EventRequestJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class com.appcues.data.remote.appcues.request.EventRequest
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class com.appcues.data.remote.appcues.request.EventRequest
-keepclassmembers class com.appcues.data.remote.appcues.request.EventRequest {
    public synthetic <init>(java.lang.String,java.util.Date,java.util.Map,java.util.Map,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class com.appcues.data.remote.appcues.request.PushRequest
-keepnames class com.appcues.data.remote.appcues.request.PushRequest
-if class com.appcues.data.remote.appcues.request.PushRequest
-keep class com.appcues.data.remote.appcues.request.PushRequestJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class com.appcues.data.remote.appcues.request.PushRequest
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class com.appcues.data.remote.appcues.request.PushRequest
-keepclassmembers class com.appcues.data.remote.appcues.request.PushRequest {
    public synthetic <init>(java.lang.String,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class com.appcues.data.remote.appcues.response.ActivityResponse
-keepnames class com.appcues.data.remote.appcues.response.ActivityResponse
-if class com.appcues.data.remote.appcues.response.ActivityResponse
-keep class com.appcues.data.remote.appcues.response.ActivityResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.appcues.response.ErrorMessageResponse
-keepnames class com.appcues.data.remote.appcues.response.ErrorMessageResponse
-if class com.appcues.data.remote.appcues.response.ErrorMessageResponse
-keep class com.appcues.data.remote.appcues.response.ErrorMessageResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.appcues.response.ErrorResponse
-keepnames class com.appcues.data.remote.appcues.response.ErrorResponse
-if class com.appcues.data.remote.appcues.response.ErrorResponse
-keep class com.appcues.data.remote.appcues.response.ErrorResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.appcues.response.ExperimentResponse
-keepnames class com.appcues.data.remote.appcues.response.ExperimentResponse
-if class com.appcues.data.remote.appcues.response.ExperimentResponse
-keep class com.appcues.data.remote.appcues.response.ExperimentResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.appcues.response.HealthCheckResponse
-keepnames class com.appcues.data.remote.appcues.response.HealthCheckResponse
-if class com.appcues.data.remote.appcues.response.HealthCheckResponse
-keep class com.appcues.data.remote.appcues.response.HealthCheckResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.appcues.response.PushErrorResponse
-keepnames class com.appcues.data.remote.appcues.response.PushErrorResponse
-if class com.appcues.data.remote.appcues.response.PushErrorResponse
-keep class com.appcues.data.remote.appcues.response.PushErrorResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.appcues.response.QualifyResponse
-keepnames class com.appcues.data.remote.appcues.response.QualifyResponse
-if class com.appcues.data.remote.appcues.response.QualifyResponse
-keep class com.appcues.data.remote.appcues.response.QualifyResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.appcues.response.action.ActionResponse
-keepnames class com.appcues.data.remote.appcues.response.action.ActionResponse
-if class com.appcues.data.remote.appcues.response.action.ActionResponse
-keep class com.appcues.data.remote.appcues.response.action.ActionResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.appcues.response.experience.ContextResponse
-keepnames class com.appcues.data.remote.appcues.response.experience.ContextResponse
-if class com.appcues.data.remote.appcues.response.experience.ContextResponse
-keep class com.appcues.data.remote.appcues.response.experience.ContextResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.appcues.response.experience.ExperienceResponse
-keepnames class com.appcues.data.remote.appcues.response.experience.ExperienceResponse
-if class com.appcues.data.remote.appcues.response.experience.ExperienceResponse
-keep class com.appcues.data.remote.appcues.response.experience.ExperienceResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.appcues.response.experience.FailedExperienceResponse
-keepnames class com.appcues.data.remote.appcues.response.experience.FailedExperienceResponse
-if class com.appcues.data.remote.appcues.response.experience.FailedExperienceResponse
-keep class com.appcues.data.remote.appcues.response.experience.FailedExperienceResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class com.appcues.data.remote.appcues.response.experience.FailedExperienceResponse
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class com.appcues.data.remote.appcues.response.experience.FailedExperienceResponse
-keepclassmembers class com.appcues.data.remote.appcues.response.experience.FailedExperienceResponse {
    public synthetic <init>(java.util.UUID,java.lang.String,java.lang.String,java.lang.Long,com.appcues.data.remote.appcues.response.experience.ContextResponse,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class com.appcues.data.remote.appcues.response.step.StepResponse
-keepnames class com.appcues.data.remote.appcues.response.step.StepResponse
-if class com.appcues.data.remote.appcues.response.step.StepResponse
-keep class com.appcues.data.remote.appcues.response.step.StepResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.appcues.response.styling.StyleBackgroundImageResponse
-keepnames class com.appcues.data.remote.appcues.response.styling.StyleBackgroundImageResponse
-if class com.appcues.data.remote.appcues.response.styling.StyleBackgroundImageResponse
-keep class com.appcues.data.remote.appcues.response.styling.StyleBackgroundImageResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class com.appcues.data.remote.appcues.response.styling.StyleBackgroundImageResponse
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class com.appcues.data.remote.appcues.response.styling.StyleBackgroundImageResponse
-keepclassmembers class com.appcues.data.remote.appcues.response.styling.StyleBackgroundImageResponse {
    public synthetic <init>(java.lang.String,java.lang.String,com.appcues.data.remote.appcues.response.styling.StyleSizeResponse,java.lang.String,java.lang.String,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class com.appcues.data.remote.appcues.response.styling.StyleColorResponse
-keepnames class com.appcues.data.remote.appcues.response.styling.StyleColorResponse
-if class com.appcues.data.remote.appcues.response.styling.StyleColorResponse
-keep class com.appcues.data.remote.appcues.response.styling.StyleColorResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class com.appcues.data.remote.appcues.response.styling.StyleColorResponse
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class com.appcues.data.remote.appcues.response.styling.StyleColorResponse
-keepclassmembers class com.appcues.data.remote.appcues.response.styling.StyleColorResponse {
    public synthetic <init>(java.lang.String,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class com.appcues.data.remote.appcues.response.styling.StyleGradientColorResponse
-keepnames class com.appcues.data.remote.appcues.response.styling.StyleGradientColorResponse
-if class com.appcues.data.remote.appcues.response.styling.StyleGradientColorResponse
-keep class com.appcues.data.remote.appcues.response.styling.StyleGradientColorResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.appcues.response.styling.StyleResponse
-keepnames class com.appcues.data.remote.appcues.response.styling.StyleResponse
-if class com.appcues.data.remote.appcues.response.styling.StyleResponse
-keep class com.appcues.data.remote.appcues.response.styling.StyleResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class com.appcues.data.remote.appcues.response.styling.StyleResponse
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class com.appcues.data.remote.appcues.response.styling.StyleResponse
-keepclassmembers class com.appcues.data.remote.appcues.response.styling.StyleResponse {
    public synthetic <init>(java.lang.Double,java.lang.Double,java.lang.Double,java.lang.Double,java.lang.Double,java.lang.Double,java.lang.Double,java.lang.Double,java.lang.Double,java.lang.Double,java.lang.Double,com.appcues.data.remote.appcues.response.styling.StyleShadowResponse,java.util.List,com.appcues.data.remote.appcues.response.styling.StyleColorResponse,com.appcues.data.remote.appcues.response.styling.StyleColorResponse,com.appcues.data.remote.appcues.response.styling.StyleGradientColorResponse,com.appcues.data.remote.appcues.response.styling.StyleColorResponse,java.lang.Double,java.lang.String,java.lang.Double,java.lang.Double,java.lang.Double,java.lang.String,java.lang.String,java.lang.String,com.appcues.data.remote.appcues.response.styling.StyleBackgroundImageResponse,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class com.appcues.data.remote.appcues.response.styling.StyleShadowResponse
-keepnames class com.appcues.data.remote.appcues.response.styling.StyleShadowResponse
-if class com.appcues.data.remote.appcues.response.styling.StyleShadowResponse
-keep class com.appcues.data.remote.appcues.response.styling.StyleShadowResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class com.appcues.data.remote.appcues.response.styling.StyleShadowResponse
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class com.appcues.data.remote.appcues.response.styling.StyleShadowResponse
-keepclassmembers class com.appcues.data.remote.appcues.response.styling.StyleShadowResponse {
    public synthetic <init>(com.appcues.data.remote.appcues.response.styling.StyleColorResponse,double,double,double,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class com.appcues.data.remote.appcues.response.styling.StyleSizeResponse
-keepnames class com.appcues.data.remote.appcues.response.styling.StyleSizeResponse
-if class com.appcues.data.remote.appcues.response.styling.StyleSizeResponse
-keep class com.appcues.data.remote.appcues.response.styling.StyleSizeResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.appcues.response.trait.TraitResponse
-keepnames class com.appcues.data.remote.appcues.response.trait.TraitResponse
-if class com.appcues.data.remote.appcues.response.trait.TraitResponse
-keep class com.appcues.data.remote.appcues.response.trait.TraitResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class com.appcues.data.remote.appcues.response.trait.TraitResponse
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class com.appcues.data.remote.appcues.response.trait.TraitResponse
-keepclassmembers class com.appcues.data.remote.appcues.response.trait.TraitResponse {
    public synthetic <init>(java.lang.String,java.util.Map,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class com.appcues.data.remote.customerapi.request.CaptureMetadataRequest
-keepnames class com.appcues.data.remote.customerapi.request.CaptureMetadataRequest
-if class com.appcues.data.remote.customerapi.request.CaptureMetadataRequest
-keep class com.appcues.data.remote.customerapi.request.CaptureMetadataRequestJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.customerapi.request.CaptureRequest
-keepnames class com.appcues.data.remote.customerapi.request.CaptureRequest
-if class com.appcues.data.remote.customerapi.request.CaptureRequest
-keep class com.appcues.data.remote.customerapi.request.CaptureRequestJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.customerapi.request.InsetsRequest
-keepnames class com.appcues.data.remote.customerapi.request.InsetsRequest
-if class com.appcues.data.remote.customerapi.request.InsetsRequest
-keep class com.appcues.data.remote.customerapi.request.InsetsRequestJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.customerapi.response.PreUploadScreenshotResponse$Upload
-keepnames class com.appcues.data.remote.customerapi.response.PreUploadScreenshotResponse$Upload
-if class com.appcues.data.remote.customerapi.response.PreUploadScreenshotResponse$Upload
-keep class com.appcues.data.remote.customerapi.response.PreUploadScreenshotResponse_UploadJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.customerapi.response.PreUploadScreenshotResponse
-keepnames class com.appcues.data.remote.customerapi.response.PreUploadScreenshotResponse
-if class com.appcues.data.remote.customerapi.response.PreUploadScreenshotResponse
-keep class com.appcues.data.remote.customerapi.response.PreUploadScreenshotResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.sdksettings.response.SdkSettingsResponse$Services
-keepnames class com.appcues.data.remote.sdksettings.response.SdkSettingsResponse$Services
-if class com.appcues.data.remote.sdksettings.response.SdkSettingsResponse$Services
-keep class com.appcues.data.remote.sdksettings.response.SdkSettingsResponse_ServicesJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class com.appcues.data.remote.sdksettings.response.SdkSettingsResponse
-keepnames class com.appcues.data.remote.sdksettings.response.SdkSettingsResponse
-if class com.appcues.data.remote.sdksettings.response.SdkSettingsResponse
-keep class com.appcues.data.remote.sdksettings.response.SdkSettingsResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
