## Stream Chat Android Client Proguard Rules

-keep class io.getstream.chat.android.client.api.* { *; }
-keep class io.getstream.chat.android.client.api.models.* { *; }
-keep class io.getstream.chat.android.client.errors.* { *; }
-keep class io.getstream.chat.android.client.events.* { *; }
-keep class io.getstream.chat.android.client.models.* { *; }
-keep class io.getstream.chat.android.client.parser.* { *; }
-keep class io.getstream.chat.android.client.socket.* { *; }
-keep class io.getstream.chat.android.client.socket.EventsParser.TypedEvent { *; }
-keep class io.getstream.chat.android.client.utils.FilterObject { *; }
-keep class io.getstream.chat.android.client.utils.Result { *; }
-keep class io.getstream.chat.android.client.utils.SyncStatus { *; }

-keepattributes Signature,*Annotation*

-keepattributes EnclosingMethod

-keep class kotlin.** { *; }
-keep class kotlin.Metadata { *; }
-dontwarn kotlin.**
-keepclassmembers class **$WhenMappings {
    <fields>;
}
-keepclassmembers class kotlin.Metadata {
    public <methods>;
}
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
    static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
}
-if class io.getstream.chat.android.client.api2.model.response.MessageResponse
-keepnames class io.getstream.chat.android.client.api2.model.response.MessageResponse
-if class io.getstream.chat.android.client.api2.model.response.MessageResponse
-keep class io.getstream.chat.android.client.api2.model.response.MessageResponseJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class io.getstream.chat.android.client.api2.model.dto.UpstreamMessageDto
-keepnames class io.getstream.chat.android.client.api2.model.dto.UpstreamMessageDto
-if class io.getstream.chat.android.client.api2.model.dto.UpstreamMessageDto
-keep class io.getstream.chat.android.client.api2.model.dto.UpstreamMessageDtoJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class io.getstream.chat.android.client.api2.model.dto.ReactionDto
-keepnames class io.getstream.chat.android.client.api2.model.dto.ReactionDto
-if class io.getstream.chat.android.client.api2.model.dto.ReactionDto
-keep class io.getstream.chat.android.client.api2.model.dto.ReactionDtoJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class io.getstream.chat.android.client.api2.model.dto.AttachmentDto
-keepnames class io.getstream.chat.android.client.api2.model.dto.AttachmentDto
-if class io.getstream.chat.android.client.api2.model.dto.AttachmentDto
-keep class io.getstream.chat.android.client.api2.model.dto.AttachmentDtoJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class io.getstream.chat.android.client.api2.model.dto.ChannelInfoDto
-keepnames class io.getstream.chat.android.client.api2.model.dto.ChannelInfoDto
-if class io.getstream.chat.android.client.api2.model.dto.ChannelInfoDto
-keep class io.getstream.chat.android.client.api2.model.dto.ChannelInfoDtoJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class io.getstream.chat.android.client.api2.model.dto.UserDto
-keepnames class io.getstream.chat.android.client.api2.model.dto.UserDto
-if class io.getstream.chat.android.client.api2.model.dto.UserDto
-keep class io.getstream.chat.android.client.api2.model.dto.UserDtoJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class io.getstream.chat.android.client.api2.model.requests.MessageRequest
-keepnames class io.getstream.chat.android.client.api2.model.requests.MessageRequest
-if class io.getstream.chat.android.client.api2.model.requests.MessageRequest
-keep class io.getstream.chat.android.client.api2.model.requests.MessageRequestJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class io.getstream.chat.android.client.api2.model.dto.DownstreamMessageDto
-keepnames class io.getstream.chat.android.client.api2.model.dto.DownstreamMessageDto
-if class io.getstream.chat.android.client.api2.model.dto.DownstreamMessageDto
-keep class io.getstream.chat.android.client.api2.model.dto.DownstreamMessageDtoJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}


